Problem
When user explicitly invokes a skill (e.g., /syncing-skills-with-hub), Claude silently ignores the request if the skill's scope gate says "Do NOT use when .claude is a submodule." The user's explicit request is overridden without acknowledgment.
Reproduction Steps
- In a project where
.claude is a git submodule, run /syncing-skills-with-hub
- Claude reads the skill's "Do NOT use when" gate
- Claude silently does manual work instead of invoking the skill
- User must repeat request with emphasis to get compliance
Root Cause
No conflict-resolution protocol exists between using-superpowers ("you MUST use skills") and individual skill scope gates ("Do NOT use when X"). Claude defaults to the skill's gate, silently ignoring the user's explicit request.
Architecture Principles Violated
Baseline violates:
- ^fail-fast: Conflict between user intent and skill scope is not surfaced early. Claude silently picks a side instead of exposing the error.
- ^clear-contracts: No defined contract for what happens when user intent conflicts with skill scope gates. Ambiguous behavior.
- ^dry-run-capability: No preview of "I'm about to skip this skill because X" before taking the silent override action.
Ideal incorporates:
- ^fail-fast: Surface the scope conflict immediately when detected, before proceeding.
- ^clear-contracts: Define explicit protocol — user explicit request > skill scope gate, but conflict must be surfaced.
- ^dry-run-capability: Present the conflict and let user decide before any action is taken.
Expected Behavior
Claude surfaces the scope conflict: "This skill says it shouldn't be used for submodule projects. Want me to proceed anyway, or use an alternative?" Never silently ignore.
Related
~/.claude/skills/using-superpowers/SKILL.md - mandatory skill usage directive
~/.claude/skills/syncing-skills-with-hub/SKILL.md:18-19 - scope gate
Note
User's explicit request is the highest-priority signal. Skill scope gates are guardrails, not overrides for explicit user intent.
Acceptance Criteria
Definition of Done
Problem
When user explicitly invokes a skill (e.g.,
/syncing-skills-with-hub), Claude silently ignores the request if the skill's scope gate says "Do NOT use when .claude is a submodule." The user's explicit request is overridden without acknowledgment.Reproduction Steps
.claudeis a git submodule, run/syncing-skills-with-hubRoot Cause
No conflict-resolution protocol exists between
using-superpowers("you MUST use skills") and individual skill scope gates ("Do NOT use when X"). Claude defaults to the skill's gate, silently ignoring the user's explicit request.Architecture Principles Violated
Baseline violates:
Ideal incorporates:
Expected Behavior
Claude surfaces the scope conflict: "This skill says it shouldn't be used for submodule projects. Want me to proceed anyway, or use an alternative?" Never silently ignore.
Related
~/.claude/skills/using-superpowers/SKILL.md- mandatory skill usage directive~/.claude/skills/syncing-skills-with-hub/SKILL.md:18-19- scope gateNote
User's explicit request is the highest-priority signal. Skill scope gates are guardrails, not overrides for explicit user intent.
Acceptance Criteria
Definition of Done