skills/workflow-specification-process/SKILL.md
--- name: workflow-specification-process user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs), Bash(mkdir -p .workflows/), Bash(mv .workflows/) --- # Specification Process Act as **expert technical architect** and **specification builder**. Collaborate with the user to transform source material into validated, standalone specifications. Your role is to synthesize reference mate
npx skillsauth add leeovery/agentic-workflows workflow-specification-processInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Act as expert technical architect and specification builder. Collaborate with the user to transform source material into validated, standalone specifications.
Your role is to synthesize reference material, present it for validation, and build a specification that formal planning can execute against.
Follows discussion (or investigation for bugfix). Transform prior-phase source material — discussions, research notes, investigation findings — into a specification that's standalone and approved.
If source material seems incomplete or unclear:
Output the next fenced block as a code block:
I have the source material, but {concern}. Should I proceed as-is, or is there
additional material I should review?
STOP. Wait for user response.
Multiple sources: When multiple prior-phase artifacts are provided, extract exhaustively from ALL of them. Content may be scattered across sources — a decision in one discussion may have constraints or details in another. The specification consolidates everything into a single standalone document.
Follow these steps EXACTLY as written. Do not skip steps or combine them.
CRITICAL: This guidance is mandatory.
*_gate_mode: auto value in the manifest, set by the user's explicit a/auto choice at a prior gate.**STOP.** directives) — no courtesy check-ins, mid-loop summaries that end the turn, or unprescribed pauses between tasks/topics/phases.Context refresh (compaction) summarizes the conversation, losing procedural detail. When you detect a context refresh has occurred — the conversation feels abruptly shorter, you lack memory of recent steps, or a summary precedes this message — follow this recovery protocol:
git status and git log --oneline -10 to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.finding_gate_mode via manifest CLI (node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.specification.{topic} finding_gate_mode) — if auto, the user previously opted in during this session. Preserve this value.Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
y/yes or equivalent), then log. No exceptions.Output the next fenced block as a code block:
── Resume Detection ─────────────────────────────
Output the next fenced block as markdown (not a code block):
> Checking for existing work. If a specification is already
> in progress, you can pick up where you left off or start fresh.
Check if .workflows/{work_unit}/specification/{topic}/specification.md exists.
→ Proceed to Step 1.
Read the specification status via manifest CLI (node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.specification.{topic} status).
Output the next fenced block as a code block:
Found existing specification for {work_unit}.
Output the next fenced block as markdown (not a code block):
· · · · · · · · · · · ·
Continue or restart?
- **`c`/`continue`** — Walk through the specification from its current state. You can review, amend, or navigate at any point.
- **`r`/`restart`** — Delete the specification and all review tracking files. Start fresh.
· · · · · · · · · · · ·
STOP. Wait for user response.
continue→ Proceed to Step 3.
restartreview-*-tracking-c*.md) in the specification directory (.workflows/{work_unit}/specification/{topic}/)spec({work_unit}): restart specification→ Proceed to Step 1.
Output the next fenced block as a code block:
── Verify Source Material ───────────────────────
Output the next fenced block as markdown (not a code block):
> Checking your discussions and research are ready. The
> specification is built from these — if anything's missing or
> incomplete, we'll flag it now.
Load verify-source-material.md and follow its instructions as written.
→ Proceed to Step 2.
Output the next fenced block as a code block:
── Initialize Specification ─────────────────────
Output the next fenced block as markdown (not a code block):
> Creating the specification file. Setting up the document
> structure that we'll populate together in the next step.
Load initialize-specification.md and follow its instructions as written.
→ Proceed to Step 3.
Output the next fenced block as a code block:
── Session Setup ────────────────────────────────
Output the next fenced block as markdown (not a code block):
> Loading context from previous work. Reading your source
> material and any existing progress so we're working from the
> full picture.
Load session-setup.md and follow its instructions as written.
→ Proceed to Step 4.
Output the next fenced block as a code block:
── Load Specification Principles ────────────────
Output the next fenced block as markdown (not a code block):
> Loading the guidelines for how specifications are built.
> These ensure consistency and completeness across the document.
Load specification-principles.md and follow its instructions as written.
→ Proceed to Step 5.
Output the next fenced block as a code block:
── Spec Construction ────────────────────────────
Output the next fenced block as markdown (not a code block):
> Building the specification. Topics from your source material will
> be extracted and presented one at a time. Nothing gets written without
> your explicit approval.
Load spec-construction.md and follow its instructions as written.
→ Proceed to Step 6.
Output the next fenced block as a code block:
── Document Dependencies ────────────────────────
Output the next fenced block as markdown (not a code block):
> Recording cross-topic dependencies. For epics, specifications
> may depend on each other — this step captures those relationships.
epic→ Proceed to Step 7.
Load dependencies.md and follow its instructions as written.
→ Proceed to Step 7.
Output the next fenced block as a code block:
── Specification Review ─────────────────────────
Output the next fenced block as markdown (not a code block):
> Reviewing the specification. Agents will analyse it against
> source material for gaps and inconsistencies. You'll approve or
> dismiss each finding.
Load spec-review.md and follow its instructions as written.
→ Proceed to Step 8.
Output the next fenced block as a code block:
── Compliance Self-Check ────────────────────────
Output the next fenced block as markdown (not a code block):
> Verifying the specification follows workflow conventions.
> A quick internal check before we wrap up.
Load compliance-check.md and follow its instructions as written.
→ Proceed to Step 9.
Output the next fenced block as a code block:
── Conclude ─────────────────────────────────────
Output the next fenced block as markdown (not a code block):
> Wrapping up. Final assessment, sign-off, and handover to the
> planning phase.
Load spec-completion.md and follow its instructions as written.
tools
--- name: workflow-discovery user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-discovery/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs), Bash(git status), Bash(git add), Bash(git commit), Bash(cp), Bash(mkdir -p .workflows/), Bash(mv .workflows/.inbox/) --- # Discovery The universal first phase. Shape the work the user is bringing — confirm what kind of work it is,
tools
--- name: workflow-continue-quickfix user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-continue-quickfix/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs) --- Continue an in-progress quick-fix. Determines current phase and routes to the appropriate phase skill. > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file
tools
--- name: workflow-continue-feature user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-continue-feature/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs) --- Continue an in-progress feature. Determines current phase and routes to the appropriate phase skill. > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file expl
tools
--- name: workflow-continue-epic user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-continue-epic/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs), Bash(node .claude/skills/workflow-legacy-research-split/scripts/detect.cjs), Bash(node .claude/skills/workflow-discovery/scripts/discovery.cjs) --- Continue an in-progress epic. Shows full phase-by-phase state and routes to