This skill sets up a complete two-agent development system based on the "Effective Harnesses for Long-Running Agents" research. It creates initializer-agent (for project planning) and coding-agent (for incremental implementation), along with enforcement hooks and progress tracking infrastructure. Use when users ask to "set up two-agent system", "install agent harness", "configure Opus delegation", or want to implement the two-agent architecture pattern.
Scanned 2/12/2026
Install via CLI
openskills install ingpoc/SKILLS---
name: two-agent-harness
description: This skill sets up a complete two-agent development system based on the "Effective Harnesses for Long-Running Agents" research. It creates initializer-agent (for project planning) and coding-agent (for incremental implementation), along with enforcement hooks and progress tracking infrastructure. Use when users ask to "set up two-agent system", "install agent harness", "configure Opus delegation", or want to implement the two-agent architecture pattern.
---
# Two-Agent Harness System Setup
This skill installs a complete two-agent development architecture that separates planning from implementation. Based on the research paper "Effective Harnesses for Long-Running Agents", it enables Claude Code to handle complex, multi-session projects with proper progress tracking and state recovery.
## System Overview
The two-agent harness creates a workflow where:
- **Opus** (you) orchestrates and delegates - never implements directly
- **Initializer Agent** (sonnet) breaks down projects into 200+ trackable features
- **Coding Agent** (sonnet) implements features one at a time with quality assurance
## Auto-Setup Process
To set up the complete two-agent system, execute the setup script:
```bash
bash ~/.claude/skills/two-agent-harness/scripts/setup-two-agent-system.sh
```
This script will automatically:
1. Create agent definitions in `~/.claude/agents/`
2. Install enforcement hooks in `~/.claude/hooks/`
3. Add reference documentation to `~/.claude/REFRENCE/TWO-AGENT-HARNESS/`
4. Configure `~/.claude/CLAUDE.md` with delegation instructions
5. Validate the installation
## What Gets Installed
### Agents (`~/.claude/agents/`)
| Agent | Model | Purpose |
|-------|-------|---------|
| `initializer-agent` | sonnet | Breaks down complex tasks into feature-list.json with 200+ features |
| `coding-agent` | sonnet | Implements features systematically, one at a time |
### Hooks (`~/.claude/hooks/`)
| Hook | Event | Action |
|------|-------|--------|
| `pre-tool-guard.sh` | PreToolUse | Blocks Opus from editing src/ files, updates heartbeat |
| `post-tool-guard.sh` | PostToolUse | Reminds about progress updates after code changes |
| `session-progress-check.sh` | SessionStart | Detects pending features and abnormal exits |
| `verify-coding-agent.sh` | SubagentStop | Verifies coding-agent updated progress files |
| `session-end.sh` | SessionEnd | Marks session complete for recovery detection |
### Reference Documentation (`~/.claude/REFRENCE/TWO-AGENT-HARNESS/`)
Nine comprehensive guides covering:
- Framework overview and philosophy
- Agent specifications
- Feature tracking system
- Hook system
- Git integration
- Session workflow
- Testing strategy
- File structure
## Post-Installation Usage
### Starting a New Project
```
User: "Initialize this as a new project with comprehensive feature breakdown"
Opus: [Invokes initializer-agent via Task tool]
Result: Creates feature-list.json with 200+ features, init.sh, and progress tracking
```
### Implementing Features
```
User: "Implement the next feature"
Opus: [Invokes coding-agent via Task tool]
Result: Implements one feature, updates progress, commits changes
```
### Delegation Rules
| Situation | Agent to Use |
|-----------|--------------|
| New project, complex breakdown | `initializer-agent` |
| Implement feature from feature-list | `coding-agent` |
| Need codebase understanding | `Explore` (built-in) |
| Quick fix (<5 min), explicit request | Do directly (say "quick fix" or "direct edit") |
## Bypass Keywords
When you need to bypass the enforcement hooks, include these keywords in your prompt:
- `"quick fix"` - Single line change
- `"direct edit"` - User explicitly requested direct editing
- `"no progress"` - No feature-list.json exists yet
## Project Progress Files
When a project is initialized, these files are created in `.claude/progress/`:
- `feature-list.json` - Comprehensive feature breakdown with status tracking
- `session-state.json` - Session state for recovery detection
- `claude-progress.txt` - Human-readable progress log
## Templates
The skill includes templates for new projects in `assets/templates/`:
- `feature-list-template.json` - Starting point for feature breakdown
- `session-state-template.json` - Initial session state
- `init-template.sh` - Environment setup script
## Troubleshooting
### Agents Not Appearing in Task Tool
Verify agents are in `~/.claude/agents/`:
```bash
ls -la ~/.claude/agents/
```
### Hooks Not Triggering
Check hook configuration in `~/.claude/settings.json` and verify hooks are executable:
```bash
chmod +x ~/.claude/hooks/*.sh
```
### Recovery After Crash
If a session ended abnormally, the `session-progress-check.sh` hook will detect it on next startup and prompt you to invoke `coding-agent` for recovery.
## Reference Documentation
For detailed information, see the reference files:
- `references/two-agent-framework-overview.md` - Full system design
- `references/initializer-agent-spec.md` - Initializer agent details
- `references/coding-agent-spec.md` - Coding agent details
- `references/hook-system.md` - Hook configuration and behavior
- `references/feature-tracking-system.md` - Progress tracking details
- `references/session-workflow.md` - Session lifecycle management
No comments yet. Be the first to comment!