Contributing to NgAutoPilot
April 30, 2026 ยท View on GitHub
NgAutoPilot is a catalog of small, public, agent-agnostic skills. Contributions should improve practical Angular, TypeScript, JavaScript, RxJS, testing, quality, architecture, or Git workflows.
Proposing a Skill
Before adding a skill, confirm that it solves one concrete problem.
Good:
avoid-template-functionsavoid-nested-subscriptionstrackby-for-lists
Avoid:
angular-best-practicesrxjs-guidefrontend-quality
If the topic contains multiple independent rules, split it into multiple skills.
Acceptance Criteria
A skill can be accepted when it:
- Solves a small, repeatable engineering problem.
- Uses neutral language such as "the agent should" or "the assistant should".
- Avoids naming one provider as the required execution environment.
- Has clear triggers.
- Includes good and bad examples.
- Includes a practical review checklist.
- Avoids private, corporate, confidential, or project-specific content.
- Does not contradict existing stable skills.
- Passes
npm run skills:validate.
Naming Convention
Use kebab-case for folders:
avoid-template-functions
onpush-change-detection
trackby-for-lists
Use dot notation for skill IDs:
angular.performance.avoid-template-functions
typescript.strict-types.avoid-any
The folder path should map directly to the ID:
skills/angular/performance/avoid-template-functions/SKILL.md
id: angular.performance.avoid-template-functions
Required Skill Structure
Each skill must follow templates/SKILL.template.md and include:
- Frontmatter metadata.
## Purpose## When to Use## Do## Do Not## Review Checklist## Expected Output
Required Metadata
Each skill must include:
idnamedescriptionstackcategorystatusversionownertriggers
Compatibility-aware skills may also include:
compatibilityvariantsfallbacksdetects
Use these fields when a recommendation changes by Angular, TypeScript, RxJS, Node, framework syntax, or tooling version. Do not recommend a modern pattern unless the metadata and skill body explain the fallback for older projects.
Allowed statuses:
draftreviewstabledeprecatedexperimental
Public Content Rules
Do not include:
- Company names unless they are public technology names.
- Internal project names.
- Internal routes, domains, repositories, credentials, or screenshots.
- Customer data.
- Private architecture decisions.
- Tool-specific instructions inside skills.
Provider-specific guidance belongs in adapters/, not in skills/.
Pull Request Flow
- Create or update a skill.
- Run
npm run skills:validate. - Run
npm run skills:catalog. - Run
npm run skills:publish:packwhen the change affects public packaging. - Run
npm run review:sage:packwhen the change touches agent instructions, workflows, or publish scripts. - Confirm
catalog.jsoncontains the expected entry. - Open a pull request with a short explanation of the problem solved.
- Address review feedback.
Branch Naming
Use short, descriptive branch names:
feat/core-autopilot-operating-layer
feat/angular-dependency-injection-skill
feat/marketplace-publish-bundles
Keep unrelated work in separate branches when it affects public docs, skill content, or workflows.
Contribution Checklist
- The skill solves one narrow problem.
- The skill uses neutral agent language.
- The skill has clear triggers.
- Good and bad examples are included.
- The checklist is actionable.
- No private or confidential content is included.
-
npm run skills:validatepasses. -
npm run skills:catalogwas run. -
npm run skills:publish:packwas run when publish output changed. -
npm run review:sage:packwas run when agent instructions or workflows changed.