mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-05 16:13:08 +08:00
refactor: replace Task tool with Agent tool and fix schema compliance
## Task -> Agent Replacement
- Replace all Task({}) calls with Agent({}) across .claude/ directory
- Update allowed-tools declarations from Task to Agent
- Update documentation references from "Task tool" to "Agent tool"
## Schema Compliance Fixes
### Agent Schema
- Add missing required `description` parameter in 6 files
- Add missing `run_in_background: false` for subagent calls
- Add missing `subagent_type` parameter
### AskUserQuestion Schema
- Fix issue-manage/SKILL.md: reduce options from 5 to 4 (max allowed)
### SendMessage Schema
- Fix team-worker.md: use correct params (type, content, summary)
- Remove invalid `team_name` parameter
### TaskCreate/TaskUpdate Schema
- Remove invalid `blockedBy`, `owner`, `status` from TaskCreate calls
- Use separate TaskUpdate calls for dependencies and ownership
- Fix TaskUpdate syntax to use object parameter
### TeamDelete Schema
- Remove parameters from TeamDelete() calls (should be no params)
### TaskOutput Schema
- Fix Python-style syntax to JavaScript object syntax
## Files Changed
- 146 files updated across commands/, skills/, skills_lib/, agents/
This commit is contained in:
@@ -16,7 +16,7 @@ Available CLI endpoints are dynamically defined by the config file
|
|||||||
- **File Modification**: @~/.ccw/workflows/file-modification.md
|
- **File Modification**: @~/.ccw/workflows/file-modification.md
|
||||||
|
|
||||||
### Agent Calls
|
### Agent Calls
|
||||||
- **Always use `run_in_background: false`** for Task tool agent calls: `Task({ subagent_type: "xxx", prompt: "...", run_in_background: false })` to ensure synchronous execution and immediate result visibility
|
- **Always use `run_in_background: false`** for Agent tool calls: `Agent({ subagent_type: "xxx", prompt: "...", run_in_background: false })` to ensure synchronous execution and immediate result visibility
|
||||||
- **TaskOutput usage**: Only use `TaskOutput({ task_id: "xxx", block: false })` + sleep loop to poll completion status. NEVER read intermediate output during agent/CLI execution - wait for final result only
|
- **TaskOutput usage**: Only use `TaskOutput({ task_id: "xxx", block: false })` + sleep loop to poll completion status. NEVER read intermediate output during agent/CLI execution - wait for final result only
|
||||||
|
|
||||||
### CLI Tool Calls (ccw cli)
|
### CLI Tool Calls (ccw cli)
|
||||||
@@ -27,7 +27,7 @@ Available CLI endpoints are dynamically defined by the config file
|
|||||||
run_in_background: true // Bash tool parameter, not ccw cli parameter
|
run_in_background: true // Bash tool parameter, not ccw cli parameter
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
- **CRITICAL — Agent-specific instructions ALWAYS override this default.** If an agent's definition file (`.claude/agents/*.md`) specifies `run_in_background: false`, that instruction takes highest priority. Subagents (Task tool agents) CANNOT receive hook callbacks, so they MUST use `run_in_background: false` for CLI calls that produce required results.
|
- **CRITICAL — Agent-specific instructions ALWAYS override this default.** If an agent's definition file (`.claude/agents/*.md`) specifies `run_in_background: false`, that instruction takes highest priority. Subagents (Agent tool agents) CANNOT receive hook callbacks, so they MUST use `run_in_background: false` for CLI calls that produce required results.
|
||||||
- **After CLI call (main conversation only)**: Stop output immediately - let CLI execute in background. **DO NOT use TaskOutput polling** - wait for hook callback to receive results
|
- **After CLI call (main conversation only)**: Stop output immediately - let CLI execute in background. **DO NOT use TaskOutput polling** - wait for hook callback to receive results
|
||||||
|
|
||||||
### CLI Analysis Calls
|
### CLI Analysis Calls
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ Execute on every loop iteration:
|
|||||||
- If inner loop continuation → proceed to Phase 5-F (all done)
|
- If inner loop continuation → proceed to Phase 5-F (all done)
|
||||||
4. **Has matching tasks** → pick first by ID order
|
4. **Has matching tasks** → pick first by ID order
|
||||||
5. `TaskGet(taskId)` → read full task details
|
5. `TaskGet(taskId)` → read full task details
|
||||||
6. `TaskUpdate(taskId, status="in_progress")` → claim the task
|
6. `TaskUpdate({ taskId: taskId, status: "in_progress" })` → claim the task
|
||||||
|
|
||||||
### Resume Artifact Check
|
### Resume Artifact Check
|
||||||
|
|
||||||
@@ -130,7 +130,7 @@ When role_spec instructs to call a subagent, use these templates:
|
|||||||
**Discuss subagent** (for inline discuss rounds):
|
**Discuss subagent** (for inline discuss rounds):
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-discuss-agent",
|
subagent_type: "cli-discuss-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Discuss <round-id>",
|
description: "Discuss <round-id>",
|
||||||
@@ -169,7 +169,7 @@ JSON with: verdict (consensus_reached|consensus_blocked), severity (HIGH|MEDIUM|
|
|||||||
**Explore subagent** (for codebase exploration):
|
**Explore subagent** (for codebase exploration):
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Explore <angle>",
|
description: "Explore <angle>",
|
||||||
@@ -196,7 +196,7 @@ Return summary: file count, pattern count, top 5 files, output path`
|
|||||||
**Doc-generation subagent** (for writer document generation):
|
**Doc-generation subagent** (for writer document generation):
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "universal-executor",
|
subagent_type: "universal-executor",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Generate <doc-type>",
|
description: "Generate <doc-type>",
|
||||||
@@ -294,8 +294,13 @@ After Phase 4 completes, determine Phase 5 variant (see Execution Flow for decis
|
|||||||
1. **TaskUpdate**: Mark current task `completed`
|
1. **TaskUpdate**: Mark current task `completed`
|
||||||
2. **Message Bus**: Log state_update (same call as Phase 5-L step 2)
|
2. **Message Bus**: Log state_update (same call as Phase 5-L step 2)
|
||||||
3. **Compile final report** and **SendMessage** to coordinator:
|
3. **Compile final report** and **SendMessage** to coordinator:
|
||||||
```
|
```javascript
|
||||||
SendMessage(team_name=<team_name>, recipient="coordinator", message="[<role>] <final-report>")
|
SendMessage({
|
||||||
|
type: "message",
|
||||||
|
recipient: "coordinator",
|
||||||
|
content: "[<role>] <final-report>",
|
||||||
|
summary: "[<role>] Final report delivered"
|
||||||
|
})
|
||||||
```
|
```
|
||||||
Report contents: tasks completed (count + list), artifacts produced (paths), files modified (with evidence), discuss results (verdicts + ratings), key decisions (from context_accumulator), verification summary, warnings/issues.
|
Report contents: tasks completed (count + list), artifacts produced (paths), files modified (with evidence), discuss results (verdicts + ratings), key decisions (from context_accumulator), verification summary, warnings/issues.
|
||||||
4. **Fast-Advance Check**: Call `TaskList()`, find pending tasks whose blockedBy are ALL completed, apply rules:
|
4. **Fast-Advance Check**: Call `TaskList()`, find pending tasks whose blockedBy are ALL completed, apply rules:
|
||||||
@@ -303,7 +308,7 @@ After Phase 4 completes, determine Phase 5 variant (see Execution Flow for decis
|
|||||||
| Condition | Action |
|
| Condition | Action |
|
||||||
|-----------|--------|
|
|-----------|--------|
|
||||||
| Same-prefix successor (inner loop role) | Do NOT spawn — main agent handles via inner loop |
|
| Same-prefix successor (inner loop role) | Do NOT spawn — main agent handles via inner loop |
|
||||||
| 1 ready task, simple linear successor, different prefix | Spawn directly via `Task(run_in_background: true)` + log `fast_advance` |
|
| 1 ready task, simple linear successor, different prefix | Spawn directly via `Agent(run_in_background: true)` + log `fast_advance` |
|
||||||
| Multiple ready tasks (parallel window) | SendMessage to coordinator (needs orchestration) |
|
| Multiple ready tasks (parallel window) | SendMessage to coordinator (needs orchestration) |
|
||||||
| No ready tasks + others running | SendMessage to coordinator (status update) |
|
| No ready tasks + others running | SendMessage to coordinator (status update) |
|
||||||
| No ready tasks + nothing running | SendMessage to coordinator (pipeline may be complete) |
|
| No ready tasks + nothing running | SendMessage to coordinator (pipeline may be complete) |
|
||||||
@@ -314,7 +319,7 @@ After Phase 4 completes, determine Phase 5 variant (see Execution Flow for decis
|
|||||||
When fast-advancing to a different-prefix successor:
|
When fast-advancing to a different-prefix successor:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <successor-role> worker",
|
description: "Spawn <successor-role> worker",
|
||||||
team_name: <team_name>,
|
team_name: <team_name>,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: ccw-coordinator
|
name: ccw-coordinator
|
||||||
description: Command orchestration tool - analyze requirements, recommend chain, execute sequentially with state persistence
|
description: Command orchestration tool - analyze requirements, recommend chain, execute sequentially with state persistence
|
||||||
argument-hint: "[task description]"
|
argument-hint: "[task description]"
|
||||||
allowed-tools: Task(*), AskUserQuestion(*), Read(*), Write(*), Bash(*), Glob(*), Grep(*)
|
allowed-tools: Agent(*), AskUserQuestion(*), Read(*), Write(*), Bash(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# CCW Coordinator Command
|
# CCW Coordinator Command
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: run-coordinate
|
name: run-coordinate
|
||||||
description: IDAW coordinator - execute task skill chains via external CLI with hook callbacks and git checkpoints
|
description: IDAW coordinator - execute task skill chains via external CLI with hook callbacks and git checkpoints
|
||||||
argument-hint: "[-y|--yes] [--task <id>[,<id>,...]] [--dry-run] [--tool <tool>]"
|
argument-hint: "[-y|--yes] [--task <id>[,<id>,...]] [--dry-run] [--tool <tool>]"
|
||||||
allowed-tools: Task(*), AskUserQuestion(*), Read(*), Write(*), Bash(*), Glob(*), Grep(*)
|
allowed-tools: Agent(*), AskUserQuestion(*), Read(*), Write(*), Bash(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# IDAW Run Coordinate Command (/idaw:run-coordinate)
|
# IDAW Run Coordinate Command (/idaw:run-coordinate)
|
||||||
@@ -216,7 +216,7 @@ const chain = firstTask.skill_chain || SKILL_CHAIN_MAP[resolvedType] || SKILL_CH
|
|||||||
firstTask.status = 'in_progress';
|
firstTask.status = 'in_progress';
|
||||||
firstTask.task_type = resolvedType;
|
firstTask.task_type = resolvedType;
|
||||||
firstTask.execution.started_at = new Date().toISOString();
|
firstTask.execution.started_at = new Date().toISOString();
|
||||||
Write(`.workflow/.idaw/tasks/${firstTask.id}.json`, JSON.stringify(firstTask, null, 2));
|
Write(`.workflow/.idaw/tasks/${firstTask.id}.json`, JSON.stringify(firstAgent, null, 2));
|
||||||
|
|
||||||
// Update session
|
// Update session
|
||||||
session.current_task = firstTask.id;
|
session.current_task = firstTask.id;
|
||||||
@@ -239,7 +239,7 @@ CONSTRAINTS: Keep concise`;
|
|||||||
|
|
||||||
// Assemble prompt for first skill
|
// Assemble prompt for first skill
|
||||||
const skillName = chain[0];
|
const skillName = chain[0];
|
||||||
const prompt = assembleCliPrompt(skillName, firstTask, null, autoYes);
|
const prompt = assembleCliPrompt(skillName, firstAgent, null, autoYes);
|
||||||
|
|
||||||
session.prompts_used.push({
|
session.prompts_used.push({
|
||||||
task_id: firstTask.id,
|
task_id: firstTask.id,
|
||||||
@@ -403,7 +403,7 @@ CONSTRAINTS: Actionable diagnosis`;
|
|||||||
nextTask.status = 'in_progress';
|
nextTask.status = 'in_progress';
|
||||||
nextTask.task_type = nextType;
|
nextTask.task_type = nextType;
|
||||||
nextTask.execution.started_at = new Date().toISOString();
|
nextTask.execution.started_at = new Date().toISOString();
|
||||||
Write(`.workflow/.idaw/tasks/${nextTaskId}.json`, JSON.stringify(nextTask, null, 2));
|
Write(`.workflow/.idaw/tasks/${nextTaskId}.json`, JSON.stringify(nextAgent, null, 2));
|
||||||
|
|
||||||
session.current_task = nextTaskId;
|
session.current_task = nextTaskId;
|
||||||
session.current_skill_index = 0;
|
session.current_skill_index = 0;
|
||||||
@@ -417,7 +417,7 @@ CONSTRAINTS: Actionable diagnosis`;
|
|||||||
}
|
}
|
||||||
|
|
||||||
const nextSkillName = nextChain[0];
|
const nextSkillName = nextChain[0];
|
||||||
const nextPrompt = assembleCliPrompt(nextSkillName, nextTask, null, true);
|
const nextPrompt = assembleCliPrompt(nextSkillName, nextAgent, null, true);
|
||||||
|
|
||||||
session.prompts_used.push({
|
session.prompts_used.push({
|
||||||
task_id: nextTaskId,
|
task_id: nextTaskId,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: issue:discover-by-prompt
|
name: issue:discover-by-prompt
|
||||||
description: Discover issues from user prompt with Gemini-planned iterative multi-agent exploration. Uses ACE semantic search for context gathering and supports cross-module comparison (e.g., frontend vs backend API contracts).
|
description: Discover issues from user prompt with Gemini-planned iterative multi-agent exploration. Uses ACE semantic search for context gathering and supports cross-module comparison (e.g., frontend vs backend API contracts).
|
||||||
argument-hint: "[-y|--yes] <prompt> [--scope=src/**] [--depth=standard|deep] [--max-iterations=5]"
|
argument-hint: "[-y|--yes] <prompt> [--scope=src/**] [--depth=standard|deep] [--max-iterations=5]"
|
||||||
allowed-tools: Skill(*), TodoWrite(*), Read(*), Bash(*), Task(*), AskUserQuestion(*), Glob(*), Grep(*), mcp__ace-tool__search_context(*), mcp__exa__search(*)
|
allowed-tools: Skill(*), TodoWrite(*), Read(*), Bash(*), Agent(*), AskUserQuestion(*), Glob(*), Grep(*), mcp__ace-tool__search_context(*), mcp__exa__search(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -404,7 +404,7 @@ while (shouldContinue && iteration < maxIterations) {
|
|||||||
|
|
||||||
// Step 3: Launch dimension agents with ACE context
|
// Step 3: Launch dimension agents with ACE context
|
||||||
const agentPromises = iterationPlan.dimensions.map(dimension =>
|
const agentPromises = iterationPlan.dimensions.map(dimension =>
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Explore ${dimension.name} (iteration ${iteration})`,
|
description: `Explore ${dimension.name} (iteration ${iteration})`,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: issue:discover
|
name: issue:discover
|
||||||
description: Discover potential issues from multiple perspectives (bug, UX, test, quality, security, performance, maintainability, best-practices) using CLI explore. Supports Exa external research for security and best-practices perspectives.
|
description: Discover potential issues from multiple perspectives (bug, UX, test, quality, security, performance, maintainability, best-practices) using CLI explore. Supports Exa external research for security and best-practices perspectives.
|
||||||
argument-hint: "[-y|--yes] <path-pattern> [--perspectives=bug,ux,...] [--external]"
|
argument-hint: "[-y|--yes] <path-pattern> [--perspectives=bug,ux,...] [--external]"
|
||||||
allowed-tools: Skill(*), TodoWrite(*), Read(*), Bash(*), Task(*), AskUserQuestion(*), Glob(*), Grep(*)
|
allowed-tools: Skill(*), TodoWrite(*), Read(*), Bash(*), Agent(*), AskUserQuestion(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -185,7 +185,7 @@ Launch N agents in parallel (one per selected perspective):
|
|||||||
```javascript
|
```javascript
|
||||||
// Launch agents in parallel - agents write JSON and return summary
|
// Launch agents in parallel - agents write JSON and return summary
|
||||||
const agentPromises = selectedPerspectives.map(perspective =>
|
const agentPromises = selectedPerspectives.map(perspective =>
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Discover ${perspective} issues`,
|
description: `Discover ${perspective} issues`,
|
||||||
@@ -322,7 +322,7 @@ if (response === "Export to Issues") {
|
|||||||
**Perspective Analysis Agent**:
|
**Perspective Analysis Agent**:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Discover ${perspective} issues`,
|
description: `Discover ${perspective} issues`,
|
||||||
@@ -368,7 +368,7 @@ Task({
|
|||||||
**Exa Research Agent** (for security and best-practices):
|
**Exa Research Agent** (for security and best-practices):
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `External research for ${perspective} via Exa`,
|
description: `External research for ${perspective} via Exa`,
|
||||||
|
|||||||
@@ -429,7 +429,7 @@ On failure, run:
|
|||||||
{ timeout: 3600000, run_in_background: true }
|
{ timeout: 3600000, run_in_background: true }
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return Task({
|
return Agent({
|
||||||
subagent_type: 'code-developer',
|
subagent_type: 'code-developer',
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Execute solution ${solutionId}`,
|
description: `Execute solution ${solutionId}`,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: plan
|
name: plan
|
||||||
description: Batch plan issue resolution using issue-plan-agent (explore + plan closed-loop)
|
description: Batch plan issue resolution using issue-plan-agent (explore + plan closed-loop)
|
||||||
argument-hint: "[-y|--yes] --all-pending <issue-id>[,<issue-id>,...] [--batch-size 3]"
|
argument-hint: "[-y|--yes] --all-pending <issue-id>[,<issue-id>,...] [--batch-size 3]"
|
||||||
allowed-tools: TodoWrite(*), Task(*), Skill(*), AskUserQuestion(*), Bash(*), Read(*), Write(*)
|
allowed-tools: TodoWrite(*), Agent(*), Skill(*), AskUserQuestion(*), Bash(*), Read(*), Write(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -222,7 +222,7 @@ for (let i = 0; i < agentTasks.length; i += MAX_PARALLEL) {
|
|||||||
|
|
||||||
// Collect results from this chunk
|
// Collect results from this chunk
|
||||||
for (const { taskId, batchIndex } of taskIds) {
|
for (const { taskId, batchIndex } of taskIds) {
|
||||||
const result = TaskOutput(task_id=taskId, block=true);
|
const result = TaskOutput({ task_id: taskId, block: true });
|
||||||
|
|
||||||
// Extract JSON from potential markdown code blocks (agent may wrap in ```json...```)
|
// Extract JSON from potential markdown code blocks (agent may wrap in ```json...```)
|
||||||
const jsonText = extractJsonFromMarkdown(result);
|
const jsonText = extractJsonFromMarkdown(result);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: queue
|
name: queue
|
||||||
description: Form execution queue from bound solutions using issue-queue-agent (solution-level)
|
description: Form execution queue from bound solutions using issue-queue-agent (solution-level)
|
||||||
argument-hint: "[-y|--yes] [--queues <n>] [--issue <id>]"
|
argument-hint: "[-y|--yes] [--queues <n>] [--issue <id>]"
|
||||||
allowed-tools: TodoWrite(*), Task(*), Bash(*), Read(*), Write(*)
|
allowed-tools: TodoWrite(*), Agent(*), Bash(*), Read(*), Write(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -247,7 +247,7 @@ if (numQueues === 1) {
|
|||||||
description=`Queue ${i + 1}/${numQueues}: ${group.length} solutions`
|
description=`Queue ${i + 1}/${numQueues}: ${group.length} solutions`
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
// All agents launched in parallel via single message with multiple Task tool calls
|
// All agents launched in parallel via single message with multiple Agent tool calls
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: prepare
|
name: prepare
|
||||||
description: Delegate to universal-executor agent to analyze project via Gemini/Qwen CLI and return JSON core content package for task context
|
description: Delegate to universal-executor agent to analyze project via Gemini/Qwen CLI and return JSON core content package for task context
|
||||||
argument-hint: "[--tool gemini|qwen] \"task context description\""
|
argument-hint: "[--tool gemini|qwen] \"task context description\""
|
||||||
allowed-tools: Task(*), Bash(*)
|
allowed-tools: Agent(*), Bash(*)
|
||||||
examples:
|
examples:
|
||||||
- /memory:prepare "在当前前端基础上开发用户认证功能"
|
- /memory:prepare "在当前前端基础上开发用户认证功能"
|
||||||
- /memory:prepare --tool qwen "重构支付模块API"
|
- /memory:prepare --tool qwen "重构支付模块API"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: analyze-with-file
|
name: analyze-with-file
|
||||||
description: Interactive collaborative analysis with documented discussions, CLI-assisted exploration, and evolving understanding
|
description: Interactive collaborative analysis with documented discussions, CLI-assisted exploration, and evolving understanding
|
||||||
argument-hint: "[-y|--yes] [-c|--continue] \"topic or question\""
|
argument-hint: "[-y|--yes] [-c|--continue] \"topic or question\""
|
||||||
allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
allowed-tools: TodoWrite(*), Agent(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -226,7 +226,7 @@ Interactive collaborative analysis workflow with **documented discussion process
|
|||||||
|
|
||||||
**Single Exploration Example**:
|
**Single Exploration Example**:
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Explore codebase: ${topicSlug}`,
|
description: `Explore codebase: ${topicSlug}`,
|
||||||
@@ -256,7 +256,7 @@ Schema: {relevant_files, patterns, key_findings, questions_for_user, _metadata}
|
|||||||
```javascript
|
```javascript
|
||||||
// Launch parallel explorations for each selected perspective
|
// Launch parallel explorations for each selected perspective
|
||||||
selectedPerspectives.forEach(perspective => {
|
selectedPerspectives.forEach(perspective => {
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false, // Sequential execution, wait for each
|
run_in_background: false, // Sequential execution, wait for each
|
||||||
description: `Explore ${perspective.name}: ${topicSlug}`,
|
description: `Explore ${perspective.name}: ${topicSlug}`,
|
||||||
@@ -399,7 +399,7 @@ CONSTRAINTS: ${perspective.constraints}
|
|||||||
- explorations.json contains initial findings
|
- explorations.json contains initial findings
|
||||||
- discussion.md has Round 1 results
|
- discussion.md has Round 1 results
|
||||||
|
|
||||||
**Guideline**: For complex tasks (code analysis, implementation, refactoring), delegate to agents via Task tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process.
|
**Guideline**: For complex tasks (code analysis, implementation, refactoring), delegate to agents via Agent tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process.
|
||||||
|
|
||||||
**Workflow Steps**:
|
**Workflow Steps**:
|
||||||
|
|
||||||
@@ -739,7 +739,7 @@ In round 1 we discussed X, then in round 2 user said Y...
|
|||||||
## Best Practices
|
## Best Practices
|
||||||
|
|
||||||
1. **Clear Topic Definition**: Detailed topics lead to better dimension identification
|
1. **Clear Topic Definition**: Detailed topics lead to better dimension identification
|
||||||
2. **Agent-First for Complex Tasks**: For code analysis, implementation, or refactoring tasks during discussion, delegate to agents via Task tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process
|
2. **Agent-First for Complex Tasks**: For code analysis, implementation, or refactoring tasks during discussion, delegate to agents via Agent tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process
|
||||||
3. **Review discussion.md**: Check understanding evolution before conclusions
|
3. **Review discussion.md**: Check understanding evolution before conclusions
|
||||||
4. **Embrace Corrections**: Track wrong-to-right transformations as learnings
|
4. **Embrace Corrections**: Track wrong-to-right transformations as learnings
|
||||||
5. **Document Evolution**: discussion.md captures full thinking process
|
5. **Document Evolution**: discussion.md captures full thinking process
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: brainstorm-with-file
|
name: brainstorm-with-file
|
||||||
description: Interactive brainstorming with multi-CLI collaboration, idea expansion, and documented thought evolution
|
description: Interactive brainstorming with multi-CLI collaboration, idea expansion, and documented thought evolution
|
||||||
argument-hint: "[-y|--yes] [-c|--continue] [-m|--mode creative|structured] \"idea or topic\""
|
argument-hint: "[-y|--yes] [-c|--continue] [-m|--mode creative|structured] \"idea or topic\""
|
||||||
allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
allowed-tools: TodoWrite(*), Agent(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -245,7 +245,7 @@ Output as structured exploration vectors for multi-perspective analysis.
|
|||||||
|
|
||||||
**Agent Call Example**:
|
**Agent Call Example**:
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Explore codebase for brainstorm: ${topicSlug}`,
|
description: `Explore codebase for brainstorm: ${topicSlug}`,
|
||||||
@@ -410,7 +410,7 @@ CONSTRAINTS: Consider existing system architecture
|
|||||||
- perspectives.json contains initial ideas
|
- perspectives.json contains initial ideas
|
||||||
- brainstorm.md has Round 2 findings
|
- brainstorm.md has Round 2 findings
|
||||||
|
|
||||||
**Guideline**: For complex tasks (code analysis, implementation, POC creation), delegate to agents via Task tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process.
|
**Guideline**: For complex tasks (code analysis, implementation, POC creation), delegate to agents via Agent tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process.
|
||||||
|
|
||||||
**Workflow Steps**:
|
**Workflow Steps**:
|
||||||
|
|
||||||
@@ -725,7 +725,7 @@ Dimensions matched against topic keywords to identify focus areas:
|
|||||||
## Best Practices
|
## Best Practices
|
||||||
|
|
||||||
1. **Clear Topic Definition**: Detailed topics → better role selection and exploration
|
1. **Clear Topic Definition**: Detailed topics → better role selection and exploration
|
||||||
2. **Agent-First for Complex Tasks**: For code analysis, POC implementation, or technical validation during refinement, delegate to agents via Task tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process
|
2. **Agent-First for Complex Tasks**: For code analysis, POC implementation, or technical validation during refinement, delegate to agents via Agent tool (cli-explore-agent, code-developer, universal-executor) or CLI calls (ccw cli). Avoid direct analysis/execution in main process
|
||||||
3. **Review brainstorm.md**: Check thought evolution before final decisions
|
3. **Review brainstorm.md**: Check thought evolution before final decisions
|
||||||
4. **Embrace Conflicts**: Perspective conflicts often reveal important tradeoffs
|
4. **Embrace Conflicts**: Perspective conflicts often reveal important tradeoffs
|
||||||
5. **Document Evolution**: brainstorm.md captures full thinking process for team review
|
5. **Document Evolution**: brainstorm.md captures full thinking process for team review
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: clean
|
name: clean
|
||||||
description: Intelligent code cleanup with mainline detection, stale artifact discovery, and safe execution
|
description: Intelligent code cleanup with mainline detection, stale artifact discovery, and safe execution
|
||||||
argument-hint: "[-y|--yes] [--dry-run] [\"focus area\"]"
|
argument-hint: "[-y|--yes] [--dry-run] [\"focus area\"]"
|
||||||
allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Glob(*), Bash(*), Write(*)
|
allowed-tools: TodoWrite(*), Agent(*), AskUserQuestion(*), Read(*), Glob(*), Bash(*), Write(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Clean Command (/workflow:clean)
|
# Clean Command (/workflow:clean)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: workflow:collaborative-plan-with-file
|
name: workflow:collaborative-plan-with-file
|
||||||
description: Collaborative planning with Plan Note - Understanding agent creates shared plan-note.md template, parallel agents fill pre-allocated sections, conflict detection without merge. Outputs executable plan-note.md.
|
description: Collaborative planning with Plan Note - Understanding agent creates shared plan-note.md template, parallel agents fill pre-allocated sections, conflict detection without merge. Outputs executable plan-note.md.
|
||||||
argument-hint: "[-y|--yes] <task description> [--max-agents=5]"
|
argument-hint: "[-y|--yes] <task description> [--max-agents=5]"
|
||||||
allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Bash(*), Write(*), Glob(*), Grep(*), mcp__ace-tool__search_context(*)
|
allowed-tools: TodoWrite(*), Agent(*), AskUserQuestion(*), Read(*), Bash(*), Write(*), Glob(*), Grep(*), mcp__ace-tool__search_context(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: debug-with-file
|
name: debug-with-file
|
||||||
description: Interactive hypothesis-driven debugging with documented exploration, understanding evolution, and Gemini-assisted correction
|
description: Interactive hypothesis-driven debugging with documented exploration, understanding evolution, and Gemini-assisted correction
|
||||||
argument-hint: "[-y|--yes] \"bug description or error message\""
|
argument-hint: "[-y|--yes] \"bug description or error message\""
|
||||||
allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
allowed-tools: TodoWrite(*), Agent(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: integration-test-cycle
|
name: integration-test-cycle
|
||||||
description: Self-iterating integration test workflow with codebase exploration, test development, autonomous test-fix cycles, and reflection-driven strategy adjustment
|
description: Self-iterating integration test workflow with codebase exploration, test development, autonomous test-fix cycles, and reflection-driven strategy adjustment
|
||||||
argument-hint: "[-y|--yes] [-c|--continue] [--max-iterations=N] \"module or feature description\""
|
argument-hint: "[-y|--yes] [-c|--continue] [--max-iterations=N] \"module or feature description\""
|
||||||
allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*), Skill(*)
|
allowed-tools: TodoWrite(*), Agent(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*), Skill(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -209,7 +209,7 @@ Unified integration test workflow: **Explore → Design → Develop → Test →
|
|||||||
1. **Codebase Exploration via cli-explore-agent**
|
1. **Codebase Exploration via cli-explore-agent**
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Explore integration points: ${topicSlug}`,
|
description: `Explore integration points: ${topicSlug}`,
|
||||||
@@ -391,7 +391,7 @@ Also set `state.json.phase` to `"designed"`.
|
|||||||
1. **Generate Integration Tests via @code-developer**
|
1. **Generate Integration Tests via @code-developer**
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "code-developer",
|
subagent_type: "code-developer",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Generate integration tests: ${topicSlug}`,
|
description: `Generate integration tests: ${topicSlug}`,
|
||||||
@@ -435,7 +435,7 @@ Also set state.json "phase" to "developed".
|
|||||||
2. **Code Validation Gate via @test-fix-agent**
|
2. **Code Validation Gate via @test-fix-agent**
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "test-fix-agent",
|
subagent_type: "test-fix-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Validate generated tests: ${topicSlug}`,
|
description: `Validate generated tests: ${topicSlug}`,
|
||||||
@@ -605,7 +605,7 @@ After each iteration, update the `## Cumulative Learnings` section in reflection
|
|||||||
|
|
||||||
**@test-fix-agent** (test execution):
|
**@test-fix-agent** (test execution):
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "test-fix-agent",
|
subagent_type: "test-fix-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Execute integration tests: iteration ${N}`,
|
description: `Execute integration tests: iteration ${N}`,
|
||||||
@@ -637,7 +637,7 @@ For each failure, assign:
|
|||||||
|
|
||||||
**@cli-planning-agent** (failure analysis with reflection):
|
**@cli-planning-agent** (failure analysis with reflection):
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-planning-agent",
|
subagent_type: "cli-planning-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Analyze failures: iteration ${N} - ${strategy}`,
|
description: `Analyze failures: iteration ${N} - ${strategy}`,
|
||||||
@@ -676,7 +676,7 @@ Analyze test failures using reflection context and generate fix strategy.
|
|||||||
|
|
||||||
**@test-fix-agent** (apply fixes):
|
**@test-fix-agent** (apply fixes):
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "test-fix-agent",
|
subagent_type: "test-fix-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Apply fixes: iteration ${N} - ${strategy}`,
|
description: `Apply fixes: iteration ${N} - ${strategy}`,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: refactor-cycle
|
name: refactor-cycle
|
||||||
description: Tech debt discovery and self-iterating refactoring with multi-dimensional analysis, prioritized execution, regression validation, and reflection-driven adjustment
|
description: Tech debt discovery and self-iterating refactoring with multi-dimensional analysis, prioritized execution, regression validation, and reflection-driven adjustment
|
||||||
argument-hint: "[-y|--yes] [-c|--continue] [--scope=module|project] \"module or refactoring goal\""
|
argument-hint: "[-y|--yes] [-c|--continue] [--scope=module|project] \"module or refactoring goal\""
|
||||||
allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
allowed-tools: TodoWrite(*), Agent(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -200,7 +200,7 @@ Closed-loop tech debt lifecycle: **Discover → Assess → Plan → Refactor →
|
|||||||
1. **Codebase Exploration via cli-explore-agent**
|
1. **Codebase Exploration via cli-explore-agent**
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Explore codebase for debt: ${topicSlug}`,
|
description: `Explore codebase for debt: ${topicSlug}`,
|
||||||
@@ -465,7 +465,7 @@ Set `state.json.current_item` to item ID.
|
|||||||
#### Step 4.2: Execute Refactoring
|
#### Step 4.2: Execute Refactoring
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "code-developer",
|
subagent_type: "code-developer",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Refactor ${item.id}: ${item.title}`,
|
description: `Refactor ${item.id}: ${item.title}`,
|
||||||
@@ -499,7 +499,7 @@ ${JSON.stringify(item.refactor_plan, null, 2)}
|
|||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// 1. Run tests
|
// 1. Run tests
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "test-fix-agent",
|
subagent_type: "test-fix-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Validate refactoring: ${item.id}`,
|
description: `Validate refactoring: ${item.id}`,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: roadmap-with-file
|
name: roadmap-with-file
|
||||||
description: Strategic requirement roadmap with iterative decomposition and issue creation. Outputs roadmap.md (human-readable, single source) + issues.jsonl (machine-executable). Handoff to team-planex.
|
description: Strategic requirement roadmap with iterative decomposition and issue creation. Outputs roadmap.md (human-readable, single source) + issues.jsonl (machine-executable). Handoff to team-planex.
|
||||||
argument-hint: "[-y|--yes] [-c|--continue] [-m progressive|direct|auto] \"requirement description\""
|
argument-hint: "[-y|--yes] [-c|--continue] [-m progressive|direct|auto] \"requirement description\""
|
||||||
allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
allowed-tools: TodoWrite(*), Agent(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -355,12 +355,12 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|||||||
|
|
||||||
**Agent Prompt Template**:
|
**Agent Prompt Template**:
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-roadmap-plan-agent",
|
subagent_type: "cli-roadmap-plan-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Roadmap decomposition: ${slug}`,
|
description: `Roadmap decomposition: ${slug}`,
|
||||||
prompt: `
|
prompt: `
|
||||||
## Roadmap Decomposition Task
|
## Roadmap Decomposition Agent
|
||||||
|
|
||||||
### Input Context
|
### Input Context
|
||||||
- **Requirement**: ${requirement}
|
- **Requirement**: ${requirement}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: animation-extract
|
name: animation-extract
|
||||||
description: Extract animation and transition patterns from prompt inference and image references for design system documentation
|
description: Extract animation and transition patterns from prompt inference and image references for design system documentation
|
||||||
argument-hint: "[-y|--yes] [--design-id <id>] [--session <id>] [--images "<glob>"] [--focus "<types>"] [--interactive] [--refine]"
|
argument-hint: "[-y|--yes] [--design-id <id>] [--session <id>] [--images "<glob>"] [--focus "<types>"] [--interactive] [--refine]"
|
||||||
allowed-tools: TodoWrite(*), Read(*), Write(*), Glob(*), Bash(*), AskUserQuestion(*), Task(ui-design-agent)
|
allowed-tools: TodoWrite(*), Read(*), Write(*), Glob(*), Bash(*), AskUserQuestion(*), Agent(ui-design-agent)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -207,14 +207,14 @@ IF has_images:
|
|||||||
|
|
||||||
### Step 2: Generate Animation Specification Options (Agent Task 1)
|
### Step 2: Generate Animation Specification Options (Agent Task 1)
|
||||||
|
|
||||||
**Executor**: `Task(ui-design-agent)`
|
**Executor**: `Agent(ui-design-agent)`
|
||||||
|
|
||||||
**Conditional Logic**: Branch based on `refine_mode` flag
|
**Conditional Logic**: Branch based on `refine_mode` flag
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
IF NOT refine_mode:
|
IF NOT refine_mode:
|
||||||
// EXPLORATION MODE (default)
|
// EXPLORATION MODE (default)
|
||||||
Task(ui-design-agent): `
|
Agent(ui-design-agent): `
|
||||||
[ANIMATION_SPECIFICATION_GENERATION_TASK]
|
[ANIMATION_SPECIFICATION_GENERATION_TASK]
|
||||||
Generate context-aware animation specification questions
|
Generate context-aware animation specification questions
|
||||||
|
|
||||||
@@ -308,7 +308,7 @@ IF NOT refine_mode:
|
|||||||
|
|
||||||
ELSE:
|
ELSE:
|
||||||
// REFINEMENT MODE
|
// REFINEMENT MODE
|
||||||
Task(ui-design-agent): `
|
Agent(ui-design-agent): `
|
||||||
[ANIMATION_REFINEMENT_OPTIONS_TASK]
|
[ANIMATION_REFINEMENT_OPTIONS_TASK]
|
||||||
Generate refinement options for existing animation system
|
Generate refinement options for existing animation system
|
||||||
|
|
||||||
@@ -656,7 +656,7 @@ ELSE:
|
|||||||
|
|
||||||
## Phase 2: Animation System Generation (Agent Task 2)
|
## Phase 2: Animation System Generation (Agent Task 2)
|
||||||
|
|
||||||
**Executor**: `Task(ui-design-agent)` for animation token generation
|
**Executor**: `Agent(ui-design-agent)` for animation token generation
|
||||||
|
|
||||||
### Step 1: Load User Selection or Use Defaults
|
### Step 1: Load User Selection or Use Defaults
|
||||||
|
|
||||||
@@ -706,14 +706,14 @@ IF has_images:
|
|||||||
bash(mkdir -p {base_path}/animation-extraction)
|
bash(mkdir -p {base_path}/animation-extraction)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 3: Launch Animation Generation Task
|
### Step 3: Launch Animation Generation Agent
|
||||||
|
|
||||||
**Conditional Task**: Branch based on `refine_mode` flag
|
**Conditional Task**: Branch based on `refine_mode` flag
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
IF NOT refine_mode:
|
IF NOT refine_mode:
|
||||||
// EXPLORATION MODE
|
// EXPLORATION MODE
|
||||||
Task(ui-design-agent): `
|
Agent(ui-design-agent): `
|
||||||
[ANIMATION_SYSTEM_GENERATION_TASK]
|
[ANIMATION_SYSTEM_GENERATION_TASK]
|
||||||
Generate production-ready animation system based on user preferences and CSS extraction
|
Generate production-ready animation system based on user preferences and CSS extraction
|
||||||
|
|
||||||
@@ -871,7 +871,7 @@ IF NOT refine_mode:
|
|||||||
|
|
||||||
ELSE:
|
ELSE:
|
||||||
// REFINEMENT MODE
|
// REFINEMENT MODE
|
||||||
Task(ui-design-agent): `
|
Agent(ui-design-agent): `
|
||||||
[ANIMATION_SYSTEM_REFINEMENT_TASK]
|
[ANIMATION_SYSTEM_REFINEMENT_TASK]
|
||||||
Apply selected refinements to existing animation system
|
Apply selected refinements to existing animation system
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: explore-auto
|
name: explore-auto
|
||||||
description: Interactive exploratory UI design workflow with style-centric batch generation, creates design variants from prompts/images with parallel execution and user selection
|
description: Interactive exploratory UI design workflow with style-centric batch generation, creates design variants from prompts/images with parallel execution and user selection
|
||||||
argument-hint: "[--input "<value>"] [--targets "<list>"] [--target-type "page|component"] [--session <id>] [--style-variants <count>] [--layout-variants <count>]"
|
argument-hint: "[--input "<value>"] [--targets "<list>"] [--target-type "page|component"] [--session <id>] [--style-variants <count>] [--layout-variants <count>]"
|
||||||
allowed-tools: Skill(*), TodoWrite(*), Read(*), Bash(*), Glob(*), Write(*), Task(conceptual-planning-agent)
|
allowed-tools: Skill(*), TodoWrite(*), Read(*), Bash(*), Glob(*), Write(*), Agent(conceptual-planning-agent)
|
||||||
---
|
---
|
||||||
|
|
||||||
# UI Design Auto Workflow Command
|
# UI Design Auto Workflow Command
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: generate
|
name: generate
|
||||||
description: Assemble UI prototypes by combining layout templates with design tokens (default animation support), pure assembler without new content generation
|
description: Assemble UI prototypes by combining layout templates with design tokens (default animation support), pure assembler without new content generation
|
||||||
argument-hint: [--design-id <id>] [--session <id>]
|
argument-hint: [--design-id <id>] [--session <id>]
|
||||||
allowed-tools: TodoWrite(*), Read(*), Write(*), Task(ui-design-agent), Bash(*)
|
allowed-tools: TodoWrite(*), Read(*), Write(*), Agent(ui-design-agent), Bash(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Generate UI Prototypes (/workflow:ui-design:generate)
|
# Generate UI Prototypes (/workflow:ui-design:generate)
|
||||||
@@ -129,7 +129,7 @@ ELSE:
|
|||||||
|
|
||||||
## Phase 2: Assembly (Agent)
|
## Phase 2: Assembly (Agent)
|
||||||
|
|
||||||
**Executor**: `Task(ui-design-agent)` grouped by `target × style` (max 10 layouts per agent, max 6 concurrent agents)
|
**Executor**: `Agent(ui-design-agent)` grouped by `target × style` (max 10 layouts per agent, max 6 concurrent agents)
|
||||||
|
|
||||||
**⚠️ Core Principle**: **Each agent processes ONLY ONE style** (but can process multiple layouts for that style)
|
**⚠️ Core Principle**: **Each agent processes ONLY ONE style** (but can process multiple layouts for that style)
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ TodoWrite({todos: [
|
|||||||
For each batch (up to 6 parallel agents per batch):
|
For each batch (up to 6 parallel agents per batch):
|
||||||
For each agent group `{target, style_id, layout_ids[]}` in current batch:
|
For each agent group `{target, style_id, layout_ids[]}` in current batch:
|
||||||
```javascript
|
```javascript
|
||||||
Task(ui-design-agent): `
|
Agent(ui-design-agent): `
|
||||||
[LAYOUT_STYLE_ASSEMBLY]
|
[LAYOUT_STYLE_ASSEMBLY]
|
||||||
🎯 {target} × Style-{style_id} × Layouts-{layout_ids}
|
🎯 {target} × Style-{style_id} × Layouts-{layout_ids}
|
||||||
⚠️ CONSTRAINT: Use ONLY style-{style_id}/design-tokens.json (never mix styles)
|
⚠️ CONSTRAINT: Use ONLY style-{style_id}/design-tokens.json (never mix styles)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: workflow:ui-design:import-from-code
|
name: workflow:ui-design:import-from-code
|
||||||
description: Import design system from code files (CSS/JS/HTML/SCSS) with automatic file discovery and parallel agent analysis
|
description: Import design system from code files (CSS/JS/HTML/SCSS) with automatic file discovery and parallel agent analysis
|
||||||
argument-hint: "[--design-id <id>] [--session <id>] [--source <path>]"
|
argument-hint: "[--design-id <id>] [--session <id>] [--source <path>]"
|
||||||
allowed-tools: Read,Write,Bash,Glob,Grep,Task,TodoWrite
|
allowed-tools: Read,Write,Bash,Glob,Grep,Agent,TodoWrite
|
||||||
auto-continue: true
|
auto-continue: true
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: layout-extract
|
name: layout-extract
|
||||||
description: Extract structural layout information from reference images or text prompts using Claude analysis with variant generation or refinement mode
|
description: Extract structural layout information from reference images or text prompts using Claude analysis with variant generation or refinement mode
|
||||||
argument-hint: "[-y|--yes] [--design-id <id>] [--session <id>] [--images "<glob>"] [--prompt "<desc>"] [--targets "<list>"] [--variants <count>] [--device-type <desktop|mobile|tablet|responsive>] [--interactive] [--refine]"
|
argument-hint: "[-y|--yes] [--design-id <id>] [--session <id>] [--images "<glob>"] [--prompt "<desc>"] [--targets "<list>"] [--variants <count>] [--device-type <desktop|mobile|tablet|responsive>] [--interactive] [--refine]"
|
||||||
allowed-tools: TodoWrite(*), Read(*), Write(*), Glob(*), Bash(*), AskUserQuestion(*), Task(ui-design-agent), mcp__exa__web_search_exa(*)
|
allowed-tools: TodoWrite(*), Read(*), Write(*), Glob(*), Bash(*), AskUserQuestion(*), Agent(ui-design-agent), mcp__exa__web_search_exa(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -162,7 +162,7 @@ IF refine_mode:
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Step 1: Generate Options (Agent Task 1 - Mode-Specific)
|
### Step 1: Generate Options (Agent Task 1 - Mode-Specific)
|
||||||
**Executor**: `Task(ui-design-agent)`
|
**Executor**: `Agent(ui-design-agent)`
|
||||||
|
|
||||||
**Exploration Mode** (default): Generate contrasting layout concepts
|
**Exploration Mode** (default): Generate contrasting layout concepts
|
||||||
**Refinement Mode** (`--refine`): Generate refinement options for existing layouts
|
**Refinement Mode** (`--refine`): Generate refinement options for existing layouts
|
||||||
@@ -171,7 +171,7 @@ IF refine_mode:
|
|||||||
// Conditional agent task based on refine_mode
|
// Conditional agent task based on refine_mode
|
||||||
IF NOT refine_mode:
|
IF NOT refine_mode:
|
||||||
// EXPLORATION MODE
|
// EXPLORATION MODE
|
||||||
Task(ui-design-agent): `
|
Agent(ui-design-agent): `
|
||||||
[LAYOUT_CONCEPT_GENERATION_TASK]
|
[LAYOUT_CONCEPT_GENERATION_TASK]
|
||||||
Generate {variants_count} structurally distinct layout concepts for each target
|
Generate {variants_count} structurally distinct layout concepts for each target
|
||||||
|
|
||||||
@@ -217,7 +217,7 @@ IF NOT refine_mode:
|
|||||||
`
|
`
|
||||||
ELSE:
|
ELSE:
|
||||||
// REFINEMENT MODE
|
// REFINEMENT MODE
|
||||||
Task(ui-design-agent): `
|
Agent(ui-design-agent): `
|
||||||
[LAYOUT_REFINEMENT_OPTIONS_TASK]
|
[LAYOUT_REFINEMENT_OPTIONS_TASK]
|
||||||
Generate refinement options for existing layout(s)
|
Generate refinement options for existing layout(s)
|
||||||
|
|
||||||
@@ -461,7 +461,7 @@ Proceeding to generate {total_selections} detailed layout template(s)...
|
|||||||
|
|
||||||
## Phase 2: Layout Template Generation (Agent Task 2)
|
## Phase 2: Layout Template Generation (Agent Task 2)
|
||||||
|
|
||||||
**Executor**: `Task(ui-design-agent)` × `Total_Selected_Templates` in **parallel**
|
**Executor**: `Agent(ui-design-agent)` × `Total_Selected_Templates` in **parallel**
|
||||||
|
|
||||||
### Step 1: Load User Selections or Default to All
|
### Step 1: Load User Selections or Default to All
|
||||||
```bash
|
```bash
|
||||||
@@ -512,7 +512,7 @@ REPORT: "Generating {total_tasks} layout templates across {targets.length} targe
|
|||||||
Generate layout templates for ALL selected concepts in parallel:
|
Generate layout templates for ALL selected concepts in parallel:
|
||||||
```javascript
|
```javascript
|
||||||
FOR each task in task_list:
|
FOR each task in task_list:
|
||||||
Task(ui-design-agent): `
|
Agent(ui-design-agent): `
|
||||||
[LAYOUT_TEMPLATE_GENERATION_TASK #{task.variant_id} for {task.target}]
|
[LAYOUT_TEMPLATE_GENERATION_TASK #{task.variant_id} for {task.target}]
|
||||||
Generate detailed layout template based on user-selected concept.
|
Generate detailed layout template based on user-selected concept.
|
||||||
Focus ONLY on structure and layout. DO NOT concern with visual style (colors, fonts, etc.).
|
Focus ONLY on structure and layout. DO NOT concern with visual style (colors, fonts, etc.).
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: workflow:ui-design:reference-page-generator
|
name: workflow:ui-design:reference-page-generator
|
||||||
description: Generate multi-component reference pages and documentation from design run extraction
|
description: Generate multi-component reference pages and documentation from design run extraction
|
||||||
argument-hint: "[--design-run <path>] [--package-name <name>] [--output-dir <path>]"
|
argument-hint: "[--design-run <path>] [--package-name <name>] [--output-dir <path>]"
|
||||||
allowed-tools: Read,Write,Bash,Task,TodoWrite
|
allowed-tools: Read,Write,Bash,Agent,TodoWrite
|
||||||
auto-continue: true
|
auto-continue: true
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -198,7 +198,7 @@ echo "[Phase 1] Component data preparation complete"
|
|||||||
**Agent Task**:
|
**Agent Task**:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task(ui-design-agent): `
|
Agent(ui-design-agent): `
|
||||||
[PREVIEW_SHOWCASE_GENERATION]
|
[PREVIEW_SHOWCASE_GENERATION]
|
||||||
Generate interactive multi-component showcase panel for reference package
|
Generate interactive multi-component showcase panel for reference package
|
||||||
|
|
||||||
@@ -210,7 +210,7 @@ Task(ui-design-agent): `
|
|||||||
2. ${package_dir}/design-tokens.json (design tokens - REQUIRED)
|
2. ${package_dir}/design-tokens.json (design tokens - REQUIRED)
|
||||||
3. ${package_dir}/animation-tokens.json (optional, if exists)
|
3. ${package_dir}/animation-tokens.json (optional, if exists)
|
||||||
|
|
||||||
## Generation Task
|
## Generation Agent
|
||||||
|
|
||||||
Create interactive showcase with these sections:
|
Create interactive showcase with these sections:
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name: unified-execute-with-file
|
name: unified-execute-with-file
|
||||||
description: Universal execution engine for consuming any planning/brainstorm/analysis output with minimal progress tracking, multi-agent coordination, and incremental execution
|
description: Universal execution engine for consuming any planning/brainstorm/analysis output with minimal progress tracking, multi-agent coordination, and incremental execution
|
||||||
argument-hint: "[-y|--yes] [<path>[,<path2>] | -p|--plan <path>[,<path2>]] [--auto-commit] [--commit-prefix \"prefix\"] [\"execution context or task name\"]"
|
argument-hint: "[-y|--yes] [<path>[,<path2>] | -p|--plan <path>[,<path2>]] [--auto-commit] [--commit-prefix \"prefix\"] [\"execution context or task name\"]"
|
||||||
allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
allowed-tools: TodoWrite(*), Agent(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auto Mode
|
## Auto Mode
|
||||||
@@ -34,7 +34,7 @@ When `--yes` or `-y`: Auto-confirm execution decisions, follow plan's DAG depend
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Execution Methods**:
|
**Execution Methods**:
|
||||||
- **Agent**: Task tool with code-developer (recommended for standard tasks)
|
- **Agent**: Agent tool with code-developer (recommended for standard tasks)
|
||||||
- **CLI-Codex**: `ccw cli --tool codex` (complex tasks, git-aware)
|
- **CLI-Codex**: `ccw cli --tool codex` (complex tasks, git-aware)
|
||||||
- **CLI-Gemini**: `ccw cli --tool gemini` (analysis-heavy tasks)
|
- **CLI-Gemini**: `ccw cli --tool gemini` (analysis-heavy tasks)
|
||||||
- **Auto**: Select based on task complexity (default in `-y` mode)
|
- **Auto**: Select based on task complexity (default in `-y` mode)
|
||||||
@@ -99,7 +99,7 @@ Universal execution engine consuming **any** planning output and executing it wi
|
|||||||
│ Phase 5: Per-Task Execution (Agent OR CLI) │
|
│ Phase 5: Per-Task Execution (Agent OR CLI) │
|
||||||
│ ├─ Extract relevant notes from previous tasks │
|
│ ├─ Extract relevant notes from previous tasks │
|
||||||
│ ├─ Inject notes into execution context │
|
│ ├─ Inject notes into execution context │
|
||||||
│ ├─ Route to Agent (Task tool) OR CLI (ccw cli command) │
|
│ ├─ Route to Agent (Agent tool) OR CLI (ccw cli command) │
|
||||||
│ ├─ Generate structured notes for next task │
|
│ ├─ Generate structured notes for next task │
|
||||||
│ ├─ Auto-commit if enabled (conventional commit format) │
|
│ ├─ Auto-commit if enabled (conventional commit format) │
|
||||||
│ └─ Append event to unified log │
|
│ └─ Append event to unified log │
|
||||||
@@ -507,10 +507,10 @@ ${recommendations.map(r => \`- ${r}\`).join('\\n')}
|
|||||||
|
|
||||||
When: `executionMethod === "Agent"` or `Auto + Low Complexity`
|
When: `executionMethod === "Agent"` or `Auto + Low Complexity`
|
||||||
|
|
||||||
Execute task via Task tool with code-developer agent:
|
Execute task via Agent tool with code-developer agent:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "code-developer", // or other agent types
|
subagent_type: "code-developer", // or other agent types
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: task.title,
|
description: task.title,
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
| 内容类型 | 保留要求 | 示例 |
|
| 内容类型 | 保留要求 | 示例 |
|
||||||
|---------|---------|------|
|
|---------|---------|------|
|
||||||
| **Bash命令** | 完整命令,包含所有参数、管道、重定向 | `find . -name "*.json" \| head -1` |
|
| **Bash命令** | 完整命令,包含所有参数、管道、重定向 | `find . -name "*.json" \| head -1` |
|
||||||
| **Agent Prompt** | 全文保留,包含OBJECTIVE、TASK、EXPECTED等所有节 | 完整的Task({prompt: "..."}) |
|
| **Agent Prompt** | 全文保留,包含OBJECTIVE、TASK、EXPECTED等所有节 | 完整的Agent({prompt: "..."}) |
|
||||||
| **代码函数** | 完整函数体,所有if/else分支 | `analyzeTaskComplexity()` 全部代码 |
|
| **代码函数** | 完整函数体,所有if/else分支 | `analyzeTaskComplexity()` 全部代码 |
|
||||||
| **参数表格** | 所有行列,不省略任何参数 | Session Types表格 |
|
| **参数表格** | 所有行列,不省略任何参数 | Session Types表格 |
|
||||||
| **JSON Schema** | 所有字段、类型、required定义 | context-package.json schema |
|
| **JSON Schema** | 所有字段、类型、required定义 | context-package.json schema |
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
|
|
||||||
1. **将代码替换为描述**
|
1. **将代码替换为描述**
|
||||||
- ❌ 错误:`Execute context gathering agent`
|
- ❌ 错误:`Execute context gathering agent`
|
||||||
- ✅ 正确:完整的 `Task({ subagent_type: "context-search-agent", prompt: "...[完整200行prompt]..." })`
|
- ✅ 正确:完整的 `Agent({ subagent_type: "context-search-agent", prompt: "...[完整200行prompt]..." })`
|
||||||
|
|
||||||
2. **省略Prompt内容**
|
2. **省略Prompt内容**
|
||||||
- ❌ 错误:`Agent prompt for context gathering (see original file)`
|
- ❌ 错误:`Agent prompt for context gathering (see original file)`
|
||||||
@@ -277,7 +277,7 @@ commands/ skills/
|
|||||||
---
|
---
|
||||||
name: {skill-name}
|
name: {skill-name}
|
||||||
description: {简短描述}. Triggers on "{trigger-phrase}".
|
description: {简短描述}. Triggers on "{trigger-phrase}".
|
||||||
allowed-tools: Task, AskUserQuestion, TodoWrite, Read, Write, Edit, Bash, Glob, Grep
|
allowed-tools: Agent, AskUserQuestion, TodoWrite, Read, Write, Edit, Bash, Glob, Grep
|
||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -440,7 +440,7 @@ Complete: IMPL_PLAN.md + Task JSONs
|
|||||||
|--------|---------|---------|
|
|--------|---------|---------|
|
||||||
| **代码块数量** | 计数 ` ```bash ` 和 ` ```javascript ` | 与原文件相等 |
|
| **代码块数量** | 计数 ` ```bash ` 和 ` ```javascript ` | 与原文件相等 |
|
||||||
| **表格数量** | 计数 ` \| ` 开头的行 | 与原文件相等 |
|
| **表格数量** | 计数 ` \| ` 开头的行 | 与原文件相等 |
|
||||||
| **Agent Prompt** | 搜索 `Task({` | 完整的prompt参数内容 |
|
| **Agent Prompt** | 搜索 `Agent({` | 完整的prompt参数内容 |
|
||||||
| **步骤编号** | 检查 `### Step` | 编号序列与原文件一致 |
|
| **步骤编号** | 检查 `### Step` | 编号序列与原文件一致 |
|
||||||
| **文件行数** | `wc -l` | ±20%以内 |
|
| **文件行数** | `wc -l` | ±20%以内 |
|
||||||
| **关键函数** | 搜索函数名 | 所有函数完整保留 |
|
| **关键函数** | 搜索函数名 | 所有函数完整保留 |
|
||||||
@@ -492,10 +492,10 @@ Execute the context-search-agent to gather project context.
|
|||||||
### Step 2: Run context gathering
|
### Step 2: Run context gathering
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "context-search-agent",
|
subagent_type: "context-search-agent",
|
||||||
prompt: `
|
prompt: `
|
||||||
## Context Search Task
|
## Context Search Agent
|
||||||
|
|
||||||
### OBJECTIVE
|
### OBJECTIVE
|
||||||
Gather comprehensive context for planning session ${sessionId}
|
Gather comprehensive context for planning session ${sessionId}
|
||||||
@@ -535,7 +535,7 @@ Gather comprehensive context for planning session ${sessionId}
|
|||||||
│ └─→ 数量应相等 │
|
│ └─→ 数量应相等 │
|
||||||
│ │
|
│ │
|
||||||
│ Step 3: 关键内容抽查 │
|
│ Step 3: 关键内容抽查 │
|
||||||
│ - 搜索 Task({ → Agent Prompt 完整性 │
|
│ - 搜索 Agent({ → Agent Prompt 完整性 │
|
||||||
│ - 搜索函数名 → 函数体完整性 │
|
│ - 搜索函数名 → 函数体完整性 │
|
||||||
│ - 搜索表格标记 → 表格完整性 │
|
│ - 搜索表格标记 → 表格完整性 │
|
||||||
│ │
|
│ │
|
||||||
@@ -562,8 +562,8 @@ grep -c '^|' commands/workflow/tools/context-gather.md
|
|||||||
grep -c '^|' skills/workflow-plan/phases/02-context-gathering.md
|
grep -c '^|' skills/workflow-plan/phases/02-context-gathering.md
|
||||||
|
|
||||||
# 4. Agent Prompt检查
|
# 4. Agent Prompt检查
|
||||||
grep -c 'Task({' commands/workflow/tools/context-gather.md
|
grep -c 'Agent({' commands/workflow/tools/context-gather.md
|
||||||
grep -c 'Task({' skills/workflow-plan/phases/02-context-gathering.md
|
grep -c 'Agent({' skills/workflow-plan/phases/02-context-gathering.md
|
||||||
|
|
||||||
# 5. 函数定义检查
|
# 5. 函数定义检查
|
||||||
grep -E '^(function|const.*=.*=>|async function)' commands/workflow/tools/context-gather.md
|
grep -E '^(function|const.*=.*=>|async function)' commands/workflow/tools/context-gather.md
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ graph TD
|
|||||||
---
|
---
|
||||||
name: {skill-name}
|
name: {skill-name}
|
||||||
description: {一句话描述}. {触发关键词}. Triggers on "{关键词1}", "{关键词2}".
|
description: {一句话描述}. {触发关键词}. Triggers on "{关键词1}", "{关键词2}".
|
||||||
allowed-tools: Task, AskUserQuestion, Read, Bash, Glob, Grep, Write, {其他MCP工具}
|
allowed-tools: Agent, AskUserQuestion, Read, Bash, Glob, Grep, Write, {其他MCP工具}
|
||||||
---
|
---
|
||||||
|
|
||||||
# {Skill 标题}
|
# {Skill 标题}
|
||||||
@@ -192,7 +192,7 @@ description: | # 必需:描述 + 触发词
|
|||||||
Generate XXX documents.
|
Generate XXX documents.
|
||||||
Triggers on "keyword1", "keyword2".
|
Triggers on "keyword1", "keyword2".
|
||||||
allowed-tools: | # 必需:允许使用的工具
|
allowed-tools: | # 必需:允许使用的工具
|
||||||
Task, AskUserQuestion, Read, Bash,
|
Agent, AskUserQuestion, Read, Bash,
|
||||||
Glob, Grep, Write, mcp__chrome__*
|
Glob, Grep, Write, mcp__chrome__*
|
||||||
---
|
---
|
||||||
```
|
```
|
||||||
@@ -641,7 +641,7 @@ touch my-skill/templates/agent-base.md
|
|||||||
---
|
---
|
||||||
name: my-skill
|
name: my-skill
|
||||||
description: Generate XXX. Triggers on "keyword1", "keyword2".
|
description: Generate XXX. Triggers on "keyword1", "keyword2".
|
||||||
allowed-tools: Task, AskUserQuestion, Read, Bash, Glob, Grep, Write
|
allowed-tools: Agent, AskUserQuestion, Read, Bash, Glob, Grep, Write
|
||||||
---
|
---
|
||||||
|
|
||||||
# My Skill
|
# My Skill
|
||||||
@@ -680,7 +680,7 @@ Generate XXX through multi-phase analysis.
|
|||||||
|
|
||||||
| 工具 | 用途 | 适用 Skill |
|
| 工具 | 用途 | 适用 Skill |
|
||||||
|------|------|------------|
|
|------|------|------------|
|
||||||
| `Task` | 启动子 Agent | 所有 |
|
| `Agent` | 启动子 Agent | 所有 |
|
||||||
| `AskUserQuestion` | 用户交互 | 所有 |
|
| `AskUserQuestion` | 用户交互 | 所有 |
|
||||||
| `Read/Write/Glob/Grep` | 文件操作 | 所有 |
|
| `Read/Write/Glob/Grep` | 文件操作 | 所有 |
|
||||||
| `Bash` | 脚本执行 | 需要自动化 |
|
| `Bash` | 脚本执行 | 需要自动化 |
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: brainstorm
|
name: brainstorm
|
||||||
description: Unified brainstorming skill with dual-mode operation - auto pipeline and single role analysis. Triggers on "brainstorm", "头脑风暴".
|
description: Unified brainstorming skill with dual-mode operation - auto pipeline and single role analysis. Triggers on "brainstorm", "头脑风暴".
|
||||||
allowed-tools: Skill(*), Task(conceptual-planning-agent, context-search-agent), AskUserQuestion(*), TodoWrite(*), Read(*), Write(*), Edit(*), Glob(*), Bash(*)
|
allowed-tools: Skill(*), Agent(conceptual-planning-agent, context-search-agent), AskUserQuestion(*), TodoWrite(*), Read(*), Write(*), Edit(*), Glob(*), Bash(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Brainstorm
|
# Brainstorm
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: issue-manage
|
name: issue-manage
|
||||||
description: Interactive issue management with menu-driven CRUD operations. Use when managing issues, viewing issue status, editing issue fields, performing bulk operations, or viewing issue history. Triggers on "manage issue", "list issues", "edit issue", "delete issue", "bulk update", "issue dashboard", "issue history", "completed issues".
|
description: Interactive issue management with menu-driven CRUD operations. Use when managing issues, viewing issue status, editing issue fields, performing bulk operations, or viewing issue history. Triggers on "manage issue", "list issues", "edit issue", "delete issue", "bulk update", "issue dashboard", "issue history", "completed issues".
|
||||||
allowed-tools: Bash, Read, Write, AskUserQuestion, Task, Glob
|
allowed-tools: Bash, Read, Write, AskUserQuestion, Agent, Glob
|
||||||
---
|
---
|
||||||
|
|
||||||
# Issue Management Skill
|
# Issue Management Skill
|
||||||
@@ -219,9 +219,8 @@ const action = AskUserQuestion({
|
|||||||
header: 'Action',
|
header: 'Action',
|
||||||
options: [
|
options: [
|
||||||
{ label: 'List Issues', description: 'Browse active issues' },
|
{ label: 'List Issues', description: 'Browse active issues' },
|
||||||
{ label: 'View Issue', description: 'Detail view' },
|
{ label: 'View Issue', description: 'Detail view (includes history)' },
|
||||||
{ label: 'Edit Issue', description: 'Modify fields' },
|
{ label: 'Edit Issue', description: 'Modify fields' },
|
||||||
{ label: 'View History', description: 'Completed issues' },
|
|
||||||
{ label: 'Bulk Operations', description: 'Batch actions' }
|
{ label: 'Bulk Operations', description: 'Batch actions' }
|
||||||
]
|
]
|
||||||
}]
|
}]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: memory-manage
|
name: memory-manage
|
||||||
description: Unified memory management - CLAUDE.md updates and documentation generation with interactive routing. Triggers on "memory manage", "update claude", "update memory", "generate docs", "更新记忆", "生成文档".
|
description: Unified memory management - CLAUDE.md updates and documentation generation with interactive routing. Triggers on "memory manage", "update claude", "update memory", "generate docs", "更新记忆", "生成文档".
|
||||||
allowed-tools: Task(*), Bash(*), AskUserQuestion(*), Read(*)
|
allowed-tools: Agent(*), Bash(*), AskUserQuestion(*), Read(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Memory Management Skill
|
# Memory Management Skill
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: review-code
|
name: review-code
|
||||||
description: Multi-dimensional code review with structured reports. Analyzes correctness, readability, performance, security, testing, and architecture. Triggers on "review code", "code review", "审查代码", "代码审查".
|
description: Multi-dimensional code review with structured reports. Analyzes correctness, readability, performance, security, testing, and architecture. Triggers on "review code", "code review", "审查代码", "代码审查".
|
||||||
allowed-tools: Task, AskUserQuestion, Read, Write, Glob, Grep, Bash, mcp__ace-tool__search_context, mcp__ide__getDiagnostics
|
allowed-tools: Agent, AskUserQuestion, Read, Write, Glob, Grep, Bash, mcp__ace-tool__search_context, mcp__ide__getDiagnostics
|
||||||
---
|
---
|
||||||
|
|
||||||
# Review Code
|
# Review Code
|
||||||
|
|||||||
@@ -132,8 +132,9 @@ async function runOrchestrator() {
|
|||||||
// 确定当前需要审查的维度(使用 StateManager)
|
// 确定当前需要审查的维度(使用 StateManager)
|
||||||
const currentDimension = StateManager.getNextDimension(state);
|
const currentDimension = StateManager.getNextDimension(state);
|
||||||
|
|
||||||
const result = await Task({
|
const result = await Agent({
|
||||||
subagent_type: 'universal-executor',
|
subagent_type: 'universal-executor',
|
||||||
|
description: `Execute code review action: ${actionId}`,
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
prompt: `
|
prompt: `
|
||||||
[WORK_DIR]
|
[WORK_DIR]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: review-cycle
|
name: review-cycle
|
||||||
description: Unified multi-dimensional code review with automated fix orchestration. Routes to session-based (git changes), module-based (path patterns), or fix mode. Triggers on "workflow:review-cycle", "workflow:review-session-cycle", "workflow:review-module-cycle", "workflow:review-cycle-fix".
|
description: Unified multi-dimensional code review with automated fix orchestration. Routes to session-based (git changes), module-based (path patterns), or fix mode. Triggers on "workflow:review-cycle", "workflow:review-session-cycle", "workflow:review-module-cycle", "workflow:review-cycle-fix".
|
||||||
allowed-tools: Task, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Read, Write, Edit, Bash, Glob, Grep, Skill
|
allowed-tools: Agent, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Read, Write, Edit, Bash, Glob, Grep, Skill
|
||||||
---
|
---
|
||||||
|
|
||||||
# Review Cycle
|
# Review Cycle
|
||||||
|
|||||||
@@ -332,7 +332,7 @@ for (let i = 0; i < batches.length; i += MAX_PARALLEL) {
|
|||||||
|
|
||||||
// Launch agents in parallel (run_in_background=true)
|
// Launch agents in parallel (run_in_background=true)
|
||||||
for (const batch of chunk) {
|
for (const batch of chunk) {
|
||||||
const taskId = Task({
|
const taskId = Agent({
|
||||||
subagent_type: "cli-planning-agent",
|
subagent_type: "cli-planning-agent",
|
||||||
run_in_background: true,
|
run_in_background: true,
|
||||||
description: `Plan batch ${batch.batch_id}: ${batch.findings.length} findings`,
|
description: `Plan batch ${batch.batch_id}: ${batch.findings.length} findings`,
|
||||||
@@ -386,7 +386,7 @@ for (let i = 1; i <= aggregatedPlan.groups.length; i++) {
|
|||||||
|
|
||||||
**Planning Agent (Batch Mode - Partial Plan Only)**:
|
**Planning Agent (Batch Mode - Partial Plan Only)**:
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-planning-agent",
|
subagent_type: "cli-planning-agent",
|
||||||
run_in_background: true,
|
run_in_background: true,
|
||||||
description: `Plan batch ${batch.batch_id}: ${batch.findings.length} findings`,
|
description: `Plan batch ${batch.batch_id}: ${batch.findings.length} findings`,
|
||||||
@@ -488,7 +488,7 @@ Before finalizing outputs:
|
|||||||
|
|
||||||
**Execution Agent** (per group):
|
**Execution Agent** (per group):
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-execute-agent",
|
subagent_type: "cli-execute-agent",
|
||||||
description: `Fix ${group.findings.length} issues: ${group.group_name}`,
|
description: `Fix ${group.findings.length} issues: ${group.group_name}`,
|
||||||
prompt: `
|
prompt: `
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: skill-generator
|
name: skill-generator
|
||||||
description: Meta-skill for creating new Claude Code skills with configurable execution modes. Supports sequential (fixed order) and autonomous (stateless) phase patterns. Use for skill scaffolding, skill creation, or building new workflows. Triggers on "create skill", "new skill", "skill generator".
|
description: Meta-skill for creating new Claude Code skills with configurable execution modes. Supports sequential (fixed order) and autonomous (stateless) phase patterns. Use for skill scaffolding, skill creation, or building new workflows. Triggers on "create skill", "new skill", "skill generator".
|
||||||
allowed-tools: Task, AskUserQuestion, Read, Bash, Glob, Grep, Write
|
allowed-tools: Agent, AskUserQuestion, Read, Bash, Glob, Grep, Write
|
||||||
---
|
---
|
||||||
|
|
||||||
# Skill Generator
|
# Skill Generator
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ async function executePhase(phaseId, phaseConfig, workDir) {
|
|||||||
const phasePrompt = Read(\`\${skillDir}/phases/\${phaseId}.md\`);
|
const phasePrompt = Read(\`\${skillDir}/phases/\${phaseId}.md\`);
|
||||||
|
|
||||||
// Use Task to invoke Agent
|
// Use Task to invoke Agent
|
||||||
const result = await Task({
|
const result = await Agent({
|
||||||
subagent_type: phaseConfig.agent?.type || 'universal-executor',
|
subagent_type: phaseConfig.agent?.type || 'universal-executor',
|
||||||
run_in_background: phaseConfig.agent?.run_in_background || false,
|
run_in_background: phaseConfig.agent?.run_in_background || false,
|
||||||
prompt: \`
|
prompt: \`
|
||||||
@@ -573,7 +573,7 @@ async function runOrchestrator(workDir) {
|
|||||||
try {
|
try {
|
||||||
const actionPrompt = Read(\`\${skillDir}/phases/actions/\${actionId}.md\`);
|
const actionPrompt = Read(\`\${skillDir}/phases/actions/\${actionId}.md\`);
|
||||||
|
|
||||||
const result = await Task({
|
const result = await Agent({
|
||||||
subagent_type: 'universal-executor',
|
subagent_type: 'universal-executor',
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
prompt: \`
|
prompt: \`
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Suitable for scenarios that need immediate results.
|
|||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// Agent call - synchronous
|
// Agent call - synchronous
|
||||||
const result = Task({
|
const result = Agent({
|
||||||
subagent_type: 'universal-executor',
|
subagent_type: 'universal-executor',
|
||||||
prompt: 'Execute task...',
|
prompt: 'Execute task...',
|
||||||
run_in_background: false // Key: synchronous execution
|
run_in_background: false // Key: synchronous execution
|
||||||
@@ -77,7 +77,7 @@ ccw cli -p "<PROMPT>" --tool <gemini|qwen|codex> --mode <analysis|write>
|
|||||||
General-purpose executor, the most commonly used agent type.
|
General-purpose executor, the most commonly used agent type.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: 'universal-executor',
|
subagent_type: 'universal-executor',
|
||||||
prompt: `
|
prompt: `
|
||||||
Execute task:
|
Execute task:
|
||||||
@@ -99,7 +99,7 @@ Execute task:
|
|||||||
Code exploration agent for quick codebase understanding.
|
Code exploration agent for quick codebase understanding.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: 'Explore',
|
subagent_type: 'Explore',
|
||||||
prompt: `
|
prompt: `
|
||||||
Explore src/ directory:
|
Explore src/ directory:
|
||||||
@@ -123,7 +123,7 @@ Thoroughness: medium
|
|||||||
Deep code analysis agent.
|
Deep code analysis agent.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: 'cli-explore-agent',
|
subagent_type: 'cli-explore-agent',
|
||||||
prompt: `
|
prompt: `
|
||||||
Deep analysis of src/auth/ module:
|
Deep analysis of src/auth/ module:
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ async function runOrchestrator() {
|
|||||||
try {
|
try {
|
||||||
const actionPrompt = Read(\`phases/actions/${actionId}.md\`);
|
const actionPrompt = Read(\`phases/actions/${actionId}.md\`);
|
||||||
|
|
||||||
const result = await Task({
|
const result = await Agent({
|
||||||
subagent_type: 'universal-executor',
|
subagent_type: 'universal-executor',
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
prompt: \`
|
prompt: \`
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ async function execute${toPascalCase(id)}(context) {
|
|||||||
\` : '// No MCP tools configured'}
|
\` : '// No MCP tools configured'}
|
||||||
|
|
||||||
// 3. Launch Agent for in-depth analysis
|
// 3. Launch Agent for in-depth analysis
|
||||||
const agentResult = await Task({
|
const agentResult = await Agent({
|
||||||
subagent_type: '\${agent.type}',
|
subagent_type: '\${agent.type}',
|
||||||
prompt: \`
|
prompt: \`
|
||||||
\${generateAgentPrompt(analysis_type, scope)}
|
\${generateAgentPrompt(analysis_type, scope)}
|
||||||
@@ -408,7 +408,7 @@ const semanticContext = await mcp__ace_tool__search_context({
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Use semantic search results as Agent input context
|
// Use semantic search results as Agent input context
|
||||||
const agentResult = await Task({
|
const agentResult = await Agent({
|
||||||
subagent_type: 'Explore',
|
subagent_type: 'Explore',
|
||||||
prompt: \`
|
prompt: \`
|
||||||
Based on following semantic search results, perform in-depth analysis:
|
Based on following semantic search results, perform in-depth analysis:
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ const tasks = [
|
|||||||
\`\`\`javascript
|
\`\`\`javascript
|
||||||
const results = await Promise.all(
|
const results = await Promise.all(
|
||||||
tasks.map(task =>
|
tasks.map(task =>
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: 'universal-executor',
|
subagent_type: 'universal-executor',
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
prompt: task.prompt
|
prompt: task.prompt
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ function filterDocsByPhase(specs, phase, phaseIndex) {
|
|||||||
---
|
---
|
||||||
name: api-docs-generator
|
name: api-docs-generator
|
||||||
description: Generate API documentation from source code. Triggers on "generate api docs", "api documentation".
|
description: Generate API documentation from source code. Triggers on "generate api docs", "api documentation".
|
||||||
allowed-tools: Task, Read, Write, Glob, Grep, Bash
|
allowed-tools: Agent, Read, Write, Glob, Grep, Bash
|
||||||
---
|
---
|
||||||
|
|
||||||
# API Docs Generator
|
# API Docs Generator
|
||||||
@@ -265,7 +265,7 @@ Phase 3: Generation → api-docs.md
|
|||||||
---
|
---
|
||||||
name: task-manager
|
name: task-manager
|
||||||
description: Interactive task management with CRUD operations. Triggers on "manage tasks", "task list".
|
description: Interactive task management with CRUD operations. Triggers on "manage tasks", "task list".
|
||||||
allowed-tools: Task, AskUserQuestion, Read, Write
|
allowed-tools: Agent, AskUserQuestion, Read, Write
|
||||||
---
|
---
|
||||||
|
|
||||||
# Task Manager
|
# Task Manager
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: skill-tuning
|
name: skill-tuning
|
||||||
description: Universal skill diagnosis and optimization tool. Detect and fix skill execution issues including context explosion, long-tail forgetting, data flow disruption, and agent coordination failures. Supports Gemini CLI for deep analysis. Triggers on "skill tuning", "tune skill", "skill diagnosis", "optimize skill", "skill debug".
|
description: Universal skill diagnosis and optimization tool. Detect and fix skill execution issues including context explosion, long-tail forgetting, data flow disruption, and agent coordination failures. Supports Gemini CLI for deep analysis. Triggers on "skill tuning", "tune skill", "skill diagnosis", "optimize skill", "skill debug".
|
||||||
allowed-tools: Task, AskUserQuestion, Read, Write, Bash, Glob, Grep, mcp__ace-tool__search_context
|
allowed-tools: Agent, AskUserQuestion, Read, Write, Bash, Glob, Grep, mcp__ace-tool__search_context
|
||||||
---
|
---
|
||||||
|
|
||||||
# Skill Tuning
|
# Skill Tuning
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ async function execute(state, workDir) {
|
|||||||
type: 'agent_failure',
|
type: 'agent_failure',
|
||||||
severity: 'medium',
|
severity: 'medium',
|
||||||
location: { file: 'SKILL.md' },
|
location: { file: 'SKILL.md' },
|
||||||
description: 'Task tool used but not declared in allowed-tools',
|
description: 'Agent tool used but not declared in allowed-tools',
|
||||||
evidence: [`${totalCalls} Task calls found, but Task not in allowed-tools`],
|
evidence: [`${totalCalls} Task calls found, but Task not in allowed-tools`],
|
||||||
root_cause: 'Tool declaration mismatch',
|
root_cause: 'Tool declaration mismatch',
|
||||||
impact: 'May cause runtime permission issues',
|
impact: 'May cause runtime permission issues',
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ async function execute(state, workDir) {
|
|||||||
file: 'phases/*.md',
|
file: 'phases/*.md',
|
||||||
action: 'modify',
|
action: 'modify',
|
||||||
diff: `+ try {
|
diff: `+ try {
|
||||||
const result = await Task({...});
|
const result = await Agent({...});
|
||||||
+ if (!result) throw new Error('Empty result');
|
+ if (!result) throw new Error('Empty result');
|
||||||
+ } catch (e) {
|
+ } catch (e) {
|
||||||
+ updateState({ errors: [...errors, e.message], error_count: error_count + 1 });
|
+ updateState({ errors: [...errors, e.message], error_count: error_count + 1 });
|
||||||
|
|||||||
@@ -99,8 +99,9 @@ async function runOrchestrator(workDir) {
|
|||||||
target_skill: { name: state.target_skill.name, path: state.target_skill.path }
|
target_skill: { name: state.target_skill.name, path: state.target_skill.path }
|
||||||
};
|
};
|
||||||
|
|
||||||
const result = await Task({
|
const result = await Agent({
|
||||||
subagent_type: 'universal-executor',
|
subagent_type: 'universal-executor',
|
||||||
|
description: `Execute skill-tuning action: ${actionId}`,
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
prompt: `
|
prompt: `
|
||||||
[CONTEXT]
|
[CONTEXT]
|
||||||
|
|||||||
@@ -114,18 +114,21 @@ Write(`${workDir}/final-output.json`, finalResult); // 只存最终结果
|
|||||||
// 上下文流转模式
|
// 上下文流转模式
|
||||||
async function executePhase(context) {
|
async function executePhase(context) {
|
||||||
const { previousResult, constraints, config } = context;
|
const { previousResult, constraints, config } = context;
|
||||||
|
|
||||||
const result = await Task({
|
const result = await Agent({
|
||||||
|
subagent_type: 'universal-executor',
|
||||||
|
description: 'Execute phase with context passing',
|
||||||
|
run_in_background: false,
|
||||||
prompt: `
|
prompt: `
|
||||||
[CONTEXT]
|
[CONTEXT]
|
||||||
Previous: ${JSON.stringify(previousResult)}
|
Previous: ${JSON.stringify(previousResult)}
|
||||||
Constraints: ${constraints.join(', ')}
|
Constraints: ${constraints.join(', ')}
|
||||||
|
|
||||||
[TASK]
|
[TASK]
|
||||||
Process and return result directly.
|
Process and return result directly.
|
||||||
`
|
`
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...context,
|
...context,
|
||||||
currentResult: result,
|
currentResult: result,
|
||||||
|
|||||||
@@ -140,8 +140,10 @@ function updateHistory(state, newItem) {
|
|||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// Add summarization before passing to next phase
|
// Add summarization before passing to next phase
|
||||||
const summary = await Task({
|
const summary = await Agent({
|
||||||
subagent_type: 'universal-executor',
|
subagent_type: 'universal-executor',
|
||||||
|
description: 'Summarize content for context compression',
|
||||||
|
run_in_background: false,
|
||||||
prompt: `Summarize in <100 words: ${fullContent}\nReturn JSON: { summary, key_points[] }`
|
prompt: `Summarize in <100 words: ${fullContent}\nReturn JSON: { summary, key_points[] }`
|
||||||
});
|
});
|
||||||
nextPhasePrompt = `Previous summary: ${summary.summary}`;
|
nextPhasePrompt = `Previous summary: ${summary.summary}`;
|
||||||
@@ -268,12 +270,17 @@ function validateAgentResult(result, requiredFields) {
|
|||||||
### flatten_nesting
|
### flatten_nesting
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// Before: Agent A's prompt tells it to call Task({subagent_type: 'B'})
|
// Before: Agent A's prompt tells it to call Agent({subagent_type: 'B'})
|
||||||
// After: Agent A returns signal, orchestrator handles
|
// After: Agent A returns signal, orchestrator handles
|
||||||
// Agent A: return { needs_agent_b: true, context: {...} }
|
// Agent A: return { needs_agent_b: true, context: {...} }
|
||||||
// Orchestrator:
|
// Orchestrator:
|
||||||
if (parsedA.needs_agent_b) {
|
if (parsedA.needs_agent_b) {
|
||||||
resultB = await Task({ subagent_type: 'B', prompt: `Context: ${parsedA.context}` });
|
resultB = await Agent({
|
||||||
|
subagent_type: 'B',
|
||||||
|
description: 'Handle delegated task from Agent A',
|
||||||
|
run_in_background: false,
|
||||||
|
prompt: `Context: ${parsedA.context}`
|
||||||
|
});
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: spec-generator
|
name: spec-generator
|
||||||
description: Specification generator - 6 phase document chain producing product brief, PRD, architecture, and epics. Triggers on "generate spec", "create specification", "spec generator", "workflow:spec".
|
description: Specification generator - 6 phase document chain producing product brief, PRD, architecture, and epics. Triggers on "generate spec", "create specification", "spec generator", "workflow:spec".
|
||||||
allowed-tools: Task, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Read, Write, Edit, Bash, Glob, Grep, Skill
|
allowed-tools: Agent, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Read, Write, Edit, Bash, Glob, Grep, Skill
|
||||||
---
|
---
|
||||||
|
|
||||||
# Spec Generator
|
# Spec Generator
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ const hasCodebase = Glob('**/*.{ts,js,py,java,go,rs}').length > 0
|
|||||||
|| Glob('Cargo.toml').length > 0;
|
|| Glob('Cargo.toml').length > 0;
|
||||||
|
|
||||||
if (hasCodebase) {
|
if (hasCodebase) {
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: `Explore codebase for spec: ${slug}`,
|
description: `Explore codebase for spec: ${slug}`,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-arch-opt
|
name: team-arch-opt
|
||||||
description: Unified team skill for architecture optimization. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents. Triggers on "team arch-opt".
|
description: Unified team skill for architecture optimization. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents. Triggers on "team arch-opt".
|
||||||
allowed-tools: Task, TaskCreate, TaskList, TaskGet, TaskUpdate, TeamCreate, TeamDelete, SendMessage, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep, mcp__ace-tool__search_context
|
allowed-tools: Agent, TaskCreate, TaskList, TaskGet, TaskUpdate, TeamCreate, TeamDelete, SendMessage, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep, mcp__ace-tool__search_context
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team Architecture Optimization
|
# Team Architecture Optimization
|
||||||
@@ -137,7 +137,7 @@ Phase 3 needs task dispatch
|
|||||||
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: <team-name>,
|
team_name: <team-name>,
|
||||||
@@ -361,7 +361,7 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Action |
|
| Choice | Action |
|
||||||
|--------|--------|
|
|--------|--------|
|
||||||
| Archive & Clean | Update session status="completed" -> TeamDelete(arch-opt) -> output final summary |
|
| Archive & Clean | Update session status="completed" -> TeamDelete() -> output final summary |
|
||||||
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-arch-opt", args="resume")` |
|
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-arch-opt", args="resume")` |
|
||||||
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ Every task description uses structured format for clarity:
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "<TASK-ID>",
|
subject: "<TASK-ID>",
|
||||||
owner: "<role>",
|
|
||||||
description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
|
description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
|
||||||
TASK:
|
TASK:
|
||||||
- <step 1: specific action>
|
- <step 1: specific action>
|
||||||
@@ -43,10 +42,9 @@ EXPECTED: <deliverable path> + <quality criteria>
|
|||||||
CONSTRAINTS: <scope limits, focus areas>
|
CONSTRAINTS: <scope limits, focus areas>
|
||||||
---
|
---
|
||||||
InnerLoop: <true|false>
|
InnerLoop: <true|false>
|
||||||
BranchId: <B01|A|none>",
|
BranchId: <B01|A|none>"
|
||||||
blockedBy: [<dependency-list>],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "<TASK-ID>", addBlockedBy: [<dependency-list>], owner: "<role>" })
|
||||||
```
|
```
|
||||||
|
|
||||||
### Mode Router
|
### Mode Router
|
||||||
@@ -81,9 +79,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/artifacts/architecture-baseline.json + <session>/artifacts/architecture-report.md | Quantified metrics with evidence
|
EXPECTED: <session>/artifacts/architecture-baseline.json + <session>/artifacts/architecture-report.md | Quantified metrics with evidence
|
||||||
CONSTRAINTS: Focus on <refactoring-scope> | Analyze before any changes
|
CONSTRAINTS: Focus on <refactoring-scope> | Analyze before any changes
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "ANALYZE-001", owner: "analyzer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**DESIGN-001** (designer, Stage 2):
|
**DESIGN-001** (designer, Stage 2):
|
||||||
@@ -105,10 +103,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/artifacts/refactoring-plan.md | Priority-ordered with structural improvement targets, discrete REFACTOR-IDs
|
EXPECTED: <session>/artifacts/refactoring-plan.md | Priority-ordered with structural improvement targets, discrete REFACTOR-IDs
|
||||||
CONSTRAINTS: Focus on highest-impact refactorings | Risk assessment required | Non-overlapping file targets per REFACTOR-ID
|
CONSTRAINTS: Focus on highest-impact refactorings | Risk assessment required | Non-overlapping file targets per REFACTOR-ID
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["ANALYZE-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "DESIGN-001", addBlockedBy: ["ANALYZE-001"], owner: "designer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**REFACTOR-001** (refactorer, Stage 3):
|
**REFACTOR-001** (refactorer, Stage 3):
|
||||||
@@ -130,10 +127,9 @@ CONTEXT:
|
|||||||
EXPECTED: Modified source files + validation passing | Refactorings applied without regressions
|
EXPECTED: Modified source files + validation passing | Refactorings applied without regressions
|
||||||
CONSTRAINTS: Preserve existing behavior | Update all references | Follow code conventions
|
CONSTRAINTS: Preserve existing behavior | Update all references | Follow code conventions
|
||||||
---
|
---
|
||||||
InnerLoop: true",
|
InnerLoop: true"
|
||||||
blockedBy: ["DESIGN-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "REFACTOR-001", addBlockedBy: ["DESIGN-001"], owner: "refactorer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**VALIDATE-001** (validator, Stage 4 - parallel):
|
**VALIDATE-001** (validator, Stage 4 - parallel):
|
||||||
@@ -156,10 +152,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/artifacts/validation-results.json | Per-dimension validation with verdicts
|
EXPECTED: <session>/artifacts/validation-results.json | Per-dimension validation with verdicts
|
||||||
CONSTRAINTS: Must compare against baseline | Flag any regressions or broken imports
|
CONSTRAINTS: Must compare against baseline | Flag any regressions or broken imports
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["REFACTOR-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "VALIDATE-001", addBlockedBy: ["REFACTOR-001"], owner: "validator" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**REVIEW-001** (reviewer, Stage 4 - parallel):
|
**REVIEW-001** (reviewer, Stage 4 - parallel):
|
||||||
@@ -180,10 +175,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/artifacts/review-report.md | Per-dimension findings with severity
|
EXPECTED: <session>/artifacts/review-report.md | Per-dimension findings with severity
|
||||||
CONSTRAINTS: Focus on refactoring changes only | Provide specific file:line references
|
CONSTRAINTS: Focus on refactoring changes only | Provide specific file:line references
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["REFACTOR-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "REVIEW-001", addBlockedBy: ["REFACTOR-001"], owner: "reviewer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -210,11 +204,15 @@ For each target index `i` (0-based), with prefix char `P = pipeline_prefix_chars
|
|||||||
// Create session subdirectory for this pipeline
|
// Create session subdirectory for this pipeline
|
||||||
Bash("mkdir -p <session>/artifacts/pipelines/<P>")
|
Bash("mkdir -p <session>/artifacts/pipelines/<P>")
|
||||||
|
|
||||||
TaskCreate({ subject: "ANALYZE-<P>01", ... }) // blockedBy: []
|
TaskCreate({ subject: "ANALYZE-<P>01", ... })
|
||||||
TaskCreate({ subject: "DESIGN-<P>01", ... }) // blockedBy: ["ANALYZE-<P>01"]
|
TaskCreate({ subject: "DESIGN-<P>01", ... })
|
||||||
TaskCreate({ subject: "REFACTOR-<P>01", ... }) // blockedBy: ["DESIGN-<P>01"]
|
TaskUpdate({ taskId: "DESIGN-<P>01", addBlockedBy: ["ANALYZE-<P>01"] })
|
||||||
TaskCreate({ subject: "VALIDATE-<P>01", ... }) // blockedBy: ["REFACTOR-<P>01"]
|
TaskCreate({ subject: "REFACTOR-<P>01", ... })
|
||||||
TaskCreate({ subject: "REVIEW-<P>01", ... }) // blockedBy: ["REFACTOR-<P>01"]
|
TaskUpdate({ taskId: "REFACTOR-<P>01", addBlockedBy: ["DESIGN-<P>01"] })
|
||||||
|
TaskCreate({ subject: "VALIDATE-<P>01", ... })
|
||||||
|
TaskUpdate({ taskId: "VALIDATE-<P>01", addBlockedBy: ["REFACTOR-<P>01"] })
|
||||||
|
TaskCreate({ subject: "REVIEW-<P>01", ... })
|
||||||
|
TaskUpdate({ taskId: "REVIEW-<P>01", addBlockedBy: ["REFACTOR-<P>01"] })
|
||||||
```
|
```
|
||||||
|
|
||||||
Task descriptions follow same template as single mode, with additions:
|
Task descriptions follow same template as single mode, with additions:
|
||||||
@@ -241,9 +239,9 @@ EXPECTED: <session>/artifacts/pipelines/A/architecture-baseline.json + architect
|
|||||||
CONSTRAINTS: Focus on auth module scope
|
CONSTRAINTS: Focus on auth module scope
|
||||||
---
|
---
|
||||||
InnerLoop: false
|
InnerLoop: false
|
||||||
PipelineId: A",
|
PipelineId: A"
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "ANALYZE-A01", owner: "analyzer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -298,10 +296,9 @@ EXPECTED: Modified source files for REFACTOR-{NNN} only
|
|||||||
CONSTRAINTS: Only implement this branch's refactoring | Do not touch files outside REFACTOR-{NNN} scope
|
CONSTRAINTS: Only implement this branch's refactoring | Do not touch files outside REFACTOR-{NNN} scope
|
||||||
---
|
---
|
||||||
InnerLoop: false
|
InnerLoop: false
|
||||||
BranchId: B{NN}",
|
BranchId: B{NN}"
|
||||||
blockedBy: ["DESIGN-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "REFACTOR-B{NN}", addBlockedBy: ["DESIGN-001"], owner: "refactorer" })
|
||||||
|
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "VALIDATE-B{NN}",
|
subject: "VALIDATE-B{NN}",
|
||||||
@@ -319,10 +316,9 @@ EXPECTED: <session>/artifacts/branches/B{NN}/validation-results.json
|
|||||||
CONSTRAINTS: Only validate this branch's changes
|
CONSTRAINTS: Only validate this branch's changes
|
||||||
---
|
---
|
||||||
InnerLoop: false
|
InnerLoop: false
|
||||||
BranchId: B{NN}",
|
BranchId: B{NN}"
|
||||||
blockedBy: ["REFACTOR-B{NN}"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "VALIDATE-B{NN}", addBlockedBy: ["REFACTOR-B{NN}"], owner: "validator" })
|
||||||
|
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "REVIEW-B{NN}",
|
subject: "REVIEW-B{NN}",
|
||||||
@@ -340,10 +336,9 @@ EXPECTED: <session>/artifacts/branches/B{NN}/review-report.md
|
|||||||
CONSTRAINTS: Only review this branch's changes
|
CONSTRAINTS: Only review this branch's changes
|
||||||
---
|
---
|
||||||
InnerLoop: false
|
InnerLoop: false
|
||||||
BranchId: B{NN}",
|
BranchId: B{NN}"
|
||||||
blockedBy: ["REFACTOR-B{NN}"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "REVIEW-B{NN}", addBlockedBy: ["REFACTOR-B{NN}"], owner: "reviewer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
7. Update session.json:
|
7. Update session.json:
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ Find and spawn the next ready tasks.
|
|||||||
2. For each ready task, spawn team-worker:
|
2. For each ready task, spawn team-worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker for <task-id>",
|
description: "Spawn <role> worker for <task-id>",
|
||||||
team_name: "arch-opt",
|
team_name: "arch-opt",
|
||||||
@@ -171,10 +171,9 @@ EXPECTED: Fixed source files for B{NN} only
|
|||||||
CONSTRAINTS: Targeted fixes only | Do not touch other branches
|
CONSTRAINTS: Targeted fixes only | Do not touch other branches
|
||||||
---
|
---
|
||||||
InnerLoop: false
|
InnerLoop: false
|
||||||
BranchId: B{NN}",
|
BranchId: B{NN}"
|
||||||
blockedBy: [],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "FIX-B{NN}-{cycle}", owner: "refactorer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
Create new VALIDATE and REVIEW with retry suffix:
|
Create new VALIDATE and REVIEW with retry suffix:
|
||||||
@@ -186,9 +185,8 @@ Create new VALIDATE and REVIEW with retry suffix:
|
|||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "FIX-{P}01-{cycle}",
|
subject: "FIX-{P}01-{cycle}",
|
||||||
...same pattern with pipeline prefix...
|
...same pattern with pipeline prefix...
|
||||||
blockedBy: [],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "FIX-{P}01-{cycle}", owner: "refactorer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
Create `VALIDATE-{P}01-R{cycle}` and `REVIEW-{P}01-R{cycle}`.
|
Create `VALIDATE-{P}01-R{cycle}` and `REVIEW-{P}01-R{cycle}`.
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ Execute `commands/dispatch.md` inline (Command Execution Protocol):
|
|||||||
Find first unblocked task and spawn its worker:
|
Find first unblocked task and spawn its worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn analyzer worker",
|
description: "Spawn analyzer worker",
|
||||||
team_name: "arch-opt",
|
team_name: "arch-opt",
|
||||||
@@ -298,6 +298,6 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Steps |
|
| Choice | Steps |
|
||||||
|--------|-------|
|
|--------|-------|
|
||||||
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete("arch-opt") -> output final summary with artifact paths |
|
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete() -> output final summary with artifact paths |
|
||||||
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-arch-opt', args='resume')" |
|
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-arch-opt', args='resume')" |
|
||||||
| Export Results | AskUserQuestion for target directory -> copy all artifacts -> Archive & Clean flow |
|
| Export Results | AskUserQuestion for target directory -> copy all artifacts -> Archive & Clean flow |
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Complex refactoring decisions (e.g., choosing between dependency inversion vs me
|
|||||||
Called by designer, reviewer after their primary analysis when complexity warrants multi-perspective evaluation:
|
Called by designer, reviewer after their primary analysis when complexity warrants multi-perspective evaluation:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-discuss-agent",
|
subagent_type: "cli-discuss-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Discuss <round-id>: <topic> for architecture optimization",
|
description: "Discuss <round-id>: <topic> for architecture optimization",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Codebase exploration is a read-only operation shared between analyzer (mapping s
|
|||||||
Called by analyzer, refactorer after needing codebase context for architecture analysis or implementation:
|
Called by analyzer, refactorer after needing codebase context for architecture analysis or implementation:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Explore codebase for architecture-critical structures in <target-scope>",
|
description: "Explore codebase for architecture-critical structures in <target-scope>",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-brainstorm
|
name: team-brainstorm
|
||||||
description: Unified team skill for brainstorming team. All roles invoke this skill with --role arg for role-specific execution. Triggers on "team brainstorm".
|
description: Unified team skill for brainstorming team. All roles invoke this skill with --role arg for role-specific execution. Triggers on "team brainstorm".
|
||||||
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Task(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team Brainstorm
|
# Team Brainstorm
|
||||||
@@ -306,7 +306,7 @@ Beat 1 2 3-4 5 6
|
|||||||
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: "brainstorm",
|
team_name: "brainstorm",
|
||||||
@@ -338,7 +338,7 @@ Execute built-in Phase 1 (task discovery) -> role-spec Phase 2-4 -> built-in Pha
|
|||||||
| Quick/Deep pipeline (single ideator) | Standard spawn: single `ideator` team-worker agent |
|
| Quick/Deep pipeline (single ideator) | Standard spawn: single `ideator` team-worker agent |
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn ideator-<N> worker",
|
description: "Spawn ideator-<N> worker",
|
||||||
team_name: "brainstorm",
|
team_name: "brainstorm",
|
||||||
@@ -384,7 +384,7 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Action |
|
| Choice | Action |
|
||||||
|--------|--------|
|
|--------|--------|
|
||||||
| Archive & Clean | Update session status="completed" -> TeamDelete(brainstorm) -> output final summary |
|
| Archive & Clean | Update session status="completed" -> TeamDelete() -> output final summary |
|
||||||
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-brainstorm", args="resume")` |
|
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-brainstorm", args="resume")` |
|
||||||
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ Every task description uses structured format:
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "<TASK-ID>",
|
subject: "<TASK-ID>",
|
||||||
owner: "<role>",
|
|
||||||
description: "PURPOSE: <what this task achieves> | Success: <completion criteria>
|
description: "PURPOSE: <what this task achieves> | Success: <completion criteria>
|
||||||
TASK:
|
TASK:
|
||||||
- <step 1>
|
- <step 1>
|
||||||
@@ -37,10 +36,9 @@ CONTEXT:
|
|||||||
EXPECTED: <deliverable path> + <quality criteria>
|
EXPECTED: <deliverable path> + <quality criteria>
|
||||||
CONSTRAINTS: <scope limits>
|
CONSTRAINTS: <scope limits>
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: [<dependency-list>],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "<TASK-ID>", addBlockedBy: [<dependency-list>], owner: "<role>" })
|
||||||
```
|
```
|
||||||
|
|
||||||
### Pipeline Router
|
### Pipeline Router
|
||||||
@@ -59,7 +57,6 @@ InnerLoop: false",
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "IDEA-001",
|
subject: "IDEA-001",
|
||||||
owner: "ideator",
|
|
||||||
description: "PURPOSE: Generate multi-angle ideas for brainstorm topic | Success: >= 6 unique ideas across all angles
|
description: "PURPOSE: Generate multi-angle ideas for brainstorm topic | Success: >= 6 unique ideas across all angles
|
||||||
TASK:
|
TASK:
|
||||||
- Read topic and angles from session context
|
- Read topic and angles from session context
|
||||||
@@ -72,17 +69,15 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/ideas/idea-001.md with >= 6 ideas
|
EXPECTED: <session>/ideas/idea-001.md with >= 6 ideas
|
||||||
CONSTRAINTS: Divergent thinking only, no evaluation
|
CONSTRAINTS: Divergent thinking only, no evaluation
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: [],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "IDEA-001", owner: "ideator" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**CHALLENGE-001** (challenger):
|
**CHALLENGE-001** (challenger):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "CHALLENGE-001",
|
subject: "CHALLENGE-001",
|
||||||
owner: "challenger",
|
|
||||||
description: "PURPOSE: Challenge assumptions and assess feasibility of generated ideas | Success: Each idea rated by severity
|
description: "PURPOSE: Challenge assumptions and assess feasibility of generated ideas | Success: Each idea rated by severity
|
||||||
TASK:
|
TASK:
|
||||||
- Read all idea files from ideas/ directory
|
- Read all idea files from ideas/ directory
|
||||||
@@ -95,17 +90,15 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/critiques/critique-001.md with severity table and GC signal
|
EXPECTED: <session>/critiques/critique-001.md with severity table and GC signal
|
||||||
CONSTRAINTS: Critical analysis only, do not generate alternative ideas
|
CONSTRAINTS: Critical analysis only, do not generate alternative ideas
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["IDEA-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "CHALLENGE-001", addBlockedBy: ["IDEA-001"], owner: "challenger" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**SYNTH-001** (synthesizer):
|
**SYNTH-001** (synthesizer):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "SYNTH-001",
|
subject: "SYNTH-001",
|
||||||
owner: "synthesizer",
|
|
||||||
description: "PURPOSE: Synthesize ideas and critiques into integrated proposals | Success: >= 1 consolidated proposal
|
description: "PURPOSE: Synthesize ideas and critiques into integrated proposals | Success: >= 1 consolidated proposal
|
||||||
TASK:
|
TASK:
|
||||||
- Read all ideas and critiques
|
- Read all ideas and critiques
|
||||||
@@ -117,10 +110,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/synthesis/synthesis-001.md with proposals
|
EXPECTED: <session>/synthesis/synthesis-001.md with proposals
|
||||||
CONSTRAINTS: Integration and synthesis only, no new ideas
|
CONSTRAINTS: Integration and synthesis only, no new ideas
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["CHALLENGE-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "SYNTH-001", addBlockedBy: ["CHALLENGE-001"], owner: "synthesizer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
### Deep Pipeline
|
### Deep Pipeline
|
||||||
@@ -131,7 +123,6 @@ Creates all 6 tasks. First 2 same as Quick, then:
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "IDEA-002",
|
subject: "IDEA-002",
|
||||||
owner: "ideator",
|
|
||||||
description: "PURPOSE: Revise ideas based on critique feedback (GC Round 1) | Success: HIGH/CRITICAL challenges addressed
|
description: "PURPOSE: Revise ideas based on critique feedback (GC Round 1) | Success: HIGH/CRITICAL challenges addressed
|
||||||
TASK:
|
TASK:
|
||||||
- Read critique feedback from critiques/
|
- Read critique feedback from critiques/
|
||||||
@@ -143,17 +134,15 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/ideas/idea-002.md with revised ideas
|
EXPECTED: <session>/ideas/idea-002.md with revised ideas
|
||||||
CONSTRAINTS: Address critique only, focused revision
|
CONSTRAINTS: Address critique only, focused revision
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["CHALLENGE-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "IDEA-002", addBlockedBy: ["CHALLENGE-001"], owner: "ideator" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**CHALLENGE-002** (challenger, round 2):
|
**CHALLENGE-002** (challenger, round 2):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "CHALLENGE-002",
|
subject: "CHALLENGE-002",
|
||||||
owner: "challenger",
|
|
||||||
description: "PURPOSE: Validate revised ideas (GC Round 2) | Success: Severity assessment of revised ideas
|
description: "PURPOSE: Validate revised ideas (GC Round 2) | Success: Severity assessment of revised ideas
|
||||||
TASK:
|
TASK:
|
||||||
- Read revised idea files
|
- Read revised idea files
|
||||||
@@ -165,10 +154,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/critiques/critique-002.md
|
EXPECTED: <session>/critiques/critique-002.md
|
||||||
CONSTRAINTS: Focus on revised/new ideas
|
CONSTRAINTS: Focus on revised/new ideas
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["IDEA-002"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "CHALLENGE-002", addBlockedBy: ["IDEA-002"], owner: "challenger" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**SYNTH-001** blocked by CHALLENGE-002. **EVAL-001** blocked by SYNTH-001:
|
**SYNTH-001** blocked by CHALLENGE-002. **EVAL-001** blocked by SYNTH-001:
|
||||||
@@ -176,7 +164,6 @@ InnerLoop: false",
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "EVAL-001",
|
subject: "EVAL-001",
|
||||||
owner: "evaluator",
|
|
||||||
description: "PURPOSE: Score and rank synthesized proposals | Success: Ranked list with weighted scores
|
description: "PURPOSE: Score and rank synthesized proposals | Success: Ranked list with weighted scores
|
||||||
TASK:
|
TASK:
|
||||||
- Read synthesis results
|
- Read synthesis results
|
||||||
@@ -188,10 +175,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/evaluation/evaluation-001.md with scoring matrix
|
EXPECTED: <session>/evaluation/evaluation-001.md with scoring matrix
|
||||||
CONSTRAINTS: Evaluation only, no new proposals
|
CONSTRAINTS: Evaluation only, no new proposals
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["SYNTH-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "EVAL-001", addBlockedBy: ["SYNTH-001"], owner: "evaluator" })
|
||||||
```
|
```
|
||||||
|
|
||||||
### Full Pipeline
|
### Full Pipeline
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ Find and spawn the next ready tasks.
|
|||||||
2. For each ready task, spawn team-worker:
|
2. For each ready task, spawn team-worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker for <task-id>",
|
description: "Spawn <role> worker for <task-id>",
|
||||||
team_name: "brainstorm",
|
team_name: "brainstorm",
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ Execute `commands/dispatch.md` inline (Command Execution Protocol):
|
|||||||
Find first unblocked task(s) and spawn worker(s):
|
Find first unblocked task(s) and spawn worker(s):
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn ideator worker",
|
description: "Spawn ideator worker",
|
||||||
team_name: "brainstorm",
|
team_name: "brainstorm",
|
||||||
@@ -255,7 +255,7 @@ For **Full pipeline** with parallel ideators, spawn N team-worker agents:
|
|||||||
|
|
||||||
```
|
```
|
||||||
// For each parallel IDEA task (IDEA-001, IDEA-002, IDEA-003)
|
// For each parallel IDEA task (IDEA-001, IDEA-002, IDEA-003)
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn ideator worker for IDEA-<N>",
|
description: "Spawn ideator worker for IDEA-<N>",
|
||||||
team_name: "brainstorm",
|
team_name: "brainstorm",
|
||||||
@@ -316,6 +316,6 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Steps |
|
| Choice | Steps |
|
||||||
|--------|-------|
|
|--------|-------|
|
||||||
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete("brainstorm") -> output final summary with artifact paths |
|
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete() -> output final summary with artifact paths |
|
||||||
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-brainstorm', args='resume')" |
|
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-brainstorm', args='resume')" |
|
||||||
| Export Results | AskUserQuestion for target directory -> copy all artifacts -> Archive & Clean flow |
|
| Export Results | AskUserQuestion for target directory -> copy all artifacts -> Archive & Clean flow |
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-coordinate
|
name: team-coordinate
|
||||||
description: Universal team coordination skill with dynamic role generation. Uses team-worker agent architecture with role-spec files. Only coordinator is built-in -- all worker roles are generated at runtime as role-specs and spawned via team-worker agent. Beat/cadence model for orchestration. Triggers on "Team Coordinate ".
|
description: Universal team coordination skill with dynamic role generation. Uses team-worker agent architecture with role-spec files. Only coordinator is built-in -- all worker roles are generated at runtime as role-specs and spawned via team-worker agent. Beat/cadence model for orchestration. Triggers on "Team Coordinate ".
|
||||||
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Task(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team Coordinate
|
# Team Coordinate
|
||||||
@@ -93,7 +93,7 @@ User provides task description
|
|||||||
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: <team-name>,
|
team_name: <team-name>,
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ Create task chains from dynamic dependency graphs. Builds pipelines from the tas
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "<PREFIX>-<NNN>",
|
subject: "<PREFIX>-<NNN>",
|
||||||
owner: "<role-name>",
|
|
||||||
description: "PURPOSE: <goal> | Success: <success_criteria>
|
description: "PURPOSE: <goal> | Success: <success_criteria>
|
||||||
TASK:
|
TASK:
|
||||||
- <step 1>
|
- <step 1>
|
||||||
@@ -40,10 +39,9 @@ EXPECTED: <deliverable path> + <quality criteria>
|
|||||||
CONSTRAINTS: <scope limits>
|
CONSTRAINTS: <scope limits>
|
||||||
---
|
---
|
||||||
InnerLoop: <true|false>
|
InnerLoop: <true|false>
|
||||||
RoleSpec: <session-folder>/role-specs/<role-name>.md",
|
RoleSpec: <session-folder>/role-specs/<role-name>.md"
|
||||||
blockedBy: [<dependency-list from graph>],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "<PREFIX>-<NNN>", addBlockedBy: [<dependency-list from graph>], owner: "<role-name>" })
|
||||||
```
|
```
|
||||||
|
|
||||||
5. **Update team-session.json** with pipeline and tasks_total
|
5. **Update team-session.json** with pipeline and tasks_total
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ Ready tasks found?
|
|||||||
**Spawn worker tool call** (one per ready task):
|
**Spawn worker tool call** (one per ready task):
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker for <subject>",
|
description: "Spawn <role> worker for <subject>",
|
||||||
team_name: <team-name>,
|
team_name: <team-name>,
|
||||||
@@ -190,7 +190,7 @@ All tasks completed (no pending, no in_progress)
|
|||||||
| })
|
| })
|
||||||
| +- "Archive & Clean":
|
| +- "Archive & Clean":
|
||||||
| | Update session status="completed"
|
| | Update session status="completed"
|
||||||
| | TeamDelete(<team-name>)
|
| | TeamDelete()
|
||||||
| | Output final summary with artifact paths
|
| | Output final summary with artifact paths
|
||||||
| +- "Keep Active":
|
| +- "Keep Active":
|
||||||
| | Update session status="paused"
|
| | Update session status="paused"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Unlike team-lifecycle-v4's fixed perspective definitions (product, technical, qu
|
|||||||
Called by roles after artifact creation:
|
Called by roles after artifact creation:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-discuss-agent",
|
subagent_type: "cli-discuss-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Discuss <round-id>",
|
description: "Discuss <round-id>",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Shared codebase exploration utility with centralized caching. Callable by any ro
|
|||||||
## Invocation
|
## Invocation
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Explore <angle>",
|
description: "Explore <angle>",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-executor
|
name: team-executor
|
||||||
description: Lightweight session execution skill. Resumes existing team-coordinate sessions for pure execution via team-worker agents. No analysis, no role generation -- only loads and executes. Session path required. Triggers on "Team Executor".
|
description: Lightweight session execution skill. Resumes existing team-coordinate sessions for pure execution via team-worker agents. No analysis, no role generation -- only loads and executes. Session path required. Triggers on "Team Executor".
|
||||||
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Task(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team Executor
|
# Team Executor
|
||||||
@@ -107,7 +107,7 @@ Validate session
|
|||||||
When executor spawns workers, use `team-worker` agent with role-spec path:
|
When executor spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: <team-name>,
|
team_name: <team-name>,
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ Ready tasks found?
|
|||||||
**Spawn worker tool call**:
|
**Spawn worker tool call**:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker for <subject>",
|
description: "Spawn <role> worker for <subject>",
|
||||||
team_name: <team-name>,
|
team_name: <team-name>,
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ team-executor validates the following before execution:
|
|||||||
| `session_id` | string | Unique session identifier |
|
| `session_id` | string | Unique session identifier |
|
||||||
| `task_description` | string | Original task description from user |
|
| `task_description` | string | Original task description from user |
|
||||||
| `status` | string | One of: "active", "paused", "completed" |
|
| `status` | string | One of: "active", "paused", "completed" |
|
||||||
| `team_name` | string | Team name for Task tool |
|
| `team_name` | string | Team name for Agent tool |
|
||||||
| `roles` | array | List of role definitions |
|
| `roles` | array | List of role definitions |
|
||||||
| `roles[].name` | string | Role name (must match .md filename) |
|
| `roles[].name` | string | Role name (must match .md filename) |
|
||||||
| `roles[].prefix` | string | Task prefix for this role |
|
| `roles[].prefix` | string | Task prefix for this role |
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-frontend
|
name: team-frontend
|
||||||
description: Unified team skill for frontend development. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents. Built-in ui-ux-pro-max design intelligence. Triggers on "team frontend".
|
description: Unified team skill for frontend development. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents. Built-in ui-ux-pro-max design intelligence. Triggers on "team frontend".
|
||||||
allowed-tools: Task, TaskCreate, TaskList, TaskGet, TaskUpdate, TeamCreate, TeamDelete, SendMessage, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, mcp__ace-tool__search_context
|
allowed-tools: Agent, TaskCreate, TaskList, TaskGet, TaskUpdate, TeamCreate, TeamDelete, SendMessage, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, mcp__ace-tool__search_context
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team Frontend Development
|
# Team Frontend Development
|
||||||
@@ -108,7 +108,7 @@ Phase 3 needs task dispatch
|
|||||||
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: "frontend",
|
team_name: "frontend",
|
||||||
@@ -233,7 +233,7 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Steps |
|
| Choice | Steps |
|
||||||
|--------|-------|
|
|--------|-------|
|
||||||
| Archive & Clean | Verify completed -> update status -> TeamDelete("frontend") -> final summary |
|
| Archive & Clean | Verify completed -> update status -> TeamDelete() -> final summary |
|
||||||
| Keep Active | Status="paused" -> "Resume with: Skill(skill='team-frontend', args='resume')" |
|
| Keep Active | Status="paused" -> "Resume with: Skill(skill='team-frontend', args='resume')" |
|
||||||
| Export Results | Ask target dir -> copy artifacts -> Archive flow |
|
| Export Results | Ask target dir -> copy artifacts -> Archive flow |
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ Every task description uses structured format:
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "<TASK-ID>",
|
subject: "<TASK-ID>",
|
||||||
owner: "<role>",
|
|
||||||
description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
|
description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
|
||||||
TASK:
|
TASK:
|
||||||
- <step 1: specific action>
|
- <step 1: specific action>
|
||||||
@@ -38,10 +37,9 @@ CONTEXT:
|
|||||||
- Upstream artifacts: <artifact-1>, <artifact-2>
|
- Upstream artifacts: <artifact-1>, <artifact-2>
|
||||||
- Shared memory: <session>/.msg/meta.json
|
- Shared memory: <session>/.msg/meta.json
|
||||||
EXPECTED: <deliverable path> + <quality criteria>
|
EXPECTED: <deliverable path> + <quality criteria>
|
||||||
CONSTRAINTS: <scope limits, focus areas>",
|
CONSTRAINTS: <scope limits, focus areas>"
|
||||||
blockedBy: [<dependency-list>],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "<TASK-ID>", addBlockedBy: [<dependency-list>], owner: "<role>" })
|
||||||
```
|
```
|
||||||
|
|
||||||
### Mode Router
|
### Mode Router
|
||||||
@@ -72,9 +70,9 @@ CONTEXT:
|
|||||||
- Scope: <scope>
|
- Scope: <scope>
|
||||||
- Shared memory: <session>/.msg/meta.json
|
- Shared memory: <session>/.msg/meta.json
|
||||||
EXPECTED: <session>/analysis/design-intelligence.json + requirements.md | Structured design data
|
EXPECTED: <session>/analysis/design-intelligence.json + requirements.md | Structured design data
|
||||||
CONSTRAINTS: Read-only analysis | No code modifications",
|
CONSTRAINTS: Read-only analysis | No code modifications"
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "ANALYZE-001", owner: "analyst" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**ARCH-001** (architect):
|
**ARCH-001** (architect):
|
||||||
@@ -94,10 +92,9 @@ CONTEXT:
|
|||||||
- Upstream artifacts: design-intelligence.json, requirements.md
|
- Upstream artifacts: design-intelligence.json, requirements.md
|
||||||
- Shared memory: <session>/.msg/meta.json
|
- Shared memory: <session>/.msg/meta.json
|
||||||
EXPECTED: <session>/architecture/design-tokens.json + component-specs/ + project-structure.md
|
EXPECTED: <session>/architecture/design-tokens.json + component-specs/ + project-structure.md
|
||||||
CONSTRAINTS: Use ui-ux-pro-max recommendations for token values | Support light/dark mode",
|
CONSTRAINTS: Use ui-ux-pro-max recommendations for token values | Support light/dark mode"
|
||||||
blockedBy: ["ANALYZE-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "ARCH-001", addBlockedBy: ["ANALYZE-001"], owner: "architect" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**DEV-001** (developer):
|
**DEV-001** (developer):
|
||||||
@@ -117,10 +114,9 @@ CONTEXT:
|
|||||||
- Upstream artifacts: design-tokens.json, component-specs/, project-structure.md
|
- Upstream artifacts: design-tokens.json, component-specs/, project-structure.md
|
||||||
- Shared memory: <session>/.msg/meta.json
|
- Shared memory: <session>/.msg/meta.json
|
||||||
EXPECTED: src/styles/tokens.css + component files | Design-token compliant code
|
EXPECTED: src/styles/tokens.css + component files | Design-token compliant code
|
||||||
CONSTRAINTS: Use CSS variables from tokens | Mobile-first responsive | WCAG AA",
|
CONSTRAINTS: Use CSS variables from tokens | Mobile-first responsive | WCAG AA"
|
||||||
blockedBy: ["ARCH-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "DEV-001", addBlockedBy: ["ARCH-001"], owner: "developer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**QA-001** (qa):
|
**QA-001** (qa):
|
||||||
@@ -140,10 +136,9 @@ CONTEXT:
|
|||||||
- Upstream artifacts: design-intelligence.json, design-tokens.json, src/**
|
- Upstream artifacts: design-intelligence.json, design-tokens.json, src/**
|
||||||
- Shared memory: <session>/.msg/meta.json
|
- Shared memory: <session>/.msg/meta.json
|
||||||
EXPECTED: <session>/qa/audit-001.md | Weighted score + verdict + categorized issues
|
EXPECTED: <session>/qa/audit-001.md | Weighted score + verdict + categorized issues
|
||||||
CONSTRAINTS: Read-only review | No code modifications",
|
CONSTRAINTS: Read-only review | No code modifications"
|
||||||
blockedBy: ["DEV-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "QA-001", addBlockedBy: ["DEV-001"], owner: "qa" })
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -69,10 +69,9 @@ CONTEXT:
|
|||||||
- Upstream artifacts: <session>/qa/audit-<NNN>.md
|
- Upstream artifacts: <session>/qa/audit-<NNN>.md
|
||||||
- Shared memory: <session>/.msg/meta.json
|
- Shared memory: <session>/.msg/meta.json
|
||||||
EXPECTED: Fixed source files | QA issues resolved
|
EXPECTED: Fixed source files | QA issues resolved
|
||||||
CONSTRAINTS: Targeted fixes only | Do not introduce regressions",
|
CONSTRAINTS: Targeted fixes only | Do not introduce regressions"
|
||||||
blockedBy: [],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "DEV-fix-<round>", owner: "developer" })
|
||||||
|
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "QA-recheck-<round>",
|
subject: "QA-recheck-<round>",
|
||||||
@@ -86,10 +85,9 @@ CONTEXT:
|
|||||||
- Review type: code-review
|
- Review type: code-review
|
||||||
- Shared memory: <session>/.msg/meta.json
|
- Shared memory: <session>/.msg/meta.json
|
||||||
EXPECTED: <session>/qa/audit-<NNN>.md | Improved score
|
EXPECTED: <session>/qa/audit-<NNN>.md | Improved score
|
||||||
CONSTRAINTS: Read-only review",
|
CONSTRAINTS: Read-only review"
|
||||||
blockedBy: ["DEV-fix-<round>"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "QA-recheck-<round>", addBlockedBy: ["DEV-fix-<round>"], owner: "qa" })
|
||||||
```
|
```
|
||||||
|
|
||||||
6. Proceed to handleSpawnNext
|
6. Proceed to handleSpawnNext
|
||||||
@@ -105,7 +103,7 @@ Find and spawn the next ready tasks.
|
|||||||
2. For each ready task, spawn team-worker:
|
2. For each ready task, spawn team-worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker for <task-id>",
|
description: "Spawn <role> worker for <task-id>",
|
||||||
team_name: "frontend",
|
team_name: "frontend",
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ Execute `commands/dispatch.md` inline (Command Execution Protocol):
|
|||||||
Find first unblocked task and spawn its worker:
|
Find first unblocked task and spawn its worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn analyst worker",
|
description: "Spawn analyst worker",
|
||||||
team_name: "frontend",
|
team_name: "frontend",
|
||||||
@@ -273,6 +273,6 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Steps |
|
| Choice | Steps |
|
||||||
|--------|-------|
|
|--------|-------|
|
||||||
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete("frontend") -> output final summary |
|
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete() -> output final summary |
|
||||||
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-frontend', args='resume')" |
|
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-frontend', args='resume')" |
|
||||||
| Export Results | AskUserQuestion for target directory -> copy artifacts -> Archive & Clean flow |
|
| Export Results | AskUserQuestion for target directory -> copy artifacts -> Archive & Clean flow |
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-issue
|
name: team-issue
|
||||||
description: Unified team skill for issue resolution. All roles invoke this skill with --role arg for role-specific execution. Triggers on "team issue".
|
description: Unified team skill for issue resolution. All roles invoke this skill with --role arg for role-specific execution. Triggers on "team issue".
|
||||||
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Task(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team Issue Resolution
|
# Team Issue Resolution
|
||||||
@@ -301,7 +301,7 @@ Beat 1 2 3 4 5
|
|||||||
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: "issue",
|
team_name: "issue",
|
||||||
@@ -344,7 +344,7 @@ Execute built-in Phase 1 (task discovery) -> role-spec Phase 2-4 -> built-in Pha
|
|||||||
**Parallel spawn template**:
|
**Parallel spawn template**:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role>-<N> worker",
|
description: "Spawn <role>-<N> worker",
|
||||||
team_name: "issue",
|
team_name: "issue",
|
||||||
@@ -390,7 +390,7 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Action |
|
| Choice | Action |
|
||||||
|--------|--------|
|
|--------|--------|
|
||||||
| Archive & Clean | Update session status="completed" -> TeamDelete(issue) -> output final summary |
|
| Archive & Clean | Update session status="completed" -> TeamDelete() -> output final summary |
|
||||||
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-issue", args="resume")` |
|
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-issue", args="resume")` |
|
||||||
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ Bash("ccw issue status <issueId> --json")
|
|||||||
| Complexity | Execution |
|
| Complexity | Execution |
|
||||||
|------------|-----------|
|
|------------|-----------|
|
||||||
| Low | Direct ACE search: `mcp__ace-tool__search_context(project_root_path, query)` |
|
| Low | Direct ACE search: `mcp__ace-tool__search_context(project_root_path, query)` |
|
||||||
| Medium/High | Spawn cli-explore-agent: `Task({ subagent_type: "cli-explore-agent", run_in_background: false })` |
|
| Medium/High | Spawn cli-explore-agent: `Agent({ subagent_type: "cli-explore-agent", run_in_background: false })` |
|
||||||
|
|
||||||
**cli-explore-agent prompt template**:
|
**cli-explore-agent prompt template**:
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Load solution plan, route to execution backend (Agent/Codex/Gemini), run tests,
|
|||||||
|
|
||||||
| Backend | Condition | Method |
|
| Backend | Condition | Method |
|
||||||
|---------|-----------|--------|
|
|---------|-----------|--------|
|
||||||
| agent | task_count <= 3 or explicit | `Task({ subagent_type: "code-developer", run_in_background: false })` |
|
| agent | task_count <= 3 or explicit | `Agent({ subagent_type: "code-developer", run_in_background: false })` |
|
||||||
| codex | task_count > 3 or explicit | `ccw cli --tool codex --mode write --id issue-<issueId>` |
|
| codex | task_count > 3 or explicit | `ccw cli --tool codex --mode write --id issue-<issueId>` |
|
||||||
| gemini | explicit | `ccw cli --tool gemini --mode write --id issue-<issueId>` |
|
| gemini | explicit | `ccw cli --tool gemini --mode write --id issue-<issueId>` |
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ Dependencies: <explorerContext.dependencies>
|
|||||||
```
|
```
|
||||||
|
|
||||||
Route by executor:
|
Route by executor:
|
||||||
- **agent**: `Task({ subagent_type: "code-developer", run_in_background: false, prompt: <prompt> })`
|
- **agent**: `Agent({ subagent_type: "code-developer", run_in_background: false, prompt: <prompt> })`
|
||||||
- **codex**: `Bash("ccw cli -p \"<prompt>\" --tool codex --mode write --id issue-<issueId>")`
|
- **codex**: `Bash("ccw cli -p \"<prompt>\" --tool codex --mode write --id issue-<issueId>")`
|
||||||
- **gemini**: `Bash("ccw cli -p \"<prompt>\" --tool gemini --mode write --id issue-<issueId>")`
|
- **gemini**: `Bash("ccw cli -p \"<prompt>\" --tool gemini --mode write --id issue-<issueId>")`
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ Bash("ccw issue solutions <issueId> --json")
|
|||||||
**Agent invocation**:
|
**Agent invocation**:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "issue-queue-agent",
|
subagent_type: "issue-queue-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Form queue for <count> issues",
|
description: "Form queue for <count> issues",
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ Read("<session>/explorations/context-<issueId>.json")
|
|||||||
**Agent invocation**:
|
**Agent invocation**:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "issue-plan-agent",
|
subagent_type: "issue-plan-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Plan solution for <issueId>",
|
description: "Plan solution for <issueId>",
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ Every task description uses structured format:
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "<TASK-ID>",
|
subject: "<TASK-ID>",
|
||||||
owner: "<role>",
|
|
||||||
description: "PURPOSE: <what this task achieves> | Success: <completion criteria>
|
description: "PURPOSE: <what this task achieves> | Success: <completion criteria>
|
||||||
TASK:
|
TASK:
|
||||||
- <step 1>
|
- <step 1>
|
||||||
@@ -40,10 +39,9 @@ CONSTRAINTS: <scope limits>
|
|||||||
---
|
---
|
||||||
InnerLoop: false
|
InnerLoop: false
|
||||||
execution_method: <method>
|
execution_method: <method>
|
||||||
code_review: <setting>",
|
code_review: <setting>"
|
||||||
blockedBy: [<dependency-list>],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "<TASK-ID>", addBlockedBy: [<dependency-list>], owner: "<role>" })
|
||||||
```
|
```
|
||||||
|
|
||||||
### Pipeline Router
|
### Pipeline Router
|
||||||
@@ -62,7 +60,6 @@ code_review: <setting>",
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "EXPLORE-001",
|
subject: "EXPLORE-001",
|
||||||
owner: "explorer",
|
|
||||||
description: "PURPOSE: Analyze issue context and map codebase impact | Success: Context report with relevant files and dependencies
|
description: "PURPOSE: Analyze issue context and map codebase impact | Success: Context report with relevant files and dependencies
|
||||||
TASK:
|
TASK:
|
||||||
- Load issue details via ccw issue status
|
- Load issue details via ccw issue status
|
||||||
@@ -74,17 +71,15 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/explorations/context-<issueId>.json with relevant files, dependencies, and impact assessment
|
EXPECTED: <session>/explorations/context-<issueId>.json with relevant files, dependencies, and impact assessment
|
||||||
CONSTRAINTS: Exploration and analysis only, no solution design
|
CONSTRAINTS: Exploration and analysis only, no solution design
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: [],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "EXPLORE-001", owner: "explorer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**SOLVE-001** (planner):
|
**SOLVE-001** (planner):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "SOLVE-001",
|
subject: "SOLVE-001",
|
||||||
owner: "planner",
|
|
||||||
description: "PURPOSE: Design solution and decompose into implementation tasks | Success: Bound solution with task decomposition
|
description: "PURPOSE: Design solution and decompose into implementation tasks | Success: Bound solution with task decomposition
|
||||||
TASK:
|
TASK:
|
||||||
- Load explorer context report
|
- Load explorer context report
|
||||||
@@ -97,17 +92,15 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/solutions/solution-<issueId>.json with solution plan and task list
|
EXPECTED: <session>/solutions/solution-<issueId>.json with solution plan and task list
|
||||||
CONSTRAINTS: Solution design only, no code implementation
|
CONSTRAINTS: Solution design only, no code implementation
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["EXPLORE-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "SOLVE-001", addBlockedBy: ["EXPLORE-001"], owner: "planner" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**MARSHAL-001** (integrator):
|
**MARSHAL-001** (integrator):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "MARSHAL-001",
|
subject: "MARSHAL-001",
|
||||||
owner: "integrator",
|
|
||||||
description: "PURPOSE: Form execution queue with conflict detection and ordering | Success: Execution queue file with resolved conflicts
|
description: "PURPOSE: Form execution queue with conflict detection and ordering | Success: Execution queue file with resolved conflicts
|
||||||
TASK:
|
TASK:
|
||||||
- Verify all issues have bound solutions
|
- Verify all issues have bound solutions
|
||||||
@@ -120,17 +113,15 @@ CONTEXT:
|
|||||||
EXPECTED: .workflow/issues/queue/execution-queue.json with queue, conflicts, parallel groups
|
EXPECTED: .workflow/issues/queue/execution-queue.json with queue, conflicts, parallel groups
|
||||||
CONSTRAINTS: Queue formation only, no implementation
|
CONSTRAINTS: Queue formation only, no implementation
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["SOLVE-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "MARSHAL-001", addBlockedBy: ["SOLVE-001"], owner: "integrator" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**BUILD-001** (implementer):
|
**BUILD-001** (implementer):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "BUILD-001",
|
subject: "BUILD-001",
|
||||||
owner: "implementer",
|
|
||||||
description: "PURPOSE: Implement solution plan and verify with tests | Success: Code changes committed, tests pass
|
description: "PURPOSE: Implement solution plan and verify with tests | Success: Code changes committed, tests pass
|
||||||
TASK:
|
TASK:
|
||||||
- Load bound solution and explorer context
|
- Load bound solution and explorer context
|
||||||
@@ -146,10 +137,9 @@ CONSTRAINTS: Follow solution plan, no scope creep
|
|||||||
---
|
---
|
||||||
InnerLoop: false
|
InnerLoop: false
|
||||||
execution_method: <execution_method>
|
execution_method: <execution_method>
|
||||||
code_review: <code_review>",
|
code_review: <code_review>"
|
||||||
blockedBy: ["MARSHAL-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "BUILD-001", addBlockedBy: ["MARSHAL-001"], owner: "implementer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
### Full Pipeline
|
### Full Pipeline
|
||||||
@@ -162,7 +152,6 @@ Creates 5 tasks. First 2 same as Quick, then AUDIT gate before MARSHAL and BUILD
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "AUDIT-001",
|
subject: "AUDIT-001",
|
||||||
owner: "reviewer",
|
|
||||||
description: "PURPOSE: Review solution for technical feasibility, risk, and completeness | Success: Clear verdict (approved/rejected/concerns) with scores
|
description: "PURPOSE: Review solution for technical feasibility, risk, and completeness | Success: Clear verdict (approved/rejected/concerns) with scores
|
||||||
TASK:
|
TASK:
|
||||||
- Load explorer context and bound solution
|
- Load explorer context and bound solution
|
||||||
@@ -175,10 +164,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/audits/audit-report.json with per-issue scores and overall verdict
|
EXPECTED: <session>/audits/audit-report.json with per-issue scores and overall verdict
|
||||||
CONSTRAINTS: Review only, do not modify solutions
|
CONSTRAINTS: Review only, do not modify solutions
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["SOLVE-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "AUDIT-001", addBlockedBy: ["SOLVE-001"], owner: "reviewer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**MARSHAL-001** (integrator): Same as Quick, but `blockedBy: ["AUDIT-001"]`.
|
**MARSHAL-001** (integrator): Same as Quick, but `blockedBy: ["AUDIT-001"]`.
|
||||||
@@ -201,7 +189,6 @@ For each issue in issue_ids, create an EXPLORE task. When N > 1, assign distinct
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "EXPLORE-<NNN>",
|
subject: "EXPLORE-<NNN>",
|
||||||
owner: "explorer-<N>",
|
|
||||||
description: "PURPOSE: Analyze issue <issueId> context and map codebase impact | Success: Context report for <issueId>
|
description: "PURPOSE: Analyze issue <issueId> context and map codebase impact | Success: Context report for <issueId>
|
||||||
TASK:
|
TASK:
|
||||||
- Load issue details for <issueId>
|
- Load issue details for <issueId>
|
||||||
@@ -213,20 +200,18 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/explorations/context-<issueId>.json
|
EXPECTED: <session>/explorations/context-<issueId>.json
|
||||||
CONSTRAINTS: Single issue scope, exploration only
|
CONSTRAINTS: Single issue scope, exploration only
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: [],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "EXPLORE-<NNN>", owner: "explorer-<N>" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**SOLVE-001..N** (planner, sequential after all EXPLORE):
|
**SOLVE-001..N** (planner, sequential after all EXPLORE):
|
||||||
|
|
||||||
For each issue, create a SOLVE task blocked by all EXPLORE tasks:
|
For each issue, create a SOLVE task blocked by all EXPLORE tasks
|
||||||
|
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "SOLVE-<NNN>",
|
subject: "SOLVE-<NNN>",
|
||||||
owner: "planner",
|
|
||||||
description: "PURPOSE: Design solution for <issueId> | Success: Bound solution with tasks
|
description: "PURPOSE: Design solution for <issueId> | Success: Bound solution with tasks
|
||||||
TASK:
|
TASK:
|
||||||
- Load explorer context for <issueId>
|
- Load explorer context for <issueId>
|
||||||
@@ -239,17 +224,15 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/solutions/solution-<issueId>.json
|
EXPECTED: <session>/solutions/solution-<issueId>.json
|
||||||
CONSTRAINTS: Solution design only
|
CONSTRAINTS: Solution design only
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["EXPLORE-001", ..., "EXPLORE-<N>"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "SOLVE-<NNN>", addBlockedBy: ["EXPLORE-001", ..., "EXPLORE-<N>"], owner: "planner" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**AUDIT-001** (reviewer, batch review):
|
**AUDIT-001** (reviewer, batch review):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "AUDIT-001",
|
subject: "AUDIT-001",
|
||||||
owner: "reviewer",
|
|
||||||
description: "PURPOSE: Batch review all solutions | Success: Verdict for each solution
|
description: "PURPOSE: Batch review all solutions | Success: Verdict for each solution
|
||||||
TASK:
|
TASK:
|
||||||
- Load all explorer contexts and bound solutions
|
- Load all explorer contexts and bound solutions
|
||||||
@@ -262,10 +245,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/audits/audit-report.json with batch results
|
EXPECTED: <session>/audits/audit-report.json with batch results
|
||||||
CONSTRAINTS: Review only
|
CONSTRAINTS: Review only
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["SOLVE-001", ..., "SOLVE-<N>"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "AUDIT-001", addBlockedBy: ["SOLVE-001", ..., "SOLVE-<N>"], owner: "reviewer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**MARSHAL-001** (integrator): `blockedBy: ["AUDIT-001"]`.
|
**MARSHAL-001** (integrator): `blockedBy: ["AUDIT-001"]`.
|
||||||
@@ -282,7 +264,6 @@ After MARSHAL produces execution queue, create M BUILD tasks based on parallel g
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "BUILD-<NNN>",
|
subject: "BUILD-<NNN>",
|
||||||
owner: "implementer-<M>",
|
|
||||||
description: "PURPOSE: Implement solution for <issueId> | Success: Code committed, tests pass
|
description: "PURPOSE: Implement solution for <issueId> | Success: Code committed, tests pass
|
||||||
TASK:
|
TASK:
|
||||||
- Load bound solution and explorer context
|
- Load bound solution and explorer context
|
||||||
@@ -297,10 +278,9 @@ CONSTRAINTS: Follow solution plan
|
|||||||
---
|
---
|
||||||
InnerLoop: false
|
InnerLoop: false
|
||||||
execution_method: <execution_method>
|
execution_method: <execution_method>
|
||||||
code_review: <code_review>",
|
code_review: <code_review>"
|
||||||
blockedBy: ["MARSHAL-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "BUILD-<NNN>", addBlockedBy: ["MARSHAL-001"], owner: "implementer-<M>" })
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Note**: In Batch mode, BUILD task count M may not be known at dispatch time (depends on MARSHAL queue output). Create BUILD tasks with placeholder count, or defer BUILD task creation to handleCallback when MARSHAL completes. Coordinator should check for deferred BUILD task creation in monitor.md handleCallback for integrator.
|
> **Note**: In Batch mode, BUILD task count M may not be known at dispatch time (depends on MARSHAL queue output). Create BUILD tasks with placeholder count, or defer BUILD task creation to handleCallback when MARSHAL completes. Coordinator should check for deferred BUILD task creation in monitor.md handleCallback for integrator.
|
||||||
@@ -313,7 +293,6 @@ When AUDIT rejects a solution, coordinator creates fix tasks dynamically (NOT at
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "SOLVE-fix-001",
|
subject: "SOLVE-fix-001",
|
||||||
owner: "planner",
|
|
||||||
description: "PURPOSE: Revise solution addressing reviewer feedback (fix cycle <round>) | Success: Revised solution addressing rejection reasons
|
description: "PURPOSE: Revise solution addressing reviewer feedback (fix cycle <round>) | Success: Revised solution addressing rejection reasons
|
||||||
TASK:
|
TASK:
|
||||||
- Read reviewer feedback from audit report
|
- Read reviewer feedback from audit report
|
||||||
@@ -327,17 +306,15 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/solutions/solution-<issueId>.json (revised)
|
EXPECTED: <session>/solutions/solution-<issueId>.json (revised)
|
||||||
CONSTRAINTS: Address reviewer concerns specifically
|
CONSTRAINTS: Address reviewer concerns specifically
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["AUDIT-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "SOLVE-fix-001", addBlockedBy: ["AUDIT-001"], owner: "planner" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**AUDIT-002** (reviewer, re-review):
|
**AUDIT-002** (reviewer, re-review):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "AUDIT-002",
|
subject: "AUDIT-002",
|
||||||
owner: "reviewer",
|
|
||||||
description: "PURPOSE: Re-review revised solution (fix cycle <round>) | Success: Verdict on revised solution
|
description: "PURPOSE: Re-review revised solution (fix cycle <round>) | Success: Verdict on revised solution
|
||||||
TASK:
|
TASK:
|
||||||
- Load revised solution
|
- Load revised solution
|
||||||
@@ -350,10 +327,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/audits/audit-report.json (updated)
|
EXPECTED: <session>/audits/audit-report.json (updated)
|
||||||
CONSTRAINTS: Focus on previously rejected dimensions
|
CONSTRAINTS: Focus on previously rejected dimensions
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["SOLVE-fix-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "AUDIT-002", addBlockedBy: ["SOLVE-fix-001"], owner: "reviewer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
These fix tasks are created dynamically by handleCallback in monitor.md when reviewer reports rejection, NOT during initial dispatch.
|
These fix tasks are created dynamically by handleCallback in monitor.md when reviewer reports rejection, NOT during initial dispatch.
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ Find and spawn the next ready tasks.
|
|||||||
2. For each ready task, spawn team-worker:
|
2. For each ready task, spawn team-worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker for <task-id>",
|
description: "Spawn <role> worker for <task-id>",
|
||||||
team_name: "issue",
|
team_name: "issue",
|
||||||
@@ -116,7 +116,7 @@ Execute built-in Phase 1 -> role-spec Phase 2-4 -> built-in Phase 5.`
|
|||||||
4. **Parallel spawn** (Batch mode with multiple ready tasks for same role):
|
4. **Parallel spawn** (Batch mode with multiple ready tasks for same role):
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role>-<N> worker for <task-id>",
|
description: "Spawn <role>-<N> worker for <task-id>",
|
||||||
team_name: "issue",
|
team_name: "issue",
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ Execute `commands/dispatch.md` inline (Command Execution Protocol):
|
|||||||
Find first unblocked task and spawn its worker:
|
Find first unblocked task and spawn its worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn explorer worker",
|
description: "Spawn explorer worker",
|
||||||
team_name: "issue",
|
team_name: "issue",
|
||||||
@@ -273,6 +273,6 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Steps |
|
| Choice | Steps |
|
||||||
|--------|-------|
|
|--------|-------|
|
||||||
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete("issue") -> output final summary |
|
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete() -> output final summary |
|
||||||
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-issue', args='resume')" |
|
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-issue', args='resume')" |
|
||||||
| New Batch | Return to Phase 1 |
|
| New Batch | Return to Phase 1 |
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-iterdev
|
name: team-iterdev
|
||||||
description: Unified team skill for iterative development team. All roles invoke this skill with --role arg for role-specific execution. Triggers on "team iterdev".
|
description: Unified team skill for iterative development team. All roles invoke this skill with --role arg for role-specific execution. Triggers on "team iterdev".
|
||||||
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Task(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team IterDev
|
# Team IterDev
|
||||||
@@ -412,7 +412,7 @@ Real-time tracking of all sprint task progress. Coordinator updates at each task
|
|||||||
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: "iterdev",
|
team_name: "iterdev",
|
||||||
@@ -459,7 +459,7 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Action |
|
| Choice | Action |
|
||||||
|--------|--------|
|
|--------|--------|
|
||||||
| Archive & Clean | Update session status="completed" -> TeamDelete(iterdev) -> output final summary |
|
| Archive & Clean | Update session status="completed" -> TeamDelete() -> output final summary |
|
||||||
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-iterdev", args="resume")` |
|
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-iterdev", args="resume")` |
|
||||||
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ Every task description uses structured format for clarity:
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "<TASK-ID>",
|
subject: "<TASK-ID>",
|
||||||
owner: "<role>",
|
|
||||||
description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
|
description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
|
||||||
TASK:
|
TASK:
|
||||||
- <step 1: specific action>
|
- <step 1: specific action>
|
||||||
@@ -38,10 +37,9 @@ CONTEXT:
|
|||||||
EXPECTED: <deliverable path> + <quality criteria>
|
EXPECTED: <deliverable path> + <quality criteria>
|
||||||
CONSTRAINTS: <scope limits, focus areas>
|
CONSTRAINTS: <scope limits, focus areas>
|
||||||
---
|
---
|
||||||
InnerLoop: <true|false>",
|
InnerLoop: <true|false>"
|
||||||
blockedBy: [<dependency-list>],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "<TASK-ID>", addBlockedBy: [<dependency-list>], owner: "<role>" })
|
||||||
```
|
```
|
||||||
|
|
||||||
### Mode Router
|
### Mode Router
|
||||||
@@ -60,7 +58,6 @@ InnerLoop: <true|false>",
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "DEV-001",
|
subject: "DEV-001",
|
||||||
owner: "developer",
|
|
||||||
description: "PURPOSE: Implement fix | Success: Fix applied, syntax clean
|
description: "PURPOSE: Implement fix | Success: Fix applied, syntax clean
|
||||||
TASK:
|
TASK:
|
||||||
- Load target files and understand context
|
- Load target files and understand context
|
||||||
@@ -73,16 +70,15 @@ CONTEXT:
|
|||||||
EXPECTED: Modified source files + <session>/code/dev-log.md | Syntax clean
|
EXPECTED: Modified source files + <session>/code/dev-log.md | Syntax clean
|
||||||
CONSTRAINTS: Minimal changes | Preserve existing behavior
|
CONSTRAINTS: Minimal changes | Preserve existing behavior
|
||||||
---
|
---
|
||||||
InnerLoop: true",
|
InnerLoop: true"
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "DEV-001", owner: "developer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**VERIFY-001** (tester):
|
**VERIFY-001** (tester):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "VERIFY-001",
|
subject: "VERIFY-001",
|
||||||
owner: "tester",
|
|
||||||
description: "PURPOSE: Verify fix correctness | Success: Tests pass, no regressions
|
description: "PURPOSE: Verify fix correctness | Success: Tests pass, no regressions
|
||||||
TASK:
|
TASK:
|
||||||
- Detect test framework
|
- Detect test framework
|
||||||
@@ -96,10 +92,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/verify/verify-001.json | Pass rate >= 95%
|
EXPECTED: <session>/verify/verify-001.json | Pass rate >= 95%
|
||||||
CONSTRAINTS: Focus on changed files | Report any regressions
|
CONSTRAINTS: Focus on changed files | Report any regressions
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["DEV-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "VERIFY-001", addBlockedBy: ["DEV-001"], owner: "tester" })
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -110,7 +105,6 @@ InnerLoop: false",
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "DESIGN-001",
|
subject: "DESIGN-001",
|
||||||
owner: "architect",
|
|
||||||
description: "PURPOSE: Technical design and task breakdown | Success: Design document + task breakdown ready
|
description: "PURPOSE: Technical design and task breakdown | Success: Design document + task breakdown ready
|
||||||
TASK:
|
TASK:
|
||||||
- Explore codebase for patterns and dependencies
|
- Explore codebase for patterns and dependencies
|
||||||
@@ -123,16 +117,15 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/design/design-001.md + <session>/design/task-breakdown.json | Components defined, tasks actionable
|
EXPECTED: <session>/design/design-001.md + <session>/design/task-breakdown.json | Components defined, tasks actionable
|
||||||
CONSTRAINTS: Focus on <task-scope> | Risk assessment required
|
CONSTRAINTS: Focus on <task-scope> | Risk assessment required
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "DESIGN-001", owner: "architect" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**DEV-001** (developer):
|
**DEV-001** (developer):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "DEV-001",
|
subject: "DEV-001",
|
||||||
owner: "developer",
|
|
||||||
description: "PURPOSE: Implement design | Success: All design tasks implemented, syntax clean
|
description: "PURPOSE: Implement design | Success: All design tasks implemented, syntax clean
|
||||||
TASK:
|
TASK:
|
||||||
- Load design and task breakdown
|
- Load design and task breakdown
|
||||||
@@ -146,17 +139,15 @@ CONTEXT:
|
|||||||
EXPECTED: Modified source files + <session>/code/dev-log.md | Syntax clean, all tasks done
|
EXPECTED: Modified source files + <session>/code/dev-log.md | Syntax clean, all tasks done
|
||||||
CONSTRAINTS: Follow design | Preserve existing behavior | Follow code conventions
|
CONSTRAINTS: Follow design | Preserve existing behavior | Follow code conventions
|
||||||
---
|
---
|
||||||
InnerLoop: true",
|
InnerLoop: true"
|
||||||
blockedBy: ["DESIGN-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "DEV-001", addBlockedBy: ["DESIGN-001"], owner: "developer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**VERIFY-001** (tester, parallel with REVIEW-001):
|
**VERIFY-001** (tester, parallel with REVIEW-001):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "VERIFY-001",
|
subject: "VERIFY-001",
|
||||||
owner: "tester",
|
|
||||||
description: "PURPOSE: Verify implementation | Success: Tests pass, no regressions
|
description: "PURPOSE: Verify implementation | Success: Tests pass, no regressions
|
||||||
TASK:
|
TASK:
|
||||||
- Detect test framework
|
- Detect test framework
|
||||||
@@ -170,17 +161,15 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/verify/verify-001.json | Pass rate >= 95%
|
EXPECTED: <session>/verify/verify-001.json | Pass rate >= 95%
|
||||||
CONSTRAINTS: Focus on changed files | Report regressions
|
CONSTRAINTS: Focus on changed files | Report regressions
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["DEV-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "VERIFY-001", addBlockedBy: ["DEV-001"], owner: "tester" })
|
||||||
```
|
```
|
||||||
|
|
||||||
**REVIEW-001** (reviewer, parallel with VERIFY-001):
|
**REVIEW-001** (reviewer, parallel with VERIFY-001):
|
||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "REVIEW-001",
|
subject: "REVIEW-001",
|
||||||
owner: "reviewer",
|
|
||||||
description: "PURPOSE: Code review for correctness and quality | Success: All dimensions reviewed, verdict issued
|
description: "PURPOSE: Code review for correctness and quality | Success: All dimensions reviewed, verdict issued
|
||||||
TASK:
|
TASK:
|
||||||
- Load changed files and design document
|
- Load changed files and design document
|
||||||
@@ -194,10 +183,9 @@ CONTEXT:
|
|||||||
EXPECTED: <session>/review/review-001.md | Per-dimension findings with severity
|
EXPECTED: <session>/review/review-001.md | Per-dimension findings with severity
|
||||||
CONSTRAINTS: Focus on implementation changes | Provide file:line references
|
CONSTRAINTS: Focus on implementation changes | Provide file:line references
|
||||||
---
|
---
|
||||||
InnerLoop: false",
|
InnerLoop: false"
|
||||||
blockedBy: ["DEV-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "REVIEW-001", addBlockedBy: ["DEV-001"], owner: "reviewer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -212,7 +200,6 @@ Create Sprint 1 tasks using sprint templates above, plus:
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "DEV-002",
|
subject: "DEV-002",
|
||||||
owner: "developer",
|
|
||||||
description: "PURPOSE: Incremental implementation | Success: Remaining tasks implemented
|
description: "PURPOSE: Incremental implementation | Success: Remaining tasks implemented
|
||||||
TASK:
|
TASK:
|
||||||
- Load remaining tasks from breakdown
|
- Load remaining tasks from breakdown
|
||||||
@@ -226,10 +213,9 @@ CONTEXT:
|
|||||||
EXPECTED: Modified source files + updated dev-log.md
|
EXPECTED: Modified source files + updated dev-log.md
|
||||||
CONSTRAINTS: Incremental delivery | Follow existing patterns
|
CONSTRAINTS: Incremental delivery | Follow existing patterns
|
||||||
---
|
---
|
||||||
InnerLoop: true",
|
InnerLoop: true"
|
||||||
blockedBy: ["DEV-001"],
|
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
|
TaskUpdate({ taskId: "DEV-002", addBlockedBy: ["DEV-001"], owner: "developer" })
|
||||||
```
|
```
|
||||||
|
|
||||||
Subsequent sprints created dynamically after Sprint N completes.
|
Subsequent sprints created dynamically after Sprint N completes.
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ Find and spawn the next ready tasks.
|
|||||||
3. Spawn team-worker:
|
3. Spawn team-worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker for <task-id>",
|
description: "Spawn <role> worker for <task-id>",
|
||||||
team_name: "iterdev",
|
team_name: "iterdev",
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ Execute `commands/dispatch.md` inline (Command Execution Protocol):
|
|||||||
Find first unblocked task and spawn its worker:
|
Find first unblocked task and spawn its worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: "iterdev",
|
team_name: "iterdev",
|
||||||
@@ -266,6 +266,6 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Steps |
|
| Choice | Steps |
|
||||||
|--------|-------|
|
|--------|-------|
|
||||||
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete("iterdev") -> output final summary |
|
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete() -> output final summary |
|
||||||
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-iterdev', args='resume')" |
|
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-iterdev', args='resume')" |
|
||||||
| Export Results | AskUserQuestion for target directory -> copy all artifacts -> Archive & Clean flow |
|
| Export Results | AskUserQuestion for target directory -> copy all artifacts -> Archive & Clean flow |
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-lifecycle
|
name: team-lifecycle
|
||||||
description: Unified team skill for full lifecycle - spec/impl/test. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents loaded with role-specific Phase 2-4 specs. Triggers on "team lifecycle".
|
description: Unified team skill for full lifecycle - spec/impl/test. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents loaded with role-specific Phase 2-4 specs. Triggers on "team lifecycle".
|
||||||
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Task(*), AskUserQuestion(*), TodoWrite(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), TodoWrite(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team Lifecycle
|
# Team Lifecycle
|
||||||
@@ -110,7 +110,7 @@ User provides task description
|
|||||||
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: <team-name>,
|
team_name: <team-name>,
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ EXPECTED: JSON with: problem_statement, target_users[], domain, constraints[], e
|
|||||||
**When project detected**: Call explore subagent with `angle: general`, `keywords: <from seed analysis>`.
|
**When project detected**: Call explore subagent with `angle: general`, `keywords: <from seed analysis>`.
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Explore general context",
|
description: "Explore general context",
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ message_types:
|
|||||||
|
|
||||||
| Backend | Invocation | Use Case |
|
| Backend | Invocation | Use Case |
|
||||||
|---------|-----------|----------|
|
|---------|-----------|----------|
|
||||||
| agent | `Task({ subagent_type: "code-developer", run_in_background: false })` | Simple, direct edits |
|
| agent | `Agent({ subagent_type: "code-developer", run_in_background: false })` | Simple, direct edits |
|
||||||
| codex | `ccw cli --tool codex --mode write` (background) | Complex, architecture |
|
| codex | `ccw cli --tool codex --mode write` (background) | Complex, architecture |
|
||||||
| gemini | `ccw cli --tool gemini --mode write` (background) | Analysis-heavy |
|
| gemini | `ccw cli --tool gemini --mode write` (background) | Analysis-heavy |
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ message_types:
|
|||||||
|
|
||||||
| Task Size | Strategy |
|
| Task Size | Strategy |
|
||||||
|-----------|----------|
|
|-----------|----------|
|
||||||
| Simple (<= 3 files, single component) | `Task({ subagent_type: "code-developer", run_in_background: false })` |
|
| Simple (<= 3 files, single component) | `Agent({ subagent_type: "code-developer", run_in_background: false })` |
|
||||||
| Complex (system, multi-component) | `ccw cli --tool gemini --mode write` (background) |
|
| Complex (system, multi-component) | `ccw cli --tool gemini --mode write` (background) |
|
||||||
|
|
||||||
**Coding standards** (include in agent/CLI prompt):
|
**Coding standards** (include in agent/CLI prompt):
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ If `<session-folder>/spec/` exists → load requirements/_index.md, architecture
|
|||||||
For each angle, call explore subagent (cache-aware — check cache-index.json before each call):
|
For each angle, call explore subagent (cache-aware — check cache-index.json before each call):
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Explore <angle>",
|
description: "Explore <angle>",
|
||||||
@@ -53,7 +53,7 @@ Task({
|
|||||||
**Agent call** (Medium/High):
|
**Agent call** (Medium/High):
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-lite-planning-agent",
|
subagent_type: "cli-lite-planning-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Generate implementation plan",
|
description: "Generate implementation plan",
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ message_types:
|
|||||||
Do NOT execute CLI calls in main agent. Delegate to subagent:
|
Do NOT execute CLI calls in main agent. Delegate to subagent:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "universal-executor",
|
subagent_type: "universal-executor",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Generate <doc-type> document",
|
description: "Generate <doc-type> document",
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ Every task description uses structured format for clarity:
|
|||||||
```
|
```
|
||||||
TaskCreate({
|
TaskCreate({
|
||||||
subject: "<TASK-ID>",
|
subject: "<TASK-ID>",
|
||||||
owner: "<role>",
|
|
||||||
description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
|
description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
|
||||||
TASK:
|
TASK:
|
||||||
- <step 1: specific action>
|
- <step 1: specific action>
|
||||||
@@ -102,8 +102,8 @@ CONSTRAINTS: <scope limits, focus areas>
|
|||||||
---
|
---
|
||||||
InlineDiscuss: <DISCUSS-NNN or none>
|
InlineDiscuss: <DISCUSS-NNN or none>
|
||||||
InnerLoop: <true|false>",
|
InnerLoop: <true|false>",
|
||||||
blockedBy: [<dependency-list>],
|
addBlockedBy: [<dependency-list>]
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -186,7 +186,7 @@ EXPECTED: Improved artifacts + quality improvement summary
|
|||||||
CONSTRAINTS: Focus on <dimension> only
|
CONSTRAINTS: Focus on <dimension> only
|
||||||
---
|
---
|
||||||
InnerLoop: true",
|
InnerLoop: true",
|
||||||
status: "pending"
|
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ Collect task states from TaskList()
|
|||||||
+- TaskUpdate -> in_progress
|
+- TaskUpdate -> in_progress
|
||||||
+- team_msg log -> task_unblocked
|
+- team_msg log -> task_unblocked
|
||||||
+- Spawn team-worker:
|
+- Spawn team-worker:
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker for <subject>",
|
description: "Spawn <role> worker for <subject>",
|
||||||
team_name: <team-name>,
|
team_name: <team-name>,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ In v4, discuss is a **subagent call** from within the producing role, reducing e
|
|||||||
Called by produce roles after artifact creation:
|
Called by produce roles after artifact creation:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-discuss-agent",
|
subagent_type: "cli-discuss-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Discuss <round-id>",
|
description: "Discuss <round-id>",
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ writer 只拿到压缩摘要,可在多任务间保持上下文连续。
|
|||||||
## Invocation
|
## Invocation
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "universal-executor",
|
subagent_type: "universal-executor",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Generate <doc-type>",
|
description: "Generate <doc-type>",
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ Results were scattered across different directories and never shared. In v4, all
|
|||||||
## Invocation
|
## Invocation
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Explore <angle>",
|
description: "Explore <angle>",
|
||||||
@@ -135,9 +135,10 @@ For complex queries, call cli-explore-agent per angle. The calling role determin
|
|||||||
|
|
||||||
```
|
```
|
||||||
# After seed analysis, explore codebase context
|
# After seed analysis, explore codebase context
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
description: "Explore general context",
|
description: "Explore general context",
|
||||||
|
run_in_background: false,
|
||||||
prompt: "Explore codebase for: <topic>\nFocus angle: general\n..."
|
prompt: "Explore codebase for: <topic>\nFocus angle: general\n..."
|
||||||
})
|
})
|
||||||
# Result feeds into discovery-context.json
|
# Result feeds into discovery-context.json
|
||||||
@@ -148,9 +149,10 @@ Task({
|
|||||||
```
|
```
|
||||||
# Multi-angle exploration before plan generation
|
# Multi-angle exploration before plan generation
|
||||||
for angle in selected_angles:
|
for angle in selected_angles:
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
description: "Explore <angle>",
|
description: "Explore <angle>",
|
||||||
|
run_in_background: false,
|
||||||
prompt: "Explore codebase for: <task>\nFocus angle: <angle>\n..."
|
prompt: "Explore codebase for: <task>\nFocus angle: <angle>\n..."
|
||||||
})
|
})
|
||||||
# Explorations manifest built from cache-index.json
|
# Explorations manifest built from cache-index.json
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-perf-opt
|
name: team-perf-opt
|
||||||
description: Unified team skill for performance optimization. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents. Triggers on "team perf-opt".
|
description: Unified team skill for performance optimization. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents. Triggers on "team perf-opt".
|
||||||
allowed-tools: Task, TaskCreate, TaskList, TaskGet, TaskUpdate, TeamCreate, TeamDelete, SendMessage, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep, mcp__ace-tool__search_context
|
allowed-tools: Agent, TaskCreate, TaskList, TaskGet, TaskUpdate, TeamCreate, TeamDelete, SendMessage, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep, mcp__ace-tool__search_context
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team Performance Optimization
|
# Team Performance Optimization
|
||||||
@@ -137,7 +137,7 @@ Phase 3 needs task dispatch
|
|||||||
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: <team-name>,
|
team_name: <team-name>,
|
||||||
@@ -361,7 +361,7 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Action |
|
| Choice | Action |
|
||||||
|--------|--------|
|
|--------|--------|
|
||||||
| Archive & Clean | Update session status="completed" -> TeamDelete(perf-opt) -> output final summary |
|
| Archive & Clean | Update session status="completed" -> TeamDelete() -> output final summary |
|
||||||
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-perf-opt", args="resume")` |
|
| Keep Active | Update session status="paused" -> output resume instructions: `Skill(skill="team-perf-opt", args="resume")` |
|
||||||
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
| Export Results | AskUserQuestion for target path -> copy deliverables -> Archive & Clean |
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ Find and spawn the next ready tasks.
|
|||||||
2. For each ready task, spawn team-worker:
|
2. For each ready task, spawn team-worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker for <task-id>",
|
description: "Spawn <role> worker for <task-id>",
|
||||||
team_name: "perf-opt",
|
team_name: "perf-opt",
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ Execute `commands/dispatch.md` inline (Command Execution Protocol):
|
|||||||
Find first unblocked task and spawn its worker:
|
Find first unblocked task and spawn its worker:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn profiler worker",
|
description: "Spawn profiler worker",
|
||||||
team_name: "perf-opt",
|
team_name: "perf-opt",
|
||||||
@@ -298,6 +298,6 @@ AskUserQuestion({
|
|||||||
|
|
||||||
| Choice | Steps |
|
| Choice | Steps |
|
||||||
|--------|-------|
|
|--------|-------|
|
||||||
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete("perf-opt") -> output final summary with artifact paths |
|
| Archive & Clean | TaskList -> verify all completed -> update session status="completed" -> TeamDelete() -> output final summary with artifact paths |
|
||||||
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-perf-opt', args='resume')" |
|
| Keep Active | Update session status="paused" -> output: "Session paused. Resume with: Skill(skill='team-perf-opt', args='resume')" |
|
||||||
| Export Results | AskUserQuestion for target directory -> copy all artifacts -> Archive & Clean flow |
|
| Export Results | AskUserQuestion for target directory -> copy all artifacts -> Archive & Clean flow |
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Complex optimization decisions (e.g., choosing between algorithmic change vs cac
|
|||||||
Called by strategist, reviewer after their primary analysis when complexity warrants multi-perspective evaluation:
|
Called by strategist, reviewer after their primary analysis when complexity warrants multi-perspective evaluation:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-discuss-agent",
|
subagent_type: "cli-discuss-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Discuss <round-id>: <topic> for performance optimization",
|
description: "Discuss <round-id>: <topic> for performance optimization",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Codebase exploration is a read-only operation shared between profiler (mapping b
|
|||||||
Called by profiler, optimizer after needing codebase context for performance analysis or implementation:
|
Called by profiler, optimizer after needing codebase context for performance analysis or implementation:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "cli-explore-agent",
|
subagent_type: "cli-explore-agent",
|
||||||
run_in_background: false,
|
run_in_background: false,
|
||||||
description: "Explore codebase for performance-critical paths in <target-scope>",
|
description: "Explore codebase for performance-critical paths in <target-scope>",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: team-planex
|
name: team-planex
|
||||||
description: Unified team skill for plan-and-execute pipeline. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents. Triggers on "team planex".
|
description: Unified team skill for plan-and-execute pipeline. Uses team-worker agent architecture with role-spec files for domain logic. Coordinator orchestrates pipeline, workers are team-worker agents. Triggers on "team planex".
|
||||||
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Task(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
||||||
---
|
---
|
||||||
|
|
||||||
# Team PlanEx
|
# Team PlanEx
|
||||||
@@ -128,7 +128,7 @@ When coordinator needs to execute a command (dispatch, monitor):
|
|||||||
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
When coordinator spawns workers, use `team-worker` agent with role-spec path:
|
||||||
|
|
||||||
```
|
```
|
||||||
Task({
|
Agent({
|
||||||
subagent_type: "team-worker",
|
subagent_type: "team-worker",
|
||||||
description: "Spawn <role> worker",
|
description: "Spawn <role> worker",
|
||||||
team_name: <team-name>,
|
team_name: <team-name>,
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user