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 |
Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Query the CELLxGENE Census (61M+ cells) programmatically. Use when you need expression data across tissues, diseases, or cell types from the largest curated single-cell atlas. Best for population-scale queries, reference atlas comparisons. For analyzing your own data use scanpy or scvi-tools.
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.