Skip to content
Back to skills

3 Plan

ASecurity

Phase 3 — Architecture + task breakdown. Outputs: project_plans/<project>/implementation/plan.md

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 20, 2026
ai-agents

Works with

  • cli

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add tstapler/dotfiles --skill 3-plan --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 3 Plan?

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

Security grade badge for 3 Plan
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tstapler-3-plan-dotfiles/badge)](https://www.skillsdirectory.com/skills/tstapler-3-plan-dotfiles)

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
---
description: "Phase 3 — Architecture + task breakdown. Outputs: project_plans/<project>/implementation/plan.md"
user-invocable: true
effort: high
allowed-tools: Read, Write, Edit, Task, AskUserQuestion
---

# sdd:3-plan

Dispatch a planning subagent to produce the implementation plan. The subagent does all the heavy work and writes plan.md directly — the coordinator (this thread) only reads the summary back.

## Instructions

1. **Follow [SETUP.md](../skills/SETUP.md)** — identify PROJECT_NAME.

2. **Read all inputs (coordinator reads these to pass to subagent):**
   - `project_plans/<PROJECT_NAME>/requirements.md` — halt if missing
   - `project_plans/<PROJECT_NAME>/research/*.md` — warn if missing, continue with requirements only

2.5. **Calibrate plan depth from the Complexity field in requirements.md**:
   - **Complexity 1**: Omit Domain Glossary unless ≥2 new domain types are introduced. Mark
     Migration Plan / Observability Plan / Risk Control as "N/A — complexity 1" without
     elaboration. Dispatch only the adversarial reviewer (skip architecture-review and UX
     subagents unless requirements.md explicitly names a user-facing surface). Repair loop
     max: 2 iterations.
   - **Complexity 2**: Full plan.md template. Dispatch adversarial reviewer always; dispatch
     architecture-review only if the plan touches ≥3 files or introduces a new package/module
     boundary. UX subagent only if user-facing. Repair loop max: 3 iterations.
   - **Complexity 3–4**: Current behavior — all sections, all three reviewers, 5-iteration
     repair loops.
   - If no Complexity field found: treat as Complexity 2 (not 3-4).

3. **Dispatch a planning subagent using the `Task` tool.**

   The subagent prompt must include:
   - Full text of `requirements.md`
   - Full text of all `research/*.md` files (if present)
   - The full text of [planning-prompt.md](planning-prompt.md) (steps 0.5–6, plus the plan.md template)

4. **Wait for the subagent to complete.** Do not continue until plan.md has been written.

5. **Dispatch the reviewers called for by the step 2.5 calibration in a single parallel message using the `Task` tool.**

   > Send all applicable subagent calls in one message — do not wait for the architecture review before dispatching the adversarial reviewer or UX agent. They have no dependencies on each other.

   **Architecture Review subagent** (use `code-architecture-best-practices` as the subagent type; dispatched per calibration, not at Complexity 1 unless user-facing): prompt = full text of `plan.md` + `requirements.md` + [architecture-review-prompt.md](architecture-review-prompt.md).

   **Adversarial reviewer subagent** (always dispatched, every Complexity level): prompt = full text of `plan.md` + `requirements.md` + [adversarial-review-prompt.md](adversarial-review-prompt.md).

   **UX design subagent** (dispatched per calibration, user-facing features only — skip for pure infrastructure or non-interactive CLI tools): prompt = full text of `requirements.md` + `research/ux.md` (if present) + [ux-design-prompt.md](ux-design-prompt.md).

6. **Wait for all reviewers to complete.** Read all summaries. Then run each repair loop below independently.

   **Architecture review repair loop (MAX = the repair loop cap from step 2.5):**
   ```
   ITERATION = 0, MAX = <2 | 3 | 5, per step 2.5 calibration>
   while (architecture-review.md verdict == BLOCKED) and (ITERATION < MAX):
     ITERATION++
     1. Collect all BLOCKER findings from architecture-review.md:
        each entry = { story/task ref, violation, proposed remediation }
     2. Spawn a fresh fix subagent (lean-agent-loop pattern):
        - Provide: BLOCKER list, current plan.md, requirements.md
        - Agent: edits plan.md to resolve each BLOCKER (restructures stories/tasks,
          fixes pattern choices, corrects layer boundaries) — does NOT touch code
        - Agent returns: list of plan changes made
     3. Re-run the architecture review subagent on the updated plan.md.
        Scope its prompt to "re-review only previously BLOCKED items."
     4. Read new verdict. Remove resolved blockers from open list.

   If CONCERNS or CLEAN: proceed.
   If MAX reached with blockers remaining: stop — report "Architecture review STUCK after MAX
   iterations" with unresolved blocker list. Do not proceed to Phase 4.
   ```

   **Adversarial review repair loop (MAX = the repair loop cap from step 2.5):**
   ```
   ITERATION = 0, MAX = <2 | 3 | 5, per step 2.5 calibration>
   while (adversarial-review.md verdict == BLOCKED) and (ITERATION < MAX):
     ITERATION++
     1. Collect all BLOCKER findings from adversarial-review.md:
        each entry = { issue description, recommendation }
     2. Spawn a fresh fix subagent (lean-agent-loop pattern):
        - Provide: BLOCKER list, current plan.md, requirements.md
        - Agent: edits plan.md to address each BLOCKER (adds failure modes, error paths,
          missing stories, or removes scope drift) — does NOT touch code
        - Agent returns: list of plan changes made
     3. Re-run the adversarial reviewer subagent on the updated plan.md.
        Scope its prompt to "re-review only previously BLOCKED items."
     4. Read new verdict. Remove resolved blockers from open list.

   If CONCERNS or CLEAN: proceed.
   If MAX reached with blockers remaining: stop — report "Adversarial review STUCK after MAX
   iterations" with unresolved blocker list. Do not proceed to Phase 4.
   ```

   **UX blocker repair loop (MAX = the repair loop cap from step 2.5 — run only if UX subagent ran):**
   ```
   ITERATION = 0, MAX = <2 | 3 | 5, per step 2.5 calibration>
   while (ux.md contains flows with no exit path or missing error states) and (ITERATION < MAX):
     ITERATION++
     1. Collect UX blockers: each entry = { surface, missing element, criterion text }
     2. Spawn a fresh fix subagent (lean-agent-loop pattern):
        - Provide: UX blocker list, current ux.md, requirements.md
        - Agent: edits ux.md to add missing exit paths, error states, or broken flows
        - Agent returns: list of ux.md changes made
     3. Re-check ux.md inline: does every flow have an exit path and error handling?
     4. Remove resolved items.

   If clean: proceed.
   If MAX reached: report "UX design STUCK after MAX iterations" with unresolved flows.
   ```

   **CONCERNS or CLEAN on all three, no STUCK verdicts** → proceed.

7. **Output the coordinator summary:**
   ```
   ✅ Phase 3 complete — plan.md written to project_plans/<PROJECT_NAME>/implementation/

   Epics: <N> | Stories: <N> | Tasks: <N>
   Flagged choices: <N> (ADRs written)
   Tech debt disposition: <N hotspots addressed (Refactor-first/Isolate/Extend) | None identified>
   Architecture review: <BLOCKED|CONCERNS|CLEAN> — <N> blockers, <N> concerns
   Adversarial review: <BLOCKED|CONCERNS|CLEAN> — <N> blockers, <N> concerns, <N> minors
   UX design: <N surfaces, N UX acceptance criteria | N/A — no user-facing surface>

   Next step: /sdd:4-validate
   ```

   Note: No fresh session required if proceeding to Phase 4 — all planning work happened in a subagent, not this thread.

Files in this skill

  • SKILL.md7 KB
  • adversarial-review-prompt.md1.6 KB
  • architecture-review-prompt.md6.2 KB
  • planning-prompt.md7.3 KB
  • ux-design-prompt.md1.7 KB

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…