Skip to content

maintainer setup and review treat the skills of a Claude Code plugin as library skills #329

Description

@viclafouch

A repository can keep a Claude Code plugin beside its library, with the plugin skills under plugins/<name>/skills/. Default discovery takes every SKILL.md below a skills/ directory that is not hidden (#294), so:

  • maintainer setup registers each plugin skill in skill_tree.yaml, with sources: [].
  • review reports each plugin skill with No source paths declared. An item with this problem cannot be recorded, so maintainer check cannot pass.

review.ignore does not help: it filters unmapped changes, not skill discovery. maintainer remove answers Skill <name> is not registered.

git init -q repro && cd repro
echo '{"name":"library","version":"1.0.0"}' > package.json
mkdir -p skills/request skills/_artifacts plugins/review/.claude-plugin plugins/review/skills/review-code
printf -- '---\nname: request\ndescription: Request safely\nsources: [package.json]\n---\nUse request.\n' > skills/request/SKILL.md
printf -- '---\nname: review-code\ndescription: Review code\n---\nReview guidance.\n' > plugins/review/skills/review-code/SKILL.md
echo '{"name":"review"}' > plugins/review/.claude-plugin/plugin.json
printf 'library: { name: library }\nreview:\n  ignore: [plugins/**]\nskills: []\n' > skills/_artifacts/skill_tree.yaml
git add -A && git commit -qm init
npx @tanstack/intent@0.5.4 maintainer setup
npx @tanstack/intent@0.5.4 review
Registered plugins/review/skills/review-code/SKILL.md (domain uncategorized).
Registered skills/request/SKILL.md (domain uncategorized).
3 item(s) need skill review.
  Skill: "plugins/review/skills/review-code/SKILL.md"
    Unknown: No source paths declared. Add the evidence used to author this skill.

@tanstack/intent 0.5.4, Node.js 24.21, pnpm 12.3.4.

Fix: default discovery in review and maintainer setup skips a SKILL.md that review.ignore matches. A skill that the tree declares is still reviewed. A rule based on .claude-plugin/plugin.json does not work, because maintainer sync writes that file at the repository root for repository distribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions