wipnote:spec-from-slice
Elicit Scope/Decisions/Context for a plan slice and generate its OpenSpec-formatted feature spec. Use after a slice is approved but before promote-slice, or any time a slice needs decisions captured. Wraps the cross-harness `wipnote plan elicit-decisions` CLI plus `wipnote spec generate --insert`.
What this skill does
# Spec from Slice — interview + generate
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.
## When to invoke
- Plan slice has just been approved and you are about to call
`wipnote plan promote-slice`.
- Slice has been promoted and the resulting feature has no
`<section class="spec">` yet, or the section is empty.
- Decisions changed and you want to re-elicit and re-generate the spec.
## Inputs you need
- `<plan-id>` — the active plan that owns the slice.
- `<slice-num>` — the integer slice number within that plan.
If the slice already has `feature_id` set, the skill will reuse it for the
generate step. Otherwise it stops after writing the decisions and points the
user at `wipnote plan promote-slice` first.
## Procedure
1. **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).
2. **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).
3. **Three-question interview.** Capture Scope / Decisions / Context:
- **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](/wipnote:plan) → "Rendering the interview".
The user may answer each in free-form prose. Empty answers are allowed —
the field is free text.
4. **Write decisions.** Run the cross-harness CLI:
```bash
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.
5. **Generate the spec.** If the slice has a `feature_id` (i.e., it has already
been promoted), run:
```bash
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.
6. **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).
## Notes
- The CLI command `wipnote plan elicit-decisions` is the source of truth.
This skill exists to make the interview ergonomic on Claude Code via
`AskUserQuestion`. Other harnesses (Codex CLI, Gemini CLI) call the CLI
directly — they do not need this skill.
- `decisions_notes` is free text, not a typed schema. The renderer in
`wipnote spec generate` weaves it verbatim into the generated spec's
`## Decisions` section.
- The `--allow-spec-skip` flag on `promote-slice` and `feature complete` is
for emergency overrides only; this skill is the regular path.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.