Cadora · design spec
Everything needed to render or extend the method pack's screens — the exact tokens, the phase-lane DAG node's anatomy, the component inventory, every node and stage state, the topology field grammar, and the stable-versus-experimental distinction. The rendered components are live HTML; edit them here or lift the specs into Figma.
Semantic first · green passes a gate, amber asks for review, red blocks
--scr-green · #16c784Gate passed · stage done--scr-red · #fb7185Gate blocked · abort--scr-amber · #ffd08aAwaiting review · experimental--scr-blue · #6ba5f0Phase · keys · paths--scr-bg · #0f172aCard ground--scr-canvas · #111c2fInset · node body--scr-panel2 · #162237Phase lane · review card--scr-line · #334158Borders · edges--scr-text · #f5f7fbNode id · command--scr-muted · #9aa8bcRoles · labels · captionsA phase carries no colour of its own — inception reads blue, construction green, operations muted, but only to key the eye. The semantic colours belong to outcomes: a gate that passed, a review that waits, a run that blocked.
Monospace is the instrument voice — node ids, phases, and events are read at the shell
| Role | Family | Size / weight | Notes |
|---|---|---|---|
| Node id | mono | 12px / 600 | The real id from the topology — requirements, code-generation |
| Role / phase | mono | 10px / 400 | Muted; phase eyebrows are uppercase, tracked .11em |
| Gate chip | mono | 9px | gate: build-test green · review amber |
| YAML key | mono | blue | phase value amber · gate value green · review value amber |
| Audit event | mono | text | ISO timestamp · event · stage; count in N events |
| State box | mono | 13px / 700 | Six glyphs: [x] [-] [?] [R] [S] [ ] |
| Metric | Value | Metric | Value |
|---|---|---|---|
| Lane radius | 10px | Node radius | 8px |
| Lane padding | 10px 12px | Node padding | 7px 11px |
| Phase dot | 8px circle | Semantic accent | 1px chip border |
| State glyphs | 6 (x - ? R S ␣) | Audit taxonomy | 68 events |
One node in one phase, with its checkpoint declared
What a node looks like as the run moves through it
Pending → running → done
Gate: passed vs blocked
Green (.done) and amber (.wait) share one node component with one token swapped — border and label colour. A blocked gate turns the outcome card red; the deterministic gate re-runs the real build/tests, so a pass is earned, not asserted.
The glyphs aidlc-state.md uses and aidlc-audit rolls up
These are the exact box characters aidlc-audit parses (x · - · ? · R · S · ) and the labels it prints. The roll-up counts each glyph — done=6 skipped=2 awaiting-approval=1 — sorted so the most-advanced states lead.
The fields a phased AI-DLC node declares
| Field | Values | Role |
|---|---|---|
| id | requirements · design · code-generation · build-test | Node identity; the edge target in depends_on. |
| phase | inception · construction · operations | Which lane. Gates routing (--construction-executor) reads it. |
| role | requirements-analysis · application-design · … | The AI-DLC stage the node performs. |
| depends_on | [requirements] | DAG edges; topo-sorted before the run. |
| review | true | A HITL gate. Activated by --hitl; pauses before downstream work. |
| gate | build-test | A deterministic gate. Re-runs the real build/tests; non-zero blocks. |
One stable default, one experimental pinned upstream dist
| Dimension | aidlc (stable · default) | aidlc-v2 (experimental) |
|---|---|---|
| Source | vendored in cadora/aidlc_rules/, v1.0.0 | pinned upstream dist, ref v2.1.7, commit-verified |
| Install | rules → CLAUDE.md/AGENTS.md + .aidlc-rule-details/ | copies dist/claude; writes .cadora-aidlc-v2.json |
| Provider pins | none — runs on your funding source | stripped by default, recorded; --keep-provider-pins opts in |
| Remote MCP | none | five servers, off unless --keep-mcp |
| Backends | claude · codex · kiro | claude only |
| Read-back | run archive · cadora report | cadora aidlc-audit (state + 68-event trail) |
The pin-strip is the protective move. Upstream's shipped .claude/settings.json silently re-points every session at metered AWS Bedrock on opus[1m] / effortLevel: xhigh. Cadora removes model, effortLevel, CLAUDE_CODE_USE_BEDROCK, AWS_REGION by default and records each one — the funding source stays the one you chose. Present v2 as EXPERIMENTAL, always: it is a GA preview with weekly churn.
Every reusable piece these screens are built from
| Component | Class | Where |
|---|---|---|
| Phase lane | .lane · .plabel · .pdot | The three-phase DAG; one lane per phase |
| DAG node | .hnode / .hnode.done / .hnode.wait | A node with role + checkpoint chip |
| Vertical DAG node | .node / .node.on / .node.wait | Run view; badges for phase + outcome |
| Checkpoint chip | .gchip.rev · .gchip.gate | review (amber) / gate: build-test (green) |
| Rules tree | .tree | What aidlc-init lays into the workspace |
| Review-gate card | .callout · .rhead · .flag · .acts | The HITL pause: approve / request / abort |
| Six-state checklist | .nsc / .chk | aidlc-state.md glyphs; audit roll-up |
| State outcome card | .vstate / .vstate.no | Gate passed / blocked |
| Two-pack columns | .col · .tag.stable · .tag.exp | aidlc vs aidlc-v2 |
The method is driven and gated, not claimed
| Do | Not |
|---|---|
| Name the phase — construction · code-generation | “Step 3” |
| Show the real node id from a topology | Invent a friendly label |
| Mark estimates — $0.55 est. | Imply a metered charge is exact |
| Label v2 EXPERIMENTAL; say what was stripped | “v2 — the new default” |
| Distinguish a review gate from a gate | Blur human review into the build gate |