@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
package/templates/root/AGENTS.md
CHANGED
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
**DO NOT skip this question. DO NOT auto-detect. ALWAYS ASK.**
|
|
18
18
|
**Wait for user answer before doing ANYTHING else.**
|
|
19
|
+
**DO NOT search/read/analyze in the same turn as asking — the reply MUST end after the question.**
|
|
20
|
+
Asking platform + simultaneously searching code in the same response is a VIOLATION.
|
|
19
21
|
|
|
20
22
|
---
|
|
21
23
|
|
|
@@ -38,15 +40,21 @@ Quest 与 QoderWork 没有斜杠命令,AI 必须按下表把用户自然语言
|
|
|
38
40
|
|
|
39
41
|
| 用户说什么 | 触发 skill |
|
|
40
42
|
|------------|-----------|
|
|
41
|
-
| "写个需求""生成PRD""做个原型" | prd-
|
|
43
|
+
| "写个需求""生成PRD""做个原型""新模块" | /wl-prd-full(完整档,正经需求)|
|
|
44
|
+
| "加个字段""加个导出按钮""改下文案""小改动" | /wl-prd-quick(快档,零星需求)|
|
|
45
|
+
| "评审PRD""检查需求文档""PRD质量怎么样""这个PRD合格吗" | /wl-prd-review(评审 PRD 质量)|
|
|
46
|
+
| "录入设计稿""Figma稿录入""把这个设计录入" | wl-design import (design-import) |
|
|
47
|
+
| "按设计出原型""按设计师规范出原型" | wl-design generate (prototype-generator) |
|
|
48
|
+
| "评审原型""设计稿看一下""检查交互稿" | wl-design review (design-review) |
|
|
42
49
|
| "查一下""代码在哪""搜保险""考勤API" | wl-search |
|
|
43
50
|
| "建任务""排优先级""任务做完了" | wl-task |
|
|
44
51
|
| "项目怎么样""进度""健康度" | wl-status |
|
|
45
52
|
| "写日报""周报""我干了啥" | wl-report |
|
|
46
|
-
| "
|
|
53
|
+
| "调研""竞品""对标""规划""路线图""接下来做什么""发现个机会""探讨需求" | wl-insight(探索站)|
|
|
47
54
|
| "生成规格""写spec" | spec-generator |
|
|
48
55
|
| "开始写代码""按规格实现" | spec-coder |
|
|
49
|
-
| "
|
|
56
|
+
| "测一下XX支不支持YY""验一下XX能不能""XX功能对不对""跑测试用例""回归测试" | /wl-test(测试工作流, 命令或带验证点的自然语言触发) |
|
|
57
|
+
| "写单元测试""补单测" | /wl-test unit(test-generator) |
|
|
50
58
|
| "评审PRD" | prd-review |
|
|
51
59
|
| "提交代码""commit""推上去" | wl-commit |
|
|
52
60
|
| "初始化""换开发者""环境检查" | wl-init |
|
|
@@ -57,7 +65,7 @@ Quest 与 QoderWork 没有斜杠命令,AI 必须按下表把用户自然语言
|
|
|
57
65
|
## CRITICAL RULE #3: User NEVER touches git
|
|
58
66
|
|
|
59
67
|
PMs on this team do not know git. ALL git operations are invisible:
|
|
60
|
-
- After any publish/save action (/wl-prd publish, /wl-task create/finish,
|
|
68
|
+
- After any publish/save action (/wl-prd-full publish, /wl-task create/finish,
|
|
61
69
|
/wl-report save), run: `python .qoder/scripts/team_sync.py push`
|
|
62
70
|
- To get teammates' latest work: `python .qoder/scripts/team_sync.py pull`
|
|
63
71
|
- If team_sync prints SYNC_CONFLICT, YOU (the AI) resolve the conflict
|
|
@@ -79,30 +87,40 @@ web/pc/管理端 -> fywl-ui
|
|
|
79
87
|
app/mobile/h5/移动端 -> Carmg-H5
|
|
80
88
|
```
|
|
81
89
|
|
|
82
|
-
##
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
|
95
|
-
|
|
96
|
-
| `/wl-
|
|
97
|
-
| `/wl-task` |
|
|
98
|
-
| `/wl-
|
|
99
|
-
| `/wl-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
90
|
+
## Commands: 7 Core (小而美) + Optional
|
|
91
|
+
|
|
92
|
+
> 认知面只暴露 7 个核心命令,每个是一道工序站,每个带模式参数。
|
|
93
|
+
> **一个命令当多个用**——记不住参数也没关系,自然语言一样路由。
|
|
94
|
+
> 模块契约(输入/输出/校验)见 `.qoder/contracts/`。
|
|
95
|
+
|
|
96
|
+
### 7 Core Commands(记住这 7 个就够)
|
|
97
|
+
|
|
98
|
+
| Command | 工序站 | 模式参数(第一个词路由) | Auto | 背后 skill |
|
|
99
|
+
|---------|--------|------------------------|------|-----------|
|
|
100
|
+
| `/wl-init` | 身份 | (无) | YES | wl-init |
|
|
101
|
+
| `/wl-prd-full` | 需求(完整档) | 支持 `参考:<报告>` 衔接 insight | YES | prd-generator |
|
|
102
|
+
| `/wl-prd-quick` | 需求(小改动) | (无) | YES | prd-generator |
|
|
103
|
+
| `/wl-prd-review` | 需求(评审) | (无) | YES | prd-review |
|
|
104
|
+
| `/wl-design` | 设计 | `import`/`generate`/`review` 或默认(import) | YES | design-import/prototype-generator/design-review |
|
|
105
|
+
| `/wl-task` | 任务 | `create`/`list`/`start`/`finish` | YES | wl-task |
|
|
106
|
+
| `/wl-code` | 编码 | (无,按 spec 实现) | NO | spec-coder |
|
|
107
|
+
| `/wl-test` | 测试 | `quick`/`browser`/`unit` 或默认(quick) | NO | wl-test / test-generator |
|
|
108
|
+
| `/wl-commit` | 提交 | (无) | NO | wl-commit |
|
|
109
|
+
|
|
110
|
+
### Optional Commands(长大了再开,非执行链路必经)
|
|
111
|
+
|
|
112
|
+
> 物理上归在 `.qoder/commands/optional/` 子目录(Qoder IDE 会按子目录归类显示),
|
|
113
|
+
> QoderWork 安装脚本已支持递归扫描,4 个照样能装到用户级。
|
|
114
|
+
|
|
115
|
+
| Command | 用途 | 何时用 |
|
|
116
|
+
|---------|------|--------|
|
|
117
|
+
| `/wl-search` | 代码索引搜索 | 全员工具,按需,非工序站 |
|
|
118
|
+
| `/wl-spec` | PRD→技术规格 | 需求复杂时(小团队可直接 `/wl-code`) |
|
|
119
|
+
| `/wl-status` | 项目健康度/路线图 | 需要 PMO/汇报时 |
|
|
120
|
+
| `/wl-report` | 日报周报 | 需要向上汇报时 |
|
|
121
|
+
| `/wl-insight` | 需求探索/外部调研/未来规划 | 需求方向没定、要做调研或规划时(位于 /wl-prd-full 之前)|
|
|
122
|
+
|
|
123
|
+
> **新人只需记 7 个核心命令**,能把活从需求干到提交。可选 5 个按场景启用。
|
|
106
124
|
|
|
107
125
|
## Knowledge Index
|
|
108
126
|
|
|
@@ -110,6 +128,15 @@ app/mobile/h5/移动端 -> Carmg-H5
|
|
|
110
128
|
Search: /wl-search <keyword> returns compact results (~200 bytes)
|
|
111
129
|
Weekly sync: python .qoder/scripts/git_sync.py
|
|
112
130
|
|
|
131
|
+
### MCP Servers (QoderWork / Qoder IDE)
|
|
132
|
+
注册在 `~/.qoderwork/mcp.json`,setup.py 一键配齐:
|
|
133
|
+
- `qoder-knowledge-graph` (stdio) — 本仓库知识图谱,13 个工具 (search_code/api, get_impact, context_360, fill_prototype, get_design_system...)。自动拉起。
|
|
134
|
+
- `playwright` (stdio) — 浏览器自动化,快且稳。自动拉起。
|
|
135
|
+
- `qoder-mysql` (stdio) — 只读查真实数据库结构/数据。自动拉起。
|
|
136
|
+
- `lanhu` (STDIO) — 蓝湖设计稿直读,设计师发链接 AI 提取颜色/尺寸/字体/切图。
|
|
137
|
+
**STDIO 模式:开 QoderWork 自动起、关自动停**(QoderWork 原生进程管理,无需手动 start)。
|
|
138
|
+
cookie 按角色隔离(UI 能改稿/PM 只读):wrapper 读当前 `.developer` → 该角色的 `workspace/members/{dev}/.secrets/lanhu.env`(gitignored)。换角色改 `.developer` + 配该角色 cookie → 重启 QoderWork。首次配置跑 `python .qoder/scripts/setup_lanhu.py`。
|
|
139
|
+
|
|
113
140
|
### Style Index (Prototype Reference)
|
|
114
141
|
UI patterns from Vue files: Tables(718), Forms(301), Detail(129), Dashboard(90)
|
|
115
142
|
Top components: Space(583), Modal(270), Select(172), Input(134)
|
|
@@ -129,13 +156,22 @@ Prototype templates:
|
|
|
129
156
|
Prototype output: workspace/members/{dev}/drafts/prototype-{feature}.html
|
|
130
157
|
Style priority: Code > PDF > Default
|
|
131
158
|
|
|
132
|
-
## Workflow
|
|
159
|
+
## Workflow: 契约网(非强制流水线)
|
|
133
160
|
|
|
134
|
-
|
|
161
|
+
模块间**不强制顺序**,靠标准契约文件对接(详见 `.qoder/contracts/`)。
|
|
162
|
+
完整链路**可以**这么走,但任何模块都能独立开机:
|
|
135
163
|
|
|
136
|
-
|
|
164
|
+
```
|
|
165
|
+
/wl-init → /wl-prd-full (ASK PLATFORM!) → /wl-design → /wl-task → /wl-code → /wl-test → /wl-commit
|
|
166
|
+
身份 需求 设计 任务 编码 测试 提交
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**独立性**:每个模块认文件不认流程。缺上游 → 手动喂个契约文件,或用自然语言 +
|
|
170
|
+
`context_pack.py` 让 AI 自检索补全(见 `.qoder/contracts/fallback.md`)。
|
|
171
|
+
|
|
172
|
+
## Qoder 全系列兼容(IDE / Quest / CLI / QoderWork)
|
|
137
173
|
|
|
138
|
-
This pipeline works on Windows + macOS, across the whole Qoder family
|
|
174
|
+
This pipeline works on Windows + macOS, across the **whole Qoder family**.
|
|
139
175
|
Each product loads rules from a different carrier — keep them in sync:
|
|
140
176
|
|
|
141
177
|
| 产品/模式 | 规则载体 | 命令载体 |
|
|
@@ -144,7 +180,26 @@ Each product loads rules from a different carrier — keep them in sync:
|
|
|
144
180
|
| Qoder Quest 模式 | .qoder/rules/ + .qoder/skills/ + .qoder/agents/ | 自然语言 -> skills |
|
|
145
181
|
| Qoder CLI (qodercli) | 本文件 AGENTS.md | 自然语言 -> scripts |
|
|
146
182
|
| QoderWork 桌面 Agent | 安装 .qoder/skills/ 下的技能 | 自然语言 -> skills |
|
|
147
|
-
|
|
183
|
+
|
|
184
|
+
> 本流水线聚焦 Qoder 全系列,4 种载体功能等价。知识图谱 13 个能力(影响分析/
|
|
185
|
+
> 覆盖矩阵/功能画像/业务流程/多跳遍历…)通过统一 CLI `python .qoder/scripts/kg.py`
|
|
186
|
+
> 全系列触达;QoderWork 环境也可直接调 MCP 工具。
|
|
187
|
+
|
|
188
|
+
## QoderWork Integration: Optional Enhancement Only (Progressive Enhancement)
|
|
189
|
+
|
|
190
|
+
> 🔒 **核心原则:本流水线绝不强依赖 QoderWork。**
|
|
191
|
+
> 团队里有人用 Qoder IDE、有人用 Qoder CLI、有人用 QoderWork —— 必须保证前两者开箱即用、功能完整。
|
|
192
|
+
> QoderWork 的「连接器 / 专家套件 / 定时任务」只能是**可选增强**:有就锦上添花,没有就静默回退,绝不报错、绝不阻塞。
|
|
193
|
+
|
|
194
|
+
具体落实:
|
|
195
|
+
- **本地数据是唯一事实源**:task.json / git log / drafts / index 永远是真相,连接器只是它的"投影/补充"
|
|
196
|
+
- **增强段统一标记 `🧩 QoderWork 增强(可选)`**:出现在 wl-report / wl-task / wl-status 三个 skill 里,每段都明确写"无连接器则自动回退 + 不影响纯 Qoder 使用"
|
|
197
|
+
- **探测而非假设**:只在运行环境真正提供了「日历/待办/邮件」工具可读时才启用增强;看不到就跳过,补一句 `[xx 未启用:非 QoderWork 或未授权连接器]`
|
|
198
|
+
- 已接入的增强点:
|
|
199
|
+
- `/wl-report` 读日历补"会议/评审"到日报(补 PM/设计岗无提交的空窗)
|
|
200
|
+
- `/wl-task` 把任务同步为待办 + finish 后标记完成(本地仍为准)
|
|
201
|
+
- `/wl-status` 用真实日历节点校准"按时交付""团队同步"两维健康度
|
|
202
|
+
- 未来加任何 QoderWork 增强都必须遵循同样原则:**先保证纯 Qoder 可跑,再叠加可选层。**
|
|
148
203
|
|
|
149
204
|
- THE rule file: `.qoder/rules/wl-pipeline.md` — 修改流程规则时同步更新它和本文件
|
|
150
205
|
- Quest 修改 agents/skills 后需重启 Quest 窗口/新建对话才能生效(Qoder 已知限制)
|
|
@@ -178,5 +233,5 @@ must PASS (>=80%). Metrics definition: data/docs/constitution/eva-metrics.md
|
|
|
178
233
|
|
|
179
234
|
| Level | Commands | Auto |
|
|
180
235
|
|-------|---------|------|
|
|
181
|
-
| SAFE | /wl-init, /wl-prd, /wl-
|
|
236
|
+
| SAFE | /wl-init, /wl-prd-full, /wl-prd-quick, /wl-prd-review, /wl-design, /wl-task, /wl-search, /wl-spec, /wl-status, /wl-insight, /wl-report | YES |
|
|
182
237
|
| DANGEROUS | /wl-code, /wl-test, /wl-commit | NO |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# QODER Pipeline Python 依赖
|
|
2
|
+
# 安装: pip install -r requirements.txt
|
|
3
|
+
# (或 npx @hupan56/wlkj install-env 自动装)
|
|
4
|
+
|
|
5
|
+
# ── 核心 (必装, 不装知识图谱/MCP/配置全崩) ──
|
|
6
|
+
duckdb>=1.1.0 # 知识图谱存储 (kg.duckdb / kg_db.duckdb)
|
|
7
|
+
pymysql>=1.1.0 # MySQL 只读 MCP + 数据层图谱构建
|
|
8
|
+
PyYAML>=6.0 # config.yaml / learn / preferences 解析
|
|
9
|
+
requests>=2.28.0 # API 调用 / 通知
|
|
10
|
+
|
|
11
|
+
# ── 索引构建 (管理员装, 构建代码图谱用) ──
|
|
12
|
+
tree-sitter>=0.21.0 # AST 解析 (扫代码建图谱)
|
|
13
|
+
tree-sitter-typescript>=0.21.0 # Vue/TS 语法解析
|
|
14
|
+
|
|
15
|
+
# ── 测试 (QA 装, 自动化测试用) ──
|
|
16
|
+
playwright>=1.40.0 # 浏览器自动化测试
|
|
17
|
+
# playwright install # 装完 pip 包还要跑这句装浏览器
|
|
18
|
+
|
|
19
|
+
# ── 可选增强 (按需装) ──
|
|
20
|
+
ddddocr>=1.4.7 # 验证码识别 (登录测试用)
|
|
21
|
+
cryptography>=37.0.0 # 飞书集成加密 (用飞书通知才装)
|