github / github/spec-kit

Allow opting out of model invocation for installed skills (large monorepo skill-budget pain)

Offen
#2,654 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
stale
Vorherrschende Sprache
Python
Sterne
137k
Forks
12.3k
Ø Merge
2 T. 12 Std.
Gemergte PRs (30 T.)
159

Beschreibung

## Problem

Since v0.8.4 ([PR #2099](https://github.com/github/spec-kit/pull/2099), closing [#2098](https://github.com/github/spec-kit/issues/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:

1. **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.
2. **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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start at the `specify init` command and inspect how it writes the init-options file and generated `SKILL.md` frontmatter. Trace the existing `disable-model-invocation` handling, then verify that `--no-model-invocation` persists and emits `disable-model-invocation: true` for all 11 skills while the default remains unchanged.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
ai, cli
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
68/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.