Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the user is exploring a design idea, weighing approaches, has an ambiguous request, or says "should I", "how should we", "what's the best way to". Asks structured questions, proposes 2–3 approaches, walks the design section-by-section. On approval, **auto-chains into `/hyperflow:scope`** — no manual gate.
.claude/skills/ccplugins-spec/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | 86% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 278% | 0% |
| case-07 | ✓→✗ | ▼ Worse | -17% | 0% |
This phase is thinking, not building. No code until the user approves the design. On approval, the chain advances to scope → dispatch. The user picks the advancement mode at Step 0.
This skill drives Layer 0.5 (Task Triage) and Layer 4 (Brainstorming/Spec) from the doctrine. Multi-level review (L1–L5) runs later during /hyperflow:dispatch per the triage's chosen flow profile.
Every substantive step dispatches at least one Agent. The orchestrator never does "real" work inline — it only coordinates dispatches and prints status.
| Step | Worker tier | Thinking tier | Notes | |---|---|---|---| | 0 — Chain mode | — | — | AskUserQuestion only (exempt) | | 1 — Triage | — | Classifier (Opus) | Pure thinking work | | 2 — Context | Searcher (Sonnet) | Reviewer (Opus) verifies coverage | Both tiers per step | | 3 — Multi-dim analysis | — | Analyst (Opus) produces 6-dim brief | Pure thinking | | 4 — Smart questions | — | — | AskUserQuestion only (exempt) | | 5 — Requirement synthesis | Writer (Sonnet) drafts | Reviewer (Opus) verifies fidelity | Both tiers | | 6 — Propose approaches | Writer (Sonnet) drafts 2–3 | Reviewer (Opus) probes for missing alternatives | Both tiers | | 7 — Design sections | Writer (Sonnet) drafts each section | Reviewer (Opus) checks each section before user sees it | Both tiers · per section | | 8 — Spec output | Writer (Sonnet) writes file | Reviewer (Opus) final spec sanity check | Both tiers | | 9 — Hand off | — | — | Skill tool invocation (exempt) |
Substantive steps = 1, 2, 3, 5, 6, 7, 8. Each appears in the usage summary.
| Gate | When | Format | |---|---|---| | Chain mode | Step 0, once per chain | AskUserQuestion — auto / manual | | Design section approval | Step 7, after each of 5 design sections | AskUserQuestion — approve / revise | | Phase advance (if manual mode) | Step 9, before invoking scope | AskUserQuestion — continue / stop |
This is a structural gate per DOCTRINE rule 8. It MUST fire every time the skill is invoked directly. "No clarifying questions" / "auto-pilot" / "always-on" / any other autonomy directive does NOT skip it. The agent MUST AskUserQuestion here — defaulting to auto without asking is a doctrine violation.
If invoked with a chain-mode=<auto|manual> arg (from a prior skill in the chain), skip this step — the previous chain-starter already asked.
Otherwise, before any research, triage, or analysis, ask via AskUserQuestion. Per DOCTRINE rule 8, the recommended option goes first with (Recommended):
How should I advance through the chain after each phase?
Auto (Recommended) — chain forward through spec → scope → dispatch with no gates.
Fewer interruptions, faster end-to-end.
Manual — pause between phases and ask before advancing.
More control, more confirmations.Auto is the recommended default because most users invoking a chain-starter want momentum; Manual exists for high-risk or exploratory work. Wait for the user's answer. Do not proceed without it. Save the chosen mode and propagate via args: "chain-mode=<mode>".
If the agent cannot present AskUserQuestion (e.g., headless mode), it should print an error and stop — never silently default.
Agents — Classifier (Opus, thinking-tier).
Dispatch a thinking-tier triage call per task-triage.md. The Classifier produces { types[], complexity, risk, scope, ambiguity, flow, personas[] } JSON. The classification drives:
ambiguity 0.0–0.5 → light: 2 questions0.5–0.8 → standard: 3 questions0.8–1.0 → deep: 4–5 questionsdispatch phase — fast, standard, deep, research, creative, or scientific (see flow-profiles.md)Persist the triage output and propagate it forward through chain-mode=<mode> triage=<base64-json> args. Print:
**Classifier** — triaging request
Triage — types: [<types>] · flow: <profile> · ambiguity: <score>Agents — Searcher (Sonnet) ⇒ Reviewer (Opus).
Searcher — mapping context relevant to <idea> (worker). Find existing code, patterns, similar features. Do not ask the user what you can find in the code.**Reviewer** — verifying context coverage (thinking-tier). Confirm the Searcher hit the relevant subsystems; if gaps remain, redispatch the Searcher with the missing scope before moving on.Agents — Analyst (Opus, thinking-tier).
Dispatch **Analyst** — 6-dimension exploration with the request + context from Step 2. The Analyst produces a brief covering:
The Analyst flags which dimensions have unknowns the user must resolve. Those unknowns become the Step 4 question set.
AskUserQuestion — MANDATORY · floor 2)Use the AskUserQuestion tool. Never plain text questions. Ask about unknowns from step 3.
Hard floor: every spec run asks at least 2 questions, regardless of how confident the triage was. The two minimum questions give the user a structural place to redirect before any decomposition runs. Question budget:
Never stack more than 2 questions per AskUserQuestion call.
Every option list MUST mark a recommended choice (DOCTRINE rule 8). The Analyst's leading hypothesis from Step 3 goes first with (Recommended); alternatives follow. The user can pick anything — the marker is guidance, not a default.
Question categories (in order — pick the first N for depth N):
If the request feels "completely clear" — ask anyway. The first two questions exist so the user can spot a misalignment the agent missed.
Example structure (DON'T omit the recommendation marker):
? Where should auth state live?
Server sessions (Recommended) — revocable, refreshable, fits this project's DB conventions
JWT stateless — simpler, no DB, harder to revokeAgents — Writer (Sonnet) ⇒ Reviewer (Opus).
Writer — drafting requirement synthesis with the user's answers from Step 4. The Writer produces a one-paragraph restatement: "So the goal is X, with constraints Y, excluding Z."**Reviewer** — verifying requirement fidelity to confirm the synthesis matches what the user actually said (catches paraphrase drift).AskUserQuestion before moving on.Agents — Writer (Sonnet) ⇒ Reviewer (Opus).
Writer — drafting 2–3 approaches with the synthesized requirements. The Writer produces, for each approach:**Reviewer** — probing for missing alternatives to challenge whether the proposed set covers the design space (catches anchor bias). If gaps surface, redispatch the Writer with the gap.AskUserQuestion.Agents per section — Writer (Sonnet) ⇒ Reviewer (Opus) ⇒ user approval.
For each of the 5 sections below:
Writer — drafting section: <name> with the chosen approach + prior approved sections.**Reviewer** — reviewing section: <name> (Opus thinking-tier) to validate coherence, surface unstated assumptions, and check against the multi-dim analysis from Step 3.AskUserQuestion: approve / revise.Sections (always in this order):
Agents — Writer (Sonnet) ⇒ Reviewer (Opus).
Writer — writing spec to .hyperflow/specs/<slug>.md for non-trivial features (3+ files / multiple subsystems). For simpler designs, the Writer composes an inline summary instead.**Reviewer** — final spec sanity check to verify every approved section is captured and no contradiction exists between sections./hyperflow:scopeOnce the design is approved:
If chain-mode=auto — immediately invoke Skill with skill: scope and args: "chain-mode=auto <spec-ref>". Print:
Spec complete — design approved
Auto-chaining to /hyperflow:scope…If chain-mode=manual — ask via AskUserQuestion: "Spec done. Continue to /hyperflow:scope?" → yes / no / stop. On yes, invoke Skill with skill: scope and args: "chain-mode=manual <spec-ref>". Print:
Spec complete — design approved
Awaiting your go-ahead for /hyperflow:scope…In both modes, the scope skill decomposes the design into worker batches; dispatch then picks up the task file (respecting the same chain mode).
AskUserQuestion callchain-mode=auto — that was already answered at Step 0After design approval:
.hyperflow/memory/decisions.md with tags.hyperflow/memory/pitfalls.md| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 13,896 | 10,356 | -25% | 1 | 1 | 0% | 2,261 | 3,572 | +58% | 0 | 0 | — |
case-02 | fail→fail | 35,603 | 10,445 | -71% | 1 | 1 | 0% | 5,957 | 3,609 | -39% | 0 | 0 | — |
case-03 | fail→fail | 15,257 | 8,734 | -43% | 1 | 1 | 0% | 2,143 | 3,621 | +69% | 0 | 0 | — |
case-04 | fail→fail | 11,305 | 9,838 | -13% | 1 | 1 | 0% | 1,788 | 3,484 | +95% | 0 | 0 | — |
case-05 | pass→pass | 50,421 | 8,535 | -83% | 1 | 1 | 0% | 8,090 | 3,504 | -57% | 0 | 0 | — |
case-06 | fail→fail | 23,615 | 12,791 | -46% | 1 | 1 | 0% | 3,635 | 4,293 | +18% | 0 | 0 | — |
case-07 | pass→fail | 34,726 | 10,332 | -70% | 1 | 1 | 0% | 5,689 | 4,743 | -17% | 0 | 0 | — |
case-08 | fail→fail | 27,080 | 9,089 | -66% | 1 | 1 | 0% | 1,635 | 3,521 | +115% | 0 | 0 | — |
case-09 | fail→fail | 39,688 | 4,622 | -88% | 1 | 1 | 0% | 7,302 | 3,499 | -52% | 0 | 0 | — |
case-10 | fail→fail | 9,832 | 4,184 | -57% | 1 | 1 | 0% | 1,516 | 3,679 | +143% | 0 | 0 | — |
case-11 | fail→fail | 21,024 | 11,211 | -47% | 1 | 1 | 0% | 3,135 | 3,831 | +22% | 0 | 0 | — |
case-12 | pass→fail | 19,334 | 14,160 | -27% | 1 | 1 | 0% | 3,097 | 3,953 | +28% | 0 | 0 | — |
case-13 | fail→fail | 17,188 | 11,518 | -33% | 1 | 1 | 0% | 2,670 | 4,768 | +79% | 0 | 0 | — |
case-14 | fail→fail | 19,609 | 13,854 | -29% | 1 | 1 | 0% | 3,112 | 3,397 | +9% | 0 | 0 | — |
case-15 | fail→pass | 15,426 | 6,629 | -57% | 1 | 1 | 0% | 2,277 | 4,231 | +86% | 0 | 0 | — |
case-16 | fail→pass | 12,718 | 11,000 | -14% | 1 | 1 | 0% | 2,023 | 3,630 | +79% | 0 | 0 | — |
case-17 | fail→fail | 20,203 | 13,198 | -35% | 1 | 1 | 0% | 2,843 | 4,065 | +43% | 0 | 0 | — |
case-18 | fail→pass | 18,727 | 8,811 | -53% | 1 | 1 | 0% | 3,041 | 4,543 | +49% | 0 | 0 | — |
case-19 | fail→pass | 7,156 | 4,318 | -40% | 1 | 1 | 0% | 992 | 3,747 | +278% | 0 | 0 | — |
case-20 | fail→fail | 28,170 | 13,447 | -52% | 1 | 1 | 0% | 4,576 | 5,265 | +15% | 0 | 0 | — |
case-21 | fail→fail | 12,021 | 24,417 | +103% | 1 | 1 | 0% | 1,178 | 5,257 | +346% | 0 | 0 | — |
case-22 | fail→fail | 21,891 | 19,565 | -11% | 1 | 1 | 0% | 1,359 | 4,722 | +247% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 13 counted toward the lift figure. The other 9 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 13 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.