Skip to content
AID v2.3.0 is out.See what's new →
Skills

aid-prototype

  • name — aid-prototype
  • description — Build a throwaway, low-fidelity model to test whether a direction actually works, before anyone commits to building it properly. Use this skill when a decision hinges on something you can only learn by trying it. The model is isolated and disposable — it lives in the work folder or an opt-in worktree and never touches production — and it is deliberately rough, so it gets a light verification rather than a polish grade. It resolves nothing: it reports whether the direction holds and what was learned, and you decide. For a kept design meant to inform the build rather than a throwaway, use /aid-design instead; the real build is a separate /aid-create step.
  • allowed-tools — Read, Glob, Grep, Bash, Write, Edit, Agent
  • argument-hint — <direction> — the direction/hypothesis to validate (optionally: fidelity paper|low-fi|runnable-spike)

Definition: canonical/skills/aid-prototype/SKILL.md

flowchart TB
  classDef aidNode color:#fff
  classDef aidEntry fill:#166534,stroke:#14532d,color:#fff
  classDef aidExit fill:#991b1b,stroke:#7f1d1d,color:#fff
  classDef aidDecision fill:#92400e,stroke:#78350f,color:#fff
  classDef aidLoopBack fill:#1e3a8a,stroke:#1e3a8a,color:#fff
  classDef aidStep fill:#1a2035,stroke:#d4a853,color:#f1f5f9
  n1(["INTAKE"])
  n2["BUILD"]
  n3["VERIFY<br/>LIGHT -- do not polish-grade a rough model"]
  n4{"PRESENT"}
  n5["HANDOFF<br/>optional; printed suggestions only"]
  n6(["DONE"])
  n1 --> n2
  n2 --> n3
  n3 -.-> n2
  n3 --> n4
  n4 -->|"optional"| n5
  n4 --> n6
  n5 --> n6
  class n1 aidEntry
  class n2 aidStep
  class n3 aidLoopBack
  class n4 aidDecision
  class n5 aidStep
  class n6 aidExit
  class n1 aidNode
  class n2 aidNode
  class n3 aidNode
  class n4 aidNode
  class n5 aidNode
  class n6 aidNode

Every node in the chart above, in chart order, with the exact canonical/ text it was derived from.

1 · INTAKE · entry

canonical/skills/aid-prototype/SKILL.md#L30-L52
## State: INTAKE
1. **Require a direction.** Empty argument -> ask one bootstrapping question ("What
direction do you want to validate, and what would tell you it works?") and wait.
2. **Capture (thin):** direction/hypothesis; fidelity (`paper` | `low-fi` | `runnable
spike`, default `low-fi`); the success signal that would validate it; the scope
boundary (what it does NOT attempt -- keeps it throwaway).
3. **Pick the path:** **Fast** -- a clear direction + success signal -> build now.
**Guided** -- vague ("prototype something for onboarding") -> scope direction / success
signal / fidelity first.
4. **Classify complexity (model + effort):** simple -> `aid-architect` at **sonnet /
medium**; complex (a runnable spike, a rich flow) -> **opus / high**.
5. **Consult the Work Initiation Gate, then allocate the work folder + STATE.** First run
the gate (`canonical/aid/templates/work-initiation-gate.md`):
`bash canonical/aid/scripts/works/enumerate-works.sh` (main tree + every git worktree).
Empty -> allocate, no prompt. Works exist -> ask new-vs-continuation; on **continuation**
route to the chosen work's resume door and STOP (allocate nothing); on **new work**:
create and enter the worktree per the gate's `§ 3a` step 2
(`worktree-lifecycle.sh create <work-id> <name>`, STOP on a non-zero exit or empty path,
else enter the resolved path), **then** allocate (`pipeline.path: lite`, `initiator:
aid-prototype`, `lifecycle: Running`, `active_skill: aid-prototype`; `phase` not
driven). For a **runnable spike**, associate an opt-in git worktree so the throwaway
code is isolated.

Source: canonical/skills/aid-prototype/SKILL.md#L30-L52 · full step: canonical/skills/aid-prototype/SKILL.md#L30-L54

2 · BUILD · step

canonical/skills/aid-prototype/SKILL.md#L58-L65
## State: BUILD
Dispatch **`aid-architect`** (clean context, tiered) to build the low-fidelity model of
the direction and capture the validation signal. A "runnable spike" is **throwaway code
written by this same `aid-architect` dispatch** -- deliberately NOT `aid-developer` (whose
job is production code), keeping the throwaway/non-production boundary crisp. All artifacts
stay in the work folder / opt-in worktree and **never touch production modules**. It writes
a validation assessment (see [Deliverable](#deliverable)) into the work folder.

Source: canonical/skills/aid-prototype/SKILL.md#L58-L65 · full step: canonical/skills/aid-prototype/SKILL.md#L58-L67

3 · VERIFY — LIGHT — do not polish-grade a rough model · loop-back

canonical/skills/aid-prototype/SKILL.md#L71-L78
## State: VERIFY (LIGHT -- do not polish-grade a rough model)
A prototype is *deliberately* low-fidelity, so this is a single light clean-context check
(not the full adversarial loop the other collapses run): dispatch **`aid-reviewer`** once to
confirm (a) the **"success signal observed" claim is honest and grounded** in what was
actually built, and (b) the **throwaway scope was respected** -- no production code snuck in,
nothing was committed to real modules. If the check fails, return to BUILD once to correct;
do not loop on polish.

Source: canonical/skills/aid-prototype/SKILL.md#L71-L78 · full step: canonical/skills/aid-prototype/SKILL.md#L71-L80

4 · PRESENT — hard stop — the user decides · decision

canonical/skills/aid-prototype/SKILL.md#L84-L88
## State: PRESENT (hard stop -- the user decides)
Set `lifecycle: Paused-Awaiting-Input`. Present the throwaway model + the validation
assessment: **Direction · What was built (fidelity) · Success signal — observed or not ·
What we learned · viable? (a conclusion, not a resolution).** Assert no resolution.

Source: canonical/skills/aid-prototype/SKILL.md#L84-L88 · full step: canonical/skills/aid-prototype/SKILL.md#L84-L90

5 · HANDOFF — optional; printed suggestions only · step

canonical/skills/aid-prototype/SKILL.md#L94-L98
## State: HANDOFF (optional; printed suggestions only)
Printed suggestions the user may act on: build the validated thing for real
(`/aid-create*`, or `/aid-design` first if a kept design is wanted), or test it with users
(`/aid-experiment` / `/aid-test`). Never auto-invoked; never a resolution.

Source: canonical/skills/aid-prototype/SKILL.md#L94-L98 · full step: canonical/skills/aid-prototype/SKILL.md#L94-L100

6 · DONE · exit · UNSPECIFIED

canonical/skills/aid-prototype/SKILL.md#L104-L108
## State: DONE
Set `lifecycle: Completed`, `updated` now, append a `## Lifecycle History` row. Keep the
throwaway artifacts + assessment in the work folder as the audit record; nothing is promoted
to production.

Source: canonical/skills/aid-prototype/SKILL.md#L104-L108 · full step: canonical/skills/aid-prototype/SKILL.md#L104-L108

Report an issue with this page →