Skip to content

chore(skills): ship the 18 ghs-* skills as an installable plugin - #7

Merged
phmatray merged 1 commit into
mainfrom
chore/ship-skills-as-plugin
Jul 25, 2026
Merged

chore(skills): ship the 18 ghs-* skills as an installable plugin#7
phmatray merged 1 commit into
mainfrom
chore/ship-skills-as-plugin

Conversation

@phmatray

Copy link
Copy Markdown
Contributor

Problem

The 18 ghs-* skills live in skills/.claude/skills/ — a project-scoped directory. Claude Code confirms the scope on load:

(from github-toolkit/skills/.claude/skills — applies when working on files under github-toolkit/skills/)

So a toolkit built to audit, triage and fix other people's repositories is only available while you are sitting inside its own skills/ folder. That is the one directory where it is least useful.

Fix

A marketplace manifest at the repo root plus a plugin manifest, making the skills installable:

/plugin marketplace add Atypical-Consulting/github-toolkit
/plugin install github-skills@github-toolkit

Why source points at ./skills/.claude instead of moving the files

.claude/skills/ is referenced in ~20 places, and not only in prose:

  • the stage → skill routing table inside ghs-orchestrate/SKILL.md (7 rows of .claude/skills/ghs-*/SKILL.md)
  • the Skills path: {path to .claude/skills} line in every agent prompt (ghs-repo-scan, ghs-action-fix, ghs-backlog-fix, ghs-issue-implement)
  • shared/checks/** and shared/references/sync-format.md
  • CLAUDE.md, CONTRIBUTING.md, README.md of the subtree

Moving the tree would mean rewriting all of it and would break ghs-orchestrate routing on any line missed — for no functional gain, since skills/.claude/ already has the exact shape a plugin root needs: <plugin-root>/skills/<skill-name>/SKILL.md. Pointing at it costs zero file moves.

shared/ carries no SKILL.md, so skill discovery ignores it while the skills keep reaching it by relative path. Verified: find skills/.claude/skills/shared -name SKILL.md → empty.

Verification

  • both manifests parse as valid JSON
  • all 18 skills enumerate under skills/.claude/skills/, plus shared/ which is correctly not a skill
  • no skill content modified — this PR adds two manifests and a README section, nothing else

The skills live in a project-scoped `skills/.claude/skills/`, so today they only
load while working inside `skills/` — for a toolkit whose entire purpose is to
operate on *other* repositories, that is the one place they are least useful.

Add a marketplace manifest at the repo root and a plugin manifest pointing at
the existing directory:

    /plugin marketplace add Atypical-Consulting/github-toolkit
    /plugin install github-skills@github-toolkit

`source` targets `./skills/.claude` rather than moving the skills, because
`.claude/skills/` is referenced in ~20 places — including the routing table
inside `ghs-orchestrate/SKILL.md` and the "Skills path:" line of every agent
prompt. Moving the tree would break that routing for no gain; the directory
already has the standard `<plugin-root>/skills/<name>` shape.

`shared/` carries no SKILL.md, so skill discovery ignores it while the skills
keep reaching it by relative path.
@phmatray
phmatray merged commit f769609 into main Jul 25, 2026
1 check passed
@phmatray
phmatray deleted the chore/ship-skills-as-plugin branch July 25, 2026 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant