feat(skill-management): add plugin for skill curation and triage - #536
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📚 Documentation Check ✅Verdict: Passed New plugin added with proper version (1.0.1 ≥ 1.0.0), complete documentation (plugin.json, CLAUDE.md, README.md), and root CLAUDE.md correctly updated. No blocking issues found. PR #536 Documentation Review — skill-management pluginThis PR adds an entirely new ✅ Plugin Version Bump (CRITICAL)
✅ CLAUDE.md Files
✅ README.md
|
| Type | File | Severity | Reason |
|---|---|---|---|
| 📘 claude_md | .claude/rules/plugin-docs.md |
ℹ️ info | Lists only 5 of the now-8 plugins; omits claude-setup, spec-workflow, and the new skill-management plugin. Should be updated to reflect the current full plugin inventory. |
Suggestions (1)
💡 Inline suggestions have been posted as review comments. Click "Commit suggestion" to apply each fix directly.
- ℹ️ .claude/rules/plugin-docs.md: The plugin-docs rule file still references '5 plugins' and omits claude-setup, spec-workflow, and the newly added skill-management. While not blocking, this stale list could cause Claude to skip Notion updates for unlisted plugins.
🤖 Generated by Claude Documentation Validator | Mode: suggest
🤖 Claude Code Review
Re-review: skill-management plugin (PR #536)Re-reviewed against the current HEAD. Every previously-flagged issue is resolved in the code, and the new code is clean. No blocking bugs or security concerns. Verification of prior threadsI confirmed each against the actual files (not just the bot trail):
Minor non-blocking note (no change required)In Overall this is a well-structured, dependency-free plugin (stdlib Python, plain CommonJS hook) with sensible read-only/writable boundaries and a "propose, never auto-apply" posture. Safe to merge. I'm leaving thread 💡 Want a fresh review? Add a comment containing |
There was a problem hiding this comment.
📋 Review verdict: APPROVE
👆 The main review comment above is the source of truth for this PR review. It is automatically updated on each review cycle, so always refer to it for the most current feedback.
This formal review submission is for the verdict only. 1 inline comment(s) are attached below.
Superseded by new review after PR update
There was a problem hiding this comment.
📋 Review verdict: APPROVE
👆 The main review comment above is the source of truth for this PR review. It is automatically updated on each review cycle, so always refer to it for the most current feedback.
This formal review submission is for the verdict only. 3 inline comment(s) are attached below.
🤖 Claude Code ReviewStatus: The review was completed but there was an error posting inline comments. Raw Review OutputPlease check the workflow logs for details. |
Superseded by new review after PR update
There was a problem hiding this comment.
📋 Review verdict: COMMENT
👆 The main review comment above is the source of truth for this PR review. It is automatically updated on each review cycle, so always refer to it for the most current feedback.
This formal review submission is for the verdict only. 2 inline comment(s) are attached below.
There was a problem hiding this comment.
📋 Review verdict: COMMENT
👆 The main review comment above is the source of truth for this PR review. It is automatically updated on each review cycle, so always refer to it for the most current feedback.
This formal review submission is for the verdict only. 2 inline comment(s) are attached below.
🤖 Claude PR Metadata GenerationStatus: ❌ Error
|
🤖 Claude Code ReviewStatus: The review was completed but there was an error posting inline comments. Raw Review OutputPlease check the workflow logs for details. |
🤖 Claude Code ReviewStatus: ❌ Error
|
d741512 to
9c80b53
Compare
There was a problem hiding this comment.
📋 Review verdict: APPROVE
👆 The main review comment above is the source of truth for this PR review. It is automatically updated on each review cycle, so always refer to it for the most current feedback.
This formal review submission is for the verdict only.
New marketplace plugin (8th) porting the local skill-doctor family:
- skill-doctor skill (SKILL.md + references/analysis-rubric.md +
scripts/inventory.py) — inventories/analyzes/mines/improves Claude
Code skills, agents, and commands.
- /skill-map, /skill-mine, /skill-new commands — entry points into the
skill's map/session/create run modes.
- pr-skill-doctor-prompt.cjs PostToolUse hook (+ hooks.json) — once-per-
session nudge to run /skill-mine when a PR is opened.
Adapted for the marketplace: personal paths stripped, bundled-script
paths repointed to ${CLAUDE_PLUGIN_ROOT}, inventory output written to a
temp workspace, and the hook is dependency-free Node (no tsx/bun/jq).
Wire-up: marketplace.json entry, root CLAUDE.md (count 7->8, tree,
version table), bun.lock workspace registration.
9c80b53 to
a10b8f8
Compare
Superseded by new review after PR update
There was a problem hiding this comment.
📋 Review verdict: REQUEST_CHANGES
👆 The main review comment above is the source of truth for this PR review. It is automatically updated on each review cycle, so always refer to it for the most current feedback.
This formal review submission is for the verdict only. 3 inline comment(s) are attached below.
Addresses PR review: `gt create` only stages a local branch/commit and does not open a PR, so the once-per-session /skill-mine nudge fired too early. `gt submit` (and its `gt ss` = submit --stack alias) is the verb that actually creates/updates PRs. Update the matcher regex plus the hook docstring and README to match. Other review items (skill-new $ARGUMENTS separator, inventory.py skill name fallback to parent dir, marketplace commands/*.md scan) were already folded into the squashed plugin commit.
There was a problem hiding this comment.
📋 Review verdict: APPROVE
👆 The main review comment above is the source of truth for this PR review. It is automatically updated on each review cycle, so always refer to it for the most current feedback.
This formal review submission is for the verdict only.
There was a problem hiding this comment.
📋 Review verdict: APPROVE
👆 The main review comment above is the source of truth for this PR review. It is automatically updated on each review cycle, so always refer to it for the most current feedback.
This formal review submission is for the verdict only.
What
Adds a new
skill-managementplugin that ports the localskill-doctorfamily into the toolkit so anyone can install it. It's the curation/triage layer over a user's whole Claude Code customization surface.Components
skill-doctorreferences/analysis-rubric.md+scripts/inventory.py(stdlib-only)./skill-mapmapmode — pure audit./skill-minesessionmode — mine THIS conversation./skill-newcreatemode — codify current work, hand toskill-creator.pr-skill-doctor-prompt.cjsBash|create_pull_request): once-per-session nudge to run/skill-minewhen a PR is opened. Never blocks the PR.Adapted for the marketplace
The local copies bake in personal paths; this port generalizes them:
~/Github/claude-marketplace,~/Github/backend/.claude, or a user-specific memory path).${CLAUDE_PLUGIN_ROOT}; inventory output written to the OS temp dir (never into the plugin install location).tsxto dependency-free Node.cjs(node ${CLAUDE_PLUGIN_ROOT}/...) so it needs notsx/bun/jq, and its session sentinel lives underos.tmpdir().inventory.pyWRITABLE_ROOTSreduced to~/.claude/{skills,agents,commands}(+ project.claude/); git-repo edits are delivered as draft PRs resolved at PR time.Wire-up
.claude-plugin/marketplace.json— new plugin entry.CLAUDE.md, structure tree, and version table (skill-management | 1.0.0).bun.lock— new@uniswap/skill-managementworkspace registration.Validation
node scripts/validate-plugin.cjs packages/plugins/skill-management→ PASSED.nx format:check --uncommittedclean;markdownlint-cli2→ 0 errors.inventory.pysmoke-tested (141 entries, writes to tmp workspace).gh pr create+ MCPcreate_pull_request, silent on repeat (sentinel) and on non-PR Bash.Follow-up
skill-doctor/skill-mine/skill-map/skill-new) intentionally keep their established meta names rather than the repo's verb-noun skill convention, since they're a recognizable family.AI-Generated Description
What
Adds a new
skill-managementplugin (the 8th in the marketplace) that ports the localskill-doctorfamily into the toolkit so anyone can install it. It's the curation/triage layer over a user's whole Claude Code customization surface — inventory, overlap/gap detection, session mining, and codifying new skills.Components
skill-doctorreferences/analysis-rubric.md+scripts/inventory.py(stdlib-only)./skill-mapmapmode — pure audit./skill-minesessionmode — mine THIS conversation./skill-newcreatemode — codify current work, hand toskill-creator.pr-skill-doctor-prompt.cjsBash/create_pull_request): once-per-session nudge to run/skill-minewhen a PR is opened. Never blocks the PR.Why
The local copies of these tools bake in personal paths and assume a specific dev environment, so they can't be installed by anyone else. This port generalizes them and ships them through the marketplace:
~/Github/claude-marketplace,~/Github/backend/.claude, or a user-specific memory path).${CLAUDE_PLUGIN_ROOT}; inventory output written to the OS temp dir (never into the plugin install location).tsxto dependency-free Node.cjs(node ${CLAUDE_PLUGIN_ROOT}/...) so it needs notsx/bun/jq, and its session sentinel lives underos.tmpdir().inventory.pyWRITABLE_ROOTSreduced to~/.claude/{skills,agents,commands}(+ project.claude/); git-repo edits are delivered as draft PRs resolved at PR time.Changes
packages/plugins/skill-management/package.json,project.json,.claude-plugin/plugin.json,CLAUDE.md,README.md) at version1.0.0packages/plugins/skill-management/skills/skill-doctor/SKILL.md(+168),references/analysis-rubric.md(+71),scripts/inventory.py(+381, stdlib-only)packages/plugins/skill-management/commands/skill-map.md,skill-mine.md,skill-new.md— thin wrappers that dispatch toskill-doctormodespackages/plugins/skill-management/hooks/hooks.json+pr-skill-doctor-prompt.cjs(PostToolUse PR-open nudge).claude-plugin/marketplace.jsonCLAUDE.mdbun.lock@uniswap/skill-managementWhy minor / new-plugin
A brand-new plugin with new user-invocable skills, commands, and a hook fits the minor / feature criteria in the root policy ("new skills, agents, commands, or MCP servers added; new features; backward-compatible enhancements"). Initial plugin version pinned at
1.0.0per the policy ("All plugins MUST be versioned at 1.0.0 or higher for production releases").Validation
node scripts/validate-plugin.cjs packages/plugins/skill-management→ PASSED.bunx nx format:check --uncommittedclean;bunx markdownlint-cli2 "**/*.md"→ 0 errors.inventory.pysmoke-tested (141 entries, writes to tmp workspace; no writes into the plugin install location).gh pr create+ MCPcreate_pull_request, silent on repeat (sentinel) and on non-PR Bash.Test plan
plugin.jsonskills / commands / hooks arrays match actual files on diskCLAUDE.mdreflects the new structureCLAUDE.mdCurrent plugins table row + structure tree updated.claude-plugin/marketplace.jsonregisters the new pluginbun.lockregisters@uniswap/skill-managementworkspaceinventory.pywrites toos.tmpdir(), never into the plugin install pathnode-only; notsx/bun/jq)/skill-map,/skill-mine,/skill-newdiscoverable after installFollow-up
skill-doctor/skill-map/skill-mine/skill-new) intentionally keep their established meta names rather than the repo's verb-noun skill convention, since they're a recognizable family.