Files
gh-coalesce-labs-catalyst-p…/agents/README.md
2025-11-29 18:14:39 +08:00

439 lines
10 KiB
Markdown

# agents/ Directory: Specialized Research Agents
This directory contains markdown files that define specialized research agents for Claude Code.
Agents are invoked by commands using the `Task` tool to perform focused research tasks in parallel.
## How Agents Work
**Agents vs Commands:**
- **Commands** (`/command-name`) - User-facing workflows you invoke directly
- **Agents** (`@catalyst-dev:name`) - Specialized research tools spawned by commands
**Invocation:** Commands spawn agents using the Task tool:
```markdown
Task(subagent_type="catalyst-dev:codebase-locator", prompt="Find authentication files")
```
**Philosophy:** All agents follow a **documentarian, not critic** approach:
- Document what EXISTS, not what should exist
- NO suggestions for improvements unless explicitly asked
- NO root cause analysis unless explicitly asked
- Focus on answering "WHERE is X?" and "HOW does X work?"
## Available Agents
### Codebase Research Agents
#### codebase-locator
**Purpose**: Find WHERE code lives in a codebase
**Use when**: You need to locate files, directories, or components
- Finding all files related to a feature
- Discovering directory structure
- Locating test files, configs, or documentation
**Tools**: Grep, Glob, Bash(ls \*)
**Example invocation:**
```markdown
Task( subagent_type="catalyst-dev:codebase-locator", prompt="Find all authentication-related files" )
```
**Returns**: Organized list of file locations categorized by purpose
---
#### codebase-analyzer
**Purpose**: Understand HOW specific code works
**Use when**: You need to analyze implementation details
- Understanding how a component functions
- Documenting data flow
- Identifying integration points
- Tracing function calls
**Tools**: Read, Grep, Glob, Bash(ls \*)
**Example invocation:**
```markdown
Task( subagent_type="catalyst-dev:codebase-analyzer", prompt="Analyze the authentication middleware
implementation and document how it works" )
```
**Returns**: Detailed analysis of how code works, with file:line references
---
#### codebase-pattern-finder
**Purpose**: Find existing patterns and usage examples
**Use when**: You need concrete examples
- Finding similar implementations
- Discovering usage patterns
- Locating test examples
- Understanding conventions
**Tools**: Grep, Glob, Read, Bash(ls \*)
**Example invocation:**
```markdown
Task( subagent_type="catalyst-dev:codebase-pattern-finder", prompt="Find examples of how other components handle
error logging" )
```
**Returns**: Concrete code examples showing patterns in use
### Thoughts System Agents
#### thoughts-locator
**Purpose**: Discover existing thought documents about a topic
**Use when**: You need to find related research or plans
- Finding previous research on a topic
- Discovering related plans
- Locating historical decisions
- Searching for related discussions
**Tools**: Grep, Glob, LS
**Example invocation:**
```markdown
Task( subagent_type="catalyst-dev:thoughts-locator", prompt="Find all thoughts documents about authentication" )
```
**Returns**: List of relevant thought documents with paths
---
#### thoughts-analyzer
**Purpose**: Extract key insights from thought documents
**Use when**: You need to understand documented decisions
- Analyzing research documents
- Understanding plan rationale
- Extracting historical context
- Identifying previous decisions
**Tools**: Read, Grep, Glob, LS
**Example invocation:**
```markdown
Task( subagent_type="catalyst-dev:thoughts-analyzer", prompt="Analyze the authentication research document and
extract key findings" )
```
**Returns**: Summary of insights and decisions from documents
### External Research Agents
#### external-research
**Purpose**: Research external frameworks and repositories
**Use when**: You need information from outside sources
- Understanding how popular repos implement features
- Learning framework patterns
- Researching best practices from open-source
- Discovering external documentation
**Tools**: mcp**deepwiki**ask_question, mcp**deepwiki**read_wiki_structure
**Example invocation:**
```markdown
Task( subagent_type="catalyst-dev:external-research", prompt="Research how Next.js implements middleware
authentication patterns" )
```
**Returns**: Information from external repositories and documentation
## Agent File Structure
Every agent file has this structure:
```markdown
---
name: agent-name
description: What this agent does
tools: Tool1, Tool2, Tool3
model: inherit
---
# Agent Implementation
Instructions for the agent...
## CRITICAL: YOUR ONLY JOB IS TO DOCUMENT AND EXPLAIN THE CODEBASE AS IT EXISTS TODAY
- DO NOT suggest improvements...
- DO NOT perform root cause analysis...
- ONLY describe what exists...
```
### Required Frontmatter Fields
- `name` - Agent identifier (matches filename without .md)
- `description` - One-line description for invoking commands
- `tools` - Tools available to the agent
- `model` - AI model to use (usually "inherit")
### Naming Convention
- Filename: `agent-name.md` (hyphen-separated)
- Frontmatter name: `agent-name` (matches filename)
- Unlike commands, agents MUST have a `name` field
## How Commands Use Agents
### Parallel Research Pattern
Commands spawn multiple agents concurrently for efficiency:
```markdown
# Spawn three agents in parallel
Task(subagent_type="catalyst-dev:codebase-locator", ...) Task(subagent_type="catalyst-dev:thoughts-locator", ...)
Task(subagent_type="catalyst-dev:codebase-analyzer", ...)
# Wait for all to complete
# Synthesize findings
```
### Example from research_codebase.md
```markdown
Task 1 - Find WHERE components live: subagent: codebase-locator prompt: "Find all files related to
authentication"
Task 2 - Understand HOW it works: subagent: codebase-analyzer prompt: "Analyze auth middleware and
document how it works"
Task 3 - Find existing patterns: subagent: codebase-pattern-finder prompt: "Find similar
authentication implementations"
```
## Documentarian Philosophy
**What agents do:**
- ✅ Locate files and components
- ✅ Document how code works
- ✅ Provide concrete examples
- ✅ Explain data flow
- ✅ Show integration points
**What agents do NOT do:**
- ❌ Suggest improvements
- ❌ Critique implementation
- ❌ Identify bugs (unless asked)
- ❌ Recommend refactoring
- ❌ Comment on code quality
**Why this matters:**
- Research should be objective
- Understanding comes before judgment
- Prevents bias in documentation
- Maintains focus on current state
## Plugin Distribution
Agents are distributed as part of the Catalyst plugin system:
### Installation
**Install Catalyst plugin**:
```bash
/plugin install catalyst-dev
```
This installs all agents automatically.
### Updates
**Update plugin**:
```bash
/plugin update catalyst-dev
```
Agents are pure research logic with no project-specific configuration, so updates are always safe.
### Per-Project Availability
Agents are available in any project where the catalyst-dev plugin is installed. No per-project setup
needed.
## Creating New Agents
### Step 1: Create Markdown File
```bash
# Create file with hyphen-separated name
touch agents/my-new-agent.md
```
### Step 2: Add Frontmatter
```yaml
---
name: my-new-agent
description: Clear, focused description of what this agent finds or analyzes
tools: Read, Grep, Glob
model: inherit
---
```
### Step 3: Write Agent Logic
```markdown
You are a specialist at [specific research task].
## CRITICAL: YOUR ONLY JOB IS TO DOCUMENT AND EXPLAIN THE CODEBASE AS IT EXISTS TODAY
[Standard documentarian guidelines]
## Core Responsibilities
1. **[Primary Task]**
- [Specific action]
- [What to look for]
2. **[Secondary Task]**
- [Specific action]
- [What to document]
## Output Format
[Specify how results should be structured]
```
### Step 4: Test
```bash
# In this workspace, agents are immediately available via symlinks
# Just restart Claude Code to reload
# Create a command that uses the agent
# Invoke the command to test the agent
```
### Step 5: Validate Frontmatter
```bash
# In Claude Code (workspace only)
/validate-frontmatter
```
## Common Patterns
### Pattern 1: Locator → Analyzer
```markdown
# First, find files
Task(subagent_type="catalyst-dev:codebase-locator", ...)
# Then analyze the most relevant ones
Task(subagent_type="catalyst-dev:codebase-analyzer", ...)
```
### Pattern 2: Parallel Search
```markdown
# Search codebase and thoughts simultaneously
Task(subagent_type="catalyst-dev:codebase-locator", ...) Task(subagent_type="catalyst-dev:thoughts-locator", ...)
```
### Pattern 3: Pattern Discovery
```markdown
# Find patterns after understanding the code
Task(subagent_type="catalyst-dev:codebase-analyzer", ...) Task(subagent_type="catalyst-dev:codebase-pattern-finder", ...)
```
## Tool Access
Agents specify required tools in frontmatter:
**File Operations:**
- `Read` - Read file contents
- `Write` - Create files (rare for agents)
**Search:**
- `Grep` - Content search
- `Glob` - File pattern matching
**Execution:**
- `Bash(ls *)` - List directory contents
**External:**
- `mcp__deepwiki__ask_question` - Query external repos
- `mcp__deepwiki__read_wiki_structure` - Read external docs
## Troubleshooting
### Agent not found when spawned
**Check:**
1. Plugin installed? Run `/plugin list` to verify
2. Frontmatter `name` field matches filename?
3. Restarted Claude Code after adding/modifying agent?
**Solution:**
```bash
# Update plugin
/plugin update catalyst-dev
# Restart Claude Code
```
### Agent auto-updated by plugin
**This is by design** - agents are pure logic with no project-specific config.
**If you need customization:**
- Don't modify plugin agents - they'll be overwritten on update
- Create a custom agent in `.claude/plugins/custom/agents/`
- Use a different name to avoid conflicts
## See Also
- `../commands/README.md` - Documentation for commands in this plugin
- `../../docs/AGENTIC_WORKFLOW_GUIDE.md` - Agent patterns and best practices
- `../../docs/FRONTMATTER_STANDARD.md` - Frontmatter validation rules
- `../../README.md` - Workspace overview
- `../../scripts/README.md` - Setup scripts documentation