vt-c-skill-demote¶
Demote a global toolkit skill to product scope, regenerate its paths block, remove the global symlink (AD-2), and commit. Use when a global skill actually belongs to one product only.
Plugin: core-standards
Category: Other
Command: /vt-c-skill-demote
Skill Demote¶
Restricts a global toolkit skill to a specific product scope.
When to Use¶
/vt-c-toolkit-reviewflagged a skill for product mismatch.- A skill marked
scope: globalshould only appear in one product's repos. - Demoting removes the
~/.claude/skills/symlink so the skill no longer auto-loads outside product repos (per AD-2).
Prerequisites¶
- Skill exists in
plugins/core-standards/skills/<slug>/. - Target product is registered in
intake/projects.yaml products:. - You are in the toolkit repo (or
TOOLKIT_ROOTis set).
Execution¶
Run from the toolkit repo root:
bash plugins/core-standards/skills/skill-demote/scripts/demote.sh \
vt-c-<skill-name> --to-product <ProductName>
The vt-c- prefix is optional. The script:
1. Validates <ProductName> against intake/projects.yaml products:
2. Sets scope: product:[<ProductName>] in frontmatter
3. Runs regenerate-skill-paths.sh --write — writes the product paths block
4. Removes ~/.claude/skills/vt-c-<slug> symlink (AD-2)
5. Removes vt-c-<slug> -> <slug> from the manifest
6. Commits with message feat: demote vt-c-<slug> to scope: product:[<ProductName>]
Edge Cases¶
- Unknown product: script aborts — add the product to
intake/projects.yaml products:first. - Symlink already absent: treated as a no-op for the remove step; commit still produced.
- Re-promote: run
/vt-c-skill-promoteagain if the skill should return to global scope.
Integration Points¶
plugins/core-standards/skills/skill-promote/— forward operationplugins/core-standards/bin/regenerate-skill-paths.sh— builds paths block from projects.yamlplugins/core-standards/.claude-plugin/skill-symlinks.manifest— entry removed- Pre-commit hook: verifies resulting paths block is current after demote
Anti-patterns¶
- Never hand-edit the AUTO-GENERATED paths block — the pre-commit hook blocks the commit. Use
--writemode to regenerate. - Don't delete skills — demote preserves history; deletion is destructive and irreversible.
Success Criteria¶
scope: product:[<ProductName>]in SKILL.md frontmatter.- AUTO-GENERATED block present with correct product glob patterns.
- No
~/.claude/skills/vt-c-<slug>symlink (AD-2). - Manifest entry removed.
git log -1shows the demote commit.