super-dev 2.0.0__py3-none-any.whl

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 (61) hide show
  1. super_dev/__init__.py +11 -0
  2. super_dev/analyzer/__init__.py +34 -0
  3. super_dev/analyzer/analyzer.py +440 -0
  4. super_dev/analyzer/detectors.py +511 -0
  5. super_dev/analyzer/models.py +285 -0
  6. super_dev/cli.py +3257 -0
  7. super_dev/config/__init__.py +11 -0
  8. super_dev/config/frontend.py +557 -0
  9. super_dev/config/manager.py +281 -0
  10. super_dev/creators/__init__.py +26 -0
  11. super_dev/creators/creator.py +134 -0
  12. super_dev/creators/document_generator.py +2473 -0
  13. super_dev/creators/frontend_builder.py +371 -0
  14. super_dev/creators/implementation_builder.py +789 -0
  15. super_dev/creators/prompt_generator.py +289 -0
  16. super_dev/creators/requirement_parser.py +354 -0
  17. super_dev/creators/spec_builder.py +195 -0
  18. super_dev/deployers/__init__.py +20 -0
  19. super_dev/deployers/cicd.py +1269 -0
  20. super_dev/deployers/delivery.py +229 -0
  21. super_dev/deployers/migration.py +1032 -0
  22. super_dev/design/__init__.py +74 -0
  23. super_dev/design/aesthetics.py +530 -0
  24. super_dev/design/charts.py +396 -0
  25. super_dev/design/codegen.py +379 -0
  26. super_dev/design/engine.py +528 -0
  27. super_dev/design/generator.py +395 -0
  28. super_dev/design/landing.py +422 -0
  29. super_dev/design/tech_stack.py +524 -0
  30. super_dev/design/tokens.py +269 -0
  31. super_dev/design/ux_guide.py +391 -0
  32. super_dev/exceptions.py +119 -0
  33. super_dev/experts/__init__.py +19 -0
  34. super_dev/experts/service.py +161 -0
  35. super_dev/integrations/__init__.py +7 -0
  36. super_dev/integrations/manager.py +264 -0
  37. super_dev/orchestrator/__init__.py +12 -0
  38. super_dev/orchestrator/engine.py +958 -0
  39. super_dev/orchestrator/experts.py +423 -0
  40. super_dev/orchestrator/knowledge.py +352 -0
  41. super_dev/orchestrator/quality.py +356 -0
  42. super_dev/reviewers/__init__.py +17 -0
  43. super_dev/reviewers/code_review.py +471 -0
  44. super_dev/reviewers/quality_gate.py +964 -0
  45. super_dev/reviewers/redteam.py +881 -0
  46. super_dev/skills/__init__.py +7 -0
  47. super_dev/skills/manager.py +307 -0
  48. super_dev/specs/__init__.py +44 -0
  49. super_dev/specs/generator.py +264 -0
  50. super_dev/specs/manager.py +428 -0
  51. super_dev/specs/models.py +348 -0
  52. super_dev/specs/validator.py +415 -0
  53. super_dev/utils/__init__.py +11 -0
  54. super_dev/utils/logger.py +133 -0
  55. super_dev/web/api.py +1402 -0
  56. super_dev-2.0.0.dist-info/METADATA +252 -0
  57. super_dev-2.0.0.dist-info/RECORD +61 -0
  58. super_dev-2.0.0.dist-info/WHEEL +5 -0
  59. super_dev-2.0.0.dist-info/entry_points.txt +2 -0
  60. super_dev-2.0.0.dist-info/licenses/LICENSE +21 -0
  61. super_dev-2.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,195 @@
