/plan-implementation
August 14, 2026 · View on GitHub
Operator documentation for the /plan-implementation skill in the han plugin. This document helps you decide when and
how to use the skill. For what the skill does internally, read the skill definition at
han-planning/skills/plan-implementation/SKILL.md.
See also: Plugin README · Repo root · All skills · All agents · YAGNI
TL;DR
- What it does. Turns a feature specification into an implementation plan through an iterative, facilitated team conversation.
- When to use it. You have a
feature-specification.md(or equivalent design doc) and need a plan for how to build it. - What you get back. Four cross-referenced files:
feature-implementation-plan.md,artifacts/implementation-decision-log.md,artifacts/implementation-iteration-history.md, andartifacts/scope-boundary.md. Plus aui-designs/folder when you supply visual material. - Size-aware. The skill classifies the feature as small / medium / large, defaults to small, and caps both the team
size and the iteration round count proportional to scope. Pass the size as the first positional argument to override
(
/plan-implementation large path/to/spec.md). See Sizing.
Key concepts
- Facilitated loop. Rounds of parallel specialist review plus deterministic reconciliation by the skill, capped by size: 1 round for small, 2 for medium, 3 for large. The loop converges when the stop rule fires or when only user input remains.
- Team sized to the feature. Always includes
plan-synthesizerandjunior-developer. Other specialists are chosen by what the feature touches: DevOps for rollout, data-engineer for schema, UX for interactions, security for threat surface,software-architectfor intra-codebase design,system-architectfor cross-service topology. - The scope boundary, and what it licenses. Before discovery, the skill records the work item this work descends
from at
artifacts/scope-boundary.md, then opens with one confirmation turn to check it with you. The specification stays the ground truth for what, but it is no longer the authority on scope: a commitment it carries for a subsystem, integration, or artifact the work item never asks for is cut with the citation and lands in a visibleCut for Scopesection. The license reaches unrequested subsystems and nothing else, and it never cuts behavior the asked-for work needs to function. - The sweep now covers inherited scope. The YAGNI sweep walks what the loop produced. The scope gate that runs beside it walks that plus everything inherited from the specification, because pre-committed scope was otherwise never swept.
- A specialist can say "not part of this work." Alongside confirming or contradicting a committed mechanic, a specialist can declare it out of scope for this work item, citing the boundary. That verdict names no replacement mechanic, resolves without an escalation, and does not count toward the spec-maturity threshold, because a specification that drifted past its ticket is not an immature one.
- Visual material is kept and shared. Designs and mockups you supply are written to
ui-designs/as they arrive and passed by path to every specialist the skill dispatches, not only the design specialist. Before the skill summarizes, an executed completeness check reads the boundary record against that folder and reports one of three outcomes: passed, failed with each missing or malformed row named, or could not verify with the reason named. A check that did not pass is written intoartifacts/implementation-iteration-history.mdas well as the summary, so the next skill in the chain does not read the folder as fully verified. - One question per turn. Escalations arrive one at a time, each opening with the consequence a person who will not read the code would describe, each carrying named candidate answers, with specialist identifiers and paths below the question or left out. The opening confirmation turn is the one exception.
- A finding on something nobody read cannot block. When a specialist says it could not inspect an input, every finding
resting on that input is marked
Unverifiedin the claim ledger and cannot reach you as build-blocking. Findings that turn on your designs are checked against the designs before they become open questions. - Junior-developer reframing. When a decision lacks evidence, the skill asks
junior-developerto restate the question in plain language before escalating. Often a reframing exposes an unstated assumption and the specialists resolve it among themselves. - Final synthesis.
plan-synthesizerruns onopusfor the final pass and produces the authoritative plan. During the iteration loop, the skill passes no model override: each specialist runs on its own frontmatter tier (synthesis-heavy agents likejunior-developeronopus, structured-protocol specialists onsonnet). The synthesis pass audits and corrects the artifacts, not just writes and populates them: the synthesizer reconciles them against each other and rewrites inconsistencies in place, such as a decision-log title copied from another entry, or a path one section assumes that another section's layout never places there. - Planning altitude: intention over prescription. The plan carries the intention and goals of the work, its touch points (a module, a contract, a boundary), and the decision-bearing values (a flag default, a key name, a threshold). It never prescribes line-level edits or inlines full file contents: a non-author must be able to read it, plans are executed after the codebase has moved on (a prescribed edit list goes stale and misleads), and the implementer, human or coding agent, reads the current code at build time.
- Plain language leads; technical detail nests beneath it. Every section leads with plain-language prose. Technical detail is minimal references only, placed below or after the plain language it illustrates, never mixed into it. When choosing between more plain language and more technical detail, the plan chooses more plain language.
- User stories carry the intent. When the feature has a describable actor benefit, the plan opens the work with user stories derived from the specification's committed behavior, and each work unit names the story it advances. Stories give the implementer the high-level intent before any mechanics.
- Cross-referenced artifacts. Every non-obvious claim carries
([D-N](...))linking to the decision that drove it. EveryR#round links to the decisions it produced and the sections it changed.
When to use it
Invoke when:
- A feature specification exists and the team needs to plan how to implement, build, deliver, or ship it. "Plan the implementation of X," "how do we build this," "turn this spec into an implementation plan," "figure out how we'd actually ship this."
- The
/plan-a-featureskill has produced afeature-specification.mdand the natural next step is turning what into how: decomposition, sequencing, testing, rollout, rollback. - A PRD or design doc has landed without a specification-grade artifact, but the team still wants a full implementation plan and is willing to let the skill treat the document as the stand-in for a spec.
- The team wants an implementation plan produced by a multi-specialist team conversation (UX, security, DevOps, architecture, testing, and so on) rather than by a single engineer writing it up alone.
- A feature's implementation touches multiple specialist domains (auth, data migration, production rollout, UX changes) and the team wants those domains represented in the plan with evidence-backed recommendations rather than handwaved in a sentence each.
- The team wants the facilitation loop to converge on its own. A deterministic stop rule decides when the plan is ready, not you. Only genuine user-judgment questions surface.
Do not invoke for:
- Specifying what a feature should do. Use
/plan-a-featureto produce the behavioral specification first. This skill assumes the what is settled and plans the how. - Refining or stress-testing an already-written implementation plan. Use
/iterative-plan-reviewwhen the implementation plan exists and needs multiple review passes challenging assumptions and identifying overlap. - Investigating a bug or failure. Use
/investigatefor evidence-based root-cause work. - Analyzing existing architecture. Use
/architectural-analysisfor assessing coupling, cohesion, data flow, concurrency, and SOLID alignment of an already-built module. - Recording an architectural decision that has already been made. Use
/architectural-decision-recordwhen the decision is settled and needs to be captured as an ADR. - File-level code review. Use
/code-reviewfor correctness, style, and maintainability review of committed or pending code. - Documenting an already-built feature. Use
/project-documentationwhen the feature exists and the team wants documentation. - Contributing a new skill, agent, or documentation file to a plugin. Follow the repository's
CONTRIBUTING.mdchecklist. This skill is sized for shipping software features. A plugin contribution is a conventions-driven file addition, and routing it through the full implementation-planning protocol produces more scaffolding than the change warrants. (Documentation with genuine behavioral complexity, like a multi-surface guide, is still a fit.)
How to invoke it
Run /plan-implementation directly in Claude Code. Point it at the source specification in the same message, or let the
skill locate a recent feature-specification.md under documentation roots discovered from CLAUDE.md.
Give it:
- The source specification. A path to a
feature-specification.mdfile is the preferred input. If no path is given, the skill searches documentation roots (docs/features/,docs/plans/, plus anything the project-discovery reference names) and asks which spec to use if multiple candidates exist. If no spec exists, the skill tells you to run/plan-a-featurefirst. - Any additional implementation context, optional. A deadline, a compliance constraint, a named incident the plan must address, a strategic bet driving the feature: any of this sharpens the facilitation. The skill reads the codebase, ADRs, and coding standards automatically.
- Team composition, optional. If you already know which specialists should be in the room ("include
devops-engineer and data-engineer"), say so. The skill always includes
plan-synthesizerandjunior-developer. Other specialists are chosen to match what the feature touches unless you override. - A size, optional. Pass
small,medium,large, ordynamicas the first argument to override the skill's automatic sizing and set the specialist cap directly. Left off, the skill classifies the size from what the feature touches. See Sizing below.
Example prompts that work well:
/plan-implementation docs/features/bulk-export/feature-specification.md. "Turn the bulk-export spec into an implementation plan. Includedata-engineerbecause we're adding export snapshots to the database."/plan-implementation. "Plan the implementation for the webhook retry feature we just specced. The spec is indocs/features/webhook-retry/feature-specification.md. We have a customer commitment to ship by end of next sprint."/plan-implementation. "How would we build the user-invite flow? The spec is one folder up from here. Use the team you think is right."/plan-implementation docs/features/draft-review/feature-specification.md. "Plan the implementation. This touches auth and storage, so includeadversarial-security-analystanddata-engineer."
Thin prompts ("plan the implementation") still work. The skill searches for a recent spec and confirms before proceeding. But pointing at the spec path directly is faster.
What you get back
Four cross-referenced files in the same folder as the source specification, plus an in-channel summary:
- A
feature-implementation-plan.mdfile at{same-folder-as-source}/feature-implementation-plan.md. The primary plan, structured for progressive disclosure: a plain-language opening a reader can stop after, then intention-level sections, then the deeper records. Non-obvious claims carry inline markers (for example,([D-3](artifacts/implementation-decision-log.md#d-3-rollout-strategy))) linking back to the decision that drove them. Sections include:- An opening paragraph and Outcome. What is being built, the implementation posture the plan commits to, and what exists when the work is done, in plain language.
- User stories. The intent of the work at a high level, derived from behavior the specification commits to:
"As a {actor}, I want {capability}, so that {benefit}", each with a
US-NID. Present whenever an actor benefits in a describable way; omitted otherwise. - An implementation approach. The shape of the implementation as prose: what it plugs into, what it reuses, what it introduces, where the boundaries are. Technical identifiers appear only after the plain-language sentence they illustrate. Focused subsections appear only for surfaces the plan commits a real decision on (a schema change, a new external interface); each is a few sentences of intention plus decision links, not an inventory of changes.
- A work units and sequencing table. The plan broken into work units sized to ship, each with the user story it
advances, what it delivers (in outcome terms), what it descends from (its justification), what it depends on, and how
it is verified. A unit that cannot name what it descends from is not in this table; it is in
Cut for Scope. - A definition of done (testable, unambiguous, agreed across specialists) and a testing strategy grounded in
the
test-engineer's observable-behavior recommendations. - Lazily created specialist sections, each present only when there is real content: security posture, operational
readiness, on-call resilience posture, risks and assumptions, cut for scope, deferred (YAGNI) items, and specialist
handoffs for implementation. An absent section records the judgment that the surface is genuinely absent, never an
empty stub.
Cut for ScopeandDeferred (YAGNI)sit next to each other and each opens with a line saying what it is not: a cut is work the work item excludes and carries no reopening trigger, while a deferral is work no evidence supports yet and carries one. - A remaining open items list. Questions the plan-synthesizer could not resolve through evidence, junior-developer reframing, or user input. Each one names what would resolve it and whether it blocks implementation.
- A sources and plan records section closing the file: links to the source
feature-specification.mdand its companions (whichever exist, inartifacts/or at the folder root for legacy layouts), the decisions the plan inherits, and the two companion artifacts where decision rationale, team composition, and round-by-round history live. A one-or-two-sentence recommendation (ship as planned, hold, or blocked) ends the plan. There is no team-composition table and no statistics summary in the plan itself; that detail lives one hop away in the artifacts.
- An
artifacts/implementation-decision-log.mdfile at{same-folder-as-source}/artifacts/implementation-decision-log.md. OneD-Nentry per decision committed during the loop. Each entry records the choice, rationale, evidence, rejected alternatives with reasons, the specialist owner, and a revisit criterion. It also records any recorded dissent under disagree-and-commit, theR#rounds that drove it (Driven by rounds:), the later decisions that rest on it (Dependent decisions:), and the plan sections that cite it (Referenced in plan:). This is where rationale, rejected alternatives, and full decision history live. The primary plan references them by ID. - An
artifacts/implementation-iteration-history.mdfile at{same-folder-as-source}/artifacts/implementation-iteration-history.md. OneR#entry per facilitation round. Each entry records the specialists engaged, the new input provided that round, and the questions raised. For each question it records the resolution source (evidencefound in the loop /junior-developer reframing/user input/synthesis (Step 8 evidence)when the plan-synthesizer settled it by re-reading the spec during synthesis rather than in the loop) and the round's next-step recommendation. It also records the decisions the round produced (Decisions produced:, backfilled during synthesis) and the plan sections the round changed (Changed in plan:, also backfilled). This captures how the plan evolved across rounds without bloating the primary plan file. - A summary returned in-channel. All three file paths, team composition, number of iterations the loop ran before convergence, decisions settled by evidence vs. junior-developer reframing vs. user input, remaining open items and whether they block implementation, and the plan-synthesizer's recommendation (ship as planned, hold for specialist handoff, or blocked pending open item).
The three files interlock through shared IDs. Every D-N lists the R# rounds that drove it and the plan sections that
cite it. Every R# lists the D-N decisions it produced and the plan sections it changed. Every non-obvious claim in
the plan carries its inline ([D-N](...)) marker. The plan-synthesizer preserves these structural invariants during
synthesis, so cross-references stay consistent. On top of that, it runs a semantic audit. It checks that each
decision-log title matches its body, that a path named in one section matches the file layout described in another, and
that the plan stays at altitude (no full file blocks inlined). It rewrites any mismatch in place.
Every decision in the plan is traceable to a specific citation (evidence) or a specific question (when evidence is missing). Open items are first-class output. The plan does not synthesize cleanly while a blocking open item remains. The skill surfaces it rather than inventing an answer.
How to get the most out of it
- Run
/plan-a-featurefirst. The skill expects a behavioral specification as input. A specification produced by/plan-a-featurecomes with a companionartifacts/decision-log.mdandartifacts/team-findings.md, plus Open Items inside the spec. Legacy layouts may have the decision log and team findings at the spec folder root instead; the skill detects and handles both. The specification may also includeartifacts/feature-technical-notes.md, when/plan-a-featurerecorded load-bearing mechanics; its absence means none were captured, not that the spec is incomplete. All of that feeds the implementation-planning team's grounding and dramatically reduces the iteration count. - Point the skill at a path. A concrete path to
feature-specification.mdis faster than letting the skill search and confirm. Use the path form in the command:/plan-implementation docs/features/{name}/feature-specification.md. - Name the team if you know it. If you already know the feature touches UX, security, and data, say so. The skill
always includes
plan-synthesizerandjunior-developer. Saying "include these specialists" lets the skill scope the round-robin tightly from the first iteration. - Provide the driving constraint. Why now: deadline, incident, customer commitment, compliance window? The skill's facilitation is sharper when the plan-synthesizer can ground the "driving constraint" section in something concrete rather than inferring from code alone.
- Trust the loop. The skill caps iteration by size (1 round small, 2 medium, 3 large) to prevent runaway cycles. Each round is a full facilitation pass: specialists re-engaged as needed, the skill reconciling their output, junior-developer reframing open questions. Let the loop run rather than jumping in mid-flight to answer questions that evidence or reframing would have resolved.
- Answer the escalations succinctly. When the skill escalates a question, it does so with the specialist(s) who raised it, the evidence considered, junior-developer's reframing, a recommended answer, and the alternatives. Accept or amend the recommendation. Don't re-litigate from scratch. Batched focused escalations are the intended interaction. Not a firehose of raw specialist output.
- Treat open items as work. Any item remaining at the end of the loop is either a user-judgment call still awaiting an answer or a genuine blocker the team needs to resolve before implementation. The plan records what would resolve each, so follow-up is concrete.
- Use the specialist-handoffs-for-implementation list. The plan names exactly which sibling agents should be re-engaged during implementation, when, and with what input. This is the reader's guide for who gets pulled back in at each stage. Use it instead of re-deriving the specialist fan-out during implementation.
- Pair with
/iterative-plan-reviewif the plan needs further stress-testing. This skill produces the committable plan. It does not iterate on its own output three times. If you want multi-pass refinement after the plan lands, chain/iterative-plan-reviewnext. - Re-run after the spec changes. If the feature specification is updated (new decision, new constraint, new
stakeholder), re-run the skill with the updated spec. The existing plan, decision log, and iteration history all
become inputs to the new run. Prior
D-N/R#IDs carry forward so cross-references remain stable.
Sizing
Size determines both the specialist cap (how many chosen specialists join the facilitated conversation) and the round cap (how many iterations the loop runs). The skill defaults to small and only escalates when concrete signals require it.
| Size | Surface | Typical signals | Chosen specialists | Round cap |
|---|---|---|---|---|
| Small (default) | Single subsystem | No cross-service integration, no auth/PII/secrets, no data migration. | 1 (team of 3) | 1 |
| Medium | Two to three subsystems | Optional integration; may touch UX or rollout; may have a small auth surface. | 2 (team of 4) | 2 |
| Large | Cross-service or security-sensitive | Data ownership shifts, multiple new coordinations, or you explicitly request full team. | 3–4 (team of 5 to 6) | 3 |
How the size is chosen:
- Default to small. Unless the spec's coordinations, T# notes, security/PII surface, integration boundaries, or your framing push it higher, the skill stays at small.
plan-synthesizerandjunior-developeralways included. Both are part of the team at every size, which is why the cap counts chosen specialists rather than seats: counting seats would make medium indistinguishable from small.- Round cap is the upper bound, not a target. The loop exits when the deterministic stop rule fires or only user-input items remain. The round cap prevents runaway cycles.
How to override the size:
- Pass
small,medium,large, ordynamicas the first positional argument:/plan-implementation medium docs/features/checkout/feature-specification.md. - When the size is overridden via
$size, the skill announces the override (Medium: passed via $size) and uses the chosen band for both the specialist cap and the round cap. - Pass
dynamicwhen a project or personal.han/config.mdsets a default band and you want this one run sized from the specification's own signals instead. - Conversational overrides ("treat this as a large implementation, the rollout is sensitive") still work and are equivalent.
For the cross-skill sizing model and design principles, see Sizing.
Cost and latency
The skill orchestrates a multi-round team conversation. Each round fans out to one to four chosen specialist sub-agents
(plus junior-developer) in parallel and collects their verbatim output. It then reconciles that input
deterministically and decides whether to loop again, dispatching han-planning:discussion-facilitator only when the
spec-maturity gate trips. The skill passes no
model override; each sub-agent it dispatches in the iteration loop runs on its own frontmatter tier (synthesis-heavy
agents on opus, structured-protocol specialists on sonnet). The final synthesis pass runs plan-synthesizer on its
default model (opus). This is the most expensive single step, but also the step that produces the authoritative plan.
For a medium-complexity feature, expect two iterations before the loop converges, which means
roughly eight sub-agent dispatches plus the opus synthesis. The size-based round cap (1 for small, 2 for
medium, 3 for large) prevents runaway cycles. After the final plan exists, the skill runs one
han-communication:readability-editor rewrite of the plan's prose, so expect one additional readability pass among the
sub-agent dispatches. The skill is designed for new-feature planning cadence (once per feature, occasionally re-run
after spec changes), not for tight-loop iteration. Use /iterative-plan-review for that.
In more detail
The skill's input is the ground truth for what the feature does: a feature-specification.md produced by
/plan-a-feature, or an equivalent PRD, design doc, or product brief. Its output is four cross-referenced files,
covering how to build it, written to the same folder. The skill's defining behavior is the loop. It assembles a team
of specialist sub-agents sized to what the feature touches, always including plan-synthesizer as final synthesizer
and junior-developer as generalist stress-tester. It runs rounds of facilitated discussion until the stop rule
confirms the plan is ready to commit, or until only user input remains.
When a decision lacks strong evidence, the skill does not immediately escalate to you. It first asks junior-developer
to reframe the issue in plain language, because that reframing frequently exposes an unstated assumption or a simpler
question the specialists can answer among themselves. Only when evidence and reframing both fail does the skill surface
the question to you, with the evidence considered, the reframing, a recommended answer, and the alternatives.
The plan-synthesizer owns the final synthesis pass and writes the authoritative plan. The primary artifact
(feature-implementation-plan.md at the folder root) covers work units and sequencing, testing strategy, definition of
done, open items, and the lazily created specialist sections (security, operational readiness, resilience, risks and
assumptions, handoffs). It links back to the upstream what document in a closing Sources and Plan Records section.
Decision history and round-by-round iteration history
live alongside it, in artifacts/implementation-decision-log.md and artifacts/implementation-iteration-history.md,
cross-referenced by D-N / R# ID. This keeps the primary plan focused on the implementation narrative, while
rationale, rejected alternatives, and discussion history stay one hop away. Once the final plan content exists, the
skill dispatches readability-editor to rewrite the plan's prose for the engineer who will build the feature,
preserving every fact and every cross-reference identifier. The skill then reads the editor's fact-preservation report
rather than re-running the readability checklist over the editor's own output. It falls back to walking the checklist
itself only when no usable report comes back, and says so in the closing summary when it does.
YAGNI
A YAGNI sweep runs before the implementation plan is committed. Every plan step, abstraction, infrastructure addition,
observability hook, configuration knob, and rollout step must cite acceptable evidence that it is needed now.
Speculative work moves to a ## Deferred (YAGNI) section in the plan with a named reopen-when trigger. The team
agents that participate in the iterative discussion (plan-synthesizer, junior-developer, software-architect,
system-architect, data-engineer, devops-engineer, test-engineer, edge-case-explorer) each enforce their own
slice of the rule. Between them, that covers premature operational machinery, speculative data machinery,
single-implementation interfaces, defensive code at trusted internal boundaries, observability for telemetry that isn't
reaching the destination yet, and so on.
See YAGNI for the two gates, the acceptable-evidence list, the named anti-patterns, and the deferral format.
Sources
The skill's posture and protocols draw on established practice in facilitative project management, iterative planning, and multi-specialist coordination. Each source below is cited because the skill draws specific, named artifacts from it.
PMI: The Facilitative Project Manager
The Project Management Institute's guidance on facilitative project management frames the project manager as process
expert. Their job is to enable effective decision-making by the group, not to make decisions alone. The skill's entire
architecture is built on this: the skill facilitates and the plan-synthesizer sub-agent owns final synthesis, but the
specialists own their domains. The skill's iteration loop (dispatch specialists, facilitate, reconcile, iterate) is
facilitative project management applied to an AI-agent team.
URL: https://www.pmi.org/learning/library/the-facilitative-project-manager-6970
Round-Robin Facilitation
Round-robin is a facilitation technique in which every relevant participant speaks in turn, deliberately, so quieter voices are heard before the loudest voice takes the room. The skill's Step 4 (Round 1: Parallel Specialist Review) implements round-robin across the specialist sibling agents. Every specialist is asked the specific question their domain answers, in parallel, before facilitation reconciles their input. "No concerns from my side" is captured as a valid, recorded answer so participation is never silently assumed.
URLs: https://www.mindtools.com/a81qk8y/round-robin-brainstorming/ and https://goodgroupdecisions.com/round-robin/
RAID Log
The RAID log (Risks, Assumptions, Issues, Decisions) is the standard project-management artifact for tracking, continuously, the four items a plan cannot survive without. The skill's output distributes those four across its layers: risks (with impact, mitigation, owner) and assumptions (with what-changes-if-wrong and a verification status) in the plan's Risks and Assumptions section, unresolved issues as Open Items, and decisions with rationale/rejected-alternatives/evidence in the companion decision log.
URLs: https://asana.com/resources/raid-log and https://www.smartsheet.com/content/raid-logs
Hunt and Thomas: The Pragmatic Programmer (Rubber-Duck Debugging)
Andy Hunt and Dave Thomas's "rubber duck" practice explains a problem out loud in plain language to surface the gaps in
your own reasoning. It is the basis for the skill's junior-developer-reframing step. When a decision lacks strong
evidence, the skill asks junior-developer to restate the issue in plain language before escalating to you. The
reframing often exposes the unstated assumption or the simpler question the specialists can answer among themselves. The
rubber duck applied to multi-agent specialist facilitation is the resolution step that turns "escalate to user" into
"resolve inside the team."
URL: https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/
Amazon: Have Backbone; Disagree and Commit
Jeff Bezos's "Have Backbone; Disagree and Commit" is the canonical articulation of a principle about disagreement. Teammates may disagree with a decision, but once the evidence has been weighed and every relevant voice has been heard, the team commits to executing it. And the dissent, with its cited evidence, is recorded so the decision can be revisited later if evidence changes. The skill's synthesis output records dissent under disagree-and-commit so the plan can reopen cleanly if evidence changes.
URLs: https://en.wikipedia.org/wiki/Disagree_and_commit and https://www.amazon.jobs/content/en/our-workplace/leadership-principles
Acceptance Criteria and Definition of Done
Acceptance criteria and Definition of Done are the standard project-management artifacts for making "done" testable rather than subjective. The skill's output plan requires a testable definition of done, unambiguous acceptance criteria, and a rollback plan. Vague done-criteria are flagged as open items that block synthesis. The plan-synthesizer will not declare the plan ready if "done" is still subjective.
URLs: https://www.atlassian.com/work-management/project-management/acceptance-criteria and https://www.projectmanager.com/blog/acceptance-criteria-project-management
Danilo Sato: Expand-and-Contract (Parallel Change)
The expand-and-contract pattern (expand the schema / interface / contract, migrate consumers, backfill, flip, contract)
is the default recommendation the skill's devops-engineer and data-engineer sub-agents produce. They recommend it
whenever the feature touches data migration or interface change. The skill's output plan encodes this into the
Work Units and Sequencing table when applicable, because big-bang changes co-deployed with dependent code violate
every rollback constraint.
URL: https://martinfowler.com/bliki/ParallelChange.html
Martin Fowler: Feature Toggles
Fowler's feature-toggles article formalizes flags as a rollout and rollback mechanism distinct from configuration and
permissioning. The skill's output plan records feature-flag strategy in the Operational Readiness section when
devops-engineer contributes: name, default, widening criteria, rollback criterion. This treats the flag as a
reversible ship vehicle rather than a permanent configuration.
URL: https://martinfowler.com/articles/feature-toggles.html
Iterative and Incremental Development
The skill's loop (rounds of specialist review plus facilitation until convergence, capped by size: 1 round for small, 2 for medium, 3 for large) draws on the broader iterative-and-incremental tradition. Craig Larman and Victor Basili documented this tradition, and it is embedded in every modern Agile framework. Iteration gives specialists the chance to update their input as new information lands from other specialists. The cap prevents runaway cycles when facilitation has plateaued.
URL: https://ieeexplore.ieee.org/document/1204375
Related documentation
- Plugin README. The plugin's front door: its skills, agents, and how they fit together.
- Repo root README. The Han suite landing page. Start here if you arrived from outside the docs tree.
/pairing. Drive these resolution rounds collaboratively, stopping after each one so you see its findings as they land rather than only the finished plan.- YAGNI. The evidence-based "You Aren't Gonna Need It" rule this skill applies before committing items. The two gates, the acceptable-evidence list, the named anti-patterns, and the deferral format.
- Skills Index. All skills, grouped by purpose.
- Sizing. The cross-skill sizing model. Explains the small / medium / large bands, the
default-to-small rule, and the
$sizeoverride. /plan-a-feature. The prior step. Produces thefeature-specification.mdthis skill consumes. Running the two in sequence is the intended flow: what first, how second./stakeholder-summary. The optional intermediate step. Turns thefeature-specification.mdinto a plain-language summary for non-technical stakeholders before this skill runs, so the implementation plan starts from a shape stakeholders have already greenlit./iterative-plan-review. The complement for stress-testing the plan after it lands./design-an-api. The narrower sibling for when the open question is the shape of one interface rather than how to deliver the whole feature. This skill produces the committable plan./iterative-plan-reviewiterates on it.plan-synthesizer. The agent the skill dispatches once, at the end, to author the final synthesized plan.discussion-facilitator. The agent the skill dispatches at most once per run, on the spec-maturity gate-trip pass, to audit the round before a person is asked to pause spec-stage work.junior-developer. The generalist stress-tester the skill always includes. When a decision lacks strong evidence, the skill asks this agent to reframe the issue in plain language before escalating to you.readability-editor. Dispatched after the synthesis pass to rewrite the plan's prose for the engineer who will build the feature, preserving every fact and every cross-reference identifier.devops-engineer. Typically engaged when the feature touches deployment, observability, rollout, feature flags, scale, SLO impact, or cost.on-call-engineer. Typically engaged when the plan introduces application-source resilience patterns: timeouts and deadline propagation, retry logic with backoff and jitter, idempotency-key wiring, queue and buffer handling, async / blocking-I/O patterns, bulkhead boundaries, correlation-id propagation, kill-switch wiring. Hard boundary againstdevops-engineer: this agent reads application source only.data-engineer. Typically engaged when the feature touches schema changes, migrations, data movement, or analytics implications.user-experience-designer. Typically engaged when the feature has a user-facing surface, UI, or interaction model.software-architect. Engaged when the feature is mostly internal to one codebase or bounded context and the plan benefits from intra-codebase module, class, and interface recommendations.system-architect. Engaged when the feature crosses a service boundary, introduces a new integration, changes a context-map relationship, or shifts data ownership. Both architects are engaged when the feature has both dimensions.- multi-agent-economics.md. Why this skill uses a team of specialists rather than a single large agent trying to cover every domain.
- skill-decomposition.md. Why this skill owns the "build the implementation plan" slice and hands off to sibling skills.