han-release
Cut a Han release: update CHANGELOG.md with the changes since the last release, bump and tag every plugin that changed as {plugin-name}--v{version} so a…
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
$ npx -y skills add testdouble/han --skill plan-work-items --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/plan-work-itemsContext preview
The summary Claude sees to decide when to auto-load this skill.
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
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")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.
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.
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:
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.
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.
append each work item as it is finalized. Do not buffer the whole document in conversation memory and write it at the end.
record and the visual-material folder are the exception: those the run writes, per Step 0.
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).
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.
tests) that is demoable or verifiable on its own. Not a layer, not a stub.
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.
Han is a suite of AI skills and agents for solo (or small-team) product engineers.
Cut a Han release: update CHANGELOG.md with the changes since the last release, bump and tag every plugin that changed as {plugin-name}--v{version} so a…
Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate. On a non-default branch, scopes the…
Produces a progressive-disclosure overview of unfamiliar code or a pull request's changes with code-overview and publishes the resulting overview to a…
Runs an evidence-based investigation of a bug, failure, or unexpected behavior with investigate and publishes the resulting investigation report to a…
Publishes a local Markdown file to a user-specified Confluence location, creating a new page or updating an existing one through the Atlassian MCP server. Use…
Builds a feature specification from scratch with plan-a-feature and publishes it to a user-specified Confluence location, posting the spec as a parent page and…