Skip to content
Development
Skill

/spec-approach

Add a refined `## Approach` section to an existing feature spec.md before TDD executes it. Reads the spec, explores the codebase to ground the approach in real modules and patterns, proposes 2–3 alternatives when they exist, validates with the user, then appends `## Approach` to

From plugin
sdd-pipeline
156 skills1 hook

Claude Code

$ npx -y skills add eduwxyz/my-awesome-skills --skill spec-approach --agent claude-code

SKILL.md

spec-approach.SKILL.md
name: spec-approach
description: Add a refined `## Approach` section to an existing feature spec.md before TDD executes it. Reads the spec, explores the codebase to ground the approach in real modules and patterns, proposes 2–3 alternatives when they exist, validates with the user, then appends `## Approach` to the same spec file. Trigger after `interview-to-spec` for non-trivial features when the user says "plan the approach", "spec the implementation", "design the approach", "how are we building this", or before invoking `tdd` on a feature whose HOW is unclear.
hooks:
  PreToolUse:
    - matcher: "Write"
      hooks:
        - type: command
          command: "bash ${CLAUDE_PLUGIN_ROOT}/skills/spec-approach/hooks/spec-integrity.sh"

Spec Approach

Take an existing feature spec and add the `## Approach` — the HOW that `tdd` needs to execute. Same file, append only.

Skip spec-approach for

  • **Bug specs** (output of `diagnose` — already contain `Root cause` and `Fix`).
  • **Trivial changes** — single file, obvious extension of an existing pattern.
  • **Specs that already have `## Approach`** — unless the user explicitly asks to revise.

If invoked in a skip case, recognise it and tell the user "this looks trivial / already approached — go straight to `tdd`". Do not write anything.

Before you start

**Identify the spec.** A path or slug for an existing `spec/<slug>.md` must be given. If neither was provided, ask the user which spec — do not guess. Never operate without an explicit target.

**Validate it.** Read the file. It must contain `Goal`, `Behaviors`, and `Acceptance criteria`. If any are missing, abort and tell the user to run `interview-to-spec` first. Never try to fill in WHAT.

The work

1. **Read the spec.** Internalise Goal, Behaviors, AC, OOS, Edge cases. 2. **Explore the codebase.** Find relevant modules, patterns, existing ADRs, similar features. The approach must be grounded in what is actually there — not invented. 3. **Propose.** State a recommended approach. If multiple paths are viable, show 2–3 with tradeoffs and recommend one. 4. **Validate with the user.** Ask one question at a time, only when judgment is required (which alternative? what's the priority?). Do not ask what the codebase can answer — read the codebase. 5. **Append.** Add `## Approach` to the same spec file.

How to append (safety rules)

  • Use **`Edit`**, not `Write`. Anchor on the last existing line or section of the spec; the new content is the anchor + `\n\n## Approach\n...`.
  • **Never** create a new file.
  • **Never** modify the WHAT sections above (Goal, Behaviors, AC, OOS, Edge cases). Touch only the bottom of the file.
  • If the spec ends with a trailing newline, preserve it.

The `## Approach` section

## Approach
- **Strategy.** One paragraph describing how the work will be done end-to-end.
- **Modules / files.** Concrete paths to create or modify.
- **Key decisions.** The alternative considered and why this one. One bullet per decision.
- **Schema / API changes.** If any. Otherwise omit this bullet.
- **Risks.** Anything that might surprise us during execution. If none, omit this bullet.

Keep each bullet tight. The reader is `tdd` — it needs enough to execute, not a design doc.

When `## Approach` already exists

Do **not** overwrite silently. Read the existing approach, then ask the user: "There's already an approach here. Want me to revise it, or is it still good?" Only edit if they confirm. When revising, replace the existing `## Approach` block via `Edit` — do not append a second one.

Where this skill ends

The spec is now self-sufficient. `tdd` consumes it directly — Behaviors + Acceptance criteria become the test queue; Approach guides the implementation.

Read more
@eduwxyz
Ships withsdd-pipeline

A spec-driven development pipeline for Claude Code and Codex CLI. Refine the spec before you code, let TDD enforce it, verify nothing slipped, then review.

Stars on GitHub

Momentum

stars in total
15
Star history of eduwxyz/my-awesome-skills on GitHub, a chart by star-history.com

Other skills on sdd-pipeline.

diagnose

diagnose

Turn a bug symptom into a fix with a regression test that locks it down. If the user opens vague ("there's a bug", "/diagnose"),…

feature

feature

Kick off the full feature workflow — interview-to-spec, optional spec-approach, tdd, verify, then review — when starting a new…

interview-to-spec

interview-to-spec

Conduct a focused interview to draft a spec.md for an upcoming task (the input step of SDD — spec-driven development). Walks…

tdd

tdd

Drives feature work and bug fixes through a tight failing-test-first loop. Trigger when implementing, fixing, or refactoring…

verify

verify

Verify that a spec.md's Acceptance criteria are observably covered by green tests before opening a PR. Reads the spec, finds the…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react3d252k
@facebook@facebookInstall Skill

Questions about spec-approach.

Which coding agents can use spec-approach?
spec-approach installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.