$npx -y skills add bo-cao/breaking-coding-chaos --skill bcc-plan-sparBCC align+lock+review PLAN.md for one slice (no product code). Slash: /bcc-plan-spar · chat: bcc:plan-spar · "lock PLAN" · spar the plan. Args: rounds=N (auto-review cap), review=self|subagent|cli|auto|off. Grill until clear enough (no default Q&A quota). Hand off to bcc-clean-cu
| 1 | # bcc-plan-spar |
| 2 | |
| 3 | **Job:** solid coding contract for one slice — |
| 4 | |
| 5 | 1. **Human grill** (Q&A until **clear enough** — no default turn quota) → clear sub-plan intent |
| 6 | 2. **Lock** `PLAN.md` (+ `CONTEXT` / ADRs) |
| 7 | 3. **Auto review** (**`rounds`** = review budget, multi-backend) → live results → main agent **iterates PLAN** |
| 8 | 4. **Human final gate** → APPROVE / amend / stop |
| 9 | 5. Hand off to **`bcc-clean-cut`** (implement — not this skill) |
| 10 | |
| 11 | **Deep source:** `grill-with-docs` Act 1 (grill + domain) + Act 2 (bounded review, CLI fallback). |
| 12 | **Formats:** [CONTEXT-FORMAT.md](./CONTEXT-FORMAT.md), [ADR-FORMAT.md](./ADR-FORMAT.md), [PLAN-FORMAT.md](./PLAN-FORMAT.md). |
| 13 | |
| 14 | --- |
| 15 | |
| 16 | ## Workflow preflight (required — before Phase 0/1) |
| 17 | |
| 18 | **Do not** start grilling or rewriting `PLAN.md` until this check runs. |
| 19 | If anything is ambiguous → **ask the user one clear question** (with a recommended answer). Do not invent workflow state. |
| 20 | |
| 21 | ### 1. Snapshot disk (read if present) |
| 22 | |
| 23 | | Path | Ask | |
| 24 | |------|-----| |
| 25 | | `plans.md` / `progress.md` / `findings.md` | Is there a **global** endeavor map? Where are we? | |
| 26 | | `PLAN.md` | Is there an **active coding brief**? Draft or locked? Which slice? | |
| 27 | | `CONTEXT.md` / `docs/adr/*` | Domain language already started? | |
| 28 | | `.bcc/session.json` | Active slice / prior approve (see [SESSION.md](../bcc-breaking-coding-chaos/references/SESSION.md)) | |
| 29 | | Chat this session | Did user already APPROVE implement / skip align? | |
| 30 | |
| 31 | Echo a one-line status, e.g.: |
| 32 | |
| 33 | `preflight · throughline=yes|no · PLAN=missing|draft|locked|stale? · slice=? · session=… · recommend=grill|reuse-PLAN|hand-off-clean-cut|ask-user` |
| 34 | |
| 35 | ### 2. Hard rule: **throughline before plan-spar** |
| 36 | |
| 37 | | Check | Required | |
| 38 | |-------|----------| |
| 39 | | `plans.md` exists with a non-empty **Goal** (and preferably a hardpoint map) | **Yes** | |
| 40 | |
| 41 | If missing or empty: |
| 42 | |
| 43 | 1. **Do not** start Phase 1 grill for a multi-step endeavor. |
| 44 | 2. Tell user: *“bcc-plan-spar runs only after throughline. Run `/bcc-throughline` first (or Mode A `/bcc-breaking-coding-chaos`).”* |
| 45 | 3. Offer to load **bcc-throughline** now. |
| 46 | |
| 47 | Exception: user explicitly says **one-off micro task** and refuses a cockpit — then ask once to confirm; if they insist, proceed but still create a minimal `plans.md` Goal line when possible (preferred) rather than silent skip. |
| 48 | |
| 49 | ### 3. Is **bcc-plan-spar** the right skill right now? |
| 50 | |
| 51 | | Situation | Suitable? | Do this | |
| 52 | |-----------|-----------|---------| |
| 53 | | No usable throughline (`plans.md`) | **No** | **bcc-throughline** first (hard rule above) | |
| 54 | | User wants **status / reprioritize only** | **No** | **`bcc-throughline`** or main skill status | |
| 55 | | User wants **code now** and PLAN locked + APPROVED | **No** | **`bcc-clean-cut`** | |
| 56 | | User wants **code now** but PLAN missing / draft | **Yes** | Align/lock here (after throughline OK) | |
| 57 | | User names a hardpoint on the map | **Yes** | Proceed; **update single root `PLAN.md` in place** for that work | |
| 58 | | Existing `PLAN.md` is for previous work | **Yes** | **Overwrite/refresh** `PLAN.md` for the new hardpoint (global history stays in throughline trio — not in PLAN) | |
| 59 | | Trivial one-liner / pure discussion | **Usually no** | Skip or ask | |
| 60 | |
| 61 | **No formal state machine.** Infer from docs + chat; **suggest** next step if wrong skill. |
| 62 | |
| 63 | ### 4. Ask the user when uncertain |
| 64 | |
| 65 | One question + recommended default: |
| 66 | |
| 67 | 1. Throughline missing — create now? |
| 68 | 2. Which hardpoint on the map? |
| 69 | 3. Refresh `PLAN.md` for this hardpoint (yes)? |
| 70 | 4. Align vs code (plan-spar vs clean-cut)? |
| 71 | |
| 72 | ### 5. After preflight OK → Phase 0 |
| 73 | |
| 74 | Only then: scope hardpoint, then Phase 1 grill / lock. |
| 75 | |
| 76 | --- |
| 77 | |
| 78 | ## Tunables |
| 79 | |
| 80 | Parse from invocation (e.g. `/bcc-plan-spar auth rounds=3 review=auto`): |
| 81 | |
| 82 | | Arg | Default | Meaning | |
| 83 | |-----|---------|---------| |
| 84 | | **`rounds`** / `MAX_REVIEW_ROUNDS` | `3` | **Only budgeted loop:** auto-**review** rounds after PLAN is locked. Set at spar start. `0` = skip auto review (human gate still required). | |
| 85 | | `review` | `auto` when `rounds>0`, else `off` | Review backend (see below) | |
| 86 | | `PLAN_FILE` | `PLAN.md` | Coding brief path | |
| 87 | | `LOG_FILE` | `PLAN-REVIEW-LOG.md` | Append-only live review transcript | |
| 88 | |
| 89 | **Not a tunable by default:** Phase 1 human Q&A has **no default turn quota**. Grill until the agent judges **clear enough** (or the human locks / stops). |
| 90 | Optional override only if the user explicitly passes `grill_rounds=N` / `MAX_GRILL_ROUNDS=N` — treat as a soft safety ceiling, not a target to fill. Do **not** invent or announce a default grill cap. |
| 91 | |
| 92 | ### `review` modes (s |