---
name: skill-gate
description: |
Before starting any significant task, force explicit evaluation of available
skills. For each potentially relevant skill, state YES/NO with reasoning.
Only proceed to implementation after skills have been consciously evaluated
and activated. Prevents the ~50% "coin flip" activation rate that occurs
when skills are passively available but not deliberately considered.
allowed-tools: |
bash: ls, cat
file: read
---
# Skill Gate
Skills don't help if they're not activated. Research shows passive skill
availability leads to ~50% activation (coin flip). Forced evaluation achieves
80-84% activation. This skill is the gate: no significant work begins until
skills have been explicitly evaluated and relevant ones activated.
## When To Activate
Trigger at the START of:
- Any task that will take more than a few minutes
- Any task involving architecture, refactoring, or significant decisions
- Any task where mistakes would be costly
- When user asks for help with a non-trivial problem
- Before writing any significant amount of code
Do NOT trigger for:
- Quick questions or explanations
- Trivial edits (typo fixes, small changes)
- When user explicitly says "just do it" or "skip the process"
## Instructions
### Step 1: Identify the Task Type
Categorize the incoming task:
```
Task: [Brief description]
Type: [Planning | Debugging | Implementation | Refactoring | Decision | Review | Other]
Complexity: [Trivial | Standard | Significant | Critical]
```
If Trivial, skip the gate. Otherwise, proceed.
### Step 2: Scan Available Skills
List potentially relevant skills for this task type:
```
Potentially relevant skills for [task type]:
| Skill | Relevant? | Reason |
|-------|-----------|--------|
| [skill-name] | YES/NO | [One sentence why] |
| [skill-name] | YES/NO | [One sentence why] |
| ... | ... | ... |
```
### Step 3: Activate Relevant Skills
For each YES skill, explicitly activate:
```
Activating skills:
1. [skill-name] - [what it will help with]
2. [skill-name] - [what it will help with]
```
### Step 4: Proceed with Task
Only NOW begin the actual work, with activated skills guiding the approach.
## Skill Categories Reference
**Planning & Risk**
- battle-plan: Complete planning ritual for significant tasks
- pre-mortem: Anticipate failure modes before starting
- you-sure: Pause before destructive actions
- split-decision: Multi-option analysis for decisions
**Debugging & Problem Solving**
- rubber-duck: Structured problem articulation
- zero-in: Scoped codebase searching
- debug-to-fix: Full debug cycle (elixir)
**Quality & Verification**
- prove-it: Verify outcomes, don't assume
- loose-ends: Check for cruft before committing
- trace-it: Map dependencies before modifying shared code
**Code Discipline**
- stay-in-lane: Match changes to request, prevent scope creep
- sanity-check: Validate assumptions before building on them
- keep-it-simple: Resist over-engineering
**Context & Learning**
- dont-be-greedy: Manage context window carefully
- breadcrumbs: Leave notes for future sessions
- learn-from-this: Extract learnings from failures
- skill-forge: Create new skills from discoveries
**Safety & Refactoring**
- safe-refactor: Refactoring with guardrails (elixir)
- careful-delete: Destruction with ceremony (elixir)
## Quick Reference: Task → Skills
| Task Type | Consider These Skills |
|-----------|----------------------|
| Debugging | rubber-duck, zero-in, debug-to-fix, prove-it |
| New Feature | battle-plan, pre-mortem, stay-in-lane, prove-it |
| Refactoring | trace-it, safe-refactor, pre-mortem, loose-ends |
| Architecture Decision | split-decision, pre-mortem, sanity-check |
| Deleting/Removing | careful-delete, you-sure, trace-it |
| Code Review | prove-it, loose-ends, sanity-check |
| Exploring Codebase | zero-in, dont-be-greedy, breadcrumbs |
| After Failure | learn-from-this, retrospective, skill-forge |
## NEVER
- Skip evaluation on significant tasks
- Rubber-stamp all skills as "not relevant" without real consideration
- Activate skills you won't actually use (noise)
- Let this become a slow ritual - be brisk and decisive
- Gate trivial tasks (wastes time, annoys user)
## ALWAYS
- Evaluate skills at task START, not midway
- Give real YES/NO reasoning, not perfunctory
- Actually follow activated skills' guidance
- Note when a skill SHOULD have been activated but wasn't (feedback loop)
- Be honest about task complexity
## Examples
### Example 1: Feature Request
User: "Add user authentication to the API"
```
Task: Add user authentication to API
Type: Implementation
Complexity: Significant
Potentially relevant skills:
| Skill | Relevant? | Reason |
|-------|-----------|--------|
| battle-plan | YES | Significant feature, needs planning |
| pre-mortem | YES | Auth has many failure modes |
| split-decision | YES | Multiple auth approaches exist |
| stay-in-lane | YES | Easy to over-scope auth |
| prove-it | YES | Must verify auth actually works |
| trace-it | NO | Not modifying existing shared code |
| rubber-duck | NO | Requirements seem clear |
Activating skills:
1. battle-plan - Plan before coding
2. pre-mortem - Anticipate auth failure modes (token expiry, etc.)
3. split-decision - JWT vs session vs OAuth decision
4. stay-in-lane - Only what's requested, not full RBAC
5. prove-it - Verify auth works end-to-end
Proceeding with battle-plan first...
```
### Example 2: Bug Fix
User: "The login page is broken, users can't sign in"
```
Task: Fix broken login
Type: Debugging
Complexity: Standard
Potentially relevant skills:
| Skill | Relevant? | Reason |
|-------|-----------|--------|
| rubber-duck | YES | Need to understand the actual problem |
| zero-in | YES | Need to find where the bug is |
| debug-to-fix | YES | Full debug cycle appropriate |
| prove-it | YES | Must verify fix actually works |
| pre-mortem | NO | Not planning, fixing |
| split-decision | NO | Need to find bug first, not choose approach |
Activating skills:
1. rubber-duck - Clarify expected vs actual behaviour
2. debug-to-fix - Systematic debug cycle
3. prove-it - Verify the fix
Starting with rubber-duck: What exactly happens when users try to sign in?
```
### Example 3: Trivial Task (Skip Gate)
User: "Fix the typo in the README - it says 'teh' instead of 'the'"
```
Task: Fix typo
Type: Implementation
Complexity: Trivial
[Gate skipped - trivial task]
Fixing typo...
```
## The 80/20 Rule
You don't need to evaluate every skill every time. Focus on:
1. The 3-4 most likely relevant skills for this task type
2. Any skill that addresses a known weakness (e.g., scope creep → stay-in-lane)
3. Quality gates (prove-it, loose-ends) for any code-producing task
Speed matters. Be decisive. The goal is conscious consideration, not bureaucracy.
## Why This Skill Exists
Claude has access to powerful skills but often forgets to use them. Not from
inability - from not pausing to consider. This gate creates that pause.
The difference between 50% and 80% activation is the difference between skills
being occasionally helpful and being reliably transformative.
Gate your work. Activate what matters. Then execute.