# Authority Hierarchy When guidance from different sources conflicts, follow this precedence order. ## Precedence Order 1. **Rules** (`.claude/rules/*.md`) — Highest authority. Project-defined requirements. 2. **Plugin enforcement** (e.g., Superpowers) — Hard workflow enforcement. Deletes code without tests if TDD is active. 3. **Instincts / learned patterns** — Supplementary suggestions from accumulated experience. 4. **Defaults** — Built-in AI assistant behavior. Baseline when nothing else applies. ## Key Principles - Instincts **supplement** rules — they never **override** them - If a learned pattern contradicts a rule, follow the rule without hesitation - Instincts are suggestions; rules are requirements - When referencing instincts, say "also consider" not "must follow" - Allow user override of instincts without friction ## Plugin Authority When a workflow enforcement plugin is installed (e.g., Superpowers), its mechanisms are **hard constraints, subordinate only to explicit project rules**: - **TDD enforcement** — deletes production code written without failing tests first - **Debugging discipline** — systematic debugging workflow required for bugs - **Verification requirements** — evidence before completion claims **When enforcement plugins are NOT installed:** TDD becomes advisory (instinct-level), not enforced. All other rules still apply. ## User Override Behavior | Level | Override Behavior | |-------|-------------------| | Rules | Cannot be overridden without changing the rule file. | | Plugin enforcement | Requires explicit acknowledgment: "I understand this skips TDD, proceed anyway." | | Instincts | Can be overridden freely. | | Defaults | Can be overridden freely. | Overriding enforcement plugins is allowed but requires conscious acknowledgment. This prevents accidental skipping while preserving user agency. ## Examples | Conflict | Resolution | |----------|------------| | Rule: "commit frequently" vs Instinct: "batch commits" | Follow rule: commit frequently | | Instinct: "use pytest-asyncio for async tests" (no conflicting rule) | Follow instinct | | User says "skip tests this time" vs Instinct: "always run tests" | Follow user (instincts are suggestions) | | Plugin: "delete code without tests" vs User: "skip tests this once" | User must explicitly acknowledge the override | | Rule: "commit frequently" vs Plugin: "verify before commit" | Both apply: verify first, then commit |