1
+ """
2
+ Spec 构建器 - 自动创建 Spec 规范
3
+
4
+ 开发:Excellent(11964948@qq.com)
5
+ 功能:从需求自动创建完整的 Spec 变更提案
6
+ 作用:参考 OpenSpec,自动分解任务、定义场景
7
+ 创建时间:2025-12-30
8
+ """
9
+
10
+ from pathlib import Path
11
+
12
+ from ..specs import ChangeManager, SpecGenerator, SpecManager
13
+ from ..specs.models import DeltaType, Task, TaskStatus
14
+ from .requirement_parser import RequirementParser
15
+
16
+
17
+ class SpecBuilder:
18
+ """Spec 构建器 - 自动创建 Spec 规范"""
19
+
20
+ def __init__(self, project_dir: Path, name: str, description: str):
21
+ """初始化 Spec 构建器"""
22
+ self.project_dir = Path(project_dir).resolve()
23
+ self.name = name
24
+ self.description = description
25
+
26
+ self.spec_generator = SpecGenerator(self.project_dir)
27
+ self.change_manager = ChangeManager(self.project_dir)
28
+ self.spec_manager = SpecManager(self.project_dir)
29
+ self.requirement_parser = RequirementParser()
30
+
31
+ def create_change(
32
+ self,
33
+ requirements: list,
34
+ tech_stack: dict,
35
+ scenario: str | None = None,
36
+ ) -> str:
37
+ """创建 Spec 变更提案"""
38
+ # 初始化 SDD 目录
39
+ self.spec_generator.init_sdd()
40
+
41
+ if scenario is None:
42
+ scenario = self.requirement_parser.detect_scenario(self.project_dir)
43
+
44
+ # 生成变更 ID (从项目名称转换)
45
+ change_id = self.name.replace('_', '-').lower()
46
+
47
+ # 1. 创建变更提案
48
+ self.spec_generator.create_change(
49
+ change_id=change_id,
50
+ title=self.name.replace('-', ' ').title(),
51
+ description=self.description,
52
+ motivation="用户需求驱动的功能开发",
53
+ impact=f"涉及 {len(requirements)} 个主要功能模块"
54
+ )
55
+
56
+ # 2. 添加需求到变更
57
+ for req in requirements:
58
+ self.spec_generator.add_requirement_to_change(
59
+ change_id=change_id,
60
+ spec_name=req['spec_name'],
61
+ requirement_name=req['req_name'],
62
+ description=req['description'],
63
+ scenarios=req.get('scenarios', []),
64
+ delta_type=DeltaType.ADDED
65
+ )
66
+
67
+ # 3. 自动生成任务
68
+ self._generate_tasks_for_change(change_id, tech_stack, scenario)
69
+
70
+ return change_id
71
+
72
+ def _generate_tasks_for_change(self, change_id: str, tech_stack: dict, scenario: str):
73
+ """为变更自动生成任务"""
74
+ change = self.change_manager.load_change(change_id)
75
+ if not change:
76
+ return
77
+
78
+ tasks = []
79
+ major = 1
80
+
81
+ # 根据技术栈生成任务
82
+ backend = tech_stack.get('backend', 'node')
83
+ frontend = tech_stack.get('frontend', 'react')
84
+
85
+ if scenario == "0-1":
86
+ tasks.extend(
87
+ [
88
+ Task(
89
+ id=f"{major}.1",
90
+ title="冻结需求与文档版本",
91
+ description="确认 PRD、架构与 UIUX 文档的 v1 版本,避免需求漂移。",
92
+ status=TaskStatus.PENDING,
93
+ spec_refs=["core::*"],
94
+ ),
95
+ Task(
96
+ id=f"{major}.2",
97
+ title="定义前后端接口草案",
98
+ description="在编码前输出关键页面与 API 的契约字段。",
99
+ status=TaskStatus.PENDING,
100
+ spec_refs=["core::*"],
101
+ ),
102
+ ]
103
+ )
104
+ major += 1
105
+ else:
106
+ tasks.extend(
107
+ [
108
+ Task(
109
+ id=f"{major}.1",
110
+ title="梳理增量变更影响范围",
111
+ description="明确兼容性、风险点和回滚策略。",
112
+ status=TaskStatus.PENDING,
113
+ spec_refs=["core::*"],
114
+ ),
115
+ Task(
116
+ id=f"{major}.2",
117
+ title="确定灰度与开关策略",
118
+ description="对增量功能设计灰度发布与快速回滚方案。",
119
+ status=TaskStatus.PENDING,
120
+ spec_refs=["core::*"],
121
+ ),
122
+ ]
123
+ )
124
+ major += 1
125
+
126
+ # 前端优先任务
127
+ if frontend != 'none':
128
+ minor = 0
129
+ for delta in change.spec_deltas:
130
+ minor += 1
131
+ tasks.append(
132
+ Task(
133
+ id=f"{major}.{minor}",
134
+ title=f"实现 {delta.spec_name} 前端模块",
135
+ description=f"先交付 {delta.spec_name} 的页面框架、核心组件与交互流程。",
136
+ status=TaskStatus.PENDING,
137
+ spec_refs=[f"{delta.spec_name}::*"],
138
+ )
139
+ )
140
+ major += 1
141
+
142
+ # 后端与数据任务
143
+ if backend != 'none':
144
+ minor = 0
145
+ for delta in change.spec_deltas:
146
+ minor += 1
147
+ tasks.append(
148
+ Task(
149
+ id=f"{major}.{minor}",
150
+ title=f"实现 {delta.spec_name} 后端能力",
151
+ description=f"完成 {delta.spec_name} 的 API、数据模型和权限控制。",
152
+ status=TaskStatus.PENDING,
153
+ spec_refs=[f"{delta.spec_name}::*"],
154
+ )
155
+ )
156
+ major += 1
157
+
158
+ # 联调与稳定性任务
159
+ tasks.append(
160
+ Task(
161
+ id=f"{major}.1",
162
+ title="完成端到端联调",
163
+ description="对关键链路进行联调,修复接口与交互偏差。",
164
+ status=TaskStatus.PENDING,
165
+ spec_refs=["core::*"],
166
+ )
167
+ )
168
+ tasks.append(
169
+ Task(
170
+ id=f"{major}.2",
171
+ title="执行质量门禁前检查",
172
+ description="完成安全、性能、可用性预检查并修复阻塞项。",
173
+ status=TaskStatus.PENDING,
174
+ spec_refs=["core::*"],
175
+ )
176
+ )
177
+ major += 1
178
+
179
+ # 测试任务
180
+ minor = 0
181
+ for delta in change.spec_deltas:
182
+ minor += 1
183
+ tasks.append(
184
+ Task(
185
+ id=f"{major}.{minor}",
186
+ title=f"测试 {delta.spec_name} 功能",
187
+ description=f"编写并执行 {delta.spec_name} 的单元、集成与回归测试。",
188
+ status=TaskStatus.PENDING,
189
+ spec_refs=[f"{delta.spec_name}::*"],
190
+ )
191
+ )
192
+
193
+ # 更新变更
194
+ change.tasks = tasks
195
+ self.change_manager.save_change(change)
@@ -0,0 +1,20 @@
1
+ """
2
+ 部署模块 - CI/CD 流水线生成和数据库迁移
3
+
4
+ 开发:Excellent(11964948@qq.com)
5
+ 功能:生成 CI/CD 配置、部署脚本和数据库迁移
6
+ 作用:自动化构建、测试、部署流程
7
+ 创建时间:2025-12-30
8
+ """
9
+
10
+ from .cicd import CICDGenerator
11
+ from .delivery import DeliveryPackager
12
+ from .migration import DatabaseType, MigrationGenerator, ORMType
13
+
14
+ __all__ = [
15
+ "CICDGenerator",
16
+ "DeliveryPackager",
17
+ "MigrationGenerator",
18
+ "DatabaseType",
19
+ "ORMType",
20
+ ]