Skip to content

feat(skills): support user-invocable on claudecode and at the rulesync root with per-target overrides - #1961

Merged
dyoshikawa merged 1 commit into
dyoshikawa:mainfrom
sybers:feat/skills-user-invocable
Jun 20, 2026
Merged

feat(skills): support user-invocable on claudecode and at the rulesync root with per-target overrides#1961
dyoshikawa merged 1 commit into
dyoshikawa:mainfrom
sybers:feat/skills-user-invocable

Conversation

@sybers

@sybers sybers commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Claude Code's skill spec documents a user-invocable: false flag that hides a skill from the / menu while keeping it model-invokable (https://code.claude.com/docs/en/skills). rulesync already routed this field through qwencode, vibe, and factorydroid, but it was missing from claudecode itself — and from the rulesync root.

Users can now set user-invocable once at the rulesync skill frontmatter root and have it applied to every supported tool (claudecode, qwencode, vibe, factorydroid). A value set inside a tool section still wins, so single-target overrides remain possible — same pattern as disable-model-invocation.

Also fixes a small factorydroid bug where user-invocable was accepted in the SKILL.md schema but silently dropped on conversion to/from rulesync.

…om root

- Add user-invocable to ClaudecodeSkillFrontmatterSchema with bidirectional passthrough via the rulesync claudecode section (Claude Code documents this field at https://code.claude.com/docs/en/skills).

- Promote user-invocable to the rulesync skill frontmatter root and propagate to claudecode, qwencode, vibe, factorydroid (the four targets whose upstream spec recognizes the field). Per-target sections can still override the root default.

- Introduce resolveUserInvocable helper mirroring resolveDisableModelInvocation; wire it into the four compatible tools' fromRulesyncSkill conversions.

- Fix factorydroid passthrough that was schema-only (the field was accepted but dropped on conversion to/from rulesync).

- Document the root field and override semantics in docs/reference/file-formats.md and the synced skills/rulesync/file-formats.md.
@dyoshikawa
dyoshikawa merged commit b98572f into dyoshikawa:main Jun 20, 2026
6 checks passed
@dyoshikawa

Copy link
Copy Markdown
Owner

Merged. Thanks! Filed #1967 to track the minor docs follow-ups (vibe example, factorydroid verification).

shaneholloman pushed a commit to shaneholloman/rulesync that referenced this pull request Jun 20, 2026
Follow-up from PR dyoshikawa#1961: the skills frontmatter example listed user-invocable
for claudecode/factorydroid/qwencode but had no vibe: section, even though vibe
supports user-invocable (and allowed-tools). Add a vibe example for consistency.
Also confirmed Factory Droid honors user-invocable per its official docs
(https://docs.factory.ai/cli/configuration/skills), so no schema change is
needed there.
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.

2 participants