aidokitwiki

Scenario: Add a feature to an existing project (brownfield)

Audience-User Status-Shipped v0.5

When to use #

You have an existing codebase already scaffolded with aidokit (or about to be). You want to add a feature using the full Intake → Plan → Build loop, with brownfield ingestion so the Researcher and Architect roles see the real code before proposing tasks.

At a glance #

%%{init: {
  "theme": "base",
  "themeVariables": {
    "fontFamily": "ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif",
    "fontSize": "14px",
    "primaryColor": "#eff6ff",
    "primaryTextColor": "#0f172a",
    "primaryBorderColor": "#2563eb",
    "lineColor": "#475569",
    "secondaryColor": "#f1f5f9",
    "tertiaryColor": "#ffffff",
    "clusterBkg": "#f8fafc",
    "clusterBorder": "#cbd5e1"
  }
}}%%
flowchart LR
  classDef actor    fill:#ede9fe,stroke:#6d28d9,color:#1e1b4b,stroke-width:1.2px;
  classDef cli      fill:#dbeafe,stroke:#1d4ed8,color:#0c1f4a,stroke-width:1.4px;
  classDef adapter  fill:#cffafe,stroke:#0e7490,color:#083344;
  classDef pack     fill:#dcfce7,stroke:#15803d,color:#052e16;
  classDef core     fill:#fef9c3,stroke:#a16207,color:#422006;
  classDef artifact fill:#f1f5f9,stroke:#475569,color:#0f172a;
  classDef stop     fill:#fee2e2,stroke:#b91c1c,color:#7f1d1d,stroke-dasharray:4 3;
  classDef ok       fill:#ecfdf5,stroke:#047857,color:#064e3b;
  classDef external fill:#fff7ed,stroke:#c2410c,color:#431407;
  you(["you"]):::actor
  intake["/intake --brownfield"]:::cli
  res["Researcher"]:::actor
  arch["Architect"]:::actor
  plan["Planner"]:::actor
  s1{"S1: approve brief"}:::stop
  impl["/implement-task"]:::cli
  build["Builder"]:::actor
  test["Tester-Reviewer"]:::actor
  maint["Maintainer"]:::actor
  s2{"S2: task closed"}:::stop
  nxt["/orchestrator-next"]:::cli
  you --> intake --> res --> arch --> plan --> s1 --> impl --> build --> test --> maint --> s2 --> nxt

Step-by-step #

1. Confirm the project is initialised #

ls .aido/adapter.md

Expected: the file exists. If not, fall back to the new-project scenario first.

2. Run health check #

aidokit doctor

Expected: green output confirming adapter, tier, and stack pack match the manifest.

3. Open your AI CLI #

If Claude Code

claude

If Codex

codex

If Copilot

gh copilot

Expected: the CLI loads with the scaffolded workflow available.

4. Kick off brownfield intake #

/intake --brownfield "I want to add <feature>; relevant code lives in <path>"

Expected: Researcher digests the codebase; Architect proposes shape; Planner produces task briefs in agent-artifacts/briefs/.

5. Review the brief and approve #

Open agent-artifacts/briefs/<latest>.md, read it end to end, and approve. Intake stops here (hard-stop S1).

Expected: no code is written yet. This is by design.

6. Implement the first task #

/implement-task

Expected: Builder runs; Tester-Reviewer does two-stage review (spec compliance, then code quality); Maintainer finalises and updates CHANGELOG.md.

7. Pull the next task #

/orchestrator-next

Expected: the orchestrator picks the next unblocked task from the Beads graph.

Common mistakes #

See also #