Use this skill to capture Scope, Decisions, and Context for one slice of an
active plan, then materialise the resulting feature's OpenSpec-formatted spec
into its HTML — in a single guided pass.
This skill is a Claude-only convenience layer. The canonical interface is the
cross-harness CLI command wipnote plan elicit-decisions, which works on
Codex CLI and Gemini CLI without any of the steps below.
-
Read the slice card. Run wipnote plan show <plan-id> (or read
.wipnote/plans/<plan-id>.yaml directly) to find the slice with the given
num. Capture title, what, why, done_when, tests, and current
decisions_notes (if any).
-
Re-elicitation guard. If decisions_notes is non-empty, ask the user
via AskUserQuestion:
- Re-elicit — overwrite previous notes with new answers.
- Edit in place — print the existing notes for the user to edit, then
re-write verbatim.
- Skip — leave notes unchanged; jump to step 5 (generate spec).
-
Three-question interview. Capture Scope / Decisions / Context. Where any decision involves an external technology choice (library, SDK, API, harness primitive), first ground the presented options in current official documentation via web search / web fetch. If research uncovers an existing library or tool that covers the requirement, surface it as an option with a brief note on why it may be preferable to a custom build.
- Scope — what is and is not in this slice? List the boundaries.
- Decisions — what design choices were made and why? Reference any
plan questions answered.
- Context — what else does the implementer need to know? Pre-existing
constraints, related work, file ownership boundaries.
Render with the lowest-friction mechanism the harness has (all write the
same decisions_notes) — prefer staying in place over a context switch:
- Native ask-user tool — Claude
AskUserQuestion / Gemini ask_user,
one grouped block.
- No such tool (e.g. Codex) — just ask the three questions as text;
the user answers in their reply.
- Web form (optional) — only for a richer surface or on request:
wipnote plan interview <plan-id> <slice-num> (blocks, writes
decisions_notes, commits, returns — then skip step 4). See
/wipnote:plan → "Rendering the interview".
The user may answer each in free-form prose. Empty answers are allowed —
the field is free text.
-
Write decisions. Run the cross-harness CLI:
wipnote plan elicit-decisions <plan-id> <slice-num> \
--scope "<scope answer>" \
--decisions "<decisions answer>" \
--context "<context answer>"
This combines the three answers into a single Markdown blob and writes it
to slice.decisions_notes atomically.
-
Generate the spec. If the slice has a feature_id (i.e., it has already
been promoted), run:
wipnote spec generate <feature-id> --insert
The spec section is written non-destructively: if the feature already has
non-empty spec content, the command prints a diff and refuses. Pass
--force only when the user explicitly accepts the overwrite.
If the slice has no feature_id yet, tell the user to run
wipnote plan promote-slice <plan-id> <slice-num> first, then re-invoke
this skill.
-
Confirm. Show a 2-3 line summary: which fields changed, where the spec
was written, what to do next (typically wipnote plan promote-slice if
not yet promoted, or wipnote compliance <feature-id> to verify the
spec parses).