AIDD — AI-Driven Development
A methodology for working with AI coding agents, not another AI coding agent itself. AIDD makes an agent search before it creates, plan out loud before it builds, and get reviewed by someone other than itself before a change is called done — automatically, on Claude Code, OpenCode, Codex, Gemini CLI, and any other tool that can read a markdown file and run a shell command.
The problem
AI coding agents are fast at writing code and bad at knowing what already exists. Left alone, they duplicate specs nobody asked for, re-explain a flow in three paragraphs instead of drawing it, ship a fix that fabricates success instead of actually calling the real backend, and grade their own homework when asked to review it. AIDD is the set of habits that stops that — enforced by hooks where the tool allows it, followed as a written discipline everywhere else.
What it does
- Searches before creating. Every request runs against a compact, auto-built graph of every
existing spec (
specs/index.toon) before anything new gets created — a match means "amend this," not "start over." - Plans out loud. Ambiguity gets resolved as an explicit question before code is written, not discovered after a review.
- Ships in small, reviewable pieces. One code, one file, one PR — a wrong pass costs one edit, not a rewrite.
- Never lets the implementer grade its own work. Step 6's review must come from a separate
agent dispatch. On Claude Code this is an actual technical gate
(
hooks/require_independent_audit.py), not just a rule stated in a doc. - Works the same across tools. One methodology (
skill/AIDD.md), thin adapters per tool — no relearning the process when the assistant changes. For Claude Code, OpenCode, and Codex, that's a native skill/AGENTS.md pointer; for Gemini CLI, Cursor, Windsurf, Cline, and GitHub Copilot,generate_adapters.pyrenders each one's own native command-file format straight fromcommands/aidd-*.md— one source, no per-agent copy to keep in sync. Both the issue-tracker providers and these adapter targets are auto-discovered extensions (seedocs/EXTENDING.md), so a project can add its own without forking this repo. - Has a charter that's actually checked. Project-wide rules split into judgment calls
(prose) and checkable ones (a pattern + glob table
check_charter.pyruns for real) — not a principles doc trusted to memory. Run against a real production project, it caught two stale claims in that project's own hand-written notes about specific libraries being unused (both false, verified in seconds) and a third that turned out far worse than self-rated (340 real violations of a rule logged as low-severity). - Verifies its own map before planning against it. The spec graph is parsed mechanically
(fast, cheap), which also means it can misparse a renamed code or a stale relationship — so a
rebuild dispatches an independent Graph Coherence Auditor before
plan.md/tasks.mdbuild on the new edges. Enforced by a hook pair, not a step an agent could skip under time pressure. - Syncs to GitHub, Azure DevOps, or Bitbucket — not just markdown. An approved
tasks.mdbecomes real, trackable issues viatasks_to_issues.py --provider {github,azure_devops, bitbucket}— dry-run by default, never duplicates on re-run. It stays in sync from there:aidd tracker syncdiffs (or writes, with--apply)tasks.md's Status column against live tracker status, andaidd tracker link-prattaches an opened PR's URL back to its task's tracker issue andtasks.mdrow. CI templates for both trackers ship underskill/templates/ci/, installed withaidd ci install {github,azure-devops}. - Has a package-install mechanism, kept to the load-bearing parts — not yet a third-party
ecosystem.
catalog/is the marketplace mechanism: packages (templates, agent adapters, issue-tracker providers, hooks) install into your project withaidd marketplace install <id>, content-hashed soremovenever discards a file you hand-edited since. Aprovider/adapter/hookpackage lands under.aidd/extensions/<id>/and is auto-discovered from there — no code change to this repo needed to use it. Structural validation runs in CI on every submission; a maintainer still reviews and merges each one by hand — seecatalog/README.md. Today that catalog holds exactly one package, first-party (hotfix-report); zero third-party submissions have been merged yet — the mechanism is built and tested, the ecosystem it's built for doesn't exist yet. Manage what's discovered (first-party or project-local) withaidd extensions list|info <id>|enable <id>|disable <id>— seedocs/EXTENDING.md.
What's in this repo
skill/— the Claude Code skill:SKILL.md, enforcement hooks (hooks/), and every script/template (scripts/,templates/).skill/AIDD.mdis the tool-agnostic methodology core every other adapter — including this repo's own CLI — points back to.aidd/— the CLI (pip install -e .→ theaiddcommand): a thin dispatcher overskill/scripts/, for a human at a terminal or a CI job, no AI agent required.commands/— the eight/aidd-*pipeline-stage commands for Claude Code.adapters/— drop-in adapters for other agent tools (OpenCode skill + plugin, anAGENTS.mdsnippet for Codex and others, aGEMINI.mdpointer) plusdot-aidd/, the portable.aidd/bundle (methodology + scripts + templates, no Claude-specific pieces) any project installs once and every adapter reads from. Seeadapters/README.mdfor the install steps.catalog/— the marketplace mechanism:schema.json, two registries (catalog.jsonfirst-party, currently one package;catalog.community.jsonthird-party, currently empty), andpackages/<id>/folders. Installed/searched viaskill/scripts/marketplace.py(oraidd marketplace ...), validated in CI byskill/scripts/validate_catalog_entry.py. Seecatalog/README.mdandcatalog/CONTRIBUTING.md.tests/— the stdlibunittestsuite (zero dependencies,python -m unittest discover -s tests), run on every push/PR by.github/workflows/test.yml(andcatalog-validate.ymlfor anything touchingcatalog/).
Install (Claude Code)
cp -r skill ~/.claude/skills/aidd
python ~/.claude/skills/aidd/scripts/install_hooks.py
Install (the CLI — for a terminal or CI, no AI agent needed)
git clone https://github.com/quimhen/aidd.git && cd aidd
pip install -e .
aidd init /path/to/your/project # installs the .aidd/ bundle there
aidd search "login" # search the spec graph
aidd check specs/001-login/ # mechanical gap-check
aidd check-charter . # run charter.md's checkable rules
aidd tasks-to-issues specs/001-login/tasks.md --apply # sync tasks (github by default)
aidd tasks-to-issues specs/001-login/tasks.md --provider azure_devops --org ... --project ... --apply
aidd adapters generate all /path/to/your/project # native commands for Gemini CLI, Cursor, Windsurf, Cline, Copilot
aidd marketplace list # browse installable third-party packages
aidd marketplace install hotfix-report /path/to/your/project
aidd extensions list # discovered provider/adapter/hook extensions
aidd tracker sync specs/001-login/tasks.md --provider github --repo owner/repo # dry-run status diff
aidd tracker link-pr specs/001-login/tasks.md --pr-url ... --branch ... --apply
aidd ci install github /path/to/your/project # install the GitHub Actions CI template
Not yet published to PyPI — install from a clone for now.
Install (other tools)
See adapters/README.md.
Documentation
- Why AIDD — what changes for you, in plain language, with the measured numbers.
- Pipeline reference — the full technical breakdown: the code system, the spec graph, every step, the enforcement hooks.
- FAQ — common questions. Have one that's not there? Open an issue or a discussion.
- Extending AIDD — the three extension seams (issue tracker
providers and multi-agent adapter targets, both auto-discovered from
skill/extensions/**/manifest.jsonor.aidd/extensions/**/manifest.json, plus charter checkable rules), and how they relate to the marketplace (catalog/). - Consulting — if your team wants help adopting AIDD.
Status
Early — the core pipeline, the search/graph tools, the charter checker, the graph-coherence
gate, the issue-tracker sync (GitHub/Azure DevOps/Bitbucket, plus bidirectional status sync
via aidd tracker sync and PR<->task linking via aidd tracker link-pr), CI templates and
aidd ci install, the Claude Code hooks (nine of them, including the independent-audit and
graph-coherence gates), the multi-agent adapter generator (generate_adapters.py, rendering
Gemini CLI/Cursor/Windsurf/Cline/Copilot commands from one source), the real auto-discovery
extension registry (extension_registry.py, loading provider/adapter/hook extensions from
skill/extensions/**/manifest.json and .aidd/extensions/**/manifest.json — see
docs/EXTENDING.md), and the marketplace (catalog/ + marketplace.py +
validate_catalog_entry.py, one first-party package shipped so far: hotfix-report) are built,
tested (stdlib unittest, run in CI), and have been run against a real production
codebase. OpenCode, Codex, and the five generated adapter targets follow the same methodology;
only the Claude Code hooks currently give it technical teeth. Not yet published to PyPI. The
marketplace is intentionally not a fully automated accept path: CI validates structure and
flags anything worth a human's attention, but a maintainer reviews and merges every catalog
submission by hand — see catalog/README.md.
License
MIT — see LICENSE.
Metadata
Release files for aidd-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aidd_cli-0.1.0.tar.gz | 41.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aidd_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.6 kB
Release files / aidd_cli-0.1.0.tar.gz
| Download URL | aidd_cli-0.1.0.tar.gz |
|---|---|
| Size | 41.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4f02c94eed504eb4b82c21e24ee26588cec889ef7ac492a0c762c4bf3b78af1f
|
|
BLAKE2b-256 checksum How to use checksums |
ce5bea3530cf8bb2a714454de5cfdc4a6db3516bbc3e7d16985f6d165a44f9ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / aidd_cli-0.1.0-py3-none-any.whl
| Download URL | aidd_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7fe43136008f29e9c78582cb90114d395ed38399a8d44bb0c2c9a29ee76cb5fd
|
|
BLAKE2b-256 checksum How to use checksums |
6b787a80662302c9e07b07f50fdd7d4058fe8fe38b87f5af4b060cabec5d23b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|