Skip to content
Development
Skill

/plan-work-items

Break a trusted implementation plan (or other provided context) into independently-grabbable, atomic work items, written to a single work-items.md file. Use when the user wants to convert a plan into work items, create implementation tickets or tasks, divide a plan into work

From plugin
han
35047 skills31 agents

Claude Code

$ npx -y skills add testdouble/han --skill plan-work-items --agent claude-code

SKILL.md

plan-work-items.SKILL.md
name: "plan-work-items"
description: >
  Break a trusted implementation plan (or other provided context) into independently-grabbable, atomic work items,
  written to a single work-items.md file. Use when the user wants to convert a plan into work items, create
  implementation tickets or tasks, divide a plan into work units, or break the plan down into grabbable pieces. Do not
  use when there is no implementation plan yet or the plan is not yet trusted — use plan-implementation to produce the
  plan or iterative-plan-review to harden it first. Does not sequence work into demoable delivery phases — use
  plan-a-phased-build for that. Does not write code — use tdd to implement a work item.
argument-hint: "[implementation plan path or feature name, optional; output folder, optional]"
allowed-tools:
  Read, Write, Edit, Glob, Grep, Agent, Bash(find *), Bash(mkdir *), Bash(cp *),
  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`
  • feature-implementation-plan.md: !`find . -maxdepth 5 -name "feature-implementation-plan.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.

Plan Work Items

Break an implementation plan into vertical slices (tracer bullets) and write them as work items to a single `work-items.md` file.

This skill mostly coordinates: reading the boundary this work descends from, locating the plan or context, resolving where the file goes, printing the breakdown, writing the work-items file. It runs autonomously apart from two named turns: the confirmation turn it takes when no boundary record exists, and the single stop for an input only the user can supply. Step 5 is where the judgement comes into play, in dividing up the plan.

Operating Principles

  • **Run autonomously, with two named exceptions.** After the initial request, run end to end without pausing for human

confirmation. When a decision has a reasonable default (where the file goes, how the plan divides), make it, state it, and proceed. Print the work item breakdown for visibility, but never gate on approval to continue. Two situations are exceptions, and they are the only ones:

  • **The confirmation turn**, taken when no boundary record exists, per Step 0.
  • **The single stop**, taken once when an input only the user can supply is missing and its absence degrades the work

items, per [operator-escalation-rule.md](../../references/operator-escalation-rule.md).

Beyond those two, stop only when the skill genuinely cannot continue: there is no plan or context to work from at all. An expected artifact nobody can produce right now is recorded as a gap and does not stop the run.

  • **One work-items file, no repository awareness.** This skill produces exactly one `work-items.md`. Beside it, the run

also writes or updates the boundary record and persists any visual material it receives, per Step 0 and [planning-boundary-rule.md](../../references/planning-boundary-rule.md); those are companion artifacts, not a second breakdown. The skill does not split work by repository, count repositories, or reason about cross-repository integration. The breakdown is driven only by the plan or context it is given.

  • **Save incrementally — never lose work.** Write the work-items file as soon as the title and intro are drafted, then

append each work item as it is finalized. Do not buffer the whole document in conversation memory and write it at the end.

Rules

  • Do NOT modify, annotate, or comment on the source implementation plan or context. It is read-only input. The boundary

record and the visual-material folder are the exception: those the run writes, per Step 0.

  • **Every work item carries a justification.** It is a named field of its own, `**Justification.**`, placed immediately

before the `**References.**` block, never a line of summary prose. It names one of three things: the work-item language it descends from, the visual material the operator attached, or the asked-for work it is a necessity of. A work item that cannot fill it does not go in the breakdown; it goes in the cut list. Full rule in [scope-justification-rule.md](../../references/scope-justification-rule.md).

  • **Unjustifiable work goes in a visible cut list**, in the work-items file and in the closing summary, naming what the

item would have done in plain language and why it was cut. Do not search outward to a linked, sibling, or closed item to find a justification for it.

  • Each work item is a **vertical slice**: a narrow but complete path through the relevant layers (schema, API, UI,

tests) that is demoable or verifiable on its own. Not a layer, not a stub.

  • **Summary and acceptance criteria drive the item; criteria render at the bottom.** Draft each work item's

plain-language summary first and its acceptance criteria immediately after — before any detail — so every remaining block is written in support of a criterion, and detail that supports no criterion is cut. In the rendered work item, the summary opens and the acceptance criteria sit at the bottom, immediately before Depends on. Test expectations live inside the acceptance criteria; there is no separate Tests block.

  • **The summary is plain context, three to five very sho
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.

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

react4d252k
@facebook@facebookInstall Skill

Questions about plan-work-items.

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