super-dev 2.0.8__tar.gz → 2.0.9__tar.gz

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.
Files changed (80) hide show
  1. {super_dev-2.0.8/super_dev.egg-info → super_dev-2.0.9}/PKG-INFO +52 -8
  2. {super_dev-2.0.8 → super_dev-2.0.9}/README.md +51 -7
  3. {super_dev-2.0.8 → super_dev-2.0.9}/pyproject.toml +1 -1
  4. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/__init__.py +1 -1
  5. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/analyzer/analyzer.py +41 -14
  6. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/cli.py +1476 -51
  7. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/config/manager.py +2 -2
  8. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/creators/creator.py +5 -1
  9. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/creators/document_generator.py +72 -7
  10. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/creators/prompt_generator.py +44 -0
  11. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/creators/requirement_parser.py +65 -1
  12. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/deployers/delivery.py +1 -1
  13. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/integrations/manager.py +403 -40
  14. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/orchestrator/engine.py +3 -0
  15. super_dev-2.0.9/super_dev/proof_pack.py +278 -0
  16. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/release_readiness.py +36 -0
  17. super_dev-2.0.9/super_dev/review_state.py +139 -0
  18. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/skills/manager.py +74 -182
  19. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/web/api.py +518 -3
  20. {super_dev-2.0.8 → super_dev-2.0.9/super_dev.egg-info}/PKG-INFO +52 -8
  21. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev.egg-info/SOURCES.txt +1 -0
  22. super_dev-2.0.8/super_dev/review_state.py +0 -39
  23. {super_dev-2.0.8 → super_dev-2.0.9}/LICENSE +0 -0
  24. {super_dev-2.0.8 → super_dev-2.0.9}/setup.cfg +0 -0
  25. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/analyzer/__init__.py +0 -0
  26. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/analyzer/detectors.py +0 -0
  27. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/analyzer/models.py +0 -0
  28. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/catalogs.py +0 -0
  29. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/config/__init__.py +0 -0
  30. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/config/frontend.py +0 -0
  31. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/creators/__init__.py +0 -0
  32. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/creators/frontend_builder.py +0 -0
  33. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/creators/implementation_builder.py +0 -0
  34. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/creators/spec_builder.py +0 -0
  35. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/creators/task_executor.py +0 -0
  36. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/deployers/__init__.py +0 -0
  37. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/deployers/cicd.py +0 -0
  38. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/deployers/migration.py +0 -0
  39. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/deployers/rehearsal.py +0 -0
  40. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/deployers/rehearsal_runner.py +0 -0
  41. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/__init__.py +0 -0
  42. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/aesthetics.py +0 -0
  43. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/charts.py +0 -0
  44. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/codegen.py +0 -0
  45. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/engine.py +0 -0
  46. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/generator.py +0 -0
  47. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/landing.py +0 -0
  48. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/tech_stack.py +0 -0
  49. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/tokens.py +0 -0
  50. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/ui_intelligence.py +0 -0
  51. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/design/ux_guide.py +0 -0
  52. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/exceptions.py +0 -0
  53. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/experts/__init__.py +0 -0
  54. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/experts/service.py +0 -0
  55. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/integrations/__init__.py +0 -0
  56. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/orchestrator/__init__.py +0 -0
  57. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/orchestrator/contracts.py +0 -0
  58. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/orchestrator/experts.py +0 -0
  59. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/orchestrator/knowledge.py +0 -0
  60. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/orchestrator/quality.py +0 -0
  61. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/orchestrator/telemetry.py +0 -0
  62. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/policy/__init__.py +0 -0
  63. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/policy/manager.py +0 -0
  64. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/reviewers/__init__.py +0 -0
  65. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/reviewers/code_review.py +0 -0
  66. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/reviewers/quality_gate.py +0 -0
  67. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/reviewers/redteam.py +0 -0
  68. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/reviewers/ui_review.py +0 -0
  69. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/skills/__init__.py +0 -0
  70. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/specs/__init__.py +0 -0
  71. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/specs/generator.py +0 -0
  72. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/specs/manager.py +0 -0
  73. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/specs/models.py +0 -0
  74. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/specs/validator.py +0 -0
  75. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/utils/__init__.py +0 -0
  76. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev/utils/logger.py +0 -0
  77. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev.egg-info/dependency_links.txt +0 -0
  78. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev.egg-info/entry_points.txt +0 -0
  79. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev.egg-info/requires.txt +0 -0
  80. {super_dev-2.0.8 → super_dev-2.0.9}/super_dev.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: super-dev
