Han v3.0.0 - Plugin restructure as dependencies#29
Merged
Conversation
Add a top-level han plugin that ships no components of its own and declares han.core and han.github as dependencies, so installing han pulls in the full suite. List all three plugins (han, han.core, han.github) in the marketplace with ./-relative sources.
…ests Sync the marketplace entries to the bumped manifest versions: the han meta-plugin to 3.0.0 and the split-out han.core to a fresh 1.0.0 line.
The plugin was split into han.core (planning, investigation, review, documentation skills plus all agents) and han.github (gh-pr-review, update-pr-description). Update every long-form doc, index, template, and guidance reference to point at the new locations. Skill-building guidance paths globs now cover both han.core/skills and han.github/skills.
…ugin split Rewrite the CLAUDE.md repository layout to show the han / han.core / han.github structure, repoint CONTRIBUTING scaffolding paths, drop the stale skill-count instruction in favor of the count-free catalog convention, and document installing the suite or individual plugins in the README.
Draft feature spec, decision log, and findings header for the new documentation that explains the han.core / han.github / han split and helps readers choose what to install. Closes the spec stage of #30. Co-Authored-By: River Bailey <river.bailey@testdouble.com>
Verified the auto-install dependency behavior against the official Claude Code plugin-dependencies reference (junior-developer's blocker). Narrowed the han/han.github equivalence to 'same skills and agents', made the dependency explanation precede the decision aid, added the no-GitHub-only correction to the README itself, a fifth entry point from the why-solo page, and a structural recommended-option marker. Co-Authored-By: River Bailey <river.bailey@testdouble.com>
New docs/choosing-a-han-plugin.md explains the three-plugin split, the han.github -> han.core dependency (no GitHub-only install), and a which-one-do-you-need guide with the full han suite marked as the recommended default. Wires entry points from the README install section, path-picker, and Documentation list; the Concepts packaging section; the Quickstart opening frame; and the why-solo fit callout. Adds the page to the CLAUDE.md project map. Implements #30. Co-Authored-By: River Bailey <river.bailey@testdouble.com>
Round-2 review of the actual documentation surfaced and fixed: - decision-aid row implied han owns the GitHub skills (it has no components); reworded to 'the full suite includes them' - han.core manifest + marketplace entry wrongly claimed PR-description and PR-code-review skills (those live in han.github); removed - forward-compatibility promise was uncited speculation; reframed around the meta-plugin's documented purpose - em-dash in the table and a pre-existing one in quickstart; removed - Concepts 'See also' bar missing the new page; added - standardized on 'GitHub PR skills'; dropped 'just' from the README - added a marketplace gloss + post-install verification note - softened an unverified runtime claim in the composability section Recorded as round 2 in the plan's team-findings. Refines #30. Co-Authored-By: River Bailey <river.bailey@testdouble.com>
Publishes /plan-work-items output to GitHub issues, one per slice, in
each slice's target repo. Includes the publish pipeline (upload
screenshots, create issues, link within-repo blockers) and reference
files for the slice format, work-items file format, screenshot embed
rules, and reference-artifact inventory.
Brings the skill into line with repository guidance:
- rewrite the description per skill-description-frontmatter (folded,
four components, names plan-work-items and gh-pr-review boundaries,
notes the gh CLI requirement); fix grammar
- add allowed-tools and argument-hint frontmatter
- replace the Step 6 fenced/hardcoded .claude/skills path with prose
using ${CLAUDE_SKILL_DIR} per script-execution-instructions
- remove all gearjot client references in favor of generic <org>/acme
placeholders
- fix dangling references (/han: namespace -> /plan-work-items,
.claude/rules/evidence-required.md, ui-design-from-feature-spec)
Issues are now created unlabeled and unassigned by default. The previously hardcoded `ralph` label and `@me` assignee become optional `--label <name>` and `--assignee <user>` flags, parsed by create-issues.sh and forwarded through publish-work-items.sh. Empty flags expand safely under `set -u` on bash 3.2. Surface the inputs in the frontmatter: argument-hint now lists the target repo(s), the optional label, and the optional assignee, and the SKILL process notes the no-label/no-assignee default.
Add the long-form operator doc for the work-items-to-issues skill and
wire it into the skills index, the CLAUDE.md catalog, and the
han.github layout line. Add a bidirectional downstream pairing on
plan-work-items.
The new GitHub skill made "the two GitHub PR skills" framing stale, so
reframe han.github as "the GitHub skills" (not just PR skills) across
README, concepts, and the choosing-a-han-plugin page, add the skill to
the choosing-page enumeration, and broaden its decision table beyond
PRs. Remove hardcoded skill counts ("two GitHub PR skills", "Seven
sizing-aware skills") in favor of count-free phrasing, per the
"indexes stay complete, not counted" convention.
Sources section carries a TODO to confirm the issue-dependencies API
docs URL.
Resolve the Sources TODO with a researched, corroborated citation for
the GitHub issue-dependencies endpoint that link-blockers.sh uses:
- Canonical REST reference: docs.github.com/en/rest/issues/issue-dependencies
- GA announcement (2025-08-21), which documents the 50-issues-per-
relationship-type limit.
The research confirmed the script's posting contract is already correct:
POST .../issues/{n}/dependencies/blocked_by with the blocker's global
`issue_id` (its database id, not the repo-local number), no preview
header needed. Document that contract and the 50-link limit in
link-blockers.sh, and annotate why the script reads `.id` not `.number`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR splits the single
hanplugin into three published plugins (han,han.core,han.github) wired together through plugin dependencies, and adds awork-items-to-issuesGitHub skill, so that operators can install just the core toolkit or the full GitHub-aware suite, and can publish a planned work breakdown straight to GitHub issues.han.core(all planning, investigation, review, and documentation skills/agents),han.github(GitHub-facing skills, depends onhan.core), andhan(a 3.0.0 meta-plugin with no components that pulls in both viadependencies).han.githubdeclareshan.coreas a dependency, so installing the GitHub skills always brings the core along.work-items-to-issuesskill turns awork-items.mdfile into GitHub issues, one per slice, in each slice's target repo, linking within-repo blockers natively and creating issues unassigned and unlabeled by default.plugin/tohan.core/, plus two skills intohan.github/). Reviewer attention belongs on the four manifest files and the new skill, not the renames.Behavior changes
How the suite is installed and structured:
hanplugin holding everythinghan(3.0.0),han.core(1.0.0),han.github(1.0.0)plugin/han.core/han.github/, which depends onhan.corehanhanmeta-plugin, which depends onhan.core+han.githubNew runtime capability: running
work-items-to-issuesagainst awork-items.mdvalidates the file format (with evidence-based repair prompts), maps each slice to its target repo, writes per-repo work-items files, then runs three idempotent shell scripts to upload UI screenshots, create one issue per slice (blocker-first, resumable), and link within-repoblocked_bydependencies. Cross-repo dependencies are a format error, not a native link.What to look at first
han3.0.0 depends on bothhan.coreandhan.github,han.githubdepends onhan.core, and that this matches the marketplace listing. This is the central decision of the PR and the only deliberate "no GitHub-only install" tradeoff.blocked_bylinks are within-repo only while cross-repo dependencies are surfaced as a format error. Worth confirming this matches how the team expects issue dependencies to behave.hanjumps to 3.0.0 whilehan.coreandhan.githubstart at 1.0.0. Confirm that intent.How this was tested
han/,han.core/,han.github/) exist with their own.claude-plugin/plugin.json.marketplace.jsonlists all three plugins with matching names and versions (han3.0.0,han.core1.0.0,han.github1.0.0).handepends onhan.core+han.github;han.githubdepends onhan.core.publish-work-items.sh,upload-screenshots.sh,create-issues.sh,link-blockers.sh).issues/<N>/dependencies/blocked_by) is cited as verified in the commit history.Files of interest
.claude-plugin/marketplace.json— the single source listing all three plugins, their versions, and descriptions.han/.claude-plugin/plugin.json— the new meta-plugin; itsdependenciesarray is what makes one install pull in both others.han.github/.claude-plugin/plugin.json— declares thehan.coredependency that removes any GitHub-only install path.han.github/.../work-items-to-issues/SKILL.md— the full process for the new skill: repo mapping, format validation, and the publish pipeline.docs/choosing-a-han-plugin.md— new operator-facing guide for deciding which of the three plugins to install.