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…
Capture structured feedback on the Han skills and agents used in the current session and optionally post it as a GitHub issue to testdouble/han. Use at the end of any session where one or more han-* skills or agents ran, to rate a run, log what worked and what didn't, or submit
$ npx -y skills add testdouble/han --skill han-feedback --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/han-feedbackContext preview
The summary Claude sees to decide when to auto-load this skill.
Capture structured feedback on the Han skills and agents used in the current session and optionally post it as a GitHub issue to testdouble/han. Use at the end of any session where one or more han-* skills or agents ran, to rate a run, log what worked and what didn't, or submit
name: han-feedback
description: >
Capture structured feedback on the Han skills and agents used in the current session and optionally post it as a
GitHub issue to testdouble/han. Use at the end of any session where one or more han-* skills or agents ran, to rate a
run, log what worked and what didn't, or submit observations for maintainers. Does not review code, investigate bugs,
or research options; use code-review, investigate, or research for those. Does not provide feedback on skills or
agents from non-Han plugins.
allowed-tools:
Read, Write, Bash(ls *), Bash(mkdir *), Bash(gh *), Bash(date *),
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.
`han-coding`, `han-github`, `han-reporting`, `han-feedback`, and any future `han-*` plugin). Skills and agents from non-Han plugins are out of scope.
of whether it finished or was cancelled. Feedback on a partial run is still feedback.
are still in scope; record which ones contributed so the feedback names where specialist value came from.
repository. Ambiguous confirmation is treated as a stop, not a go.
exists for today is updatable, not closed: when the session continued past it, or the user asks for a compiled report, read it and update it in place rather than skipping. Never overwrite what is there. Skip only when nothing new has happened since that file was written.
was compacted before running this skill, earlier invocations may not be visible.
Look back through the conversation for any use of a Han plugin component. A component counts as used if it was invoked, regardless of whether it completed or was cancelled.
**Han skills.** Look for invocations of skills namespaced to any `han-*` plugin. The namespace is the plugin name followed by a colon: `han-core:`, `han-planning:`, `han-coding:`, `han-github:`, `han-reporting:`, `han-feedback:`, and the same shape for any future `han-*` plugin (treat a bare `han:` prefix as Han too). Watch for slash-command invocations (like `/han-planning:plan-a-feature`), messages showing a skill launching (like "Launching skill: han-planning:plan-a-feature"), and any output that identifies a specific Han skill ran.
**Han agents.** Look for dispatches of agents from any `han-*` plugin. For example, an `Agent` tool call whose `subagent_type` is `han-core:adversarial-security-analyst`, or skill output naming a Han agent it launched (`evidence-based-investigator`, `plan-synthesizer`, `risk-analyst`, and so on). Record each distinct Han agent that ran, whether a skill dispatched it or it was invoked directly.
Build one list of the Han skills used and one list of the Han agents used. Deduplicate each.
If no Han skill or agent invocations are visible in the current context window, ask the user before stopping: "No Han skill or agent invocations are visible in this context window. If you ran Han skills or agents earlier but the session was compacted, list what you used and I will generate feedback for them." If the user confirms none were used, stop without writing any file.
Check whether `~/.claude/han-feedback/` exists by running `ls ~/.claude/han-feedback/ 2>/dev/null`. If the command fails (directory absent), run `mkdir -p ~/.claude/han-feedback/` before proceeding.
Run `ls ~/.claude/han-feedback/ 2>/dev/null` and identify any files whose name begins with today's date (from Project Context). A file already covering a component used this session is the file this run updates, not a reason to skip.
Read each matching file, then decide between two paths:
**Nothing new has happened.** Every component in this session is already covered, and the session produced nothing the existing file does not record: no further runs of those components, no new problems, no correction you have not already written down. Report the existing file paths, say plainly that nothing new happened since they were written, and stop.
**Something new has happened.** The session continued past that file, a covered component ran again, a new problem surfaced, or the user asked for a compiled report. Update the file in place. Add the new material and preserve everything already there; never overwrite it. Then state the update: name the file you updated and what you added to it, so the user is not left guessing whether their newer session was captured.
A run that continued past an exis
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…