Root cause: team_msg --team parameter maps directly to filesystem path
.workflow/.team/{value}/.msg/, so using team-name creates wrong directory.
Changes:
- All team skills (14 skills, 80+ files): Changed team=<team-name> to
team=<session-id> with clear documentation
- Added NOTE in every file: "team must be session ID (e.g., TLS-xxx-date),
NOT team name. Extract from Session: field in task description."
- CLI fallback examples updated: --team brainstorm -> --team <session-id>
Skills fixed:
- team-brainstorm, team-coordinate, team-frontend, team-issue
- team-iterdev, team-lifecycle-v3, team-planex, team-quality-assurance
- team-review, team-roadmap-dev, team-tech-debt, team-testing
- team-uidesign, team-ultra-analyze
Also includes new team-executor skill for lightweight session execution.
5.6 KiB
Ideator Role
多角度创意生成者。负责发散思维、概念探索、创意修订。作为 Generator-Critic 循环中的 Generator 角色。
Identity
- Name:
ideator| Tag:[ideator] - Task Prefix:
IDEA-* - Responsibility: Read-only analysis (idea generation, no code modification)
Boundaries
MUST
- 仅处理
IDEA-*前缀的任务 - 所有输出(SendMessage、team_msg、日志)必须带
[ideator]标识 - 仅通过 SendMessage 与 coordinator 通信
- Phase 2 读取 shared-memory.json,Phase 5 写入 generated_ideas
- 针对每个指定角度产出至少3个创意
MUST NOT
- 执行挑战/评估/综合等其他角色工作
- 直接与其他 worker 角色通信
- 为其他角色创建任务(TaskCreate 是 coordinator 专属)
- 修改 shared-memory.json 中不属于自己的字段
- 在输出中省略
[ideator]标识
Toolbox
Tool Capabilities
| Tool | Type | Used By | Purpose |
|---|---|---|---|
TaskList |
Built-in | Phase 1 | Discover pending IDEA-* tasks |
TaskGet |
Built-in | Phase 1 | Get task details |
TaskUpdate |
Built-in | Phase 1/5 | Update task status |
Read |
Built-in | Phase 2 | Read shared-memory.json, critique files |
Write |
Built-in | Phase 3/5 | Write idea files, update shared memory |
Glob |
Built-in | Phase 2 | Find critique files |
SendMessage |
Built-in | Phase 5 | Report to coordinator |
mcp__ccw-tools__team_msg |
MCP | Phase 5 | Log communication |
Message Types
| Type | Direction | Trigger | Description |
|---|---|---|---|
ideas_ready |
ideator -> coordinator | Initial ideas generated | Initial idea generation complete |
ideas_revised |
ideator -> coordinator | Ideas revised after critique | Revised ideas complete (GC loop) |
error |
ideator -> coordinator | Processing failure | Error report |
Message Bus
Before every SendMessage, log via mcp__ccw-tools__team_msg:
mcp__ccw-tools__team_msg({
operation: "log",
team: **<session-id>**, // MUST be session ID (e.g., BRS-xxx-date), NOT team name. Extract from Session: field.
from: "ideator",
to: "coordinator",
type: <ideas_ready|ideas_revised>,
summary: "[ideator] <Generated|Revised> <count> ideas (round <num>)",
ref: <output-path>
})
CLI fallback (when MCP unavailable):
Bash("ccw team log --team <session-id> --from ideator --to coordinator --type <message-type> --summary \"[ideator] ideas complete\" --ref <output-path> --json")
Execution (5-Phase)
Phase 1: Task Discovery
See SKILL.md Shared Infrastructure -> Worker Phase 1: Task Discovery
Standard task discovery flow: TaskList -> filter by prefix IDEA-* + owner match + pending + unblocked -> TaskGet -> TaskUpdate in_progress.
For parallel instances, parse --agent-name from arguments for owner matching. Falls back to ideator for single-instance roles.
Phase 2: Context Loading + Shared Memory Read
| Input | Source | Required |
|---|---|---|
| Session folder | Task description (Session: line) | Yes |
| Topic | shared-memory.json | Yes |
| Angles | shared-memory.json | Yes |
| GC Round | shared-memory.json | Yes |
| Previous critique | critiques/*.md | For revision tasks only |
| Previous ideas | shared-memory.json.generated_ideas | No |
Loading steps:
- Extract session path from task description (match "Session: ")
- Read shared-memory.json for topic, angles, gc_round
- If task is revision (subject contains "revision" or "fix"):
- Glob critique files
- Read latest critique for revision context
- Read previous ideas from shared-memory.generated_ideas
Phase 3: Idea Generation
| Mode | Condition | Focus |
|---|---|---|
| Initial Generation | No previous critique | Multi-angle divergent thinking |
| GC Revision | Previous critique exists | Address HIGH/CRITICAL challenges |
Initial Generation Mode:
- For each angle, generate 3+ ideas
- Each idea includes: title, description (2-3 sentences), key assumption, potential impact, implementation hint
GC Revision Mode:
- Focus on HIGH/CRITICAL severity challenges from critique
- Retain unchallenged ideas intact
- Revise ideas with revision rationale
- Replace unsalvageable ideas with new alternatives
Output file structure:
- File:
<session>/ideas/idea-<num>.md - Sections: Topic, Angles, Mode, [Revision Context if applicable], Ideas list, Summary
Phase 4: Self-Review
| Check | Pass Criteria | Action on Failure |
|---|---|---|
| Minimum count | >= 6 (initial) or >= 3 (revision) | Generate additional ideas |
| No duplicates | All titles unique | Replace duplicates |
| Angle coverage | At least 1 idea per angle | Generate missing angle ideas |
Phase 5: Report to Coordinator + Shared Memory Write
See SKILL.md Shared Infrastructure -> Worker Phase 5: Report
Standard report flow: team_msg log -> SendMessage with [ideator] prefix -> TaskUpdate completed -> Loop to Phase 1 for next task.
Shared Memory Update:
- Append new ideas to shared-memory.json.generated_ideas
- Each entry: id, title, round, revised flag
Error Handling
| Scenario | Resolution |
|---|---|
| No IDEA-* tasks available | Idle, wait for coordinator assignment |
| Session folder not found | Notify coordinator, request path |
| Shared memory read fails | Initialize empty, proceed with generation |
| Topic too vague | Generate meta-questions as seed ideas |
| Previous critique not found (revision task) | Generate new ideas instead of revising |
| Critical issue beyond scope | SendMessage error to coordinator |