<!-- AUTO-GENERATED by task packs:render -- DO NOT EDIT MANUALLY -->
<!-- Purpose: rendered strategy -->
<!-- Source of truth: packs/strategies/strategies-pack-0.1.json -->
<!-- Regenerate with: task packs:render -->
<!-- Edit the source, not this file. Slice instead of loading every strategy: task packs:slice strategies by-trigger --trigger <kw> (or list) -->

# Rapid Strategy

Quick prototyping workflow -- v0.20 date-prefixed story vBRIEF output with minimal gates and fast iteration.

**Ceremony dial (#3214):** when `plan.policy.ceremonyDial` (or session inputs) selects depth `rapid` — default for S-task × frontier model on a project-shaped session — session ritual / gate depth follows this light path. See `task policy:show --field=ceremonyDial`. Non-project sessions select `minimal` and compose the #3014 minimal AGENTS profile research pointer instead.

**v0.20 note (s5-migrate-speckit-rapid-enterprise / #1166):** Rapid now emits only the canonical v0.20 shape (date-prefixed story vBRIEFs in proposed/, full PROJECT-DEFINITION.xbrief.json via task project:render, seeded lifecycle folders, no legacy specification.vbrief.json). See the dedicated ## v0.20 Output Shape section and the canonical contract `strategies/v0-20-contract.md` (s1-contract of #1166).

Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.

**⚠️ See also**: [strategies/interview.md](./interview.md) | [strategies/yolo.md](./yolo.md) | [strategies/README.md](./README.md) | [strategies/v0-20-contract.md](./v0-20-contract.md) | [artifact-guards.md](./artifact-guards.md)

> Ship a throwaway prototype fast. Skip the PRD, skip approval gates, produce a
> date-prefixed vBRIEF in proposed/ + PROJECT-DEFINITION and start building. Suited for spikes, proof-of-concepts, and
> disposable experiments where learning speed matters more than long-term quality.

---

## When to Use

- ~ Throwaway prototypes, spikes, and proof-of-concept experiments
- ~ Validating a technical approach before committing to a full spec cycle
- ~ Solo explorations where the cost of rework is low
- ? Time-boxed experiments (e.g. "spend 2 hours proving this works")
- ⊗ Production features, shared libraries, or anything with downstream consumers

---

## Workflow

### Step 1: State the Goal

! Describe the prototype goal in one sentence: what are you trying to learn or prove?

- ! Record the goal in a new date-prefixed story vBRIEF written to `xbrief/proposed/YYYY-MM-DD-<kebab-slug>.xbrief.json` (e.g. as the plan title or a brief narrative in the v0.6 schema). Use today's date for the prefix and a descriptive slug.
- ~ Include a time-box if applicable (e.g. "4-hour spike")
- ⊗ Skip this step -- even throwaway work needs a clear objective

### Step 2: Minimal Interview

! Ask only the questions needed to unblock implementation. Skip sizing gate, skip PRD.

- ! Identify: target platform, primary language, key dependency or API
- ~ 3-5 questions maximum -- bias toward defaults and moving fast
- ⊗ Run the full interview questionnaire -- that defeats the purpose of rapid

### Step 3: Generate date-prefixed vBRIEF in proposed/ (Forced-Light Path)

! Before writing output artifacts, follow the guards in [artifact-guards.md](./artifact-guards.md) (Preparatory Guard for proposed/ scope items; Spec-Generating Guard for PROJECT-DEFINITION).

! Write a slim story scope vBRIEF to `xbrief/proposed/YYYY-MM-DD-<kebab-slug>.xbrief.json` -- no PRD, no approval gate. Decompose the rapid plan into one or more focused, buildable story vBRIEFs (v0.6 schema) rather than a monolithic legacy spec.

- ! Use the Light path from [interview.md](./interview.md) unconditionally
- ! Mark `plan.status` as `draft` (not `approved`) to signal prototype quality
- ! After the proposed/ vBRIEF(s) are written, invoke `task project:render` (from repo root) to generate/refresh the complete `xbrief/PROJECT-DEFINITION.xbrief.json`
- ~ Keep tasks coarse-grained -- 3-5 tasks is typical for a spike
- ⊗ Generate a PRD or require approval -- rapid skips both
- ⊗ Hand-author `SPECIFICATION.md` directly -- it is a rendered derivative only (see v0.20 Output Shape)

! After emitting the proposed/ story vBRIEF(s), surface the GitHub-issue tracking hint from [emit-hints.md](./emit-hints.md) — name all three patterns (none / `--umbrella` / `--per-vbrief`).

### Step 4: Build

! Implement against the spec. Quality gates are relaxed but not absent.

- ! Tests are still required, but coverage gate is relaxed to ≥50%
- ~ Favour working code over clean code -- refactor later if the prototype graduates
- ! `task check` must still pass (lint + fmt + tests)
- ⊗ Skip `task check` entirely -- even prototypes must compile and pass basic checks

### Step 5: Evaluate

! At the end of the time-box (or when the prototype is done), decide next steps.

- ! Record findings: what worked, what didn't, what surprised you
- ~ Options: discard, iterate, or graduate to a full spec cycle via [interview.md](./interview.md)
- ! If graduating: start a fresh interview -- do not carry forward the rapid spec as-is

---

## Output Artifacts

- `xbrief/proposed/YYYY-MM-DD-*.xbrief.json` (one or more) -- lightweight story scope vBRIEF(s) with `draft` status (primary artifact; date-prefixed per v0.20 contract)
- `xbrief/PROJECT-DEFINITION.xbrief.json` -- complete project gestalt + items registry (via `task project:render` invoked by Rapid)
- `xbrief/{proposed,pending,active,completed,cancelled}/` -- all five lifecycle folders seeded
- (optional derivative) `SPECIFICATION.md` -- read-only human-readable export (includes deprecated-redirect sentinel; via `task spec:render` if invoked)
- Prototype code (may be discarded)
- Findings summary (inline in the proposed/ vBRIEF or as a separate note)

---

## Fits into Chaining Gate

Rapid is a **spec-generating** strategy. Selecting it at the chaining gate produces date-prefixed story vBRIEF(s) in `xbrief/proposed/` (and refreshes `xbrief/PROJECT-DEFINITION.xbrief.json` via `task project:render`) and moves directly to implementation. There is no chaining back to preparatory strategies. See the v0.20 Output Shape section below for the exact contract.

---

## Product-first done-gate / literal AC (#3284 / #3267)

Rapid lightens cold ceremony only. The **positive verification content** of the light path is stated acceptance commands — not framework hygiene.

- ! Capture stated shell commands at intake into `plan.acceptance.commands` (and #3267 `literal_acceptance_commands`) — do not paraphrase. Empty requires `none_stated: true` with a ladder rung (`derived` or `project_floor`).
- ! Before done, run `task verify:ac -- <active-story-path>` (verbatim flags/cwd). Fail closed on non-zero. (`verify:literal-ac` remains the #3267 mechanism alias.)
- ! Ceremony dial rapid/minimal = **AC-only** verification for `task check` composition (#3284): hygiene degrades away; AC never degrades when commands exist.
- ⊗ Treat self-chosen approximate checks as sufficient when the statement named exact commands.
- ⊗ Skip AC because ceremony is rapid — rapid's job is to keep exactly this check.

## Anti-Patterns

- ⊗ Using rapid for production features -- rapid output is explicitly throwaway
- ⊗ Graduating a rapid prototype without a fresh spec cycle -- the shortcuts compound
- ⊗ Running the full interview or PRD path -- that's interview strategy, not rapid
- ⊗ Skipping `task check` -- even prototypes must pass basic quality checks
- ⊗ Omitting the goal statement -- undirected spikes waste time
- ⊗ Emitting the legacy singular specification artifact or bare-named vBRIEFs -- violates the v0.20 contract (see strategies/v0-20-contract.md)

---

## v0.20 Output Shape (s5-migrate-speckit-rapid-enterprise / #1166)

This strategy has been migrated to the full v0.20 output shape so rapid-generated projects are accepted by the build skill Pre-Cutover Detection Guard with zero errors on first attempt (resolves the rapid row from the #1166 inconsistency table and the s5 story acceptance criteria).

- ! Seed the five lifecycle folders under `xbrief/` if any are missing: `proposed/`, `pending/`, `active/`, `completed/`, `cancelled/`.
- ! Emit story scope items exclusively as date-prefixed scope vBRIEFs: `xbrief/proposed/YYYY-MM-DD-<kebab-slug>.xbrief.json` (use the run's creation date for the prefix; choose descriptive slugs). Decompose the rapid plan into one or more focused, buildable story vBRIEFs (v0.6 schema) rather than a monolithic legacy spec.
- ! After the proposed/ stories are written, invoke `task project:render` (run from the repo root) to generate/refresh the complete `xbrief/PROJECT-DEFINITION.xbrief.json` (items registry is derived from the lifecycle folders).
- ⊗ Never emit `vbrief/specification.vbrief.json` (or any legacy dual-write).
- ~ `SPECIFICATION.md` at the project root, if produced at all, must be only a read-only derivative (e.g. via `task spec:render` after the vbriefs exist) that includes the v0.20 deprecated-redirect sentinel. The source of truth is the xbrief/ lifecycle stories + PROJECT-DEFINITION.
- ! Before writing any proposed/ stories or PROJECT-DEFINITION, follow the guards in [artifact-guards.md](./artifact-guards.md) (Preparatory Guard for scope items in proposed/; Spec-Generating Guard for PROJECT-DEFINITION).
- ! Final output tree must pass the deterministic v0.20 strategy output validation gate (s2-deterministic-gate) and the build Pre-Cutover Detection Guard with zero warnings/errors. See full acceptance in the s5 vBRIEF and the 1166 decomposition.
- ! Cite the canonical contract `strategies/v0-20-contract.md` (s1-contract) for the exact shape and the per-strategy table row.

---

## Artifacts Summary (v0.20)

**Rapid (Forced-Light path):**

| Artifact | Purpose | Created By |
|----------|---------|------------|
| `xbrief/proposed/YYYY-MM-DD-*.xbrief.json` (one or more) | Focused story scope items (date-prefixed per vbrief convention and v0.20 contract) | Rapid |
| `xbrief/PROJECT-DEFINITION.xbrief.json` | Project identity gestalt + complete scope items registry | `task project:render` (invoked by Rapid) |
| `xbrief/{proposed,pending,active,completed,cancelled}/` | All five lifecycle folders seeded | Rapid |
| (optional derivative) `SPECIFICATION.md` | Human-readable plan (includes deprecated-redirect sentinel) | `task spec:render` (if invoked) |

**Pre-v0.20 / legacy artifacts that MUST NOT be produced by this strategy:**

- `vbrief/specification.vbrief.json`
- Primary handoff `SPECIFICATION.md` at project root (without sentinel)
- Bare-named vBRIEFs in proposed/

See the full table and rules in `strategies/v0-20-contract.md` (rapid row: Must Create Lifecycle Folders: Yes; Must Write PROJECT-DEFINITION: Yes; Scope vBRIEFs Location: proposed/YYYY-MM-DD-*.xbrief.json only; specification.vbrief.json: Never; SPECIFICATION.md / PROJECT.md: Omit or deprecation redirect only).

---

## Invoking This Strategy

```
 /deft:run:rapid [project name]
```

Or explicitly:
