@boyingliu01/xp-gate 0.5.2 → 0.6.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/xp-gate.js +125 -0
- package/hooks/pre-push +11 -2
- package/lib/__tests__/gate-audit.test.ts +199 -0
- package/lib/gate-audit.ts +279 -0
- package/lib/ui-detector.ts +5 -5
- package/lib/ui-review.ts +22 -22
- package/package.json +1 -1
- package/plugins/claude-code/.claude-plugin/plugin.json +1 -1
- package/skills/sprint-flow/SKILL.md +108 -0
- package/skills/sprint-flow/references/phase-minus-0-5-auto-estimate.md +238 -0
- package/skills/sprint-flow/templates/auto-estimate-learning-log.md +136 -0
- package/skills/sprint-flow/templates/auto-estimate-output-template.md +130 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# AUTO-ESTIMATE 输出模板
|
|
2
|
+
|
|
3
|
+
本模板定义了 Phase -0.5 在终端向用户展示 AUTO-ESTIMATE 结果的标准格式。
|
|
4
|
+
|
|
5
|
+
## 输出格式
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
+-------------------------------------------------------------+
|
|
9
|
+
| AUTO-ESTIMATE 评估结果 |
|
|
10
|
+
+-------------------------------------------------------------+
|
|
11
|
+
| 需求:{task_description} |
|
|
12
|
+
| 类型:{change_type} |
|
|
13
|
+
| |
|
|
14
|
+
| [{impact_level}] Impact: {impact_label} |
|
|
15
|
+
| |
|
|
16
|
+
| 引用:{ref_count} 处 |
|
|
17
|
+
| 跨模块:{cross_module_count} 个 ({module_list}) |
|
|
18
|
+
| 循环依赖:{circular_dep_status} |
|
|
19
|
+
| Public API:{public_api_count} 个 |
|
|
20
|
+
| {additional_metrics} |
|
|
21
|
+
| |
|
|
22
|
+
| 建议流程:{recommended_flow} |
|
|
23
|
+
| |
|
|
24
|
+
| {risk_warning} |
|
|
25
|
+
| |
|
|
26
|
+
| [接受建议] [修改流程] [取消] |
|
|
27
|
+
+-------------------------------------------------------------+
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 字段说明
|
|
31
|
+
|
|
32
|
+
| 字段 | 说明 | 示例 |
|
|
33
|
+
|------|------|------|
|
|
34
|
+
| `{task_description}` | 用户输入的需求描述 | 删除平面维护界面 |
|
|
35
|
+
| `{change_type}` | 变更类型 | 删除/修改已存在代码 或 新增功能 |
|
|
36
|
+
| `{impact_level}` | 影响级别标识 | `[轻量]` / `[标准]` / `[复杂]` |
|
|
37
|
+
| `{impact_label}` | 影响级别标签 | 低 / 中 / 高 |
|
|
38
|
+
| `{ref_count}` | 引用出现次数 | 12 |
|
|
39
|
+
| `{cross_module_count}` | 跨模块数量 | 3 |
|
|
40
|
+
| `{module_list}` | 涉及模块名列表 | auth, user, admin |
|
|
41
|
+
| `{circular_dep_status}` | 循环依赖状态 | ✅ 无 / ⚠️ 存在 (A ↔ B) |
|
|
42
|
+
| `{public_api_count}` | Public API 暴露数 | 5 |
|
|
43
|
+
| `{additional_metrics}` | 附加指标(可选行) | 测试文件:4 个 / 影响范围:3 层调用 |
|
|
44
|
+
| `{recommended_flow}` | 建议流程描述 | 轻量流程 (Phase 2-3) |
|
|
45
|
+
| `{risk_warning}` | 风险警告(可选块) | ⚠️ 此操作涉及循环依赖… |
|
|
46
|
+
| 操作按钮 | 用户确认选项 | 接受建议 / 修改流程 / 取消 |
|
|
47
|
+
|
|
48
|
+
## 风险警告格式
|
|
49
|
+
|
|
50
|
+
当检测到高风险信号时(循环依赖、大范围 Public API、>10 处引用),追加风险警告块:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
| |
|
|
54
|
+
| ⚠️ {risk_description} |
|
|
55
|
+
| {mitigation_suggestion} |
|
|
56
|
+
| |
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
示例:
|
|
60
|
+
```
|
|
61
|
+
| |
|
|
62
|
+
| ⚠️ 此操作涉及循环依赖,建议保留层级结构作为过渡方案 |
|
|
63
|
+
| 避免直接删除导致编译失败 |
|
|
64
|
+
| |
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 修改流程子菜单
|
|
68
|
+
|
|
69
|
+
当用户选择「修改流程」时,展示以下选项:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
+-------------------------------------------------------------+
|
|
73
|
+
| 选择流程级别: |
|
|
74
|
+
| |
|
|
75
|
+
| [1] 轻量流程 — 直接编码 + 基础验证 (Phase 2-3) |
|
|
76
|
+
| [2] 标准流程 — brainstorming + BUILD + REVIEW (Phase 0-4) |
|
|
77
|
+
| [3] 完整流程 — 完整 Sprint Flow (Phase 0-8) |
|
|
78
|
+
| |
|
|
79
|
+
| 修改原因(必填):____________________ |
|
|
80
|
+
| |
|
|
81
|
+
| [确认] [取消] |
|
|
82
|
+
+-------------------------------------------------------------+
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 指标计算规则
|
|
86
|
+
|
|
87
|
+
### 对于删除/修改已存在代码
|
|
88
|
+
|
|
89
|
+
| 指标 | 计算方式 | 工具 |
|
|
90
|
+
|------|---------|------|
|
|
91
|
+
| 引用计数 | `grep -rn "{target_pattern}" --include="*.{ext}" | wc -l` | bash |
|
|
92
|
+
| 跨模块依赖 | 分析 import 语句中不同目录层级的引用 | bash + grep |
|
|
93
|
+
| 循环依赖 | 检查 import 图是否存在环(简单检查:A imports B, B imports A) | bash |
|
|
94
|
+
| Public API 暴露 | `grep -rn "^export "` 计数 | bash |
|
|
95
|
+
| 测试文件数 | `find . -name "*{target}*.test.*" | wc -l` | bash |
|
|
96
|
+
|
|
97
|
+
### 对于新增功能(brainstorming 后)
|
|
98
|
+
|
|
99
|
+
| 指标 | 计算方式 | 来源 |
|
|
100
|
+
|------|---------|------|
|
|
101
|
+
| 新增模块数 | 设计文档中列出的模块数 | Phase 0 输出 |
|
|
102
|
+
| 跨系统集成 | 涉及 API/DB/外部 数量 | Phase 0 输出 |
|
|
103
|
+
| 状态复杂度 | 状态机状态数 | Phase 0 输出 |
|
|
104
|
+
| REQ 数量 | user_stories 数量 | Phase 1 输出 |
|
|
105
|
+
|
|
106
|
+
## 路由决策表
|
|
107
|
+
|
|
108
|
+
| 评估结果 | 路由 | 说明 |
|
|
109
|
+
|---------|------|------|
|
|
110
|
+
| **轻量** (引用 ≤3, 同模块,无循环依赖) | Phase 2-3(跳过 brainstorming + delphi-review) | 直接编码 + 基础验证 |
|
|
111
|
+
| **标准** (引用 4-10, 跨 1-2 模块) | Phase 0-4(完整 THINK → BUILD → REVIEW) | 标准 sprint |
|
|
112
|
+
| **复杂** (引用 >10 或 循环依赖 或 跨 3+ 模块) | Phase 0-8(完整 sprint-flow) | 完整流程 + 风险警告 |
|
|
113
|
+
|
|
114
|
+
## 学习闭环
|
|
115
|
+
|
|
116
|
+
当用户选择「修改流程」时,记录 override 数据:
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"sprint_id": "sprint-YYYY-MM-DD-NN",
|
|
121
|
+
"task_description": "原始需求描述",
|
|
122
|
+
"estimated_level": "标准",
|
|
123
|
+
"user_override_level": "轻量",
|
|
124
|
+
"override_reason": "用户输入原因",
|
|
125
|
+
"actual_effort": "TBD",
|
|
126
|
+
"timestamp": "ISO 8601"
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
数据写入 `.sprint-state/auto-estimate-learning.json`(追加模式),用于阈值迭代优化。
|