@hupan56/wlkj 2.5.0 → 2.7.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/bin/cli.js +289 -12
- package/package.json +1 -1
- package/templates/qoder/agents/insight-planning.md +67 -0
- package/templates/qoder/agents/insight-research.md +61 -0
- package/templates/qoder/agents/prd-quick.md +1 -0
- package/templates/qoder/agents/prd-reference.md +10 -2
- package/templates/qoder/commands/optional/wl-insight.md +275 -0
- package/templates/qoder/commands/{wl-report.md → optional/wl-report.md} +13 -5
- package/templates/qoder/commands/{wl-spec.md → optional/wl-spec.md} +1 -1
- package/templates/qoder/commands/{wl-status.md → optional/wl-status.md} +28 -2
- package/templates/qoder/commands/wl-code.md +10 -2
- package/templates/qoder/commands/wl-commit.md +1 -1
- package/templates/qoder/commands/wl-design-draw.md +78 -0
- package/templates/qoder/commands/wl-design-scan.md +108 -0
- package/templates/qoder/commands/wl-design-spec.md +154 -0
- package/templates/qoder/commands/wl-design.md +32 -0
- package/templates/qoder/commands/wl-init.md +24 -3
- package/templates/qoder/commands/wl-prd-full.md +226 -0
- package/templates/qoder/commands/wl-prd-quick.md +134 -0
- package/templates/qoder/commands/wl-prd-review.md +104 -0
- package/templates/qoder/commands/wl-prd.md +17 -288
- package/templates/qoder/commands/wl-search.md +66 -30
- package/templates/qoder/commands/wl-task.md +290 -59
- package/templates/qoder/commands/wl-test.md +92 -24
- package/templates/qoder/config.yaml +59 -15
- package/templates/qoder/hooks/inject-workflow-state.py +35 -9
- package/templates/qoder/hooks/session-start.py +144 -62
- package/templates/qoder/rules/wl-pipeline.md +216 -105
- package/templates/qoder/scripts/__pycache__/search_index.cpython-39.pyc +0 -0
- package/templates/qoder/scripts/archive_prd.py +377 -0
- package/templates/qoder/scripts/autotest.py +1715 -0
- package/templates/qoder/scripts/autotest_batch.py +224 -0
- package/templates/qoder/scripts/autotest_run.py +297 -0
- package/templates/qoder/scripts/benchmark.py +210 -209
- package/templates/qoder/scripts/build_style_index.py +444 -4
- package/templates/qoder/scripts/check_carriers.py +238 -0
- package/templates/qoder/scripts/check_mcp.py +298 -0
- package/templates/qoder/scripts/check_qoderwork_consistency.py +166 -0
- package/templates/qoder/scripts/common/developer.py +26 -19
- package/templates/qoder/scripts/common/events.py +46 -0
- package/templates/qoder/scripts/common/extract.py +419 -0
- package/templates/qoder/scripts/common/graph_traverse.py +533 -0
- package/templates/qoder/scripts/common/identity.py +6 -1
- package/templates/qoder/scripts/common/paths.py +89 -0
- package/templates/qoder/scripts/common/pip_install.py +144 -0
- package/templates/qoder/scripts/common/platform_guard.py +61 -0
- package/templates/qoder/scripts/common/search_engine.py +205 -205
- package/templates/qoder/scripts/common/terms.py +57 -0
- package/templates/qoder/scripts/common/ts_extract.py +536 -0
- package/templates/qoder/scripts/context_pack.py +73 -13
- package/templates/qoder/scripts/enrich_prompt.py +226 -0
- package/templates/qoder/scripts/eval_prd.py +318 -225
- package/templates/qoder/scripts/export.py +487 -487
- package/templates/qoder/scripts/extract_api_params.py +246 -0
- package/templates/qoder/scripts/extract_routes.py +54 -0
- package/templates/qoder/scripts/extract_routes_tree.py +78 -0
- package/templates/qoder/scripts/fill_prototype.py +707 -0
- package/templates/qoder/scripts/gen_design_doc.py +394 -0
- package/templates/qoder/scripts/git_sync.py +27 -15
- package/templates/qoder/scripts/init_doctor.py +306 -41
- package/templates/qoder/scripts/install_qoderwork.py +366 -9
- package/templates/qoder/scripts/kg.py +708 -0
- package/templates/qoder/scripts/kg_auto_login.py +196 -0
- package/templates/qoder/scripts/kg_build.py +612 -0
- package/templates/qoder/scripts/kg_build_db.py +327 -0
- package/templates/qoder/scripts/kg_duckdb.py +549 -0
- package/templates/qoder/scripts/kg_incremental.py +393 -0
- package/templates/qoder/scripts/kg_link_db.py +224 -0
- package/templates/qoder/scripts/kg_mcp_server.py +801 -0
- package/templates/qoder/scripts/kg_semantic.py +150 -0
- package/templates/qoder/scripts/kg_test_runner.py +241 -0
- package/templates/qoder/scripts/lanhu_stdio_wrapper.py +119 -0
- package/templates/qoder/scripts/learn.py +118 -39
- package/templates/qoder/scripts/learn_aggregate.py +201 -0
- package/templates/qoder/scripts/mcp_launcher.py +359 -0
- package/templates/qoder/scripts/mysql_mcp_server.py +396 -0
- package/templates/qoder/scripts/repo_root.py +106 -0
- package/templates/qoder/scripts/role.py +12 -0
- package/templates/qoder/scripts/run_weekly_update.bat +5 -0
- package/templates/qoder/scripts/run_weekly_update.sh +5 -0
- package/templates/qoder/scripts/search_index.py +307 -60
- package/templates/qoder/scripts/secure-ls.js +5640 -0
- package/templates/qoder/scripts/setup.py +706 -453
- package/templates/qoder/scripts/setup_lanhu.py +963 -0
- package/templates/qoder/scripts/status.py +250 -11
- package/templates/qoder/scripts/sync_carriers.py +259 -0
- package/templates/qoder/scripts/syncgate.py +5 -4
- package/templates/qoder/scripts/task.py +75 -0
- package/templates/qoder/scripts/team_sync.py +60 -4
- package/templates/qoder/scripts/workspace_init.py +1 -1
- package/templates/qoder/skills/design-import/SKILL.md +226 -0
- package/templates/qoder/skills/design-import/figma-workflow.md +81 -0
- package/templates/qoder/skills/design-review/SKILL.md +82 -25
- package/templates/qoder/skills/prd-generator/SKILL.md +185 -58
- package/templates/qoder/skills/prd-review/SKILL.md +18 -1
- package/templates/qoder/skills/prompt-enrich/SKILL.md +90 -0
- package/templates/qoder/skills/prototype-generator/SKILL.md +256 -141
- package/templates/qoder/skills/prototype-generator/SKILL.md.zcode-79180-2af4721f-f9a6-412c-88db-c0af680d211b.tmp +0 -0
- package/templates/qoder/skills/spec-coder/SKILL.md +18 -1
- package/templates/qoder/skills/spec-generator/SKILL.md +18 -1
- package/templates/qoder/skills/test-generator/SKILL.md +15 -2
- package/templates/qoder/skills/wl-code/SKILL.md +55 -36
- package/templates/qoder/skills/wl-commit/SKILL.md +89 -76
- package/templates/qoder/skills/wl-design/SKILL.md +55 -0
- package/templates/qoder/skills/wl-init/SKILL.md +76 -67
- package/templates/qoder/skills/wl-insight/SKILL.md +201 -81
- package/templates/qoder/skills/wl-prd-full/SKILL.md +69 -0
- package/templates/qoder/skills/wl-prd-quick/SKILL.md +49 -0
- package/templates/qoder/skills/wl-prd-review/SKILL.md +34 -0
- package/templates/qoder/skills/wl-report/SKILL.md +131 -107
- package/templates/qoder/skills/wl-search/SKILL.md +141 -75
- package/templates/qoder/skills/wl-spec/SKILL.md +49 -39
- package/templates/qoder/skills/wl-status/SKILL.md +83 -61
- package/templates/qoder/skills/wl-task/SKILL.md +132 -58
- package/templates/qoder/skills/wl-test/SKILL.md +406 -40
- package/templates/qoder/templates/prd-full-template.md +2 -0
- package/templates/qoder/templates/prd-quick-template.md +1 -0
- package/templates/qoder/templates/prototype-app.html +13 -8
- package/templates/qoder/templates/prototype-web.html +376 -93
- package/templates/root/AGENTS.md +89 -34
- package/templates/root/requirements.txt +21 -0
- package/templates/root//344/275/277/347/224/250/350/257/264/346/230/216.md +259 -259
- package/templates/root//346/226/260/346/211/213/346/214/207/345/215/227.md +186 -186
- package/templates/qoder/agents/prd-planning.md +0 -56
- package/templates/qoder/agents/prd-research.md +0 -33
- package/templates/qoder/commands/wl-insight.md +0 -51
- package/templates/qoder/skills/wl-prd/SKILL.md +0 -89
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wl-insight
|
|
3
|
+
description: "需求探索 + 外部调研 + 未来规划。流水线的'上游探索站',负责发现需求、对标竞品、做 Gap 分析和 roadmap。把'该做什么、为什么做'想清楚,结论交给 /wl-prd-full 落地。"
|
|
4
|
+
argument-hint: "[type: discover/research/plan] [主题]"
|
|
5
|
+
auto-approve: true
|
|
6
|
+
allowed-tools: [Read, Glob, Grep, Bash, Write, Edit, Agent, WebSearch]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /wl-insight - 需求探索(发现/调研/规划)
|
|
10
|
+
|
|
11
|
+
User input: $ARGUMENTS
|
|
12
|
+
|
|
13
|
+
> **流水线的上游探索站**:负责发现需求、对标外部、规划未来。
|
|
14
|
+
> 产出是**洞察报告**(不是 PRD),写完提示用户转 PRD。
|
|
15
|
+
> **第一性原理:看未来,不编造。** 探索有方法论(OST/JTBD/Gap),结论必须锚定现状(context_pack)。
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 🔧 环境自检(QoderWork 桌面端 vs Qoder IDE/CLI)
|
|
20
|
+
|
|
21
|
+
**先确定仓库根 R**(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
|
|
22
|
+
```bash
|
|
23
|
+
R=$(python ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
|
|
24
|
+
```
|
|
25
|
+
> 后续脚本统一用 `python "$R/.qoder/scripts/xxx.py"`。
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 🔒 语言锁(最高优先级)
|
|
30
|
+
|
|
31
|
+
**全部输出必须简体中文。** 含报告标题、章节名、字段名、结论、建议。
|
|
32
|
+
禁止任何英文句子(技术专有名词如 MCP/API/JTBD/OST 可保留英文缩写)。
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## STEP 0: 路由类型(看 $ARGUMENTS / 用户说了什么)
|
|
37
|
+
|
|
38
|
+
| 信号 | 类型 | 走哪段 |
|
|
39
|
+
|------|------|--------|
|
|
40
|
+
| "我发现个机会""现状痛点""能不能做 XX""用户老抱怨 XX" | **discover** | 需求发现(JTBD + OST 前两层) |
|
|
41
|
+
| "调研竞品""对标 XX""行业都怎么做""XX 怎么实现的" | **research** | 外部调研(多 agent + web 搜索) |
|
|
42
|
+
| "接下来做什么""下个版本""路线图""MVP 范围""规划" | **plan** | 未来规划(Gap + roadmap) |
|
|
43
|
+
| 模糊 / 拿不准 | **先问** | "你是想发现新需求、调研外部、还是规划未来?" |
|
|
44
|
+
|
|
45
|
+
### 无主题降级(用户什么都没说)
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
想做哪种探索?
|
|
49
|
+
1. 需求发现 —— 从现状痛点/竞品空白找新机会("我发现 XX 不好用"这类)
|
|
50
|
+
2. 外部调研 —— 对标竞品/行业趋势/技术方案("看看别人怎么做")
|
|
51
|
+
3. 未来规划 —— Gap 分析 + MVP 范围 + 路线图("下个版本做什么")
|
|
52
|
+
|
|
53
|
+
告诉我主题或想法,我来锚定现状做探索。
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 🔒 通用前置(所有类型必做)
|
|
59
|
+
|
|
60
|
+
1. **身份**:读 `.qoder/.developer`,缺失 → 停下提示 `/wl-init`
|
|
61
|
+
2. **现状锚点**:`python "$R/.qoder/scripts/context_pack.py" <关键词> --platform <web|app>`(必跑)
|
|
62
|
+
3. **历史参考**:扫 `data/docs/prd/` 看已做过的(避免重复造),扫历史 insight 报告看是否聊过
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 类型 1:discover(需求发现)—— JTBD + OST 前两层
|
|
67
|
+
|
|
68
|
+
**目标**:从一个模糊想法/痛点,挖出"用户真正要完成的 job"和对应的业务机会。
|
|
69
|
+
|
|
70
|
+
### 流程(目标 3-4 轮)
|
|
71
|
+
|
|
72
|
+
**第 1 步|锚定现状**
|
|
73
|
+
```bash
|
|
74
|
+
python "$R/.qoder/scripts/context_pack.py" <关键词> --platform <web|app>
|
|
75
|
+
```
|
|
76
|
+
读懂:现状怎么做的、涉及哪些页面/字段/接口、有什么已知限制。
|
|
77
|
+
|
|
78
|
+
**第 2 步|JTBD 还原(核心)**
|
|
79
|
+
把用户的"想法/痛点"用 JTBD 视角还原:
|
|
80
|
+
- 不要问"加什么功能",要问"用户在完成什么 job"
|
|
81
|
+
- 句式:`当 {情境},我想要 {做某事},以便 {达成某个目的}`
|
|
82
|
+
- 一个想法往往对应多个 job,都列出来
|
|
83
|
+
|
|
84
|
+
**第 3 步|OST 前两层(outcome + opportunity)**
|
|
85
|
+
- 第 1 层 Outcome:这些 job 服务于哪个**业务目标**?(北极星指标/季度 OKR/痛点指标)
|
|
86
|
+
- 第 2 层 Opportunity:每个 job 对应的**用户机会/痛点**(OST 的 opportunity 节点)
|
|
87
|
+
|
|
88
|
+
**第 4 步|与用户确认 + 出报告**
|
|
89
|
+
1. 把 outcome + opportunity 清单**一次性编号列清**
|
|
90
|
+
2. 问:"这个分析对吗?哪个 job 要深入?"
|
|
91
|
+
3. 确认后写报告,末尾提示出口衔接
|
|
92
|
+
|
|
93
|
+
### 输出结构
|
|
94
|
+
```markdown
|
|
95
|
+
# 需求发现 - {主题}({date})
|
|
96
|
+
|
|
97
|
+
## 现状锚定
|
|
98
|
+
- 当前实现:...(context_pack 命中:{文件清单})
|
|
99
|
+
- 已知限制:...
|
|
100
|
+
|
|
101
|
+
## 用户要完成的 Job(JTBD)
|
|
102
|
+
1. 当 {情境},我想要 {...},以便 {...}
|
|
103
|
+
2. ...
|
|
104
|
+
|
|
105
|
+
## 业务机会(OST:Outcome → Opportunity)
|
|
106
|
+
| 业务目标(Outcome) | 用户机会(Opportunity) | 现状满足度 | 证据来源 |
|
|
107
|
+
|------------------|----------------------|-----------|---------|
|
|
108
|
+
|
|
109
|
+
## 下一步
|
|
110
|
+
要把握哪个机会?说"转 PRD"我把它作为现状输入,进 /wl-prd-full 参考模式落地。
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 类型 2:research(外部调研)—— 多 agent + web 搜索
|
|
116
|
+
|
|
117
|
+
**目标**:对标竞品、行业趋势、技术方案,给 discover/plan 提供外部证据。
|
|
118
|
+
|
|
119
|
+
### 流程(目标 4-6 轮)
|
|
120
|
+
|
|
121
|
+
**第 1 步|锚定现状 + 确定调研视角**
|
|
122
|
+
- 跑 context_pack 知道现状
|
|
123
|
+
- 确定 2-4 个调研视角(按主题选):竞品对标 / 行业趋势 / 技术方案 / 用户场景
|
|
124
|
+
|
|
125
|
+
**第 2 步|并行派多 agent(核心)**
|
|
126
|
+
**同一条消息**派 2-4 个 Agent,每个一个视角,并发跑:
|
|
127
|
+
```
|
|
128
|
+
每个 Agent 的任务:
|
|
129
|
+
- 视角:{竞品对标/行业趋势/技术方案/用户场景}
|
|
130
|
+
- 用 WebSearch 搜 3-5 个权威源(官方文档/行业报告/技术博客)
|
|
131
|
+
- 写中间产物:workspace/members/{dev}/drafts/research-agent-{N}-{视角}.md
|
|
132
|
+
- 含:关键发现 / 对本项目的启发 / 风险 / 来源链接
|
|
133
|
+
```
|
|
134
|
+
> 派 Agent 时给**具体的视角描述**和**本项目的现状摘要**,让 agent 调研有针对性,不泛泛而谈。
|
|
135
|
+
|
|
136
|
+
**第 3 步|合并 + Gap 提取**
|
|
137
|
+
1. 读所有 `research-agent-*.md`
|
|
138
|
+
2. 合并成一份调研报告,按视角组织
|
|
139
|
+
3. 对每个发现标:**本项目现状 vs 外部做法 → Gap**
|
|
140
|
+
4. 列"机会信号"(外部做得好而我们没做的)
|
|
141
|
+
|
|
142
|
+
**第 4 步|清理中间产物 + 与用户确认 + 出报告**
|
|
143
|
+
```bash
|
|
144
|
+
# 合并后必须删中间产物(team_sync staging allowlist 也拒绝这类文件)
|
|
145
|
+
rm -f workspace/members/{dev}/drafts/research-agent-*.md
|
|
146
|
+
```
|
|
147
|
+
1. 把调研发现 + Gap + 机会信号**一次性编号列清**
|
|
148
|
+
2. 问:"这个调研对吗?哪个机会值得跟进?"
|
|
149
|
+
3. 确认后写报告,末尾提示出口衔接
|
|
150
|
+
|
|
151
|
+
### 输出结构
|
|
152
|
+
```markdown
|
|
153
|
+
# 外部调研 - {主题}({date})
|
|
154
|
+
|
|
155
|
+
## 调研视角
|
|
156
|
+
{本次派了哪几个视角的 agent}
|
|
157
|
+
|
|
158
|
+
## 现状锚定
|
|
159
|
+
{context_pack 摘要:我们当前怎么做}
|
|
160
|
+
|
|
161
|
+
## 调研发现(按视角)
|
|
162
|
+
### 视角 1:竞品对标
|
|
163
|
+
| 竞品 | 做法摘要 | 我们的 Gap | 来源 |
|
|
164
|
+
### 视角 2:行业趋势
|
|
165
|
+
...
|
|
166
|
+
|
|
167
|
+
## 机会信号
|
|
168
|
+
1. {外部做得好而我们没做的}
|
|
169
|
+
2. ...
|
|
170
|
+
|
|
171
|
+
## 下一步
|
|
172
|
+
要跟进哪个机会?说"转 PRD"我把它作为现状输入,进 /wl-prd-full 参考模式落地。
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 类型 3:plan(未来规划)—— Gap 分析 + OST 第 3 层
|
|
178
|
+
|
|
179
|
+
**目标**:把"未来想做成什么样"拆成 MVP + roadmap,输出方案候选。
|
|
180
|
+
|
|
181
|
+
### 流程(目标 4-5 轮)
|
|
182
|
+
|
|
183
|
+
**第 1 步|现状 vs 理想态(Gap 分析核心)**
|
|
184
|
+
1. 现状:context_pack 取真实代码/页面/字段
|
|
185
|
+
2. 理想态:用户描述 / 最近一份 research 报告的结论 / 行业基准
|
|
186
|
+
3. 建 Gap 表:
|
|
187
|
+
|
|
188
|
+
| 维度 | 现状 | 理想态 | Gap | 证据来源 |
|
|
189
|
+
|------|------|--------|-----|---------|
|
|
190
|
+
|
|
191
|
+
**第 2 步|Gap 排优先级**
|
|
192
|
+
按**业务价值 × 可行性**打分(不照搬 RICE,探索阶段粒度粗点就行):
|
|
193
|
+
- 业务价值:1=锦上添花 / 2=提效 / 3=解锁核心场景 / 4=不做会丢市场
|
|
194
|
+
- 可行性:看 context_pack 的现状,改动量大不大、有没有先例可复用
|
|
195
|
+
- 分 = 价值 × 可行性,取 Top N
|
|
196
|
+
|
|
197
|
+
**第 3 步|拆 MVP + roadmap(OST 第 3 层 Solution)**
|
|
198
|
+
- **MVP(本期)**:高价值高可行性的 Gap,**当前人力能做完的**
|
|
199
|
+
- **Roadmap(后续)**:按版本分组,标依赖关系(A 依赖 B 先做)
|
|
200
|
+
|
|
201
|
+
**第 4 步|与用户确认 + 出报告**
|
|
202
|
+
1. 把 Gap 表 + MVP + roadmap **一次性编号列清**
|
|
203
|
+
2. 问:"这个规划对吗?MVP 范围合理吗?"
|
|
204
|
+
3. 确认后写报告,末尾提示出口衔接
|
|
205
|
+
|
|
206
|
+
### 输出结构
|
|
207
|
+
```markdown
|
|
208
|
+
# 未来规划 - {主题}({date})
|
|
209
|
+
|
|
210
|
+
## 现状 vs 理想态(Gap 分析)
|
|
211
|
+
| 维度 | 现状 | 理想态 | Gap | 价值 | 可行性 | 分 |
|
|
212
|
+
|
|
213
|
+
## MVP(本期建议)
|
|
214
|
+
- {该做的 Gap} —— 理由:{价值×可行性}
|
|
215
|
+
- ...
|
|
216
|
+
|
|
217
|
+
## Roadmap(后续版本)
|
|
218
|
+
- V{N+1}:{...}(依赖:{...})
|
|
219
|
+
- V{N+2}:{...}
|
|
220
|
+
|
|
221
|
+
## 下一步
|
|
222
|
+
要落地哪个?说"转 PRD"我把它作为现状输入,进 /wl-prd-full 参考模式落地。
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 出口衔接:报告 → PRD(所有类型都要做)
|
|
228
|
+
|
|
229
|
+
报告写完,**永远**给这句提示:
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
要把握住哪个机会?说"转 PRD"我把它作为现状输入,进 /wl-prd-full 参考模式落地成可执行 PRD。
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
用户说"转 PRD"或指定 `{报告路径}#{机会编号}` → 触发:
|
|
236
|
+
```
|
|
237
|
+
/wl-prd-full 参考:{报告路径}#{机会编号}
|
|
238
|
+
```
|
|
239
|
+
- prd 以 **reference 模式**(mode: reference)承接
|
|
240
|
+
- prd 读取 insight 报告作为**现状背景输入**
|
|
241
|
+
- prd 走"轻反思 + 批量确认 + 3 道质量锁"落地成 PRD + 原型
|
|
242
|
+
- **insight 不直接生成 PRD**,探索和落地是两道工序
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 🛡️ 故障降级表(探索不因工具崩而卡住)
|
|
247
|
+
|
|
248
|
+
| 故障现象 | 检测信号 | 降级动作 | 绝不能 |
|
|
249
|
+
|---------|---------|---------|--------|
|
|
250
|
+
| **context_pack 零命中**(全新领域) | 返回"(无命中)" | 照常探索,现状段标"索引无先例,基于用户口述/历史 PRD";discover/plan 仍可做 | ❌ 编现状细节充数 |
|
|
251
|
+
| **web 搜索无结果/失败** | Agent 返回空 | 改用 context_pack + 历史 PRD + 用户口述做调研;标"外部调研暂不可用,基于内部信息" | ❌ 凭训练记忆编竞品数据 |
|
|
252
|
+
| **多 agent 派发失败** | Agent 工具不可用 | 改单线程串行调研(主 agent 自己跑 WebSearch),不阻塞 | ❌ 因此中断 research |
|
|
253
|
+
| **research-agent-*.md 清理失败** | rm 报错 | 记一句"中间产物未清理,下次 push 前 team_sync 会拦",继续 | ❌ 让脏文件进团队仓库 |
|
|
254
|
+
| **平台没指定** | 用户没说 web/app | **不强制问平台**(探索阶段平台不关键),context_pack 用 `--platform web` 兜底或两平台都跑 | ❌ 像 prd 那样卡在问平台 |
|
|
255
|
+
| **写入失败** | Write 报错 | 报告直接贴对话里,不崩 | ❌ 丢探索结论 |
|
|
256
|
+
| **用户对结论全盘否定** | 用户说"不对" | 回到第 1 步重新锚定现状,问"哪里理解偏了",最多 2 轮重做 | ❌ 无限循环 / ❌ 强行写报告 |
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## 鲁棒性清单(出报告前自检)
|
|
261
|
+
|
|
262
|
+
- [ ] 每个发现/机会/Gap 都附了**证据来源**?(context_pack 命中文件 / web 链接 / 用户口述)
|
|
263
|
+
- [ ] 没有凭空编的数据?(没有证据的标"【待验证】")
|
|
264
|
+
- [ ] 现状锚定跑了吗?(context_pack 必跑,纯凭空的探索是臆想)
|
|
265
|
+
- [ ] 跟用户确认了吗?(探索结论不能 AI 单方面拍板)
|
|
266
|
+
- [ ] research 的中间产物 `research-agent-*.md` 清理了吗?
|
|
267
|
+
- [ ] 报告末尾给了"转 PRD"提示吗?
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## How to Use Results
|
|
272
|
+
|
|
273
|
+
洞察报告可流转:**说"转 PRD" → /wl-prd-full 参考模式**(把机会作为现状输入落地)→ 后续走 task → code → test 流水线。
|
|
274
|
+
|
|
275
|
+
> insight 是探索站,prd 是落地站。两者分开,思路才不混。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wl-report
|
|
3
|
-
description: "Generate daily
|
|
3
|
+
description: "生成日报/周报,严格按当前开发者隔离。Generate daily/weekly work report, isolated by current developer. "
|
|
4
4
|
argument-hint: "[daily/weekly] or empty for auto-detect"
|
|
5
5
|
auto-approve: true
|
|
6
6
|
allowed-tools: [Read, Bash]
|
|
@@ -10,6 +10,14 @@ allowed-tools: [Read, Bash]
|
|
|
10
10
|
|
|
11
11
|
User input: $ARGUMENTS
|
|
12
12
|
|
|
13
|
+
## 🔧 环境自检(QoderWork 桌面端 vs Qoder IDE/CLI)
|
|
14
|
+
|
|
15
|
+
**先确定仓库根 R**(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
|
|
16
|
+
```bash
|
|
17
|
+
R=$(python ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
|
|
18
|
+
```
|
|
19
|
+
> 后续脚本统一用 `python "$R/.qoder/scripts/xxx.py"`;所有仓库内相对路径(workspace/、data/code/)都前置 `"$R/"`。
|
|
20
|
+
|
|
13
21
|
## CRITICAL: Data Isolation
|
|
14
22
|
|
|
15
23
|
This report ONLY shows data for the CURRENT developer.
|
|
@@ -36,7 +44,7 @@ This name is used to filter ALL data below.
|
|
|
36
44
|
### 2. My Tasks (workspace/tasks/)
|
|
37
45
|
```bash
|
|
38
46
|
# Find tasks where creator OR assignee = current developer
|
|
39
|
-
python
|
|
47
|
+
python "$R/.qoder/scripts/task.py" list --mine
|
|
40
48
|
```
|
|
41
49
|
Only show tasks where task.json has:
|
|
42
50
|
- `creator` == current developer, OR
|
|
@@ -51,7 +59,7 @@ Only files in THIS developer's journal directory.
|
|
|
51
59
|
### 4. My Git Commits
|
|
52
60
|
```bash
|
|
53
61
|
# For each project in data/code/:
|
|
54
|
-
cd data/code/{project}
|
|
62
|
+
cd "$R/data/code/{project}"
|
|
55
63
|
git log --author="{current_developer}" --since="{date}" --oneline
|
|
56
64
|
```
|
|
57
65
|
Filter by git author matching current developer name.
|
|
@@ -94,7 +102,7 @@ Output:
|
|
|
94
102
|
```
|
|
95
103
|
|
|
96
104
|
Save to: workspace/members/{developer}/journal/daily-{date}.md
|
|
97
|
-
Then auto-sync (user never touches git): `python
|
|
105
|
+
Then auto-sync (user never touches git): `python "$R/.qoder/scripts/team_sync.py" push`
|
|
98
106
|
|
|
99
107
|
---
|
|
100
108
|
|
|
@@ -143,7 +151,7 @@ Output:
|
|
|
143
151
|
```
|
|
144
152
|
|
|
145
153
|
Save to: workspace/members/{developer}/journal/weekly-{week}.md
|
|
146
|
-
Then auto-sync (user never touches git): `python
|
|
154
|
+
Then auto-sync (user never touches git): `python "$R/.qoder/scripts/team_sync.py" push`
|
|
147
155
|
|
|
148
156
|
---
|
|
149
157
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wl-spec
|
|
3
|
-
description: "Generate or review Spec from PRD + Design"
|
|
3
|
+
description: "从已确认 PRD 生成开发 Spec 文档(/wl-spec 命令入口)。Generate or review technical Spec from PRD + Design. "
|
|
4
4
|
argument-hint: "[review]"
|
|
5
5
|
auto-approve: true
|
|
6
6
|
allowed-tools: [Read, Glob, Grep, Bash, Write, Edit]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wl-status
|
|
3
|
-
description: "Project status
|
|
3
|
+
description: "项目状态/路线图/健康度。Project status: current sprint / roadmap / health score. "
|
|
4
4
|
argument-hint: "[scope: current/roadmap/health]"
|
|
5
5
|
auto-approve: true
|
|
6
6
|
allowed-tools: [Read, Glob, Grep, Bash]
|
|
@@ -10,10 +10,36 @@ allowed-tools: [Read, Glob, Grep, Bash]
|
|
|
10
10
|
|
|
11
11
|
User input: $ARGUMENTS (default: show current status)
|
|
12
12
|
|
|
13
|
+
## 🔧 环境自检(QoderWork 桌面端 vs Qoder IDE/CLI)
|
|
14
|
+
|
|
15
|
+
**先确定仓库根 R**(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
|
|
16
|
+
```bash
|
|
17
|
+
R=$(python ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
|
|
18
|
+
```
|
|
19
|
+
> 后续脚本统一用 `python "$R/.qoder/scripts/xxx.py"`;仓库内相对路径都前置 `"$R/"`。
|
|
20
|
+
|
|
13
21
|
## Scopes
|
|
14
22
|
- (no arg or "current") -> Current sprint status
|
|
15
23
|
- "roadmap" -> Now/Next/Later roadmap view
|
|
16
24
|
- "health" -> Health score assessment
|
|
25
|
+
- **功能名(如"资产管理") -> 功能完整画像**
|
|
26
|
+
|
|
27
|
+
## 功能画像 (Feature Overview)
|
|
28
|
+
|
|
29
|
+
用户说 `/wl-status 资产管理` 或 "XX功能怎么样"时:
|
|
30
|
+
|
|
31
|
+
**PREFERRED: MCP 工具:**
|
|
32
|
+
```
|
|
33
|
+
mcp__qoder-knowledge-graph__feature_overview(feature='资产管理')
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
返回:该功能的完整画像——后端端点 + 前端按钮 + 测试用例 + 关联页面 + PRD。
|
|
37
|
+
AI 据此判断"这个功能完整吗?还缺什么?"
|
|
38
|
+
|
|
39
|
+
**FALLBACK: 直接读索引:**
|
|
40
|
+
```bash
|
|
41
|
+
python -c "import json; d=json.load(open('$R/data/index/prd-features.json')); print(json.dumps(d,ensure_ascii=False,indent=2))"
|
|
42
|
+
```
|
|
17
43
|
|
|
18
44
|
## Current Status (DEFAULT)
|
|
19
45
|
Show:
|
|
@@ -43,7 +69,7 @@ Calculate from:
|
|
|
43
69
|
| EVA quality trend | 25% | tail .qoder/learning/eval-history.jsonl (avg score_pct, target >=80) |
|
|
44
70
|
| Index freshness | 20% | data/index/.index-meta.json last_sync (<=7 days) + verify checks |
|
|
45
71
|
| On-time delivery | 20% | task completion dates |
|
|
46
|
-
| Sync health | 15% | python
|
|
72
|
+
| Sync health | 15% | python "$R/.qoder/scripts/team_sync.py" status (ahead/behind/dirty) |
|
|
47
73
|
| Pipeline flow | 10% | PRD->Spec->Code conversion |
|
|
48
74
|
| Learning growth | 10% | learning/patterns/ entries |
|
|
49
75
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wl-code
|
|
3
|
-
description: "Implement code following a Spec strictly.
|
|
3
|
+
description: "按开发 Spec 严格实现代码(/wl-code 命令入口)。Implement code following a Spec strictly. "
|
|
4
4
|
argument-hint: "[REQ-ID or spec-filename]"
|
|
5
5
|
auto-approve: false
|
|
6
6
|
allowed-tools: [Read, Glob, Grep, Bash, Write, Edit]
|
|
@@ -10,6 +10,14 @@ allowed-tools: [Read, Glob, Grep, Bash, Write, Edit]
|
|
|
10
10
|
|
|
11
11
|
User input: $ARGUMENTS
|
|
12
12
|
|
|
13
|
+
## 🔧 环境自检(QoderWork 桌面端 vs Qoder IDE/CLI)
|
|
14
|
+
|
|
15
|
+
**先确定仓库根 R**(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
|
|
16
|
+
```bash
|
|
17
|
+
R=$(python ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
|
|
18
|
+
```
|
|
19
|
+
> 后续脚本统一用 `python "$R/.qoder/scripts/xxx.py"`。
|
|
20
|
+
|
|
13
21
|
## Step 1: Load Spec
|
|
14
22
|
|
|
15
23
|
If REQ-ID provided, search workspace/specs/ for matching spec.
|
|
@@ -18,7 +26,7 @@ Read the spec file to understand requirements.
|
|
|
18
26
|
|
|
19
27
|
## Step 2: Search Related Code
|
|
20
28
|
|
|
21
|
-
Run: python
|
|
29
|
+
Run: python "$R/.qoder/scripts/search_index.py" <keyword>
|
|
22
30
|
Find existing code that this implementation relates to.
|
|
23
31
|
Read relevant files for context.
|
|
24
32
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wl-commit
|
|
3
|
-
description: "Git commit
|
|
3
|
+
description: "代码提交 + push + 同步,带质量门禁。Git commit + push + sync with pre-commit quality gate. "
|
|
4
4
|
argument-hint: "[commit message]"
|
|
5
5
|
auto-approve: false
|
|
6
6
|
allowed-tools: [Read, Glob, Grep, Bash, Write, Edit]
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wl-design-draw
|
|
3
|
+
description: "画界面/原型。说你要什么,AI 画出来。新页面、改页面、参考竞品都行。"
|
|
4
|
+
argument-hint: "<你要画什么>"
|
|
5
|
+
auto-approve: true
|
|
6
|
+
allowed-tools: [Read, Glob, Grep, Bash, Write, Edit, mcp__qoder-knowledge-graph, mcp__lanhu]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /wl-design-draw - 画界面
|
|
10
|
+
|
|
11
|
+
User input: $ARGUMENTS
|
|
12
|
+
|
|
13
|
+
> 用户说"画什么",AI 画出来。就这么简单。
|
|
14
|
+
|
|
15
|
+
## 🔧 环境自检(QoderWork 桌面端 vs Qoder IDE/CLI)
|
|
16
|
+
|
|
17
|
+
**先确定仓库根 R**(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
|
|
18
|
+
```bash
|
|
19
|
+
R=$(python ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
|
|
20
|
+
```
|
|
21
|
+
> 后续脚本统一用 `python "$R/.qoder/scripts/xxx.py"`。
|
|
22
|
+
|
|
23
|
+
## Step 1: 平台(问了就停)
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
这个界面是针对哪个平台?
|
|
27
|
+
1. Web 管理端 (fywl-ui)
|
|
28
|
+
2. APP 移动端 (Carmg-H5)
|
|
29
|
+
3. 两端都要
|
|
30
|
+
请选择 (1/2/3):
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Step 2: 如果输入是大板块,先缩小到具体页面
|
|
34
|
+
|
|
35
|
+
"资产"有 38 个页面,不能直接画。调 `mcp__qoder-knowledge-graph__feature_overview(feature='资产')`,
|
|
36
|
+
列出页面问用户选哪个(**问了就停**)。
|
|
37
|
+
|
|
38
|
+
具体功能(如"营业外合同筛选")跳过这步。
|
|
39
|
+
|
|
40
|
+
## Step 3: 画
|
|
41
|
+
|
|
42
|
+
**先拿设计约束 + 真实数据(不许跳过,不许手写 HTML):**
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
mcp__qoder-knowledge-graph__get_design_system(platform='web') → 颜色/布局/按钮/组件
|
|
46
|
+
mcp__qoder-knowledge-graph__fill_prototype(keyword='营业外合同', platform='web') → 80% 草稿
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
FALLBACK(无 MCP 时):
|
|
50
|
+
```bash
|
|
51
|
+
python "$R/.qoder/scripts/gen_design_doc.py"
|
|
52
|
+
python "$R/.qoder/scripts/fill_prototype.py" 营业外合同 --platform web
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**拿到草稿后微调:**
|
|
56
|
+
- 按钮用真实文案(数据清单里的,不是编的"新增/编辑")
|
|
57
|
+
- 补交互细节(弹窗/Tab/折叠)
|
|
58
|
+
- 画完整状态(有数据 + 空状态 + 加载中)
|
|
59
|
+
- **颜色/宽度/间距不许改**(来自真实系统,AI 猜的一定不对)
|
|
60
|
+
|
|
61
|
+
## 铁律
|
|
62
|
+
|
|
63
|
+
1. **必须先调 get_design_system + fill_prototype**,不许跳过直接手写
|
|
64
|
+
2. **若设计师录入了蓝湖 spec,fill_prototype 会自动注入**——先确认 `data/style/{关键词}-design-spec.json` 是否存在。若有,fill_prototype 会把蓝湖的真实 `design_tokens`(如 `rgba(255,115,10,1)`)原样注入原型 `:root`,**这一步全自动,不用手动调蓝湖**。验证:看输出原型 `:root` 里有没有 `/* design-import spec tokens (优先级最高) */`
|
|
65
|
+
3. **颜色只用真源**(蓝湖 spec 注入值 > get_design_system 的 HSL,不是 #1890ff)
|
|
66
|
+
4. **按钮用真实文案**(entity-registry 的,不是编的)
|
|
67
|
+
5. **布局参数不猜**(蓝湖 spec 的 width 或 layout_fingerprint 的 160px)
|
|
68
|
+
6. **图标禁 emoji**(Web 用 Ant Design SVG,APP 用 Vant 字体图标)
|
|
69
|
+
7. **画完整状态**(不只画"有数据",还要画空状态/加载中/错误)
|
|
70
|
+
|
|
71
|
+
> 蓝湖与画图的关系:**蓝湖在录入环节(/wl-design-spec)发力**,读出的 CSS 值存进 spec.json;
|
|
72
|
+
> 画图时 fill_prototype 自动消费 spec.json,不需要 draw 再调蓝湖。蓝湖没起/没录入?不影响 draw,
|
|
73
|
+
> fill_prototype 降级用 layout_fingerprint + 代码风格,照样出原型(只是不如蓝湖精确)。
|
|
74
|
+
|
|
75
|
+
## 存储与 Figma
|
|
76
|
+
|
|
77
|
+
存到 `workspace/members/{developer}/drafts/prototype-{feature}.html`。
|
|
78
|
+
设计师可在 Figma 用 html.to.design 插件导入精修。
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wl-design-scan
|
|
3
|
+
description: "扫描/审视系统现状。看功能模块有哪些页面/按钮/流程/风格/测试覆盖。画原型前必做。"
|
|
4
|
+
argument-hint: "<功能模块名或关键词>"
|
|
5
|
+
auto-approve: true
|
|
6
|
+
allowed-tools: [Read, Glob, Grep, Bash, mcp__qoder-knowledge-graph]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /wl-design-scan - 审视系统现状
|
|
10
|
+
|
|
11
|
+
User input: $ARGUMENTS
|
|
12
|
+
|
|
13
|
+
> 画之前先看。设计师/PM 需要理解"系统现在长什么样"才能动手。
|
|
14
|
+
> 这是业界 Discover 阶段的工具——understand before you design。
|
|
15
|
+
|
|
16
|
+
## 🔧 环境自检(QoderWork 桌面端 vs Qoder IDE/CLI)
|
|
17
|
+
|
|
18
|
+
**先确定仓库根 R**(QoderWork 桌面端工作目录不是仓库根,相对路径会失效):
|
|
19
|
+
```bash
|
|
20
|
+
R=$(python ~/.qoderwork/repo_root.py 2>/dev/null) || R=.
|
|
21
|
+
```
|
|
22
|
+
> 后续脚本统一用 `python "$R/.qoder/scripts/xxx.py"`。
|
|
23
|
+
|
|
24
|
+
## 第一步:判断用户想看什么
|
|
25
|
+
|
|
26
|
+
| 用户说什么 | 调什么 | 返回什么 |
|
|
27
|
+
|-----------|--------|---------|
|
|
28
|
+
| "XX 有哪些页面""XX 功能模块" | `feature_overview(feature='XX')` | 页面列表 + 端点数 + 按钮数 + 测试数 |
|
|
29
|
+
| "XX 的操作流程""XX 业务流程" | `get_workflow(module='XX')` | 操作链(查询→新增→审批→...) |
|
|
30
|
+
| "XX 用什么风格""系统主色" | `get_design_system(platform='web')` | token + 布局指纹 + 组件表 + 真实按钮 |
|
|
31
|
+
| "XX 有没有测试""XX 测试覆盖" | `coverage_matrix()` | 17 个功能的测试覆盖红黄绿 |
|
|
32
|
+
| "改 XX 影响什么" | `get_impact(endpoint='XX')` | 影响页面数 + 操作数 + 可回归测试 |
|
|
33
|
+
| "XX 按钮 调什么接口" | `context_360(symbol='handleXX')` | 按钮关联的 API + Controller + 调用链 |
|
|
34
|
+
| 模糊 | 先问 | "你想看功能模块、操作流程、设计风格、测试覆盖、还是影响分析?" |
|
|
35
|
+
|
|
36
|
+
## 第二步:执行查询
|
|
37
|
+
|
|
38
|
+
**PREFERRED: MCP 工具**(QoderWork 有 MCP 时直接调)
|
|
39
|
+
```
|
|
40
|
+
mcp__qoder-knowledge-graph__feature_overview(feature='资产管理')
|
|
41
|
+
mcp__qoder-knowledge-graph__get_workflow(module='资产')
|
|
42
|
+
mcp__qoder-knowledge-graph__get_design_system(platform='web')
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**FALLBACK: Python 脚本**
|
|
46
|
+
```bash
|
|
47
|
+
python "$R/.qoder/scripts/search_index.py" 资产 --platform web
|
|
48
|
+
python "$R/.qoder/scripts/search_index.py" --style table --platform web
|
|
49
|
+
python "$R/.qoder/scripts/search_index.py" --field assetName
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 第三步:结构化输出
|
|
53
|
+
|
|
54
|
+
不是简单返回数据,而是**帮用户理解**:
|
|
55
|
+
|
|
56
|
+
### 功能模块视图(用户说"XX 有哪些页面"时)
|
|
57
|
+
```
|
|
58
|
+
📊 资产管理 (assets) 模块全景
|
|
59
|
+
页面: 38 个
|
|
60
|
+
API: 12 个端点
|
|
61
|
+
按钮: 108 个操作
|
|
62
|
+
测试: 3 个测试用例 (覆盖率偏低 ⚠️)
|
|
63
|
+
|
|
64
|
+
主要页面类型:
|
|
65
|
+
- table-page: 20 个 (异常申请/记录/分析...)
|
|
66
|
+
- form-page: 12 个 (新增/编辑/审批...)
|
|
67
|
+
- dashboard: 3 个 (资产看板)
|
|
68
|
+
- detail-page: 3 个
|
|
69
|
+
|
|
70
|
+
标杆页面 (最适合做参考的):
|
|
71
|
+
1. assets/abnormal/apply/index.vue (异常申请, 19个字段)
|
|
72
|
+
2. assets/abnormalManage/abnormalAnalysis/index.vue (分析看板)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 操作流程视图(用户说"XX 流程"时)
|
|
76
|
+
```
|
|
77
|
+
🔄 资产管理操作链 (7 步)
|
|
78
|
+
查询 → 新增 → 提交 → 审批 → 归档 → 导出 → 删除
|
|
79
|
+
|
|
80
|
+
⚠️ 步骤较多 (7步), 考虑优化:
|
|
81
|
+
- 第3步"提交"和第4步"审批"可能合并
|
|
82
|
+
- 第6步"导出"可放到工具栏, 不算独立步骤
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 设计风格视图(用户说"XX 风格"时)
|
|
86
|
+
```
|
|
87
|
+
🎨 fywl-ui 设计指纹
|
|
88
|
+
主色: hsl(214.58, 86.34%, 59.8%) (Vben 蓝)
|
|
89
|
+
侧边栏: 160px, 浅色, mixed-nav 布局
|
|
90
|
+
顶栏: 深色, 含 logo + 通知 + 头像
|
|
91
|
+
圆角: 0.25rem
|
|
92
|
+
字体: -apple-system, BlinkMacSystemFont, ...
|
|
93
|
+
|
|
94
|
+
真实按钮文案示例: 添加反馈资产, 导出Excel, 批量导入, ...
|
|
95
|
+
常用组件: Modal(273次), Input(135次), FormItem(95次), ...
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 使用示例
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
/wl-design-scan 资产管理 → 功能模块全景
|
|
102
|
+
/wl-design-scan 资产的操作流程 → 操作链分析
|
|
103
|
+
/wl-design-scan 系统设计风格 → 设计 token + 布局指纹
|
|
104
|
+
/wl-design-scan 哪些功能没测试 → 覆盖矩阵
|
|
105
|
+
/wl-design-scan 改 /asset 影响 → 影响分析
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
> scan 不产出文件,只返回结构化分析。帮设计师/PM"看清楚"再动手。
|