Thank you for your interest in contributing!
- Use GitHub Issues
- Specify which command is affected (
init,update, ordoctor)
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
npm test - Run lint:
npm run lint - Commit with a descriptive message
- Open a Pull Request
| Directory | What We Need | Guidelines |
|---|---|---|
src/commands/ |
Command improvements, new commands | Follow Commander.js patterns. Keep each command focused on one task. |
src/core/ |
Core logic improvements | Pure functions preferred. No side effects in core modules except git/fs operations. |
src/prompts/ |
Prompt UX improvements | Use @inquirer/prompts. Keep prompts minimal and clear. |
tests/ |
Test coverage improvements | Use vitest. Test core modules thoroughly; commands via E2E tests. |
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Type check
npm run lint
# Local testing
node dist/index.js init --dry-run- Create
src/commands/{name}.ts - Export a
Commandinstance - Register it in
src/index.tsviaprogram.addCommand() - Add tests in
tests/commands/{name}.test.ts
To add support for a new rules preset or plugin:
- Add the entry to
src/core/registry.ts - Include
id,name,repo, and optionaltemplate/hooksFile/settingsDir - No CLI version bump needed — just a patch release
When changing the CLI, consider impacts on:
- ai-dev-os — Quick Start documentation
- ai-dev-os-plugin-claude-code — Hook format compatibility
- ai-dev-os-plugin-kiro
- ai-dev-os-plugin-cursor
- Translations are in
docs/i18n/{lang}/ - Currently supported:
ja,zh-CN,ko,es
Be respectful, constructive, and inclusive.
Languages: English | 日本語