# Domain Hooks

Architect-specific questions and anti-patterns for brainstorming. Reference the relevant section based on what's being designed.

---

## Skill

### Key Questions

- **Trigger**: When should this skill activate? What user intent or request invokes it?
- **Context needs**: What does Claude need to know to execute? Where does that knowledge live?
- **Boundaries**: What is explicitly out of scope? What should trigger a different skill?
- **Output**: What does success look like? A file? A conversation? An action?

### Anti-patterns to Critique

| Anti-pattern | What to look for |
|--------------|------------------|
| Over-specification | Skill tells Claude HOW to do things instead of WHAT knowledge exists and WHERE |
| Kitchen-sink scope | Skill tries to handle too many scenarios; should be split |
| Missing escape hatch | No guidance on when NOT to use the skill |
| Implementation in SKILL.md | SKILL.md contains code examples or step-by-step procedures instead of pointers to references |

### Progressive Disclosure Check

- Does SKILL.md fit in ~50 lines?
- Are details in referenced docs, not inline?
- Can Claude load context incrementally as needed?

---

## Plugin

### Key Questions

- **Cohesion**: What unifies the skills in this plugin? What's the theme?
- **Boundary**: Where does this plugin's responsibility end? What's adjacent but separate?
- **Dependencies**: Does this plugin depend on others? Should it?
- **User**: Who installs this plugin? What problem are they solving?

### Anti-patterns to Critique

| Anti-pattern | What to look for |
|--------------|------------------|
| Kitchen-sink | Plugin contains unrelated skills that happen to be made by same author |
| Overlapping scope | Skills within plugin have unclear boundaries with each other |
| Missing entry point | No clear CLAUDE.md or SKILL.md directing users to capabilities |
| Dependency bloat | Plugin requires many other plugins to function |

### Structure Check

- Does plugin have clear CLAUDE.md explaining what it offers?
- Are skills cohesive (related purpose) not just co-located?
- Is the plugin installable and usable independently?

---

## Agent

### Key Questions

- **Task fit**: What specific task type does this agent handle? When is it dispatched?
- **Tools**: What tools does the agent need? What tools should it NOT have?
- **Autonomy level**: How much should it decide on its own vs. ask for guidance?
- **Output contract**: What does the agent return to the caller?

### Anti-patterns to Critique

| Anti-pattern | What to look for |
|--------------|------------------|
| Tool overload | Agent has access to tools it doesn't need |
| Unclear boundaries | Agent's responsibility overlaps with other agents or main thread |
| Missing output contract | Caller doesn't know what to expect back |
| Over-autonomy | Agent makes decisions that should be escalated |

### Dispatch Check

- Is it clear when to use this agent vs. doing the work in main thread?
- Does the agent description in Task tool registry accurately describe capability?
- Can the agent complete its task with the tools provided?

---

## Slash Command

### Key Questions

- **Trigger**: What does the user type to invoke? Is it memorable?
- **Input**: What arguments does it accept? What's required vs. optional?
- **Output**: What happens when invoked? File created? Action taken? Skill loaded?
- **Discoverability**: How does user learn this command exists?

### Anti-patterns to Critique

| Anti-pattern | What to look for |
|--------------|------------------|
| Overloaded command | Command does too many different things based on args |
| Unclear invocation | User can't guess what to type |
| Missing feedback | Command runs silently without confirming action |
| Duplicates skill | Command is just an alias for a skill with no added value |

### Naming Check

- Is the command name a verb? (commit, audit, review)
- Is it 1-2 words max?
- Does it conflict with existing commands?

---

## Description (Frontmatter)

### Key Questions

- **Escape hatch**: Does the description help Claude know when NOT to use this?
- **Trigger clarity**: Is it clear what user intent/request activates this?
- **Specificity**: Is it specific enough to avoid false positives?

### Anti-patterns to Critique

| Anti-pattern | What to look for |
|--------------|------------------|
| Too broad | Description matches requests it shouldn't handle |
| Too narrow | Description misses valid use cases |
| Missing negative triggers | No "don't use when" guidance |
| Marketing language | Description sells rather than describes |

### Test

Read the description and ask: "If I were Claude seeing a user request, would this description help me decide correctly whether to use this?"
