Problem
Since v0.8.4 (PR #2099, closing #2098), specify init --ai claude writes disable-model-invocation: false on every generated SKILL.md, and the toggle was removed as "redundant" because the new default opts skills into auto-invocation. There is no opt-out flag.
This is a real problem in large monorepos that already register many domain skills. Claude Code reserves a small fraction of context for the skill-listing budget; when that budget is exhausted, lower-priority skills get truncated and Claude loses visibility on them entirely. Adding the 11 spec-kit skills as model-invocable pushes us over the limit and silently drops other skills we use far more often.
Two specific pain points:
- Skill-listing budget exhaustion. With ~50 skills already in play (CI helpers, MR workflows, service tooling, etc.), the spec-kit 11 push us past the default
skillListingBudgetFraction. The cheapest fix is to make spec-kit skills user-invocable only, so they cost nothing in the listing.
- Over-triggering on generic prompts. Several spec-kit skill descriptions (
speckit-implement, speckit-tasks, speckit-plan) are generic enough that Claude auto-invokes them on prompts that have nothing to do with SDD — e.g. someone asking to "implement" or "plan" something unrelated.
Workaround
We've patched our internally bundled copy to set disable-model-invocation: true on all 11 skills. But every fresh specify init reverts this, so we either lose the fix on upgrade or have to maintain a long-running patch.
Proposal
Add a --no-model-invocation flag to specify init (and persist to the init-options file) that emits disable-model-invocation: true in generated SKILL.md frontmatter. Default behaviour stays as-is (model-invocable). Opt-in users get manual /speckit.* invocation only.
Alternatively, a per-skill override in a config file would also solve it.
Happy to send a PR if the direction is welcome.
Problem
Since v0.8.4 (PR #2099, closing #2098),
specify init --ai claudewritesdisable-model-invocation: falseon every generated SKILL.md, and the toggle was removed as "redundant" because the new default opts skills into auto-invocation. There is no opt-out flag.This is a real problem in large monorepos that already register many domain skills. Claude Code reserves a small fraction of context for the skill-listing budget; when that budget is exhausted, lower-priority skills get truncated and Claude loses visibility on them entirely. Adding the 11 spec-kit skills as model-invocable pushes us over the limit and silently drops other skills we use far more often.
Two specific pain points:
skillListingBudgetFraction. The cheapest fix is to make spec-kit skills user-invocable only, so they cost nothing in the listing.speckit-implement,speckit-tasks,speckit-plan) are generic enough that Claude auto-invokes them on prompts that have nothing to do with SDD — e.g. someone asking to "implement" or "plan" something unrelated.Workaround
We've patched our internally bundled copy to set
disable-model-invocation: trueon all 11 skills. But every freshspecify initreverts this, so we either lose the fix on upgrade or have to maintain a long-running patch.Proposal
Add a
--no-model-invocationflag tospecify init(and persist to the init-options file) that emitsdisable-model-invocation: truein generated SKILL.md frontmatter. Default behaviour stays as-is (model-invocable). Opt-in users get manual/speckit.*invocation only.Alternatively, a per-skill override in a config file would also solve it.
Happy to send a PR if the direction is welcome.