Spec Interview
Depends on: the superpowers plugin. This skill escalates to
superpowers:brainstorming, hands off to superpowers:writing-plans, and writes
to docs/superpowers/specs/.
Overview
A spec is you handing your understanding to the agent in a form it can act on.
The agent can compute, but it cannot decide your goal or read your context. So
the fastest route to a good build is not more prompts: it is a short, sharp
interview that pulls the spec out of your head, one question at a time, grades
whether the task is actually thought through, and stops for your approval before
a single line is built.
This is the fast path. It assumes you roughly know what you want and just
need it tight.
When to use, and when not
| Situation |
Use |
| You know the rough shape, want a tight spec fast, keep re-prompting instead |
this skill |
| The idea is fuzzy and needs 2-3 approaches weighed before any design exists |
superpowers:brainstorming |
| A one-line change with an obvious answer |
neither, just do it (see ponytail) |
If mid-interview the answers reveal real design uncertainty (you do not yet know
the approach, or there are competing architectures), stop and hand off to
superpowers:brainstorming. Do not turn this into a full design exploration.
The interview
Ask one question per message. Skip any you can already answer from context
or the conversation: never ask what you can infer, it wastes the user's time and
reads as not listening. Prefer concrete, multiple-choice framings where you can.
Aim for the core 5, add up to 3 more when they apply.
Core five (always):
- Goal, not task. "What decision or outcome does this drive? If it works
perfectly, what changes, and how would you know?" Extracts the real goal, the
one thing the agent can never decide for you.
- Done looks like. "Give me the 2-3 checks you would run to accept this.
What does good look like, precisely?" Extracts verifiable acceptance criteria,
set up front, not after.
- Out of scope. "What tempting things are we deliberately NOT doing this
pass?" Extracts non-goals and keeps the scope one slice wide.
- Context and inputs. "Who or what uses this, on what real data or
environment? What would I get wrong by assuming?" Extracts the context the
agent has no signal for.
- Hard constraints. "What is fixed and what must not break: stack,
dependencies, performance, security, style, deadline?" Extracts the guardrails.
Add up to three when they apply:
- Prior art. "Does something like this already exist here to extend or
match, rather than build fresh?" Reuse before building.
- Riskiest unknown. "What are you least sure about, and where do you want a
checkpoint before I go further?" Sets the agile review point.
- First slice. "What is the smallest slice that proves the approach?"
Extracts the MVP cut.
Before you write: verify the load-bearing calls
Echo back the 3-5 decisions the whole spec rests on and get an explicit yes on
each: "I am about to assume X, Y, Z. Confirm or correct each." This is the step
that catches a confident, wrong spec before it becomes a confident, wrong build.
Eval: is the task thought through?
Before the spec becomes a plan, grade it. This is the verifier layer: a spec is
thought through only if a builder with zero context could execute it and know
when they are done. Grade the draft with fresh eyes, each row pass or fail.
| # |
Check |
Fails when |
| 1 |
Goal is an outcome |
it restates the task ("build X") with no decision or change behind it |
| 2 |
Acceptance criteria are runnable |
they say "looks good" instead of a check you could actually run |
| 3 |
Scope has a hard edge |
nothing is listed out of scope; the boundary is left implicit |
| 4 |
Constraints are exact |
"fast", "secure", "modern" instead of verbatim versions, limits, names |
| 5 |
A stranger could build it |
any load-bearing decision is still deferred or ambiguous |
| 6 |
Risk has a checkpoint |
the riskiest unknown is unnamed, or has no review point |
Any fail loops back to the interview question that owns it: fix, then re-grade.
Only a clean pass proceeds. Prefer deterministic, checkable criteria over
judgment where you can: an eval you can run beats one you have to feel.
High-stakes specs (optional second critic): when a wrong build is expensive,
get a second, independent review, ideally a different model (Codex via the
plugin) or a fresh subagent, prompted to find the holes, unstated assumptions,
unmeasurable criteria, missing edge cases. A critic with a different training set
catches what the author is blind to.
The acceptance criteria locked here become the build-time eval later: the
plan and the finished work get checked against the same bar. Set the criteria
once, in the spec, and reuse them.
Output
- Draft the spec to
docs/superpowers/specs/YYYY-MM-DD-<topic>-spec.md (the
same place superpowers writes, so it feeds the same pipeline; a user preference
for spec location overrides this). Sections: Goal / outcome, Acceptance
criteria, Scope (in and explicitly out), Context and inputs, Constraints
(verbatim, exact values), Open risks and checkpoints, First slice.
- Eval the draft against the rubric above. Loop back on any fail.
- HARD GATE: present the spec for approval. Do not write code, scaffold, or
invoke any build skill until it is written and the user has approved it, no
matter how simple the task looks.
- Hand off: offer superpowers:writing-plans to turn the approved spec
into an implementation plan. That is the only hand-off: this spec is not a
to-tickets input (/to-spec produces that).
Complements, does not replace
- superpowers:brainstorming: the heavier sibling for fuzzy ideas. Escalate to
it if the interview uncovers real design uncertainty; this skill is the fast
path when the shape is already known. Same spec location, same downstream, so
the two never fight over the artifact.
- scope-creep-check: if an answer balloons the scope, pull that brake rather
than quietly absorbing the growth into the spec.
- ponytail: governs how the build stays minimal once the spec is set. Keep
the spec YAGNI so the two agree.
Make it better by using it
These questions are a starting battery, not scripture. The best way to find a
weak question is to run the interview for real, then cut or sharpen whatever
produced a vague answer. Run water through it.
1---2name: spec-interview3description: Use when the user wants to be interviewed into a written spec instead of prompting back and forth: when they already know roughly what they want built and need it pinned down fast, when they are iterating prompt-by-prompt and want to stop, or when they say "interview me", "spec me", "ask me questions first", or "help me write the spec". Ends in a spec they approve before any building. For a fuzzy idea that still needs 2-3 approaches explored first, use superpowers:brainstorming instead.4---56# Spec Interview78**Depends on:** the `superpowers` plugin. This skill escalates to9`superpowers:brainstorming`, hands off to `superpowers:writing-plans`, and writes10to `docs/superpowers/specs/`.1112## Overview1314A spec is you handing your understanding to the agent in a form it can act on.15The agent can compute, but it cannot decide your goal or read your context. So16the fastest route to a good build is not more prompts: it is a short, sharp17interview that pulls the spec out of your head, one question at a time, grades18whether the task is actually thought through, and stops for your approval before19a single line is built.2021This is the **fast path**. It assumes you roughly know what you want and just22need it tight.2324## When to use, and when not2526| Situation | Use |27|---|---|28| You know the rough shape, want a tight spec fast, keep re-prompting instead | **this skill** |29| The idea is fuzzy and needs 2-3 approaches weighed before any design exists | **superpowers:brainstorming** |30| A one-line change with an obvious answer | neither, just do it (see ponytail) |3132If mid-interview the answers reveal real design uncertainty (you do not yet know33the approach, or there are competing architectures), **stop and hand off to34superpowers:brainstorming**. Do not turn this into a full design exploration.3536## The interview3738Ask **one question per message**. Skip any you can already answer from context39or the conversation: never ask what you can infer, it wastes the user's time and40reads as not listening. Prefer concrete, multiple-choice framings where you can.41Aim for the core 5, add up to 3 more when they apply.4243**Core five (always):**44451. **Goal, not task.** "What decision or outcome does this drive? If it works46 perfectly, what changes, and how would you know?" Extracts the real goal, the47 one thing the agent can never decide for you.482. **Done looks like.** "Give me the 2-3 checks you would run to accept this.49 What does good look like, precisely?" Extracts verifiable acceptance criteria,50 set up front, not after.513. **Out of scope.** "What tempting things are we deliberately NOT doing this52 pass?" Extracts non-goals and keeps the scope one slice wide.534. **Context and inputs.** "Who or what uses this, on what real data or54 environment? What would I get wrong by assuming?" Extracts the context the55 agent has no signal for.565. **Hard constraints.** "What is fixed and what must not break: stack,57 dependencies, performance, security, style, deadline?" Extracts the guardrails.5859**Add up to three when they apply:**60616. **Prior art.** "Does something like this already exist here to extend or62 match, rather than build fresh?" Reuse before building.637. **Riskiest unknown.** "What are you least sure about, and where do you want a64 checkpoint before I go further?" Sets the agile review point.658. **First slice.** "What is the smallest slice that proves the approach?"66 Extracts the MVP cut.6768## Before you write: verify the load-bearing calls6970Echo back the 3-5 decisions the whole spec rests on and get an explicit yes on71each: "I am about to assume X, Y, Z. Confirm or correct each." This is the step72that catches a confident, wrong spec before it becomes a confident, wrong build.7374## Eval: is the task thought through?7576Before the spec becomes a plan, grade it. This is the verifier layer: a spec is77thought through only if a builder with zero context could execute it and know78when they are done. Grade the draft with fresh eyes, each row pass or fail.7980| # | Check | Fails when |81|---|---|---|82| 1 | Goal is an outcome | it restates the task ("build X") with no decision or change behind it |83| 2 | Acceptance criteria are runnable | they say "looks good" instead of a check you could actually run |84| 3 | Scope has a hard edge | nothing is listed out of scope; the boundary is left implicit |85| 4 | Constraints are exact | "fast", "secure", "modern" instead of verbatim versions, limits, names |86| 5 | A stranger could build it | any load-bearing decision is still deferred or ambiguous |87| 6 | Risk has a checkpoint | the riskiest unknown is unnamed, or has no review point |8889Any fail loops back to the interview question that owns it: fix, then re-grade.90Only a clean pass proceeds. Prefer deterministic, checkable criteria over91judgment where you can: an eval you can run beats one you have to feel.9293**High-stakes specs (optional second critic):** when a wrong build is expensive,94get a second, independent review, ideally a different model (Codex via the95plugin) or a fresh subagent, prompted to find the holes, unstated assumptions,96unmeasurable criteria, missing edge cases. A critic with a different training set97catches what the author is blind to.9899The acceptance criteria locked here become the **build-time eval** later: the100plan and the finished work get checked against the same bar. Set the criteria101once, in the spec, and reuse them.102103## Output1041051. **Draft** the spec to `docs/superpowers/specs/YYYY-MM-DD-<topic>-spec.md` (the106 same place superpowers writes, so it feeds the same pipeline; a user preference107 for spec location overrides this). Sections: Goal / outcome, Acceptance108 criteria, Scope (in and explicitly out), Context and inputs, Constraints109 (verbatim, exact values), Open risks and checkpoints, First slice.1102. **Eval** the draft against the rubric above. Loop back on any fail.1113. **HARD GATE:** present the spec for approval. Do not write code, scaffold, or112 invoke any build skill until it is written and the user has approved it, no113 matter how simple the task looks.1144. **Hand off:** offer **superpowers:writing-plans** to turn the approved spec115 into an implementation plan. That is the only hand-off: this spec is not a116 `to-tickets` input (`/to-spec` produces that).117118## Complements, does not replace119120- **superpowers:brainstorming**: the heavier sibling for fuzzy ideas. Escalate to121 it if the interview uncovers real design uncertainty; this skill is the fast122 path when the shape is already known. Same spec location, same downstream, so123 the two never fight over the artifact.124- **scope-creep-check**: if an answer balloons the scope, pull that brake rather125 than quietly absorbing the growth into the spec.126- **ponytail**: governs how the build stays minimal once the spec is set. Keep127 the spec YAGNI so the two agree.128129## Make it better by using it130131These questions are a starting battery, not scripture. The best way to find a132weak question is to run the interview for real, then cut or sharpen whatever133produced a vague answer. Run water through it.