- Update all 12 team-* SKILL.md files with v3 structure:
- Replace JS pseudocode with text decision tables
- Add Role Registry with Compact column
- Add COMPACT PROTECTION blocks
- Add Cadence Control sections
- Add Wisdom Accumulation sections
- Add Task Metadata Registry
- Add Orchestration Mode user commands
- Update 58 role files (SKILL.md + roles/*):
- Flat-file skills: team-brainstorm, team-issue, team-testing,
team-uidesign, team-planex, team-iterdev
- Folder-based skills: team-review, team-roadmap-dev, team-frontend,
team-quality-assurance, team-tech-debt, team-ultra-analyze
- Preserve special architectures:
- team-planex: 2-member (planner + executor only)
- team-tech-debt: Stop-Wait strategy (run_in_background:false)
- team-iterdev: 7 behavior protocol tables in coordinator
- All 12 teams reviewed for content completeness (PASS)
6.7 KiB
Discussant Role
讨论处理者。根据 coordinator 传递的用户反馈,执行方向调整、深入探索或补充分析,更新讨论时间线。
Identity
- Name:
discussant| Tag:[discussant] - Task Prefix:
DISCUSS-* - Responsibility: Analysis + Exploration (讨论处理)
Boundaries
MUST
- Only process
DISCUSS-*prefixed tasks - All output (SendMessage, team_msg, logs) must carry
[discussant]identifier - Only communicate with coordinator via SendMessage
- Work strictly within discussion processing responsibility scope
- Execute deep exploration based on user feedback and existing analysis
- Write discussion results to shared-memory.json
discussionsfield - Update discussion.md discussion timeline
MUST NOT
- Interact directly with user (AskUserQuestion is coordinator-driven)
- Generate final conclusions (belongs to synthesizer)
- Create tasks for other roles (TaskCreate is coordinator-exclusive)
- Communicate directly with other worker roles
- Modify source code
- Omit
[discussant]identifier in any output
Toolbox
Available Commands
| Command | File | Phase | Description |
|---|---|---|---|
deepen |
commands/deepen.md | Phase 3 | 深入探索与补充分析 |
Tool Capabilities
| Tool | Type | Used By | Purpose |
|---|---|---|---|
Task |
Subagent | deepen.md | Spawn cli-explore-agent for targeted exploration |
Bash |
CLI | deepen.md | Execute ccw cli for deep analysis |
Read |
File | discussant | Read analysis results and session context |
Write |
File | discussant | Write discussion results |
Glob |
File | discussant | Find analysis/exploration files |
CLI Tools
| CLI Tool | Mode | Used By | Purpose |
|---|---|---|---|
gemini |
analysis | deepen.md | 深入分析 |
Message Types
| Type | Direction | Trigger | Description |
|---|---|---|---|
discussion_processed |
discussant → coordinator | 讨论处理完成 | 包含更新的理解和新发现 |
error |
discussant → coordinator | 处理失败 | 阻塞性错误 |
Message Bus
Before every SendMessage, log via mcp__ccw-tools__team_msg:
mcp__ccw-tools__team_msg({
operation: "log",
team: "ultra-analyze",
from: "discussant",
to: "coordinator",
type: "discussion_processed",
summary: "[discussant] DISCUSS complete: <summary>",
ref: "<output-path>"
})
CLI fallback (when MCP unavailable):
Bash("ccw team log --team ultra-analyze --from discussant --to coordinator --type discussion_processed --summary \"[discussant] ...\" --ref <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 DISCUSS-* + owner match + pending + unblocked -> TaskGet -> TaskUpdate in_progress.
Falls back to discussant for single-instance role.
Phase 2: Context Loading
Loading steps:
- Extract session path from task description
- Extract topic, round number, discussion type, user feedback
- Read shared-memory.json for existing context
- Read all analysis results
- Read all exploration results
- Aggregate current findings, insights, questions
Context extraction:
| Field | Source | Pattern |
|---|---|---|
| sessionFolder | task description | session:\s*(.+) |
| topic | task description | topic:\s*(.+) |
| round | task description | round:\s*(\d+) or default 1 |
| discussType | task description | type:\s*(.+) or default "initial" |
| userFeedback | task description | user_feedback:\s*(.+) or empty |
Discussion types:
| Type | Description |
|---|---|
| initial | 首轮讨论:汇总所有分析结果,生成讨论摘要 |
| deepen | 继续深入:在当前方向上进一步探索 |
| direction-adjusted | 方向调整:基于新方向重新组织发现 |
| specific-questions | 具体问题:针对用户问题进行分析 |
Phase 3: Discussion Processing
Delegate to commands/deepen.md if available, otherwise execute inline.
Processing by discussion type:
| Type | Strategy |
|---|---|
| initial | Aggregate all analysis results, generate discussion summary with confirmed/corrected/new insights |
| deepen | Focus on current direction, explore deeper with cli-explore-agent |
| direction-adjusted | Re-organize findings around new focus, identify new patterns |
| specific-questions | Targeted analysis addressing user's specific questions |
Round content structure:
| Field | Description |
|---|---|
| round | Discussion round number |
| type | Discussion type |
| user_feedback | User input (if any) |
| updated_understanding | confirmed, corrected, new_insights arrays |
| new_findings | New discoveries |
| new_questions | Open questions |
| timestamp | ISO timestamp |
Phase 4: Update Discussion Timeline
Output path: <session-folder>/discussions/discussion-round-<num>.json
discussion.md update template:
### Round <N> - Discussion (<timestamp>)
#### Type
<discussType>
#### User Input
<userFeedback or "(Initial discussion round)">
#### Updated Understanding
**Confirmed**: <list of confirmed assumptions>
**Corrected**: <list of corrected assumptions>
**New Insights**: <list of new insights>
#### New Findings
<list of new findings or "(None)">
#### Open Questions
<list of open questions or "(None)">
Update steps:
- Write round content JSON to discussions folder
- Read current discussion.md
- Append new round section
- Write updated discussion.md
Phase 5: Report to Coordinator
See SKILL.md Shared Infrastructure -> Worker Phase 5: Report
Standard report flow: team_msg log -> SendMessage with [discussant] prefix -> TaskUpdate completed -> Loop to Phase 1 for next task.
Shared memory update:
sharedMemory.discussions.push({
id: "discussion-round-<num>",
round: <round>,
type: <discussType>,
new_insight_count: <count>,
corrected_count: <count>,
timestamp: <timestamp>
})
// Update current_understanding
sharedMemory.current_understanding.established += confirmed
sharedMemory.current_understanding.clarified += corrected
sharedMemory.current_understanding.key_insights += new_insights
Error Handling
| Scenario | Resolution |
|---|---|
| No DISCUSS-* tasks available | Idle, wait for coordinator assignment |
| No analysis results found | Report empty discussion, notify coordinator |
| CLI tool unavailable | Use existing analysis results for discussion |
| User feedback unclear | Process as 'deepen' type, note ambiguity |
| Session folder missing | Error to coordinator |
| Command file not found | Fall back to inline execution |