---
name: start
description: "First-Run Proof Path - one command that scans your UI code and returns one concrete first fix. Leaf command, no STATE.md writes, no pipeline entry. Writes .design/START-REPORT.md and exits."
argument-hint: "[--budget <fast|balanced|thorough>] [--skip-interview] [--dismiss-nudge]"
tools: Read, Grep, Glob, Bash, Write, Task
disable-model-invocation: true
---

# Get Design Done - {{command_prefix}}start

**Role:** the canonical 0→1 proof path. A new user runs `{{command_prefix}}start`, answers five short questions, and receives `.design/START-REPORT.md` with three concrete findings in the user's own code, one `best_first_proof` selected by a deterministic rubric, and a single next command to run.

**Non-goals:** do NOT write/mutate `.design/STATE.md`, enter the pipeline state machine, modify source code, auto-install MCPs or run `{{command_prefix}}connections`, or capture before/after screenshots (that belongs to the full pipeline).

---

## When to use

- First time opening a repo with the get-design-done plugin installed.
- The user wants a single proof-of-value pass without committing to the pipeline.

## When NOT to use

- `.design/STATE.md` already exists - route to `{{command_prefix}}progress` instead.
- User asked for a full audit - route to `{{command_prefix}}scan`.
- User asked to fix a specific file - route to `{{command_prefix}}fast`.

---

## Arguments

| Flag | Effect |
|------|--------|
| `--budget fast` | 90-second wall-clock cap on the findings scan. Skips thorough detectors. |
| `--budget balanced` *(default)* | 3-minute wall-clock cap. All detectors, bounded file walk. |
| `--budget thorough` | 5-minute wall-clock cap. Used only when the user opts in. |
| `--skip-interview` | Skip the 5-question interview; use sane defaults (pain=unspecified, area=detected, budget=balanced, framework=detected, figma=skip). |
| `--dismiss-nudge` | Touch `~/.claude/gdd-nudge-dismissed` and exit. Does not run the scan. |

---

## Workflow

Six steps, all documented in `./start-procedure.md`. Companion file `./reference/start-interview.md` holds the 5-question copy + defaults + validation.

| Step | What it does | Where to look |
|------|--------------|---------------|
| 0 | Dismiss-only shortcut (if `--dismiss-nudge`) | `start-procedure.md#step-0-dismiss-only-shortcut` |
| 1 | Detect UI root via `scripts/lib/detect-ui-root.cjs` (early-exit on backend-only or `kind: null`) | `start-procedure.md#step-1-detect-ui-root` |
| 2 | Run 5-question interview (or use `--skip-interview` defaults); write `.design/.start-context.json` (NOT STATE.md) | `start-procedure.md#step-2-run-the-5-question-interview` + `start-interview.md` |
| 3 | Invoke `scripts/lib/start-findings-engine.cjs` → up to 3 findings (`F1`..`F3`) + `bestFirstProofId` | `start-procedure.md#step-3-scan-findings` |
| 4 | Spawn `design-start-writer` Task → emit `.design/START-REPORT.md` (7 H2 sections + JSON block, no STATE.md write) | `start-procedure.md#step-4-spawn-the-writer` |
| 5 | Print one-line handoff with suggested command (fallback: `{{command_prefix}}brief` if `bestFirstProofId` is null); emit `## START COMPLETE` | `start-procedure.md#step-5-print-the-handoff` |

Failure handling: every error path exits with `## START COMPLETE` plus a one-line pointer. Do not half-write files - if the writer fails, keep `.design/.start-context.json` and tell the user they can rerun. Do not delete `.design/` unless it was empty before the run.

---

## Do Not

- Do not write or mutate `.design/STATE.md`.
- Do not modify source code.
- Do not auto-install MCPs or write to `.design/config.json`.
- Do not take more than the budgeted wall-clock - let the engine truncate findings rather than hang.
- Do not invent findings - the findings engine output is the sole source of truth.

## START COMPLETE