3
- Version: 2.0.8
3
+ Version: 2.0.9
4
4
  Summary: Super Dev - Pipeline AI Coding Assistant
5
5
  Author-email: Excellent <11964948@qq.com>
6
6
  License-Expression: MIT
@@ -43,14 +43,14 @@ Dynamic: license-file
43
43
 
44
44
  <div align="center">
45
45
 
46
- # 超级开发战队
46
+ <img src="docs/assets/super-dev-logo.svg" alt="Super Dev - AI PIPELINE ORCHESTRATOR" width="600">
47
+
47
48
  ### 面向商业级交付的 AI 开发编排工具
48
49
 
49
50
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
50
51
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/downloads/)
51
52
  [![Type Checks](https://img.shields.io/badge/type%20checks-mypy-success)](https://mypy-lang.org/)
52
53
  [![Lint](https://img.shields.io/badge/lint-ruff-success)](https://docs.astral.sh/ruff/)
53
- [![CI](https://img.shields.io/badge/CI-GitHub%20Actions-success)](.github/workflows/ci.yml)
54
54
 
55
55
  [English](README_EN.md) | 简体中文
56
56
 
@@ -60,7 +60,7 @@ Dynamic: license-file
60
60
 
61
61
  ## 版本
62
62
 
63
- 当前版本:`2.0.8`
63
+ 当前版本:`2.0.9`
64
64
 
65
65
  ---
66
66
 
@@ -95,6 +95,7 @@ Dynamic: license-file
95
95
 
96
96
  - 同类产品研究 -> 需求增强 -> 文档 -> Spec -> 实现骨架 -> 红队 -> 质量门禁 -> 交付
97
97
  - 全流程可恢复执行(`run --resume`)
98
+ - UI 不满意时可发起正式改版回路(`review ui`)
98
99
  - 适配 0-1 新建与 1-N+1 增量场景
99
100
 
100
101
  ### 3. 策略治理(Policy DSL)
@@ -116,6 +117,7 @@ Dynamic: license-file
116
117
  - `pipeline-contract` 阶段契约证据
117
118
  - `resume-audit` 恢复执行审计
118
119
  - `delivery manifest/report/archive` 交付包
120
+ - `proof-pack` 交付证据汇总
119
121
 
120
122
  ### 6. 商业级门禁链路
121
123
 
@@ -161,6 +163,17 @@ super-dev update
161
163
  super-dev
162
164
  ```
163
165
 
166
+ 常用交付证据命令:
167
+
168
+ ```bash
169
+ super-dev integrate audit --auto --repair --force
170
+ super-dev integrate validate --auto
171
+ super-dev release proof-pack
172
+ super-dev release readiness
173
+ super-dev review architecture --status revision_requested --comment "技术方案需要重构"
174
+ super-dev review quality --status revision_requested --comment "质量门禁未通过,需要整改"
175
+ ```
176
+
164
177
  默认会进入宿主安装引导:
165
178
 
166
179
  - 顶部显示 `Super Dev` 安装入口
@@ -176,17 +189,31 @@ super-dev
176
189
 
177
190
  - slash 宿主:`/super-dev 你的需求`
178
191
  - 非 slash 宿主:`super-dev: 你的需求`
192
+ - 需要真人验收时,可执行:`super-dev integrate validate --target <host>`
193
+
194
+ 如果你希望先显式初始化项目契约,再开始接入宿主:
195
+
196
+ ```bash
197
+ super-dev bootstrap --name my-project --platform web --frontend next --backend node
198
+ ```
199
+
200
+ 这会显式生成:
201
+
202
+ - `.super-dev/WORKFLOW.md`
203
+ - `output/*-bootstrap.md`
204
+
205
+ 用来固定初始化规范、触发方式和阶段顺序。
179
206
 
180
207
  ### 3. 指定版本安装
181
208
 
182
209
  ```bash
183
- pip install super-dev==2.0.8
210
+ pip install super-dev==2.0.9
184
211
  ```
185
212
 
186
213
  ### 4. GitHub 指定标签安装
187
214
 
188
215
  ```bash
189
- pip install git+https://github.com/shangyankeji/super-dev.git@v2.0.8
216
+ pip install git+https://github.com/shangyankeji/super-dev.git@v2.0.9
190
217
  ```
191
218
 
192
219
  ### 5. 源码开发安装
@@ -259,6 +286,23 @@ uv tool install super-dev
259
286
  5. 宿主负责联网、推理、编码、运行与修改文件
260
287
  6. Super Dev 负责流程、文档、门禁、审计和交付标准
261
288
 
289
+ 补充说明:
290
+
291
+ - 新功能开发默认走完整流水线:`research -> 三文档 -> 用户确认 -> Spec / tasks -> 前端运行验证 -> 后端 / 测试 / 交付`
292
+ - 缺陷修复同样不会直接跳过文档;会走轻量补丁路径,先整理问题现象、复现条件、影响范围和回归风险,再更新补丁文档与验证结果
293
+ - 分析阶段默认排除 `.venv`、`site-packages`、`node_modules` 等非项目源码目录
294
+
295
+ ---
296
+
297
+ ## 关键文档
298
+
299
+ - [宿主使用指南](docs/HOST_USAGE_GUIDE.md)
300
+ - [宿主能力审计](docs/HOST_CAPABILITY_AUDIT.md)
301
+ - [宿主运行时验收矩阵](docs/HOST_RUNTIME_VALIDATION.md)
302
+ - [宿主接入面说明](docs/HOST_INSTALL_SURFACES.md)
303
+ - [工作流指南](docs/WORKFLOW_GUIDE.md)
304
+ - [产品审查](docs/PRODUCT_AUDIT.md)
305
+
262
306
  执行原则:
263
307
 
264
308
  - 宿主负责“写代码”
@@ -484,6 +528,7 @@ super-dev onboard --host iflow --force --yes
484
528
  补充说明:
485
529
  1. 当前按 slash 宿主适配。
486
530
  2. 如果 slash 未出现,先检查项目级命令文件是否已写入。
531
+ 3. 如果宿主返回 `Invalid API key provided`,先在 iFlow 会话内执行 `/auth`,或更新 `IFLOW_API_KEY` / `settings.json` 后重启宿主会话。
487
532
 
488
533
  #### 10. Kimi CLI
489
534
 
@@ -653,7 +698,7 @@ super-dev: 你的需求
653
698
 
654
699
  补充说明:
655
700
  1. Codex CLI 当前使用 `super-dev: 你的需求` 作为主触发方式。
656
- 2. 实际依赖 `.codex/AGENTS.md` 与官方用户级 Skill `~/.codex/skills/super-dev-core/SKILL.md`。
701
+ 2. 实际依赖 `AGENTS.md` 与官方用户级 Skill `~/.codex/skills/super-dev-core/SKILL.md`。
657
702
  3. 如果旧会话没加载新 Skill,重启 `codex` 再试。
658
703
 
659
704
  #### 18. Trae
@@ -678,4 +723,3 @@ super-dev: 你的需求
678
723
  2. 接入一定会写入项目级 `.trae/project_rules.md`、`.trae/rules.md` 和用户级 `~/.trae/user_rules.md`、`~/.trae/rules.md`;如果检测到兼容技能目录,也会增强安装 `~/.trae/skills/super-dev-core/SKILL.md`。
679
724
  3. 完成接入后建议重开 Trae 或至少新开一个 Agent Chat,使规则生效;如果兼容 Skill 已安装,也会一起生效。
680
725
  4. 随后按 `output/*` 与 `.super-dev/changes/*/tasks.md` 推进开发。
681
-
@@ -2,14 +2,14 @@
2
2
 
3
3
  <div align="center">
4
4
 
5
- # 超级开发战队
5
+ <img src="docs/assets/super-dev-logo.svg" alt="Super Dev - AI PIPELINE ORCHESTRATOR" width="600">
6
+
6
7
  ### 面向商业级交付的 AI 开发编排工具
7
8
 
8
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
9
10
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/downloads/)
10
11
  [![Type Checks](https://img.shields.io/badge/type%20checks-mypy-success)](https://mypy-lang.org/)
11
12
  [![Lint](https://img.shields.io/badge/lint-ruff-success)](https://docs.astral.sh/ruff/)
12
- [![CI](https://img.shields.io/badge/CI-GitHub%20Actions-success)](.github/workflows/ci.yml)
13
13
 
14
14
  [English](README_EN.md) | 简体中文
15
15
 
@@ -19,7 +19,7 @@
19
19
 
20
20
  ## 版本
21
21
 
22
- 当前版本:`2.0.8`
22
+ 当前版本:`2.0.9`
23
23
 
24
24
  ---
25
25
 
@@ -54,6 +54,7 @@
54
54
 
55
55
  - 同类产品研究 -> 需求增强 -> 文档 -> Spec -> 实现骨架 -> 红队 -> 质量门禁 -> 交付
56
56
  - 全流程可恢复执行(`run --resume`)
57
+ - UI 不满意时可发起正式改版回路(`review ui`)
57
58
  - 适配 0-1 新建与 1-N+1 增量场景
58
59
 
59
60
  ### 3. 策略治理(Policy DSL)
@@ -75,6 +76,7 @@
75
76
  - `pipeline-contract` 阶段契约证据
76
77
  - `resume-audit` 恢复执行审计
77
78
  - `delivery manifest/report/archive` 交付包
79
+ - `proof-pack` 交付证据汇总
78
80
 
79
81
  ### 6. 商业级门禁链路
80
82
 
@@ -120,6 +122,17 @@ super-dev update
120
122
  super-dev
121
123
  ```
122
124
 
125
+ 常用交付证据命令:
126
+
127
+ ```bash
128
+ super-dev integrate audit --auto --repair --force
129
+ super-dev integrate validate --auto
130
+ super-dev release proof-pack
131
+ super-dev release readiness
132
+ super-dev review architecture --status revision_requested --comment "技术方案需要重构"
133
+ super-dev review quality --status revision_requested --comment "质量门禁未通过,需要整改"
134
+ ```
135
+
123
136
  默认会进入宿主安装引导:
124
137
 
125
138
  - 顶部显示 `Super Dev` 安装入口
@@ -135,17 +148,31 @@ super-dev
135
148
 
136
149
  - slash 宿主:`/super-dev 你的需求`
137
150
  - 非 slash 宿主:`super-dev: 你的需求`
151
+ - 需要真人验收时,可执行:`super-dev integrate validate --target <host>`
152
+
153
+ 如果你希望先显式初始化项目契约,再开始接入宿主:
154
+
155
+ ```bash
156
+ super-dev bootstrap --name my-project --platform web --frontend next --backend node
157
+ ```
158
+
159
+ 这会显式生成:
160
+
161
+ - `.super-dev/WORKFLOW.md`
162
+ - `output/*-bootstrap.md`
163
+
164
+ 用来固定初始化规范、触发方式和阶段顺序。
138
165
 
139
166
  ### 3. 指定版本安装
140
167
 
141
168
  ```bash
142
- pip install super-dev==2.0.8
169
+ pip install super-dev==2.0.9
143
170
  ```
144
171
 
145
172
  ### 4. GitHub 指定标签安装
146
173
 
147
174
  ```bash
148
- pip install git+https://github.com/shangyankeji/super-dev.git@v2.0.8
175
+ pip install git+https://github.com/shangyankeji/super-dev.git@v2.0.9
149
176
  ```
150
177
 
151
178
  ### 5. 源码开发安装
@@ -218,6 +245,23 @@ uv tool install super-dev
218
245
  5. 宿主负责联网、推理、编码、运行与修改文件
219
246
  6. Super Dev 负责流程、文档、门禁、审计和交付标准
220
247
 
248
+ 补充说明:
249
+
250
+ - 新功能开发默认走完整流水线:`research -> 三文档 -> 用户确认 -> Spec / tasks -> 前端运行验证 -> 后端 / 测试 / 交付`
251
+ - 缺陷修复同样不会直接跳过文档;会走轻量补丁路径,先整理问题现象、复现条件、影响范围和回归风险,再更新补丁文档与验证结果
252
+ - 分析阶段默认排除 `.venv`、`site-packages`、`node_modules` 等非项目源码目录
253
+
254
+ ---
255
+
256
+ ## 关键文档
257
+
258
+ - [宿主使用指南](docs/HOST_USAGE_GUIDE.md)
259
+ - [宿主能力审计](docs/HOST_CAPABILITY_AUDIT.md)
260
+ - [宿主运行时验收矩阵](docs/HOST_RUNTIME_VALIDATION.md)
261
+ - [宿主接入面说明](docs/HOST_INSTALL_SURFACES.md)
262
+ - [工作流指南](docs/WORKFLOW_GUIDE.md)
263
+ - [产品审查](docs/PRODUCT_AUDIT.md)
264
+
221
265
  执行原则:
222
266
 
223
267
  - 宿主负责“写代码”
@@ -443,6 +487,7 @@ super-dev onboard --host iflow --force --yes
443
487
  补充说明:
444
488
  1. 当前按 slash 宿主适配。
445
489
  2. 如果 slash 未出现,先检查项目级命令文件是否已写入。
490
+ 3. 如果宿主返回 `Invalid API key provided`,先在 iFlow 会话内执行 `/auth`,或更新 `IFLOW_API_KEY` / `settings.json` 后重启宿主会话。
446
491
 
447
492
  #### 10. Kimi CLI
448
493
 
@@ -612,7 +657,7 @@ super-dev: 你的需求
612
657
 
613
658
  补充说明:
614
659
  1. Codex CLI 当前使用 `super-dev: 你的需求` 作为主触发方式。
615
- 2. 实际依赖 `.codex/AGENTS.md` 与官方用户级 Skill `~/.codex/skills/super-dev-core/SKILL.md`。
660
+ 2. 实际依赖 `AGENTS.md` 与官方用户级 Skill `~/.codex/skills/super-dev-core/SKILL.md`。
616
661
  3. 如果旧会话没加载新 Skill,重启 `codex` 再试。
617
662
 
618
663
  #### 18. Trae
@@ -637,4 +682,3 @@ super-dev: 你的需求
637
682
  2. 接入一定会写入项目级 `.trae/project_rules.md`、`.trae/rules.md` 和用户级 `~/.trae/user_rules.md`、`~/.trae/rules.md`;如果检测到兼容技能目录,也会增强安装 `~/.trae/skills/super-dev-core/SKILL.md`。
638
683
  3. 完成接入后建议重开 Trae 或至少新开一个 Agent Chat,使规则生效;如果兼容 Skill 已安装,也会一起生效。
639
684
  4. 随后按 `output/*` 与 `.super-dev/changes/*/tasks.md` 推进开发。
640
-
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "super-dev"
7
- version = "2.0.8"
7
+ version = "2.0.9"
8
8
  description = "Super Dev - Pipeline AI Coding Assistant"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -6,6 +6,6 @@
6
6
  最后修改:2025-12-30
7
7
  """
8
8
 
9
- __version__ = "2.0.8"
9
+ __version__ = "2.0.9"
10
10
  __author__ = "Excellent"
11
11
  __description__ = "超级开发战队 - 一个宿主内 AI 开发治理与编排工具"
@@ -42,6 +42,26 @@ class ProjectAnalyzer:
42
42
  raise FileNotFoundError(f"项目不存在: {self.project_path}")
43
43
 
44
44
  self._report: ArchitectureReport | None = None
45
+ self._ignored_dir_names = {
46
+ "node_modules",
47
+ "__pycache__",
48
+ ".git",
49
+ "venv",
50
+ ".venv",
51
+ "env",
52
+ ".env",
53
+ "dist",
54
+ "build",
55
+ "target",
56
+ "bin",
57
+ "obj",
58
+ ".next",
59
+ ".nuxt",
60
+ "coverage",
61
+ ".pytest_cache",
62
+ "site-packages",
63
+ "dist-packages",
64
+ }
45
65
 
46
66
  def analyze(self) -> ArchitectureReport:
47
67
  """
@@ -101,12 +121,7 @@ class ProjectAnalyzer:
101
121
  tree: dict[str, dict | None] = {}
102
122
  try:
103
123
  for item in sorted(path.iterdir(), key=lambda x: (not x.is_dir(), x.name)):
104
- # 跳过隐藏文件和目录
105
- if item.name.startswith("."):
106
- continue
107
-
108
- # 跳过常见忽略目录
109
- if item.name in ["node_modules", "__pycache__", ".git", "venv", "dist", "build"]:
124
+ if self._should_ignore_path(item):
110
125
  continue
111
126
 
112
127
  if item.is_dir():
@@ -162,16 +177,9 @@ class ProjectAnalyzer:
162
177
  ".svelte": "Svelte",
163
178
  }
164
179
 
165
- # 忽略的目录
166
- ignore_dirs = {
167
- "node_modules", "__pycache__", ".git", "venv", "env",
168
- ".venv", "dist", "build", "target", "bin", "obj",
169
- ".next", ".nuxt", "coverage", ".pytest_cache",
170
- }
171
-
172
180
  for root, dirs, files in os.walk(self.project_path):
173
181
  # 过滤忽略的目录
174
- dirs[:] = [d for d in dirs if d not in ignore_dirs]
182
+ dirs[:] = [d for d in dirs if not self._should_ignore_dir_name(d)]
175
183
 
176
184
  for file in files:
177
185
  suffix = Path(file).suffix
@@ -180,6 +188,8 @@ class ProjectAnalyzer:
180
188
  continue
181
189
 
182
190
  file_path = Path(root) / file
191
+ if self._should_ignore_path(file_path):
192
+ continue
183
193
  try:
184
194
  with open(file_path, encoding="utf-8", errors="ignore") as f:
185
195
  lines = len(f.readlines())
@@ -238,10 +248,27 @@ class ProjectAnalyzer:
238
248
  patterns: list[DesignPattern] = []
239
249
 
240
250
  for py_file in self.project_path.rglob("*.py"):
251
+ if self._should_ignore_path(py_file):
252
+ continue
241
253
  self._check_file_for_patterns(py_file, patterns, "python")
242
254
 
243
255
  return patterns
244
256
 
257
+ def _should_ignore_dir_name(self, name: str) -> bool:
258
+ return name in self._ignored_dir_names
259
+
260
+ def _should_ignore_path(self, path: Path) -> bool:
261
+ try:
262
+ relative = path.resolve().relative_to(self.project_path)
263
+ parts = relative.parts
264
+ except Exception:
265
+ parts = path.parts
266
+
267
+ return any(
268
+ part.startswith(".") or part in self._ignored_dir_names
269
+ for part in parts
270
+ )
271
+
245
272
  def _check_file_for_patterns(
246
273
  self, file_path: Path, patterns: list[DesignPattern], language: str
247
274
  ) -> None: