Repository navigation
Conversation
Droid skills are always written with `disable-model-invocation: false`. `specify init --integration droid --integration-options="--no-model-invocation"` now writes `true` for the core command skills (and preset overrides of them) so Droid does not invoke them automatically; they stay available as `/speckit-<command>`. The default is unchanged (github#2654). Mirrors the Claude option from github#4919: setup() records the option, and post_process_skill_content() applies it only to `speckit-<core>` skills in CORE_COMMAND_NAMES, so extension skills stay model-invocable for mandatory hooks. The option persists in .specify/integration.json and is reapplied by `specify integration upgrade droid`. Commands that rewrite skills without calling setup() (preset add/remove/update, integration use/switch) keep the default; the docs say so and point at `upgrade droid --force`. Assisted-by: Claude Code (model: claude-sonnet-5-5, autonomous) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J3taepmtmjGTxTn4W1xb7q
There was a problem hiding this comment.
🟢 Approval recommended
The narrowly scoped change preserves default behavior and includes targeted lifecycle coverage, with only a non-blocking documentation nit remaining.
1 open issue
What changed in this PR
Adds an opt-in Droid setting that makes core Spec Kit skills user-invocable only, following the existing Claude option while preserving default behavior.
Changes:
- Apply
--no-model-invocationto core skills while keeping extension skills model-invocable. - Add coverage for option persistence, upgrades, resets, preset overrides, and extension hooks.
- Document usage and lifecycle limitations.
| File | Description |
|---|---|
tests/integrations/test_integration_droid.py |
Tests enabled/default behavior and lifecycle handling. |
src/specify_cli/integrations/droid/__init__.py |
Declares the option and controls core-skill frontmatter. |
docs/integrations/droid.md |
Explains usage, persistence, and reapplication caveats. |
Review effort: Max
|
Please address Copilot feedback |
The post_process_skill_content() docstring said skills are always both user- and Droid-invocable, which is no longer true once --no-model-invocation is set. Assisted-by: Claude Code (model: claude-opus-5-5, autonomous) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015w5WirGUspLsYEpCkaHWxV
|
@mnriem Addressed the Copilot feedback in 90170de: the Tests: Disclosure: posted on behalf of @echarrod by Claude Code (model: claude-opus-5-5, autonomous mode). The agent made the change, ran the tests and wrote this comment. |
There was a problem hiding this comment.
🔵 Needs a closer look
The opt-in Droid feature depends on unverified Factory runtime behavior for context-budget effects and workflow dispatch with disable-model-invocation: true, with no manual Droid validation evidence provided.
No open issues 🎉
Review effort: Max
|
Thanks for documenting the limitations. The option appears to fit within the integration boundary, but could you provide manual Droid validation showing that explicit user invocation and Spec Kit workflow dispatch still work with AI disclosure: Drafted with GitHub Copilot assistance. |
Validated against Droid 1.0.0: flagged core skills drop out of the model's skill listing, /speckit-<command> and workflow dispatch still run them, and the model can still invoke them via its Skill tool when a prompt names one. Assisted-by: Claude Code (model: claude-opus-5-5, autonomous)
|
@mnriem Validation results for Setup:
For the workflow run,
In the prose-named case, the model's tool call with the option on was Limits of this check:
Disclosure: posted for @echarrod by Claude Code (model: claude-opus-5-5, autonomous mode). The agent installed Droid, ran every check above, and wrote this comment and the docs change. @echarrod only authenticated the Droid CLI and did not test anything himself. |

Description
Refs #2654. Follow-up to #4919 (Claude), as proposed there for Droid.
Adds a Droid-only integration option:
specify init my-project --integration droid --integration-options="--no-model-invocation"disable-model-invocation: trueon the corespeckit-*command skills, including preset overrides of them. Factory's skills docs say this "prevents Droid from invoking the skill automatically. Users can still invoke it directly." The default is unchanged.speckit.git.featureneed the model to invoke them.integration.json, sospecify integration upgrade droidreapplies it.Differences from Claude:
multi_install_safelike Claude, so the lifecycle caveats (preset add/remove/update, bundles,integration use,switchwhen not default,upgrade --force) carry over unchanged.Only the Droid package, its tests and
docs/integrations/droid.mdchange; no sharedbase.pychange.AI Disclosure
AI disclosure: Written for @echarrod by Claude Code (claude-sonnet-5-5) running autonomously. It wrote the code, tests and docs, ran the test suite and an automated
/code-review medium. @echarrod reviewed it before marking it ready.