Thank you for your interest in contributing to AIDD (AI Development Driver)! This document provides guidelines for contributing to the project.
This project follows a simple code of conduct: be respectful, constructive, and collaborative. We welcome contributions from everyone.
If you find a bug, please open an issue with:
- A clear, descriptive title
- Steps to reproduce the bug
- Expected vs actual behavior
- Your environment (OS, Bash version, CLI being used)
- Relevant log files from
.aidd/iterations/
Enhancement suggestions are welcome! Please open an issue with:
- A clear description of the enhancement
- Why it would be useful
- Example use cases
- Any implementation ideas you have
- Fork the repository and create your branch from
main - Make your changes following the coding style of the project
- Test your changes thoroughly:
- Test with each supported CLI (OpenCode, KiloCode, Claude Code, Codex, ZRun) if your change touches CLI integration
- Test new project initialization
- Test existing codebase onboarding
- Test iteration workflows
- Update documentation if needed (README.md, prompts/, etc.)
- Commit your changes using Conventional Commits format (e.g.,
feat(cli): add idle detection,fix(prompts): correct commit template) - Push to your fork and submit a pull request
- Keep PRs focused on a single feature or fix
- Include a clear description of what the PR does
- Reference any related issues
- Update relevant documentation
- Follow existing code style and conventions
# Clone your fork
git clone https://github.com/your-username/aidd.git
cd aidd
# Make the script executable
chmod +x aidd.sh
# Test with a sample project
./aidd.sh --project-dir /path/to/test/project --spec specs/example.mdaidd.sh- Main entry pointlib/- Core library modulesconfig.sh- Configuration constantsutils.sh- Utility functionsargs.sh- Argument parsingcli-factory.sh- CLI abstraction layercli-{opencode,kilocode,claude-code,codex,zrun}.sh- Per-CLI implementationsjson-parser.sh/codex-json-parser.sh- Stream parsers for Claude Code / Codexlog-cleaner.sh/log-extractor.sh- Iteration log handlingproject.sh- Project managementiteration.sh- Iteration handling
prompts/- Prompt templates for AI agents_common/- Shared prompt modules_cli/- Per-CLI prompt variants (one per supported CLI)roles/- Role-specific prompts (coder, refiner, reviewer_auditor, squad_leader, fire_team_leader)onboarding.md- Existing codebase promptinitializer.md- New project promptcoding.md- Development iterations promptcoordinator.md- Fleet-level multi-project coordinator prompttodo.md- TODO mode promptvalidate.md- Feature validation promptin-progress.md- In-progress feature prompt
audits/- Audit definition files (runnable + reference)benchmarks/- Benchmark harness manifest, fixtures, schemas, resultstools/- Build/rebuild automation and benchmark runnerzrun/- Bun + TypeScript ZRun agent (Zhipu AI / Ollama)scaffolding/- Template files for new projectstemplates/- Project metadata templatesspecs/- Example specification filesdocs/- Reference documentation
- Use 4-space indentation in shell scripts
- Follow Google Shell Style Guide where applicable
- Add comments for complex logic
- Use descriptive variable names
- Prefer
[[ ]]over[ ]for conditionals - Use
localfor function-scoped variables - Quote all variables to prevent word splitting
Before submitting a PR, test your changes with:
- A new empty project
- An existing codebase
- All five supported CLIs — OpenCode, KiloCode, Claude Code, Codex, ZRun — if modifying CLI-related code
- Edge cases (missing files, invalid arguments, etc.)
- Update README.md if adding new features
- Update prompt files if changing agent behavior
- Add comments to shell scripts for complex logic
- Update CHANGELOG.md (Keep a Changelog format) for any user-visible change
Feel free to open an issue with your question or reach out to the maintainers.
By contributing to AIDD, you agree that your contributions will be licensed under the MIT License.