github/developer
Core developer rules and coding conventions for gh-aw changes.
npx skills add https://github.com/github/gh-aw --skill developer
Use this reference for gh-aw technical specs and development guidelines across code organization, validation, security, and implementation patterns.
Use this section for the detailed day-to-day command flow that was intentionally removed from AGENTS.md to keep first-run ambient context small.
Run validation in tiers — catch compile errors early, defer slow tests to the final pass only.
make build && make fmt
report_progress call (fast, <30s — no tests) make agent-report-progress-no-test
report_progress call (slower, once per session — includes test-unit) make agent-report-progress
make agent-finish
> Key rule: Run test-unit only before the final report_progress call, not before intermediate saves. Each unnecessary invocation adds 120+ seconds to total validation time.
> Timeout budget: make test-unit is expected to take up to 120 seconds. If it exceeds that, use make test-impacted-go to run only tests for packages affected by the current branch's changes.
make fmtmake recompile*.cjs) changes: make fmt-cjs && make lint-cjsWhen explicitly asked to merge main:
make merge-main..go or .cjs, resolve and stage files. make build
make recompile
git commit
make fmt
The gh-aw CLI follows context-based capitalization to distinguish between the product name and generic workflow references.
| Context | Format | Example |
|---------|--------|---------|
| Product name | Capitalized | "GitHub Agentic Workflows CLI from GitHub Next" |
| Generic workflows | Lowercase | "Enable agentic workflows" |
| Technical terms | Capitalized | "Compile Markdown workflows to GitHub Actions YAML" |
This convention distinguishes between the product name (GitHub Agentic Workflows) and the concept (agentic workflows), following industry standards similar to "GitHub Actions" vs. "actions".
The capitalization rules are enforced through automated tests in cmd/gh-aw/capitalization_test.go that run as part of the standard test suite.
The following sub-skills cover specific areas of the codebase. Load them lazily when the task requires the specific domain:
| Sub-skill | When to use |
|-----------|-------------|
| .github/skills/developer-code-organization/SKILL.md | Creating new files, refactoring, WASM stubs, file size decisions |
| .github/skills/developer-security/SKILL.md | Implementing new features, reviewing for security, template injection concerns |
| .github/skills/developer-internals/SKILL.md | Working on compiler internals, validation, safe outputs, MCP server, schema changes |
| .github/skills/developer-release/SKILL.md | Creating a release, evaluating breaking changes, firewall log analysis |
Take github/developer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.