unit-lane · v1.0.0 · 2026-09-22 · sha256 da6855ba0923e67a
unit-lane v1.0.0A
Immutable. This exact content is served forever at /api/v1/blob/da6855ba0923e67a.
--- name: unit-lane user-invocable: true version: 1.0.0 argument-hint: <NN-slug | "<idea>"> [--retriage] description: > One-shot lane conductor for a delivery unit: triage, implement, evidence, and close in a single document. Triggers: "unit-lane", "run the lane", "work on this feature/fix", "build this unit". --- # Unit Lane — Adaptive Conductor One document, adaptive steps. The lane reads a closed catalog, triages which steps a unit needs, executes them in order, and commits at each gate. Replaces: design-feature, plan-feature, review-spec, review-plan. ## Turn contract Tick every box before ending the turn; an unchecked box means the turn is not done: ``` ✓ Triage ran (bun scripts/unit-route.mjs --triage <slug>) and its block pasted verbatim into the unit doc's Evidence section as the authoritative step list ✓ Unit doc exists at docs/features/<NN>-<slug>/SPEC.md (created from template if new, with all mandatory sections filled or n/a) ✓ Guard ran (bun scripts/diff-guard.mjs --base <ref>) after each implement step; on BREACH: re-triage or record exception, never shrink the diff ✓ Unit doc's Evidence rows updated (command → exit/digest → output → verified-by) and Progress log updated (dated entry) before every commit ✓ → Next: block printed as the absolute last output ``` ## When to use - A known unit slug: `unit-lane <NN-slug>` - A raw idea (no slug yet): `unit-lane "<idea description>"` - Force re-triage: `unit-lane <NN-slug> --retriage` ## Step 0 — Discover the project Per the agent guide's **Workflow conventions** + **documentation map**, then read `docs/features/_TEMPLATE/SPEC.md` (the unit doc template). If the unit folder exists, read its current `SPEC.md` to avoid overwriting. ## Process ### 1. Resolve or create the unit doc If the idea has no slug, assign the next number from `docs/features/ROADMAP.md` and create `docs/features/<NN>-<slug>/SPEC.md` from the template. Fill objective, why, user outcome, and non-goals from the invocation. Acceptance criteria are induced from user scenarios — **ask-don't-infer**; if the request is too vague, STOP and ask the user with concrete options. See [the unit doc template](references/STEPS.md) for section order. ### 2. Triage — read the catalog, never re-derive Run `bun scripts/unit-route.mjs --triage <slug>` (or `<NN>` for numeric). PASTE its stdout block **verbatim** into the unit doc's Evidence section header under a `## Triaged steps` heading. This block is authoritative. The model never re-derives, reorders, or invents steps — it executes only what the catalog says. ### 3. Execute triaged steps in order For each step the triage returned, follow its reference file. Execute **one step per turn-commit**: 1. Read the step's reference — for example: [research](references/RESEARCH.md), [design](references/DESIGN.md), [plan](references/PLAN.md), [implement](references/IMPLEMENT.md), [tests](references/TESTS.md), [evidence](references/EVIDENCE.md), [review](references/REVIEW.md), [docs](references/DOCS.md), [release](references/RELEASE.md) — only the ones the triage demands). 2. Perform the step's checklist items. 3. Write/update evidence in the unit doc. 4. Update the Progress log with a dated entry. 5. Commit with a conventional commit message. 6. For implement steps, run the diff guard (step 4 below). ### 4. Diff-size guard (after each implement step) Run `bun scripts/diff-guard.mjs --base <last-reviewed-ref> --unit <NN>`. Paste the output verbatim. On **BREACH**: stop, re-triage the unit, or record an exception. **Anti-gaming: NEVER shrink a diff by deleting comments, blank lines, docs or tests.** If the unit cannot fit the budget, record the exception and stop. ### 5. Update evidence and progress Before every commit: - **Evidence rows**: One row per AC satisfied — `| AC | command | exit/digest | output (≤2 lines) | verified-by |` - **Progress log**: `YYYY-MM-DD HH:MM — <what was done> → <commit sha> — next: <what is next>` ### 6. Close the unit When all triaged steps are done, run the review pack axis summary, update the unit doc's status, and print the closing block. ## Guardrails **Allowed:** - Only the triaged steps listed by the catalog - Changes scoped to the acceptance criteria - Documentation updates in docs/ and template/ - Conventional commit messages per the project's Workflow conventions **Forbidden:** - Never expand scope beyond what Non-goals define — findings discovered during implementation never widen the unit - Never invent an acceptance criterion — ask the user with concrete options - Never skip a triaged step silently — every step the catalog demands must run - Findings never authorize scope growth — record them, route to their owner - Never commit red (test failure) — fix or replan, never silence tests - Never alter a triaged step's order ## Relationship to other skills `unit-lane` absorbs the fixed-pipeline skills (design-feature, plan-feature, review-spec, review-plan) into catalog steps. The review pack axes (`review-implementation`, `review-code`, `review-security`, `review-perf`, `review-a11y`, `review-debt`) compose the review step; `triage-issue` feeds issues into the lane; `workflow-status` computes the next lane invocation. `init-workspace` seeds the unit doc template and catalog conventions into target projects. ## Portability (agents other than Claude Code) - **No slash menu** — open this `SKILL.md` and follow it literally in a fresh conversation. Where it says `run`, execute the shell command directly. - **No model tiers** — triage and review use the strongest model; execution steps may use cheaper. Never review with a weaker model than the author. - **No `/loop`/subagents** — re-invoke manually and follow the closing `→ Next:` block at each step boundary. ## Done when - Every triaged step is executed and committed. - The unit doc's Evidence rows, Progress log, and References section are current. - The diff guard passed for all implement steps. - The review step is complete (or skipped per catalog). - **The closing `→ Next:` block is printed.** ## Closing recommendation ``` → Next: /unit-lane <NN-slug> — continue to the next triaged step · all steps done → /review-change (review the accumulated diff) · re-triage needed → /unit-lane <NN-slug> --retriage · finished and merge-ready → /audit-pr (merge gate) ```