Skip to content
Development
Skill

/iterative-plan-review

Sharpens and stress-tests an existing plan file through multiple codebase-grounded review passes, editing it in place and recording every finding and iteration in cross-referenced companion files. Use this skill whenever the user wants to iterate on, refine, tighten, or improve

From plugin
han
35047 skills31 agents

Claude Code

$ npx -y skills add testdouble/han --skill iterative-plan-review --agent claude-code

SKILL.md

iterative-plan-review.SKILL.md
name: "iterative-plan-review"
description: >
  Sharpens and stress-tests an existing plan file through multiple codebase-grounded review passes, editing it in place
  and recording every finding and iteration in cross-referenced companion files. Use this skill whenever the user wants
  to iterate on, refine, tighten, or improve a plan. Also use it when the user asks to verify, validate, or confirm
  feasibility of an approach. Does not implement plan steps, write test plans, review code, or investigate bugs, and
  does not generate new plans from scratch — use plan-a-feature for a new plan. Runs its review rounds to completion
  without pausing between them; to review each round as it lands, use pairing.
arguments: size
argument-hint: "[size: small | medium | large | dynamic] [context or path to plan file]"
allowed-tools:
  Read, Write, Edit, Glob, Grep, Agent, Bash(find *),
  Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh")

Project Context

  • CLAUDE.md: !`find . -maxdepth 1 -name "CLAUDE.md" -type f`
  • project-discovery.md: !`find . -maxdepth 3 -name "project-discovery.md" -type f`
  • personal config directory: !`bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh" 2>/dev/null || echo "$HOME/.claude"`
  • project .han/config.md: !`cat .han/config.md 2>/dev/null || echo ""`

As your first action, use the Read tool on `.han/config.md` inside the `personal config directory` path above. A read that returns no file is no personal configuration: continue silently. When that file or the `project .han/config.md` probe supplies content, apply it per [config-rule.md](../../references/config-rule.md), which governs precedence between the two files, relative-path resolution, and what to do with a file that reads but cannot be used.

Review Approach

  • **Source the shared readability standard early.** Invoke `han-communication:readability-guidance` before you edit, and

apply it to any plan prose this review rewrites. Hold the named audience: the reader of the plan this review refines. The frame governs how a fact is said, never whether a required fact appears — keep the evidence citations, file:line references, and IDs the plan depends on.

  • Read the full plan before challenging — an assumption that looks wrong in isolation may make sense in context.
  • Ground challenges in codebase evidence: "The API handler at `src/api/handler.go:47` returns XML, not JSON" is

actionable; "This assumes the API returns JSON" is not.

  • Check overlap against existing code, not just the plan — the most valuable overlap findings are external utilities or

patterns the codebase already has.

  • Ask practical ambiguity questions — "Should this handle concurrent access?" is only useful if there's evidence

concurrent access actually happens.

  • **YAGNI is a first-class review pillar.** Apply the evidence-based YAGNI rule from

[../../references/yagni-rule.md](../../references/yagni-rule.md) to every plan item the review touches — every behavior, plan step, abstraction, configuration knob, runbook, observability hook, infrastructure component, test category, ADR clause, or coding-standard line. Items that fail the evidence test or have a strictly simpler version available are first-class findings (`Category: YAGNI candidate`), not polish. Resolution paths: cite missing evidence and keep, replace with simpler version, or move to the plan's `## Deferred (YAGNI)` section with the reopening trigger named. YAGNI candidates are surfaced visibly to the user — never silently dropped, never silently kept. Every plan item is ongoing maintenance and a pattern future agents will copy.

  • **Evidence quality is a first-class review pillar.** Apply the companion evidence rule from

[../../references/evidence-rule.md](../../references/evidence-rule.md) alongside the YAGNI gate. YAGNI asks whether a plan item has any evidence at all; the evidence rule asks how strong that evidence is. Specifically: name the trust class of each citation a plan item rests on (codebase, web, provided); apply the corroboration gate to web-source claims that drive a recommendation (single-source web claims get marked and cannot stand alone); and label claims with no evidence at any tier as a distinct state rather than treating them as weak evidence. The proximity-to-origin principle is a heuristic, not a strict tier list; do not raise findings purely because a plan item cites docs instead of running code.

  • **The review lives in three cross-referenced files.** The plan file is the primary artifact edited in place and stays

at the root of `{plan-dir}/`; `review-findings.md` records every finding and how it was resolved, and `review-iteration-history.md` records each iteration or round — both companion artifacts live in `{plan-dir}/artifacts/` to keep the plan folder uncluttered. The plan gets a standardized `## Review History` section at the bottom pointing to the companion files. Inline `(F#)` markers are NOT added to plan sentences — forward traceability lives in the findings file's `Changed in plan:` field. (Inline `([T#](...))` markers in spec-aware mode remain — they tag load-bearing mechanic-driven spec sentences and are not finding markers.) The findings and iteration files (siblings inside `artifacts/`) cross-link through `Raised in round:` / `Findings raised:` fields and both record `Changed in plan:` sections. Any edit to one file requires updating the matching fields in the others.

Iterative Plan Review

Step 1: Locate the Plan and Set Up Companion Files

Find the plan file from the user's argument. If no path was provided, use `Glob` to find `~/.claude/plans/*.md` — Glob returns files sorted by modification time, so the first result is the most recent plan. Read the full plan file and understand its structure, scope, and current state before proceeding.

Resolve project config: read CLAUDE.md's `## Project Discovery` section for language, framework, docs, ADR, and coding-st

Read more
@testdouble
Ships withhan

Han is a suite of AI skills and agents for solo (or small-team) product engineers.

35047 skills31 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
350
Star history of testdouble/han on GitHub, a chart by star-history.com

Other skills on han.

han-release

han-release

Cut a Han release: update CHANGELOG.md with the changes since the last release, bump and tag every plugin that changed as…

@testdouble@testdoubleInstall Skill
han-update-documentation

han-update-documentati…

Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate. On a…

@testdouble@testdoubleInstall Skill
code-overview-to-confluence

code-overview-to-confl…

Produces a progressive-disclosure overview of unfamiliar code or a pull request's changes with code-overview and publishes the…

@testdouble@testdoubleInstall Skill
investigate-to-confluence

investigate-to-conflue…

Runs an evidence-based investigation of a bug, failure, or unexpected behavior with investigate and publishes the resulting…

@testdouble@testdoubleInstall Skill
markdown-to-confluence

markdown-to-confluence

Publishes a local Markdown file to a user-specified Confluence location, creating a new page or updating an existing one through…

@testdouble@testdoubleInstall Skill
plan-a-feature-to-confluence

plan-a-feature-to-conf…

Builds a feature specification from scratch with plan-a-feature and publishes it to a user-specified Confluence location, posting…

@testdouble@testdoubleInstall Skill

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.

skills2w309k
@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,…

ecc2w293k
@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…

react5d252k
@facebook@facebookInstall Skill

Questions about iterative-plan-review.

Which coding agents can use iterative-plan-review?
iterative-plan-review 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.