2026-02-19 17:58:53 +00:00
[ [ component ] ]
name = "frontend"
path = "frontend"
setup = [ "pnpm install" , "pnpm run build" ]
teardown = [ ]
[ [ component ] ]
name = "server"
path = "."
2026-02-20 11:57:25 +00:00
setup = [ "mkdir -p frontend/dist" , "cargo check" ]
2026-02-19 17:58:53 +00:00
teardown = [ ]
Accept story 34: Per-Project Agent Configuration and Role Definitions
Replace single [agent] config with multi-agent [[agent]] roster system.
Each agent has name, role, model, allowed_tools, max_turns, max_budget_usd,
and system_prompt fields that map to Claude CLI flags at spawn time.
- AgentConfig expanded with structured fields, validated at startup (panics
on duplicate names, empty names, non-positive budgets/turns)
- Backwards-compatible: legacy [agent] format auto-wraps with deprecation warning
- AgentPool uses composite "story_id:agent_name" keys for concurrent agents
- agent_name added to AgentEvent variants, AgentInfo, start/stop/subscribe APIs
- GET /agents/config returns roster, POST /agents/config/reload hot-reloads
- POST /agents/start accepts optional agent_name, /agents/stop requires it
- SSE route updated to /agents/:story_id/:agent_name/stream
- Frontend: roster badges, agent selector dropdown, composite-key state
- Project root initialized to cwd at startup so config endpoints work immediately
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:46:14 +00:00
[ [ agent ] ]
name = "supervisor"
role = "Coordinates work, reviews PRs, decomposes stories."
model = "opus"
2026-02-20 11:57:25 +00:00
max_turns = 200
max_budget_usd = 15.00
prompt = "" " You are the supervisor for story { { story_id } } . Your job is to coordinate coder agents to implement this story .
2026-02-20 12:42:19 +00:00
Read CLAUDE . md first , then . story_kit / README . md to understand the dev process ( SDTW ) . You are responsible for ensuring coders follow this process .
2026-02-20 11:57:25 +00:00
## Your MCP Tools
You have these tools via the story-kit MCP server :
- start_agent ( story_id , agent_name ) - Start a coder agent on a story
- get_agent_output ( story_id , agent_name , timeout_ms ) - Poll agent output ( returns recent events , call repeatedly )
- list_agents ( ) - See all running agents and their status
- stop_agent ( story_id , agent_name ) - Stop a running agent
- get_story_todos ( story_id ) - Get unchecked acceptance criteria for a story in current /
- ensure_acceptance ( story_id ) - Check if a story passes acceptance gates
## Your Workflow
2026-02-20 12:42:19 +00:00
1 . Read CLAUDE . md and . story_kit / README . md to understand the project and dev process
2 . Read the story file from . story_kit / stories / to understand requirements
3 . Move it to current / if it is in upcoming /
4 . Start coder-1 on the story : call start_agent with story_id = "{{story_id}}" and agent_name = "coder-1"
5 . Monitor progress : call get_agent_output every 30 -60 seconds to check on the agent
6 . If the agent completes , review the worktree changes
7 . If the agent gets stuck or fails , stop it and start a fresh agent
8 . When the work looks complete , call ensure_acceptance to verify all gates pass
9 . STOP here . Do NOT accept the story or merge to master . Report the status to the human for final review and acceptance .
2026-02-20 11:57:25 +00:00
## Rules
- Do NOT implement code yourself - delegate to coder agents
- Only run one coder at a time per story
2026-02-20 12:42:19 +00:00
- Focus on coordination , monitoring , and quality review
- Never accept stories or merge to master - that is the human ' s job
- Your job ends when ensure_acceptance passes and you have reported the result "" "
system_prompt = "You are a supervisor agent. Read CLAUDE.md and .story_kit/README.md first to understand the project dev process. Use MCP tools to coordinate sub-agents. Never implement code directly - always delegate to coder agents and monitor their progress. Never accept stories or merge to master - get all gates green and report to the human."
Accept story 34: Per-Project Agent Configuration and Role Definitions
Replace single [agent] config with multi-agent [[agent]] roster system.
Each agent has name, role, model, allowed_tools, max_turns, max_budget_usd,
and system_prompt fields that map to Claude CLI flags at spawn time.
- AgentConfig expanded with structured fields, validated at startup (panics
on duplicate names, empty names, non-positive budgets/turns)
- Backwards-compatible: legacy [agent] format auto-wraps with deprecation warning
- AgentPool uses composite "story_id:agent_name" keys for concurrent agents
- agent_name added to AgentEvent variants, AgentInfo, start/stop/subscribe APIs
- GET /agents/config returns roster, POST /agents/config/reload hot-reloads
- POST /agents/start accepts optional agent_name, /agents/stop requires it
- SSE route updated to /agents/:story_id/:agent_name/stream
- Frontend: roster badges, agent selector dropdown, composite-key state
- Project root initialized to cwd at startup so config endpoints work immediately
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:46:14 +00:00
[ [ agent ] ]
name = "coder-1"
role = "Full-stack engineer. Implements features across all components."
model = "sonnet"
2026-02-20 11:57:25 +00:00
max_turns = 50
Accept story 34: Per-Project Agent Configuration and Role Definitions
Replace single [agent] config with multi-agent [[agent]] roster system.
Each agent has name, role, model, allowed_tools, max_turns, max_budget_usd,
and system_prompt fields that map to Claude CLI flags at spawn time.
- AgentConfig expanded with structured fields, validated at startup (panics
on duplicate names, empty names, non-positive budgets/turns)
- Backwards-compatible: legacy [agent] format auto-wraps with deprecation warning
- AgentPool uses composite "story_id:agent_name" keys for concurrent agents
- agent_name added to AgentEvent variants, AgentInfo, start/stop/subscribe APIs
- GET /agents/config returns roster, POST /agents/config/reload hot-reloads
- POST /agents/start accepts optional agent_name, /agents/stop requires it
- SSE route updated to /agents/:story_id/:agent_name/stream
- Frontend: roster badges, agent selector dropdown, composite-key state
- Project root initialized to cwd at startup so config endpoints work immediately
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:46:14 +00:00
max_budget_usd = 5.00
2026-02-20 12:42:19 +00:00
prompt = "You are working in a git worktree on story {{story_id}}. Read CLAUDE.md first, then .story_kit/README.md to understand the dev process. Pick up the story from .story_kit/stories/ - move it to current/ if needed. Follow the SDTW process through implementation and verification (Steps 1-3). The worktree and feature branch already exist - do not create them. Check .mcp.json for MCP tools. Do NOT accept the story or merge - commit your work and stop."
system_prompt = "You are a full-stack engineer working autonomously in a git worktree. Follow the Story-Driven Test Workflow strictly. Run cargo clippy and biome checks before considering work complete. Commit all your work before finishing - use a descriptive commit message. Do not accept stories, move them to archived, or merge to master - a human will do that. Do not coordinate with other agents - focus on your assigned story."
Accept story 34: Per-Project Agent Configuration and Role Definitions
Replace single [agent] config with multi-agent [[agent]] roster system.
Each agent has name, role, model, allowed_tools, max_turns, max_budget_usd,
and system_prompt fields that map to Claude CLI flags at spawn time.
- AgentConfig expanded with structured fields, validated at startup (panics
on duplicate names, empty names, non-positive budgets/turns)
- Backwards-compatible: legacy [agent] format auto-wraps with deprecation warning
- AgentPool uses composite "story_id:agent_name" keys for concurrent agents
- agent_name added to AgentEvent variants, AgentInfo, start/stop/subscribe APIs
- GET /agents/config returns roster, POST /agents/config/reload hot-reloads
- POST /agents/start accepts optional agent_name, /agents/stop requires it
- SSE route updated to /agents/:story_id/:agent_name/stream
- Frontend: roster badges, agent selector dropdown, composite-key state
- Project root initialized to cwd at startup so config endpoints work immediately
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:46:14 +00:00
[ [ agent ] ]
name = "coder-2"
role = "Full-stack engineer. Implements features across all components."
model = "sonnet"
2026-02-20 11:57:25 +00:00
max_turns = 50
Accept story 34: Per-Project Agent Configuration and Role Definitions
Replace single [agent] config with multi-agent [[agent]] roster system.
Each agent has name, role, model, allowed_tools, max_turns, max_budget_usd,
and system_prompt fields that map to Claude CLI flags at spawn time.
- AgentConfig expanded with structured fields, validated at startup (panics
on duplicate names, empty names, non-positive budgets/turns)
- Backwards-compatible: legacy [agent] format auto-wraps with deprecation warning
- AgentPool uses composite "story_id:agent_name" keys for concurrent agents
- agent_name added to AgentEvent variants, AgentInfo, start/stop/subscribe APIs
- GET /agents/config returns roster, POST /agents/config/reload hot-reloads
- POST /agents/start accepts optional agent_name, /agents/stop requires it
- SSE route updated to /agents/:story_id/:agent_name/stream
- Frontend: roster badges, agent selector dropdown, composite-key state
- Project root initialized to cwd at startup so config endpoints work immediately
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:46:14 +00:00
max_budget_usd = 5.00
2026-02-20 12:42:19 +00:00
prompt = "You are working in a git worktree on story {{story_id}}. Read CLAUDE.md first, then .story_kit/README.md to understand the dev process. Pick up the story from .story_kit/stories/ - move it to current/ if needed. Follow the SDTW process through implementation and verification (Steps 1-3). The worktree and feature branch already exist - do not create them. Check .mcp.json for MCP tools. Do NOT accept the story or merge - commit your work and stop."
system_prompt = "You are a full-stack engineer working autonomously in a git worktree. Follow the Story-Driven Test Workflow strictly. Run cargo clippy and biome checks before considering work complete. Commit all your work before finishing - use a descriptive commit message. Do not accept stories, move them to archived, or merge to master - a human will do that. Do not coordinate with other agents - focus on your assigned story."