Skip to content
Back to skills

Spec From Slice

ASecurity

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`.

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 19, 2026
developmentgobashapidocumentation

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Scanned October 19, 2026

npx -y skills add shakestzd/wipnote --skill spec-from-slice --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Spec From Slice?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Spec From Slice
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shakestzd-spec-from-slice/badge)](https://www.skillsdirectory.com/skills/shakestzd-spec-from-slice)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wipnote:spec-from-slice
description: 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`.
user-invocable: true
disable-model-invocation: true
---

# 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 Antigravity 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. 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` / Antigravity `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, Antigravity) 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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.