claude-code-workflow 6.0.5 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/action-planning-agent.md +1 -1
- package/.claude/agents/cli-execution-agent.md +269 -269
- package/.claude/agents/cli-explore-agent.md +182 -182
- package/.claude/agents/context-search-agent.md +582 -582
- package/.claude/agents/memory-bridge.md +93 -93
- package/.claude/commands/cli/cli-init.md +1 -1
- package/.claude/commands/memory/docs-full-cli.md +471 -471
- package/.claude/commands/memory/docs-related-cli.md +386 -386
- package/.claude/commands/memory/docs.md +615 -615
- package/.claude/commands/memory/load.md +1 -1
- package/.claude/commands/memory/update-full.md +332 -332
- package/.claude/commands/memory/update-related.md +5 -5
- package/.claude/commands/workflow/init.md +1 -1
- package/.claude/commands/workflow/lite-fix.md +621 -621
- package/.claude/commands/workflow/lite-plan.md +592 -592
- package/.claude/commands/workflow/tools/context-gather.md +434 -434
- package/.claude/commands/workflow/ui-design/generate.md +504 -504
- package/.claude/commands/workflow/ui-design/import-from-code.md +537 -537
- package/.claude/scripts/classify-folders.sh +4 -0
- package/.claude/scripts/convert_tokens_to_css.sh +4 -0
- package/.claude/scripts/detect_changed_modules.sh +5 -1
- package/.claude/scripts/discover-design-files.sh +87 -83
- package/.claude/scripts/generate_module_docs.sh +717 -713
- package/.claude/scripts/get_modules_by_depth.sh +5 -1
- package/.claude/scripts/ui-generate-preview.sh +4 -0
- package/.claude/scripts/ui-instantiate-prototypes.sh +4 -0
- package/.claude/scripts/update_module_claude.sh +4 -0
- package/.claude/skills/command-guide/index/all-commands.json +1 -12
- package/.claude/skills/command-guide/index/by-category.json +1 -12
- package/.claude/skills/command-guide/index/by-use-case.json +1 -12
- package/.claude/skills/command-guide/index/essential-commands.json +1 -12
- package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +127 -71
- package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +269 -269
- package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +182 -182
- package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +18 -38
- package/.claude/skills/command-guide/reference/agents/context-search-agent.md +582 -577
- package/.claude/skills/command-guide/reference/agents/memory-bridge.md +93 -93
- package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +1 -1
- package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -471
- package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -386
- package/.claude/skills/command-guide/reference/commands/memory/docs.md +615 -610
- package/.claude/skills/command-guide/reference/commands/memory/load.md +1 -1
- package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -332
- package/.claude/skills/command-guide/reference/commands/memory/update-related.md +5 -5
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +299 -451
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +14 -37
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +252 -350
- package/.claude/skills/command-guide/reference/commands/workflow/init.md +2 -2
- package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +52 -0
- package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +621 -602
- package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +46 -36
- package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +18 -58
- package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +22 -52
- package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +19 -48
- package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +25 -5
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +1 -1
- package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +7 -7
- package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -434
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +151 -11
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +4 -4
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +1 -1
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +504 -504
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +537 -537
- package/.claude/workflows/context-search-strategy.md +77 -77
- package/.claude/workflows/tool-strategy.md +90 -71
- package/.claude/workflows/workflow-architecture.md +1 -1
- package/ccw/src/cli.js +7 -0
- package/ccw/src/commands/tool.js +181 -0
- package/ccw/src/core/dashboard-generator.js +18 -3
- package/ccw/src/core/lite-scanner.js +35 -11
- package/ccw/src/core/server.js +531 -46
- package/ccw/src/templates/dashboard-css/01-base.css +161 -0
- package/ccw/src/templates/dashboard-css/02-session.css +726 -0
- package/ccw/src/templates/dashboard-css/03-tasks.css +512 -0
- package/ccw/src/templates/dashboard-css/04-lite-tasks.css +843 -0
- package/ccw/src/templates/dashboard-css/05-context.css +2206 -0
- package/ccw/src/templates/dashboard-css/06-cards.css +1570 -0
- package/ccw/src/templates/dashboard-css/07-managers.css +936 -0
- package/ccw/src/templates/dashboard-css/08-review.css +1266 -0
- package/ccw/src/templates/dashboard-css/09-explorer.css +1397 -0
- package/ccw/src/templates/dashboard-js/components/global-notifications.js +219 -0
- package/ccw/src/templates/dashboard-js/components/hook-manager.js +10 -0
- package/ccw/src/templates/dashboard-js/components/mcp-manager.js +11 -1
- package/ccw/src/templates/dashboard-js/components/navigation.js +11 -5
- package/ccw/src/templates/dashboard-js/components/tabs-context.js +20 -20
- package/ccw/src/templates/dashboard-js/components/tabs-other.js +11 -11
- package/ccw/src/templates/dashboard-js/components/theme.js +29 -1
- package/ccw/src/templates/dashboard-js/main.js +4 -0
- package/ccw/src/templates/dashboard-js/state.js +5 -0
- package/ccw/src/templates/dashboard-js/views/explorer.js +852 -0
- package/ccw/src/templates/dashboard-js/views/home.js +13 -9
- package/ccw/src/templates/dashboard-js/views/hook-manager.js +8 -5
- package/ccw/src/templates/dashboard-js/views/lite-tasks.js +21 -16
- package/ccw/src/templates/dashboard-js/views/mcp-manager.js +90 -19
- package/ccw/src/templates/dashboard-js/views/project-overview.js +15 -11
- package/ccw/src/templates/dashboard-js/views/review-session.js +3 -3
- package/ccw/src/templates/dashboard-js/views/session-detail.js +38 -28
- package/ccw/src/templates/dashboard.html +129 -28
- package/ccw/src/tools/classify-folders.js +204 -0
- package/ccw/src/tools/convert-tokens-to-css.js +250 -0
- package/ccw/src/tools/detect-changed-modules.js +288 -0
- package/ccw/src/tools/discover-design-files.js +134 -0
- package/ccw/src/tools/edit-file.js +266 -0
- package/ccw/src/tools/generate-module-docs.js +416 -0
- package/ccw/src/tools/get-modules-by-depth.js +308 -0
- package/ccw/src/tools/index.js +176 -0
- package/ccw/src/tools/ui-generate-preview.js +327 -0
- package/ccw/src/tools/ui-instantiate-prototypes.js +301 -0
- package/ccw/src/tools/update-module-claude.js +380 -0
- package/package.json +1 -1
- package/.claude/skills/command-guide/reference/commands/workflow/status.md +0 -352
- package/ccw/src/core/server.js.bak +0 -385
- package/ccw/src/core/server_original.bak +0 -385
- package/ccw/src/templates/dashboard.css +0 -8187
- package/ccw/src/templates/dashboard_tailwind.html +0 -42
- package/ccw/src/templates/dashboard_test.html +0 -37
- package/ccw/src/templates/tailwind-base.css +0 -212
|
@@ -2,452 +2,359 @@
|
|
|
2
2
|
name: artifacts
|
|
3
3
|
description: Interactive clarification generating confirmed guidance specification through role-based analysis and synthesis
|
|
4
4
|
argument-hint: "topic or challenge description [--count N]"
|
|
5
|
-
allowed-tools: TodoWrite(*), Read(*), Write(*), Glob(*)
|
|
5
|
+
allowed-tools: TodoWrite(*), Read(*), Write(*), Glob(*), AskUserQuestion(*)
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
## Overview
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Seven-phase workflow: **Context collection** → **Topic analysis** → **Role selection** → **Role questions** → **Conflict resolution** → **Final check** → **Generate specification**
|
|
11
|
+
|
|
12
|
+
All user interactions use AskUserQuestion tool (max 4 questions per call, multi-round).
|
|
11
13
|
|
|
12
14
|
**Input**: `"GOAL: [objective] SCOPE: [boundaries] CONTEXT: [background]" [--count N]`
|
|
13
|
-
**Output**: `.workflow/active/WFS-{topic}/.brainstorming/guidance-specification.md`
|
|
14
|
-
**Core Principle**: Questions dynamically generated from project context + topic keywords
|
|
15
|
+
**Output**: `.workflow/active/WFS-{topic}/.brainstorming/guidance-specification.md`
|
|
16
|
+
**Core Principle**: Questions dynamically generated from project context + topic keywords, NOT generic templates
|
|
15
17
|
|
|
16
18
|
**Parameters**:
|
|
17
19
|
- `topic` (required): Topic or challenge description (structured format recommended)
|
|
18
|
-
- `--count N` (optional): Number of roles
|
|
20
|
+
- `--count N` (optional): Number of roles to select (system recommends N+2 options, default: 3)
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
---
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
## Quick Reference
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
- Find the artifacts parent task: "Execute artifacts command for interactive framework generation"
|
|
26
|
-
- Mark parent task as "in_progress"
|
|
27
|
-
- APPEND artifacts sub-tasks AFTER the parent task (Phase 0-5)
|
|
28
|
-
- Mark each sub-task as it completes
|
|
29
|
-
- When Phase 5 completes, mark parent task as "completed"
|
|
30
|
-
- **PRESERVE all other auto-parallel tasks** (role agents, synthesis)
|
|
26
|
+
### Phase Summary
|
|
31
27
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{"content": "Phase 5: Transform Q&A to declarative statements, write guidance-specification.md", "status": "pending", "activeForm": "Phase 5 document generation"}
|
|
42
|
-
]
|
|
43
|
-
```
|
|
28
|
+
| Phase | Goal | AskUserQuestion | Storage |
|
|
29
|
+
|-------|------|-----------------|---------|
|
|
30
|
+
| 0 | Context collection | - | context-package.json |
|
|
31
|
+
| 1 | Topic analysis | 2-4 questions | intent_context |
|
|
32
|
+
| 2 | Role selection | 1 multi-select | selected_roles |
|
|
33
|
+
| 3 | Role questions | 3-4 per role | role_decisions[role] |
|
|
34
|
+
| 4 | Conflict resolution | max 4 per round | cross_role_decisions |
|
|
35
|
+
| 4.5 | Final check | progressive rounds | additional_decisions |
|
|
36
|
+
| 5 | Generate spec | - | guidance-specification.md |
|
|
44
37
|
|
|
45
|
-
|
|
38
|
+
### AskUserQuestion Pattern
|
|
46
39
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
40
|
+
```javascript
|
|
41
|
+
// Single-select (Phase 1, 3, 4)
|
|
42
|
+
AskUserQuestion({
|
|
43
|
+
questions: [
|
|
44
|
+
{
|
|
45
|
+
question: "{问题文本}",
|
|
46
|
+
header: "{短标签}", // max 12 chars
|
|
47
|
+
multiSelect: false,
|
|
48
|
+
options: [
|
|
49
|
+
{ label: "{选项}", description: "{说明和影响}" },
|
|
50
|
+
{ label: "{选项}", description: "{说明和影响}" },
|
|
51
|
+
{ label: "{选项}", description: "{说明和影响}" }
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
// ... max 4 questions per call
|
|
55
|
+
]
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
// Multi-select (Phase 2)
|
|
59
|
+
AskUserQuestion({
|
|
60
|
+
questions: [{
|
|
61
|
+
question: "请选择 {count} 个角色",
|
|
62
|
+
header: "角色选择",
|
|
63
|
+
multiSelect: true,
|
|
64
|
+
options: [/* max 4 options per call */]
|
|
65
|
+
}]
|
|
66
|
+
})
|
|
61
67
|
```
|
|
62
68
|
|
|
63
|
-
|
|
64
|
-
```markdown
|
|
65
|
-
【角色选择】请选择 {count} 个角色参与头脑风暴分析
|
|
66
|
-
|
|
67
|
-
a) {role-name} ({中文名})
|
|
68
|
-
推荐理由:{基于topic的相关性说明}
|
|
69
|
-
b) {role-name} ({中文名})
|
|
70
|
-
推荐理由:{基于topic的相关性说明}
|
|
71
|
-
...
|
|
69
|
+
### Multi-Round Execution
|
|
72
70
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
```javascript
|
|
72
|
+
const BATCH_SIZE = 4;
|
|
73
|
+
for (let i = 0; i < allQuestions.length; i += BATCH_SIZE) {
|
|
74
|
+
const batch = allQuestions.slice(i, i + BATCH_SIZE);
|
|
75
|
+
AskUserQuestion({ questions: batch });
|
|
76
|
+
// Store responses before next round
|
|
77
|
+
}
|
|
79
78
|
```
|
|
80
79
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
**Supported formats** (intelligent parsing):
|
|
84
|
-
|
|
85
|
-
1. **Space-separated**: `1a 2b 3c` → Q1:a, Q2:b, Q3:c
|
|
86
|
-
2. **Comma-separated**: `1a,2b,3c` → Q1:a, Q2:b, Q3:c
|
|
87
|
-
3. **Multi-select combined**: `2abc` → Q2: options a,b,c
|
|
88
|
-
4. **Multi-select spaces**: `2 a b c` → Q2: options a,b,c
|
|
89
|
-
5. **Multi-select comma**: `2a,b,c` → Q2: options a,b,c
|
|
90
|
-
6. **Natural language**: `问题1选a` → 1a (fallback parsing)
|
|
91
|
-
|
|
92
|
-
**Parsing algorithm**:
|
|
93
|
-
- Extract question numbers and option letters
|
|
94
|
-
- Validate question numbers match output
|
|
95
|
-
- Validate option letters exist for each question
|
|
96
|
-
- If ambiguous/invalid, output example format and request re-input
|
|
97
|
-
|
|
98
|
-
**Error handling** (lenient):
|
|
99
|
-
- Recognize common variations automatically
|
|
100
|
-
- If parsing fails, show example and wait for clarification
|
|
101
|
-
- Support re-input without penalty
|
|
80
|
+
---
|
|
102
81
|
|
|
103
|
-
|
|
82
|
+
## Task Tracking
|
|
104
83
|
|
|
105
|
-
**
|
|
106
|
-
- **Default**: Maximum 10 questions per round
|
|
107
|
-
- **Phase 2 (role selection)**: Display all recommended roles at once (count+2 roles)
|
|
108
|
-
- **Auto-split**: If questions > 10, split into multiple rounds with clear round indicators
|
|
84
|
+
**TodoWrite Rule**: EXTEND auto-parallel's task list (NOT replace/overwrite)
|
|
109
85
|
|
|
110
|
-
**
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
...
|
|
116
|
-
【问题10 - ...】...
|
|
86
|
+
**When called from auto-parallel**:
|
|
87
|
+
- Find artifacts parent task → Mark "in_progress"
|
|
88
|
+
- APPEND sub-tasks (Phase 0-5) → Mark each as completes
|
|
89
|
+
- When Phase 5 completes → Mark parent "completed"
|
|
90
|
+
- PRESERVE all other auto-parallel tasks
|
|
117
91
|
|
|
118
|
-
|
|
92
|
+
**Standalone Mode**:
|
|
93
|
+
```json
|
|
94
|
+
[
|
|
95
|
+
{"content": "Initialize session", "status": "pending", "activeForm": "Initializing"},
|
|
96
|
+
{"content": "Phase 0: Context collection", "status": "pending", "activeForm": "Phase 0"},
|
|
97
|
+
{"content": "Phase 1: Topic analysis (2-4 questions)", "status": "pending", "activeForm": "Phase 1"},
|
|
98
|
+
{"content": "Phase 2: Role selection", "status": "pending", "activeForm": "Phase 2"},
|
|
99
|
+
{"content": "Phase 3: Role questions (per role)", "status": "pending", "activeForm": "Phase 3"},
|
|
100
|
+
{"content": "Phase 4: Conflict resolution", "status": "pending", "activeForm": "Phase 4"},
|
|
101
|
+
{"content": "Phase 4.5: Final clarification", "status": "pending", "activeForm": "Phase 4.5"},
|
|
102
|
+
{"content": "Phase 5: Generate specification", "status": "pending", "activeForm": "Phase 5"}
|
|
103
|
+
]
|
|
119
104
|
```
|
|
120
105
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
**Standard flow**:
|
|
124
|
-
1. Output questions in formatted text
|
|
125
|
-
2. Output expected input format example
|
|
126
|
-
3. Wait for user input
|
|
127
|
-
4. Parse input with intelligent matching
|
|
128
|
-
5. If parsing succeeds → Store answers and continue
|
|
129
|
-
6. If parsing fails → Show error, example, and wait for re-input
|
|
130
|
-
|
|
131
|
-
**No question/option limits**: Text-based interaction removes previous 4-question and 4-option restrictions
|
|
106
|
+
---
|
|
132
107
|
|
|
133
108
|
## Execution Phases
|
|
134
109
|
|
|
135
110
|
### Session Management
|
|
111
|
+
|
|
136
112
|
- Check `.workflow/active/` for existing sessions
|
|
137
|
-
- Multiple
|
|
138
|
-
- Parse `--count N` parameter
|
|
139
|
-
- Store decisions in `workflow-session.json`
|
|
113
|
+
- Multiple → Prompt selection | Single → Use it | None → Create `WFS-[topic-slug]`
|
|
114
|
+
- Parse `--count N` parameter (default: 3)
|
|
115
|
+
- Store decisions in `workflow-session.json`
|
|
140
116
|
|
|
141
|
-
### Phase 0:
|
|
117
|
+
### Phase 0: Context Collection
|
|
142
118
|
|
|
143
|
-
**Goal**: Gather project
|
|
119
|
+
**Goal**: Gather project context BEFORE user interaction
|
|
144
120
|
|
|
145
|
-
**
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (file_exists(contextPackagePath)) {
|
|
151
|
-
// Validate package
|
|
152
|
-
const package = Read(contextPackagePath);
|
|
153
|
-
if (package.metadata.session_id === session_id) {
|
|
154
|
-
console.log("✅ Valid context-package found, skipping Phase 0");
|
|
155
|
-
return; // Skip to Phase 1
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
```
|
|
121
|
+
**Steps**:
|
|
122
|
+
1. Check if `context-package.json` exists → Skip if valid
|
|
123
|
+
2. Invoke `context-search-agent` (BRAINSTORM MODE - lightweight)
|
|
124
|
+
3. Output: `.workflow/active/WFS-{session-id}/.process/context-package.json`
|
|
159
125
|
|
|
160
|
-
**
|
|
126
|
+
**Graceful Degradation**: If agent fails, continue to Phase 1 without context
|
|
161
127
|
|
|
162
128
|
```javascript
|
|
163
129
|
Task(
|
|
164
130
|
subagent_type="context-search-agent",
|
|
165
131
|
description="Gather project context for brainstorm",
|
|
166
132
|
prompt=`
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
- **Task Description**: ${task_description}
|
|
175
|
-
- **Output Path**: .workflow/${session_id}/.process/context-package.json
|
|
176
|
-
|
|
177
|
-
## Mission
|
|
178
|
-
Execute complete context-search-agent workflow for implementation planning:
|
|
179
|
-
|
|
180
|
-
### Phase 1: Initialization & Pre-Analysis
|
|
181
|
-
1. **Detection**: Check for existing context-package (early exit if valid)
|
|
182
|
-
2. **Foundation**: Initialize code-index, get project structure, load docs
|
|
183
|
-
3. **Analysis**: Extract keywords, determine scope, classify complexity
|
|
184
|
-
|
|
185
|
-
### Phase 2: Multi-Source Context Discovery
|
|
186
|
-
Execute all 3 discovery tracks:
|
|
187
|
-
- **Track 1**: Reference documentation (CLAUDE.md, architecture docs)
|
|
188
|
-
- **Track 2**: Web examples (use Exa MCP for unfamiliar tech/APIs)
|
|
189
|
-
- **Track 3**: Codebase analysis (5-layer discovery: files, content, patterns, deps, config/tests)
|
|
190
|
-
|
|
191
|
-
### Phase 3: Synthesis, Assessment & Packaging
|
|
192
|
-
1. Apply relevance scoring and build dependency graph
|
|
193
|
-
2. Synthesize 3-source data (docs > code > web)
|
|
194
|
-
3. Integrate brainstorm artifacts (if .brainstorming/ exists, read content)
|
|
195
|
-
4. Perform conflict detection with risk assessment
|
|
196
|
-
5. Generate and validate context-package.json
|
|
197
|
-
|
|
198
|
-
## Output Requirements
|
|
199
|
-
Complete context-package.json with:
|
|
200
|
-
- **metadata**: task_description, keywords, complexity, tech_stack, session_id
|
|
201
|
-
- **project_context**: architecture_patterns, coding_conventions, tech_stack
|
|
202
|
-
- **assets**: {documentation[], source_code[], config[], tests[]} with relevance scores
|
|
203
|
-
- **dependencies**: {internal[], external[]} with dependency graph
|
|
204
|
-
- **brainstorm_artifacts**: {guidance_specification, role_analyses[], synthesis_output} with content
|
|
205
|
-
- **conflict_detection**: {risk_level, risk_factors, affected_modules[], mitigation_strategy}
|
|
206
|
-
|
|
207
|
-
## Quality Validation
|
|
208
|
-
Before completion verify:
|
|
209
|
-
- [ ] Valid JSON format with all required fields
|
|
210
|
-
- [ ] File relevance accuracy >80%
|
|
211
|
-
- [ ] Dependency graph complete (max 2 transitive levels)
|
|
212
|
-
- [ ] Conflict risk level calculated correctly
|
|
213
|
-
- [ ] No sensitive data exposed
|
|
214
|
-
- [ ] Total files ≤50 (prioritize high-relevance)
|
|
215
|
-
|
|
216
|
-
Execute autonomously following agent documentation.
|
|
217
|
-
Report completion with statistics.
|
|
133
|
+
Execute context-search-agent in BRAINSTORM MODE (Phase 1-2 only).
|
|
134
|
+
|
|
135
|
+
Session: ${session_id}
|
|
136
|
+
Task: ${task_description}
|
|
137
|
+
Output: .workflow/${session_id}/.process/context-package.json
|
|
138
|
+
|
|
139
|
+
Required fields: metadata, project_context, assets, dependencies, conflict_detection
|
|
218
140
|
`
|
|
219
141
|
)
|
|
220
142
|
```
|
|
221
143
|
|
|
222
|
-
|
|
223
|
-
- If agent fails: Log warning, continue to Phase 1 without project context
|
|
224
|
-
- If package invalid: Re-run context-search-agent
|
|
225
|
-
|
|
226
|
-
### Phase 1: Topic Analysis & Intent Classification
|
|
144
|
+
### Phase 1: Topic Analysis
|
|
227
145
|
|
|
228
|
-
**Goal**: Extract keywords/challenges
|
|
146
|
+
**Goal**: Extract keywords/challenges enriched by Phase 0 context
|
|
229
147
|
|
|
230
148
|
**Steps**:
|
|
231
|
-
1.
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
2. **Deep topic analysis** (context-aware):
|
|
236
|
-
- Extract technical entities from topic + existing codebase
|
|
237
|
-
- Identify core challenges considering existing architecture
|
|
238
|
-
- Consider constraints (timeline/budget/compliance)
|
|
239
|
-
- Define success metrics based on current project state
|
|
240
|
-
|
|
241
|
-
3. **Generate 2-4 context-aware probing questions**:
|
|
242
|
-
- Reference existing tech stack in questions
|
|
243
|
-
- Consider integration with existing modules
|
|
244
|
-
- Address identified conflict risks from Phase 0
|
|
245
|
-
- Target root challenges and trade-off priorities
|
|
149
|
+
1. Load Phase 0 context (tech_stack, modules, conflict_risk)
|
|
150
|
+
2. Deep topic analysis (entities, challenges, constraints, metrics)
|
|
151
|
+
3. Generate 2-4 context-aware probing questions
|
|
152
|
+
4. AskUserQuestion → Store to `session.intent_context`
|
|
246
153
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
请回答 (格式: 1a 2b):
|
|
154
|
+
**Example**:
|
|
155
|
+
```javascript
|
|
156
|
+
AskUserQuestion({
|
|
157
|
+
questions: [
|
|
158
|
+
{
|
|
159
|
+
question: "实时协作平台的主要技术挑战?",
|
|
160
|
+
header: "核心挑战",
|
|
161
|
+
multiSelect: false,
|
|
162
|
+
options: [
|
|
163
|
+
{ label: "实时数据同步", description: "100+用户同时在线,状态同步复杂度高" },
|
|
164
|
+
{ label: "可扩展性架构", description: "用户规模增长时的系统扩展能力" },
|
|
165
|
+
{ label: "冲突解决机制", description: "多用户同时编辑的冲突处理策略" }
|
|
166
|
+
]
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
question: "MVP阶段最关注的指标?",
|
|
170
|
+
header: "优先级",
|
|
171
|
+
multiSelect: false,
|
|
172
|
+
options: [
|
|
173
|
+
{ label: "功能完整性", description: "实现所有核心功能" },
|
|
174
|
+
{ label: "用户体验", description: "流畅的交互体验和响应速度" },
|
|
175
|
+
{ label: "系统稳定性", description: "高可用性和数据一致性" }
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
]
|
|
179
|
+
})
|
|
274
180
|
```
|
|
275
181
|
|
|
276
|
-
**User input examples**:
|
|
277
|
-
- `1a 2c` → Q1:a, Q2:c
|
|
278
|
-
- `1a,2c` → Q1:a, Q2:c
|
|
279
|
-
|
|
280
182
|
**⚠️ CRITICAL**: Questions MUST reference topic keywords. Generic "Project type?" violates dynamic generation.
|
|
281
183
|
|
|
282
184
|
### Phase 2: Role Selection
|
|
283
185
|
|
|
284
|
-
|
|
186
|
+
**Goal**: User selects roles from intelligent recommendations
|
|
285
187
|
|
|
286
|
-
**Available Roles**:
|
|
287
|
-
- data-architect (数据架构师)
|
|
288
|
-
- product-manager (产品经理)
|
|
289
|
-
- product-owner (产品负责人)
|
|
290
|
-
- scrum-master (敏捷教练)
|
|
291
|
-
- subject-matter-expert (领域专家)
|
|
292
|
-
- system-architect (系统架构师)
|
|
293
|
-
- test-strategist (测试策略师)
|
|
294
|
-
- ui-designer (UI 设计师)
|
|
295
|
-
- ux-expert (UX 专家)
|
|
188
|
+
**Available Roles**: data-architect, product-manager, product-owner, scrum-master, subject-matter-expert, system-architect, test-strategist, ui-designer, ux-expert
|
|
296
189
|
|
|
297
190
|
**Steps**:
|
|
298
|
-
1.
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
- Recommend count+2 roles (e.g., if user wants 3 roles, recommend 5 options)
|
|
302
|
-
- Provide clear rationale for each recommended role based on topic context
|
|
303
|
-
|
|
304
|
-
2. **User selection** (text interaction):
|
|
305
|
-
- Output all recommended roles at once (no batching needed for count+2 roles)
|
|
306
|
-
- Display roles with labels and relevance rationale
|
|
307
|
-
- Wait for user input in multi-select format
|
|
308
|
-
- Parse user input (support multiple formats)
|
|
309
|
-
- **Storage**: Store selections to `session.selected_roles`
|
|
310
|
-
|
|
311
|
-
**Example Output**:
|
|
312
|
-
```markdown
|
|
313
|
-
===== Phase 2: 角色选择 =====
|
|
314
|
-
|
|
315
|
-
【角色选择】请选择 3 个角色参与头脑风暴分析
|
|
316
|
-
|
|
317
|
-
a) system-architect (系统架构师)
|
|
318
|
-
推荐理由:实时同步架构设计和技术选型的核心角色
|
|
319
|
-
b) ui-designer (UI设计师)
|
|
320
|
-
推荐理由:协作界面用户体验和实时状态展示
|
|
321
|
-
c) product-manager (产品经理)
|
|
322
|
-
推荐理由:功能优先级和MVP范围决策
|
|
323
|
-
d) data-architect (数据架构师)
|
|
324
|
-
推荐理由:数据同步模型和存储方案设计
|
|
325
|
-
e) ux-expert (UX专家)
|
|
326
|
-
推荐理由:多用户协作交互流程优化
|
|
327
|
-
|
|
328
|
-
支持格式:
|
|
329
|
-
- 分别选择:2a 2c 2d (选择a、c、d)
|
|
330
|
-
- 合并语法:2acd (选择a、c、d)
|
|
331
|
-
- 逗号分隔:2a,c,d (选择a、c、d)
|
|
332
|
-
|
|
333
|
-
请输入选择:
|
|
334
|
-
```
|
|
191
|
+
1. Analyze Phase 1 keywords → Recommend count+2 roles with rationale
|
|
192
|
+
2. AskUserQuestion (multiSelect=true) → Store to `session.selected_roles`
|
|
193
|
+
3. If count+2 > 4, split into multiple rounds
|
|
335
194
|
|
|
336
|
-
**
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
195
|
+
**Example**:
|
|
196
|
+
```javascript
|
|
197
|
+
AskUserQuestion({
|
|
198
|
+
questions: [{
|
|
199
|
+
question: "请选择 3 个角色参与头脑风暴分析",
|
|
200
|
+
header: "角色选择",
|
|
201
|
+
multiSelect: true,
|
|
202
|
+
options: [
|
|
203
|
+
{ label: "system-architect", description: "实时同步架构设计和技术选型" },
|
|
204
|
+
{ label: "ui-designer", description: "协作界面用户体验和状态展示" },
|
|
205
|
+
{ label: "product-manager", description: "功能优先级和MVP范围决策" },
|
|
206
|
+
{ label: "data-architect", description: "数据同步模型和存储方案设计" }
|
|
207
|
+
]
|
|
208
|
+
}]
|
|
209
|
+
})
|
|
210
|
+
```
|
|
340
211
|
|
|
341
|
-
|
|
342
|
-
- NO hardcoded keyword-to-role mappings
|
|
343
|
-
- Use intelligent analysis of topic, challenges, and requirements
|
|
344
|
-
- Consider role synergies and coverage gaps
|
|
345
|
-
- Explain WHY each role is relevant to THIS specific topic
|
|
346
|
-
- Default recommendation: count+2 roles for user to choose from
|
|
212
|
+
**⚠️ CRITICAL**: User MUST interact. NEVER auto-select without confirmation.
|
|
347
213
|
|
|
348
|
-
### Phase 3: Role-Specific Questions
|
|
214
|
+
### Phase 3: Role-Specific Questions
|
|
349
215
|
|
|
350
216
|
**Goal**: Generate deep questions mapping role expertise to Phase 1 challenges
|
|
351
217
|
|
|
352
218
|
**Algorithm**:
|
|
219
|
+
1. FOR each selected role:
|
|
220
|
+
- Map Phase 1 challenges to role domain
|
|
221
|
+
- Generate 3-4 questions (implementation depth, trade-offs, edge cases)
|
|
222
|
+
- AskUserQuestion per role → Store to `session.role_decisions[role]`
|
|
223
|
+
2. Process roles sequentially (one at a time for clarity)
|
|
224
|
+
3. If role needs > 4 questions, split into multiple rounds
|
|
225
|
+
|
|
226
|
+
**Example** (system-architect):
|
|
227
|
+
```javascript
|
|
228
|
+
AskUserQuestion({
|
|
229
|
+
questions: [
|
|
230
|
+
{
|
|
231
|
+
question: "100+ 用户实时状态同步方案?",
|
|
232
|
+
header: "状态同步",
|
|
233
|
+
multiSelect: false,
|
|
234
|
+
options: [
|
|
235
|
+
{ label: "Event Sourcing", description: "完整事件历史,支持回溯,存储成本高" },
|
|
236
|
+
{ label: "集中式状态管理", description: "实现简单,单点瓶颈风险" },
|
|
237
|
+
{ label: "CRDT", description: "去中心化,自动合并,学习曲线陡" }
|
|
238
|
+
]
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
question: "两个用户同时编辑冲突如何解决?",
|
|
242
|
+
header: "冲突解决",
|
|
243
|
+
multiSelect: false,
|
|
244
|
+
options: [
|
|
245
|
+
{ label: "自动合并", description: "用户无感知,可能产生意外结果" },
|
|
246
|
+
{ label: "手动解决", description: "用户控制,增加交互复杂度" },
|
|
247
|
+
{ label: "版本控制", description: "保留历史,需要分支管理" }
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
]
|
|
251
|
+
})
|
|
353
252
|
```
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
253
|
+
|
|
254
|
+
### Phase 4: Conflict Resolution
|
|
255
|
+
|
|
256
|
+
**Goal**: Resolve ACTUAL conflicts from Phase 3 answers
|
|
257
|
+
|
|
258
|
+
**Algorithm**:
|
|
259
|
+
1. Analyze Phase 3 answers for conflicts:
|
|
260
|
+
- Contradictory choices (e.g., "fast iteration" vs "complex Event Sourcing")
|
|
261
|
+
- Missing integration (e.g., "Optimistic updates" but no conflict handling)
|
|
262
|
+
- Implicit dependencies (e.g., "Live cursors" but no auth defined)
|
|
263
|
+
2. Generate clarification questions referencing SPECIFIC Phase 3 choices
|
|
264
|
+
3. AskUserQuestion (max 4 per call, multi-round) → Store to `session.cross_role_decisions`
|
|
265
|
+
4. If NO conflicts: Skip Phase 4 (inform user: "未检测到跨角色冲突,跳过Phase 4")
|
|
266
|
+
|
|
267
|
+
**Example**:
|
|
268
|
+
```javascript
|
|
269
|
+
AskUserQuestion({
|
|
270
|
+
questions: [{
|
|
271
|
+
question: "CRDT 与 UI 回滚期望冲突,如何解决?\n背景:system-architect选择CRDT,ui-designer期望回滚UI",
|
|
272
|
+
header: "架构冲突",
|
|
273
|
+
multiSelect: false,
|
|
274
|
+
options: [
|
|
275
|
+
{ label: "采用 CRDT", description: "保持去中心化,调整UI期望" },
|
|
276
|
+
{ label: "显示合并界面", description: "增加用户交互,展示冲突详情" },
|
|
277
|
+
{ label: "切换到 OT", description: "支持回滚,增加服务器复杂度" }
|
|
278
|
+
]
|
|
279
|
+
}]
|
|
280
|
+
})
|
|
371
281
|
```
|
|
372
282
|
|
|
373
|
-
|
|
374
|
-
- Each role outputs all its questions at once (typically 3-4 questions)
|
|
375
|
-
- No need to split per role (within 10-question batch limit)
|
|
376
|
-
- Multiple roles processed sequentially (one role at a time for clarity)
|
|
283
|
+
### Phase 4.5: Final Clarification
|
|
377
284
|
|
|
378
|
-
**
|
|
285
|
+
**Purpose**: Ensure no important points missed before generating specification
|
|
379
286
|
|
|
380
|
-
**
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
287
|
+
**Steps**:
|
|
288
|
+
1. Ask initial check:
|
|
289
|
+
```javascript
|
|
290
|
+
AskUserQuestion({
|
|
291
|
+
questions: [{
|
|
292
|
+
question: "在生成最终规范之前,是否有前面未澄清的重点需要补充?",
|
|
293
|
+
header: "补充确认",
|
|
294
|
+
multiSelect: false,
|
|
295
|
+
options: [
|
|
296
|
+
{ label: "无需补充", description: "前面的讨论已经足够完整" },
|
|
297
|
+
{ label: "需要补充", description: "还有重要内容需要澄清" }
|
|
298
|
+
]
|
|
299
|
+
}]
|
|
300
|
+
})
|
|
301
|
+
```
|
|
302
|
+
2. If "需要补充":
|
|
303
|
+
- Analyze user's additional points
|
|
304
|
+
- Generate progressive questions (not role-bound, interconnected)
|
|
305
|
+
- AskUserQuestion (max 4 per round) → Store to `session.additional_decisions`
|
|
306
|
+
- Repeat until user confirms completion
|
|
307
|
+
3. If "无需补充": Proceed to Phase 5
|
|
308
|
+
|
|
309
|
+
**Progressive Pattern**: Questions interconnected, each round informs next, continue until resolved.
|
|
310
|
+
|
|
311
|
+
### Phase 5: Generate Specification
|
|
385
312
|
|
|
386
|
-
**
|
|
313
|
+
**Steps**:
|
|
314
|
+
1. Load all decisions: `intent_context` + `selected_roles` + `role_decisions` + `cross_role_decisions` + `additional_decisions`
|
|
315
|
+
2. Transform Q&A to declarative: Questions → Headers, Answers → CONFIRMED/SELECTED statements
|
|
316
|
+
3. Generate `guidance-specification.md`
|
|
317
|
+
4. Update `workflow-session.json` (metadata only)
|
|
318
|
+
5. Validate: No interrogative sentences, all decisions traceable
|
|
387
319
|
|
|
388
|
-
|
|
320
|
+
---
|
|
389
321
|
|
|
390
|
-
|
|
322
|
+
## Question Guidelines
|
|
391
323
|
|
|
392
|
-
|
|
393
|
-
```
|
|
394
|
-
1. Analyze Phase 3 answers for conflicts:
|
|
395
|
-
- Contradictory choices: product-manager "fast iteration" vs system-architect "complex Event Sourcing"
|
|
396
|
-
- Missing integration: ui-designer "Optimistic updates" but system-architect didn't address conflict handling
|
|
397
|
-
- Implicit dependencies: ui-designer "Live cursors" but no auth approach defined
|
|
324
|
+
### Core Principle
|
|
398
325
|
|
|
399
|
-
|
|
400
|
-
Generate clarification questions referencing SPECIFIC Phase 3 choices
|
|
326
|
+
**Target**: 开发者(理解技术但需要从用户需求出发)
|
|
401
327
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
- Display questions with context from Phase 3 answers
|
|
405
|
-
- Questions in Chinese (用中文提问)
|
|
406
|
-
- Wait for user input
|
|
407
|
-
- Parse answers using intelligent parsing
|
|
408
|
-
- Store answers to session.cross_role_decisions
|
|
328
|
+
**Question Structure**: `[业务场景/需求前提] + [技术关注点]`
|
|
329
|
+
**Option Structure**: `标签:[技术方案] + 说明:[业务影响] + [技术权衡]`
|
|
409
330
|
|
|
410
|
-
|
|
411
|
-
```
|
|
331
|
+
### Quality Rules
|
|
412
332
|
|
|
413
|
-
**
|
|
414
|
-
-
|
|
415
|
-
-
|
|
416
|
-
-
|
|
333
|
+
**MUST Include**:
|
|
334
|
+
- ✅ All questions in Chinese (用中文提问)
|
|
335
|
+
- ✅ 业务场景作为问题前提
|
|
336
|
+
- ✅ 技术选项的业务影响说明
|
|
337
|
+
- ✅ 量化指标和约束条件
|
|
417
338
|
|
|
418
|
-
**
|
|
339
|
+
**MUST Avoid**:
|
|
340
|
+
- ❌ 纯技术选型无业务上下文
|
|
341
|
+
- ❌ 过度抽象的用户体验问题
|
|
342
|
+
- ❌ 脱离话题的通用架构问题
|
|
419
343
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
344
|
+
### Phase-Specific Requirements
|
|
345
|
+
|
|
346
|
+
| Phase | Focus | Key Requirements |
|
|
347
|
+
|-------|-------|------------------|
|
|
348
|
+
| 1 | 意图理解 | Reference topic keywords, 用户场景、业务约束、优先级 |
|
|
349
|
+
| 2 | 角色推荐 | Intelligent analysis (NOT keyword mapping), explain relevance |
|
|
350
|
+
| 3 | 角色问题 | Reference Phase 1 keywords, concrete options with trade-offs |
|
|
351
|
+
| 4 | 冲突解决 | Reference SPECIFIC Phase 3 choices, explain impact on both roles |
|
|
427
352
|
|
|
428
|
-
|
|
353
|
+
---
|
|
429
354
|
|
|
430
|
-
|
|
355
|
+
## Output & Governance
|
|
431
356
|
|
|
432
|
-
|
|
433
|
-
1. Load all decisions: `intent_context` + `selected_roles` + `role_decisions` + `cross_role_decisions`
|
|
434
|
-
2. Transform Q&A pairs to declarative: Questions → Headers, Answers → CONFIRMED/SELECTED statements
|
|
435
|
-
3. Generate guidance-specification.md (template below) - **PRIMARY OUTPUT FILE**
|
|
436
|
-
4. Update workflow-session.json with **METADATA ONLY**:
|
|
437
|
-
- session_id (e.g., "WFS-topic-slug")
|
|
438
|
-
- selected_roles[] (array of role names, e.g., ["system-architect", "ui-designer", "product-manager"])
|
|
439
|
-
- topic (original user input string)
|
|
440
|
-
- timestamp (ISO-8601 format)
|
|
441
|
-
- phase_completed: "artifacts"
|
|
442
|
-
- count_parameter (number from --count flag)
|
|
443
|
-
5. Validate: No interrogative sentences in .md file, all decisions traceable, no content duplication in .json
|
|
444
|
-
|
|
445
|
-
**⚠️ CRITICAL OUTPUT SEPARATION**:
|
|
446
|
-
- **guidance-specification.md**: Full guidance content (decisions, rationale, integration points)
|
|
447
|
-
- **workflow-session.json**: Session metadata ONLY (no guidance content, no decisions, no Q&A pairs)
|
|
448
|
-
- **NO content duplication**: Guidance stays in .md, metadata stays in .json
|
|
449
|
-
|
|
450
|
-
## Output Document Template
|
|
357
|
+
### Output Template
|
|
451
358
|
|
|
452
359
|
**File**: `.workflow/active/WFS-{topic}/.brainstorming/guidance-specification.md`
|
|
453
360
|
|
|
@@ -478,9 +385,9 @@ FOR each selected role:
|
|
|
478
385
|
|
|
479
386
|
## Next Steps
|
|
480
387
|
**⚠️ Automatic Continuation** (when called from auto-parallel):
|
|
481
|
-
- auto-parallel
|
|
482
|
-
- Each selected role gets
|
|
483
|
-
- Agents read this guidance-specification.md for
|
|
388
|
+
- auto-parallel assigns agents for role-specific analysis
|
|
389
|
+
- Each selected role gets conceptual-planning-agent
|
|
390
|
+
- Agents read this guidance-specification.md for context
|
|
484
391
|
|
|
485
392
|
## Appendix: Decision Tracking
|
|
486
393
|
| Decision ID | Category | Question | Selected | Phase | Rationale |
|
|
@@ -490,115 +397,56 @@ FOR each selected role:
|
|
|
490
397
|
| D-003+ | [Role] | [Q] | [A] | 3 | [Why] |
|
|
491
398
|
```
|
|
492
399
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
### Core Principle: Developer-Facing Questions with User Context
|
|
496
|
-
|
|
497
|
-
**Target Audience**: 开发者(理解技术但需要从用户需求出发)
|
|
498
|
-
|
|
499
|
-
**Generation Philosophy**:
|
|
500
|
-
1. **Phase 1**: 用户场景、业务约束、优先级(建立上下文)
|
|
501
|
-
2. **Phase 2**: 基于话题分析的智能角色推荐(非关键词映射)
|
|
502
|
-
3. **Phase 3**: 业务需求 + 技术选型(需求驱动的技术决策)
|
|
503
|
-
4. **Phase 4**: 技术冲突的业务权衡(帮助开发者理解影响)
|
|
504
|
-
|
|
505
|
-
### Universal Quality Rules
|
|
400
|
+
### File Structure
|
|
506
401
|
|
|
507
|
-
**Question Structure** (all phases):
|
|
508
402
|
```
|
|
509
|
-
[
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
说明:[业务影响] + [技术权衡]
|
|
403
|
+
.workflow/active/WFS-[topic]/
|
|
404
|
+
├── workflow-session.json # Metadata ONLY
|
|
405
|
+
├── .process/
|
|
406
|
+
│ └── context-package.json # Phase 0 output
|
|
407
|
+
└── .brainstorming/
|
|
408
|
+
└── guidance-specification.md # Full guidance content
|
|
516
409
|
```
|
|
517
410
|
|
|
518
|
-
|
|
519
|
-
- ✅ All questions in Chinese (用中文提问)
|
|
520
|
-
- ✅ 业务场景作为问题前提
|
|
521
|
-
- ✅ 技术选项的业务影响说明
|
|
522
|
-
- ✅ 量化指标和约束条件
|
|
523
|
-
|
|
524
|
-
**MUST Avoid** (all phases):
|
|
525
|
-
- ❌ 纯技术选型无业务上下文
|
|
526
|
-
- ❌ 过度抽象的用户体验问题
|
|
527
|
-
- ❌ 脱离话题的通用架构问题
|
|
528
|
-
|
|
529
|
-
### Phase-Specific Requirements
|
|
530
|
-
|
|
531
|
-
**Phase 1 Requirements**:
|
|
532
|
-
- Questions MUST reference topic keywords (NOT generic "Project type?")
|
|
533
|
-
- Focus: 用户使用场景(谁用?怎么用?多频繁?)、业务约束(预算、时间、团队、合规)
|
|
534
|
-
- Success metrics: 性能指标、用户体验目标
|
|
535
|
-
- Priority ranking: MVP vs 长期规划
|
|
411
|
+
### Session Metadata
|
|
536
412
|
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
-
|
|
540
|
-
|
|
541
|
-
|
|
413
|
+
```json
|
|
414
|
+
{
|
|
415
|
+
"session_id": "WFS-{topic-slug}",
|
|
416
|
+
"type": "brainstorming",
|
|
417
|
+
"topic": "{original user input}",
|
|
418
|
+
"selected_roles": ["system-architect", "ui-designer", "product-manager"],
|
|
419
|
+
"phase_completed": "artifacts",
|
|
420
|
+
"timestamp": "2025-10-24T10:30:00Z",
|
|
421
|
+
"count_parameter": 3
|
|
422
|
+
}
|
|
423
|
+
```
|
|
542
424
|
|
|
543
|
-
|
|
544
|
-
- Questions MUST reference SPECIFIC Phase 3 choices in background context
|
|
545
|
-
- Options address the detected conflict directly
|
|
546
|
-
- Each option explains impact on both conflicting roles
|
|
547
|
-
- NEVER use static "Cross-Role Matrix" - ALWAYS analyze actual Phase 3 answers
|
|
548
|
-
- Focus: 技术冲突的业务权衡、帮助开发者理解不同选择的影响
|
|
425
|
+
**⚠️ Rule**: Session JSON stores ONLY metadata. All guidance content goes to guidance-specification.md.
|
|
549
426
|
|
|
550
|
-
|
|
427
|
+
### Validation Checklist
|
|
551
428
|
|
|
552
|
-
Generated guidance-specification.md MUST:
|
|
553
429
|
- ✅ No interrogative sentences (use CONFIRMED/SELECTED)
|
|
554
430
|
- ✅ Every decision traceable to user answer
|
|
555
431
|
- ✅ Cross-role conflicts resolved or documented
|
|
556
432
|
- ✅ Next steps concrete and specific
|
|
557
|
-
- ✅
|
|
433
|
+
- ✅ No content duplication between .json and .md
|
|
558
434
|
|
|
559
|
-
|
|
435
|
+
### Update Mechanism
|
|
560
436
|
|
|
561
437
|
```
|
|
562
438
|
IF guidance-specification.md EXISTS:
|
|
563
439
|
Prompt: "Regenerate completely / Update sections / Cancel"
|
|
564
440
|
ELSE:
|
|
565
|
-
Run full Phase
|
|
441
|
+
Run full Phase 0-5 flow
|
|
566
442
|
```
|
|
567
443
|
|
|
568
|
-
|
|
444
|
+
### Governance Rules
|
|
569
445
|
|
|
570
|
-
**Output Requirements**:
|
|
571
446
|
- All decisions MUST use CONFIRMED/SELECTED (NO "?" in decision sections)
|
|
572
447
|
- Every decision MUST trace to user answer
|
|
573
448
|
- Conflicts MUST be resolved (not marked "TBD")
|
|
574
449
|
- Next steps MUST be actionable
|
|
575
|
-
- Topic preserved as authoritative reference
|
|
450
|
+
- Topic preserved as authoritative reference
|
|
576
451
|
|
|
577
452
|
**CRITICAL**: Guidance is single source of truth for downstream phases. Ambiguity violates governance.
|
|
578
|
-
|
|
579
|
-
## Storage Validation
|
|
580
|
-
|
|
581
|
-
**workflow-session.json** (metadata only):
|
|
582
|
-
```json
|
|
583
|
-
{
|
|
584
|
-
"session_id": "WFS-{topic-slug}",
|
|
585
|
-
"type": "brainstorming",
|
|
586
|
-
"topic": "{original user input}",
|
|
587
|
-
"selected_roles": ["system-architect", "ui-designer", "product-manager"],
|
|
588
|
-
"phase_completed": "artifacts",
|
|
589
|
-
"timestamp": "2025-10-24T10:30:00Z",
|
|
590
|
-
"count_parameter": 3
|
|
591
|
-
}
|
|
592
|
-
```
|
|
593
|
-
|
|
594
|
-
**⚠️ Rule**: Session JSON stores ONLY metadata (session_id, selected_roles[], topic, timestamps). All guidance content goes to guidance-specification.md.
|
|
595
|
-
|
|
596
|
-
## File Structure
|
|
597
|
-
|
|
598
|
-
```
|
|
599
|
-
.workflow/active/WFS-[topic]/
|
|
600
|
-
├── workflow-session.json # Session metadata ONLY
|
|
601
|
-
└── .brainstorming/
|
|
602
|
-
└── guidance-specification.md # Full guidance content
|
|
603
|
-
```
|
|
604
|
-
|