specops 0.2.5 → 0.3.2
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/.opencode/agent/specops-codebase-mapper.md +764 -0
- package/.opencode/agent/specops-debugger.md +1246 -0
- package/.opencode/agent/specops-executor.md +475 -0
- package/.opencode/agent/specops-integration-checker.md +443 -0
- package/.opencode/agent/specops-phase-researcher.md +547 -0
- package/.opencode/agent/specops-plan-checker.md +690 -0
- package/.opencode/agent/specops-planner.md +581 -0
- package/.opencode/agent/specops-project-researcher.md +354 -0
- package/.opencode/agent/specops-research-synthesizer.md +242 -0
- package/.opencode/agent/specops-roadmapper.md +642 -0
- package/.opencode/agent/specops-work-verifier.md +573 -0
- package/.opencode/references/checkpoints.md +776 -0
- package/.opencode/references/continuation-format.md +249 -0
- package/.opencode/references/decimal-phase-calculation.md +65 -0
- package/.opencode/references/git-integration.md +248 -0
- package/.opencode/references/git-planning-commit.md +38 -0
- package/.opencode/references/model-profile-resolution.md +34 -0
- package/.opencode/references/model-profiles.md +92 -0
- package/.opencode/references/phase-argument-parsing.md +61 -0
- package/.opencode/references/planning-config.md +196 -0
- package/.opencode/references/questioning.md +145 -0
- package/.opencode/references/tdd.md +263 -0
- package/.opencode/references/ui-brand.md +160 -0
- package/.opencode/references/verification-patterns.md +612 -0
- package/.opencode/templates/DEBUG.md +164 -0
- package/.opencode/templates/UAT.md +180 -0
- package/.opencode/templates/VALIDATION.md +76 -0
- package/.opencode/templates/codebase/architecture.md +255 -0
- package/.opencode/templates/codebase/concerns.md +310 -0
- package/.opencode/templates/codebase/conventions.md +307 -0
- package/.opencode/templates/codebase/integrations.md +280 -0
- package/.opencode/templates/codebase/stack.md +186 -0
- package/.opencode/templates/codebase/structure.md +285 -0
- package/.opencode/templates/codebase/testing.md +480 -0
- package/.opencode/templates/context.md +221 -0
- package/.opencode/templates/continue-here.md +78 -0
- package/.opencode/templates/debug-subagent-prompt.md +91 -0
- package/.opencode/templates/discovery.md +147 -0
- package/.opencode/templates/milestone-archive.md +123 -0
- package/.opencode/templates/milestone.md +115 -0
- package/.opencode/templates/phase-prompt.md +333 -0
- package/.opencode/templates/planner-subagent-prompt.md +117 -0
- package/.opencode/templates/project.md +184 -0
- package/.opencode/templates/requirements.md +130 -0
- package/.opencode/templates/research-project/ARCHITECTURE.md +204 -0
- package/.opencode/templates/research-project/FEATURES.md +147 -0
- package/.opencode/templates/research-project/PITFALLS.md +200 -0
- package/.opencode/templates/research-project/STACK.md +120 -0
- package/.opencode/templates/research-project/SUMMARY.md +170 -0
- package/.opencode/templates/research.md +278 -0
- package/.opencode/templates/retrospective.md +54 -0
- package/.opencode/templates/roadmap.md +202 -0
- package/.opencode/templates/state.md +176 -0
- package/.opencode/templates/summary-complex.md +59 -0
- package/.opencode/templates/summary-minimal.md +41 -0
- package/.opencode/templates/summary-standard.md +48 -0
- package/.opencode/templates/summary.md +248 -0
- package/.opencode/templates/user-setup.md +311 -0
- package/.opencode/templates/verification-report.md +322 -0
- package/.opencode/workflows/add-phase.md +111 -0
- package/.opencode/workflows/add-tests.md +350 -0
- package/.opencode/workflows/add-todo.md +157 -0
- package/.opencode/workflows/audit-milestone.md +297 -0
- package/.opencode/workflows/check-todos.md +176 -0
- package/.opencode/workflows/cleanup.md +152 -0
- package/.opencode/workflows/complete-milestone.md +763 -0
- package/.opencode/workflows/diagnose-issues.md +219 -0
- package/.opencode/workflows/discovery-phase.md +288 -0
- package/.opencode/workflows/discuss-phase.md +542 -0
- package/.opencode/workflows/execute-phase.md +449 -0
- package/.opencode/workflows/execute-plan.md +447 -0
- package/.opencode/workflows/health.md +156 -0
- package/.opencode/workflows/help.md +489 -0
- package/.opencode/workflows/insert-phase.md +129 -0
- package/.opencode/workflows/list-phase-assumptions.md +178 -0
- package/.opencode/workflows/map-codebase.md +315 -0
- package/.opencode/workflows/new-milestone.md +382 -0
- package/.opencode/workflows/new-project.md +1116 -0
- package/.opencode/workflows/pause-work.md +122 -0
- package/.opencode/workflows/plan-milestone-gaps.md +274 -0
- package/.opencode/workflows/plan-phase.md +569 -0
- package/.opencode/workflows/progress.md +381 -0
- package/.opencode/workflows/quick.md +453 -0
- package/.opencode/workflows/remove-phase.md +154 -0
- package/.opencode/workflows/research-phase.md +73 -0
- package/.opencode/workflows/resume-project.md +304 -0
- package/.opencode/workflows/set-profile.md +80 -0
- package/.opencode/workflows/settings.md +213 -0
- package/.opencode/workflows/transition.md +544 -0
- package/.opencode/workflows/update.md +219 -0
- package/.opencode/workflows/verify-phase.md +242 -0
- package/.opencode/workflows/verify-work.md +569 -0
- package/commands/specops/add-phase.md +43 -0
- package/commands/specops/add-tests.md +41 -0
- package/commands/specops/add-todo.md +47 -0
- package/commands/specops/audit-milestone.md +36 -0
- package/commands/specops/check-todos.md +45 -0
- package/commands/specops/cleanup.md +18 -0
- package/commands/specops/complete-milestone.md +136 -0
- package/commands/specops/debug.md +167 -0
- package/commands/specops/discuss-phase.md +83 -0
- package/commands/specops/execute-phase.md +41 -0
- package/commands/specops/health.md +22 -0
- package/commands/specops/help.md +22 -0
- package/commands/specops/insert-phase.md +32 -0
- package/commands/specops/join-discord.md +18 -0
- package/commands/specops/list-phase-assumptions.md +46 -0
- package/commands/specops/map-codebase.md +71 -0
- package/commands/specops/new-milestone.md +44 -0
- package/commands/specops/new-project.md +42 -0
- package/commands/specops/pause-work.md +38 -0
- package/commands/specops/plan-milestone-gaps.md +34 -0
- package/commands/specops/plan-phase.md +45 -0
- package/commands/specops/progress.md +24 -0
- package/commands/specops/quick.md +41 -0
- package/commands/specops/reapply-patches.md +111 -0
- package/commands/specops/remove-phase.md +31 -0
- package/commands/specops/research-phase.md +189 -0
- package/commands/specops/resume-work.md +40 -0
- package/commands/specops/set-profile.md +34 -0
- package/commands/specops/settings.md +36 -0
- package/commands/specops/update.md +37 -0
- package/commands/specops/verify-work.md +38 -0
- package/dist/__integration__/fixtures/generator.d.ts +4 -0
- package/dist/__integration__/fixtures/generator.js +1 -0
- package/dist/__integration__/mocks/server.d.ts +7 -0
- package/dist/__integration__/mocks/server.js +1 -0
- package/dist/__integration__/setup.d.ts +6 -0
- package/dist/__integration__/setup.js +1 -0
- package/dist/acceptance/lazyDetector.js +1 -1
- package/dist/acceptance/reporter.js +1 -1
- package/dist/acceptance/runner.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/context/index.js +1 -1
- package/dist/context/promptTemplate.js +1 -1
- package/dist/context/techContextLoader.js +1 -1
- package/dist/engine.d.ts +1 -0
- package/dist/engine.js +1 -1
- package/dist/evolution/distiller.js +1 -1
- package/dist/evolution/index.js +1 -1
- package/dist/evolution/memoryGraph.js +1 -1
- package/dist/evolution/selector.js +1 -1
- package/dist/evolution/signals.js +1 -1
- package/dist/evolution/solidify.js +1 -1
- package/dist/evolution/store.js +1 -1
- package/dist/evolution/types.js +1 -1
- package/dist/init.d.ts +4 -3
- package/dist/init.js +1 -1
- package/dist/machines/agentMachine.js +1 -1
- package/dist/machines/supervisorMachine.js +1 -1
- package/dist/persistence/schema.js +1 -1
- package/dist/persistence/stateFile.js +1 -1
- package/dist/plugin-engine.js +1 -1
- package/dist/plugin.js +1 -1
- package/dist/requirement-analysis/analyzers/repository-parser.d.ts +121 -0
- package/dist/requirement-analysis/analyzers/repository-parser.js +1 -0
- package/dist/requirement-analysis/generators/prd-generator.d.ts +90 -0
- package/dist/requirement-analysis/generators/prd-generator.js +1 -0
- package/dist/requirement-analysis/integrations/v1-integration.d.ts +73 -0
- package/dist/requirement-analysis/integrations/v1-integration.js +1 -0
- package/dist/requirement-analysis/tools/analyze-requirements.js +1 -0
- package/dist/requirement-analysis/types/analysis-result.d.ts +326 -0
- package/dist/requirement-analysis/types/analysis-result.js +1 -0
- package/dist/requirement-analysis/types/feature-mapping.d.ts +294 -0
- package/dist/requirement-analysis/types/feature-mapping.js +1 -0
- package/dist/requirement-analysis/types/index.d.ts +171 -0
- package/dist/requirement-analysis/types/index.js +1 -0
- package/dist/requirement-analysis/types/tech-stack.d.ts +213 -0
- package/dist/requirement-analysis/types/tech-stack.js +1 -0
- package/dist/requirement-analysis/utils/error-handler.d.ts +112 -0
- package/dist/requirement-analysis/utils/error-handler.js +1 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.js +1 -1
- package/dist/utils/id.js +1 -1
- package/package.json +4 -2
- package/skills/competitor-search/SKILL.md +169 -0
- package/skills/demand-analysis/SKILL.md +307 -0
- package/skills/feature-search/SKILL.md +182 -0
- package/skills/requirement-analysis/README.md +464 -0
- package/skills/requirement-analysis/SKILL.md +224 -0
- package/skills/requirement-analysis/templates/feature-mapping-template.json +210 -0
- package/skills/requirement-analysis/templates/prd-template.md +104 -0
- package/skills/tech-selection/SKILL.md +198 -0
- package/dist/__e2e__/01-state-engine.e2e.test.d.ts +0 -10
- package/dist/__e2e__/01-state-engine.e2e.test.js +0 -1
- package/dist/acceptance/lazyDetector.test.d.ts +0 -1
- package/dist/acceptance/lazyDetector.test.js +0 -1
- package/dist/acceptance/reporter.test.d.ts +0 -1
- package/dist/acceptance/reporter.test.js +0 -1
- package/dist/acceptance/runner.test.d.ts +0 -1
- package/dist/acceptance/runner.test.js +0 -1
- package/dist/context/promptTemplate.test.d.ts +0 -1
- package/dist/context/promptTemplate.test.js +0 -1
- package/dist/context/techContextLoader.test.d.ts +0 -1
- package/dist/context/techContextLoader.test.js +0 -1
- package/dist/machines/agentMachine.test.d.ts +0 -1
- package/dist/machines/agentMachine.test.js +0 -1
- package/dist/machines/supervisorMachine.test.d.ts +0 -1
- package/dist/machines/supervisorMachine.test.js +0 -1
- package/dist/persistence/stateFile.test.d.ts +0 -1
- package/dist/persistence/stateFile.test.js +0 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# 继续点模板
|
|
2
|
+
|
|
3
|
+
复制并填写此结构到 `.planning/phases/XX-name/.continue-here.md`:
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
---
|
|
7
|
+
phase: XX-name
|
|
8
|
+
task: 3
|
|
9
|
+
total_tasks: 7
|
|
10
|
+
status: in_progress
|
|
11
|
+
last_updated: 2025-01-15T14:30:00Z
|
|
12
|
+
---
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
<current_state>
|
|
17
|
+
[我们现在确切在哪里?当前的即时上下文是什么?]
|
|
18
|
+
</current_state>
|
|
19
|
+
|
|
20
|
+
<completed_work>
|
|
21
|
+
[本次会话完成了什么,要具体]
|
|
22
|
+
|
|
23
|
+
- 任务 1: [名称] - 完成
|
|
24
|
+
- 任务 2: [名称] - 完成
|
|
25
|
+
- 任务 3: [名称] - 进行中, [已完成的部分]
|
|
26
|
+
</completed_work>
|
|
27
|
+
|
|
28
|
+
<remaining_work>
|
|
29
|
+
[本阶段还剩什么]
|
|
30
|
+
|
|
31
|
+
- 任务 3: [名称] - [还需要做什么]
|
|
32
|
+
- 任务 4: [名称] - 未开始
|
|
33
|
+
- 任务 5: [名称] - 未开始
|
|
34
|
+
</remaining_work>
|
|
35
|
+
|
|
36
|
+
<decisions_made>
|
|
37
|
+
[关键决策及原因,这样下次会话不用重新讨论]
|
|
38
|
+
|
|
39
|
+
- 决定使用 [X] 因为 [原因]
|
|
40
|
+
- 选择 [方案] 而非 [替代方案] 因为 [原因]
|
|
41
|
+
</decisions_made>
|
|
42
|
+
|
|
43
|
+
<blockers>
|
|
44
|
+
[卡住的或等待外部因素的事项]
|
|
45
|
+
|
|
46
|
+
- [阻塞 1]: [状态/变通方案]
|
|
47
|
+
</blockers>
|
|
48
|
+
|
|
49
|
+
<context>
|
|
50
|
+
[心理状态、"感觉"、任何有助于顺利恢复的信息]
|
|
51
|
+
|
|
52
|
+
[你在想什么?计划是什么?
|
|
53
|
+
这是 "从上次离开的地方精确继续" 的上下文。]
|
|
54
|
+
</context>
|
|
55
|
+
|
|
56
|
+
<next_action>
|
|
57
|
+
[恢复时要做的第一件事]
|
|
58
|
+
|
|
59
|
+
从这里开始: [具体操作]
|
|
60
|
+
</next_action>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
<yaml_fields>
|
|
64
|
+
必需的 YAML frontmatter:
|
|
65
|
+
|
|
66
|
+
- `phase`: 目录名 (如 `02-authentication`)
|
|
67
|
+
- `task`: 当前任务编号
|
|
68
|
+
- `total_tasks`: 阶段中的任务总数
|
|
69
|
+
- `status`: `in_progress`, `blocked`, `almost_done`
|
|
70
|
+
- `last_updated`: ISO 时间戳
|
|
71
|
+
</yaml_fields>
|
|
72
|
+
|
|
73
|
+
<guidelines>
|
|
74
|
+
- 要足够具体,让全新的 Claude 实例能立即理解
|
|
75
|
+
- 包含决策的原因,不只是做了什么
|
|
76
|
+
- `<next_action>` 应该不需要读其他东西就能执行
|
|
77
|
+
- 此文件在恢复后会被删除,不是永久存储
|
|
78
|
+
</guidelines>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# 调试子代理提示模板
|
|
2
|
+
|
|
3
|
+
用于生成 specops-debugger 代理的模板。代理包含所有调试专业知识,此模板仅提供问题上下文。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 模板
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
<objective>
|
|
11
|
+
调查问题: {issue_id}
|
|
12
|
+
|
|
13
|
+
**摘要:** {issue_summary}
|
|
14
|
+
</objective>
|
|
15
|
+
|
|
16
|
+
<symptoms>
|
|
17
|
+
expected: {expected}
|
|
18
|
+
actual: {actual}
|
|
19
|
+
errors: {errors}
|
|
20
|
+
reproduction: {reproduction}
|
|
21
|
+
timeline: {timeline}
|
|
22
|
+
</symptoms>
|
|
23
|
+
|
|
24
|
+
<mode>
|
|
25
|
+
symptoms_prefilled: {true_or_false}
|
|
26
|
+
goal: {find_root_cause_only | find_and_fix}
|
|
27
|
+
</mode>
|
|
28
|
+
|
|
29
|
+
<debug_file>
|
|
30
|
+
创建: .planning/debug/{slug}.md
|
|
31
|
+
</debug_file>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 占位符
|
|
37
|
+
|
|
38
|
+
| 占位符 | 来源 | 示例 |
|
|
39
|
+
|--------|------|------|
|
|
40
|
+
| `{issue_id}` | 编排器分配 | `auth-screen-dark` |
|
|
41
|
+
| `{issue_summary}` | 用户描述 | `认证页面太暗` |
|
|
42
|
+
| `{expected}` | 来自症状 | `能清楚看到 logo` |
|
|
43
|
+
| `{actual}` | 来自症状 | `页面很暗` |
|
|
44
|
+
| `{errors}` | 来自症状 | `控制台无错误` |
|
|
45
|
+
| `{reproduction}` | 来自症状 | `打开 /auth 页面` |
|
|
46
|
+
| `{timeline}` | 来自症状 | `最近部署后` |
|
|
47
|
+
| `{goal}` | 编排器设置 | `find_and_fix` |
|
|
48
|
+
| `{slug}` | 生成的 | `auth-screen-dark` |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 用法
|
|
53
|
+
|
|
54
|
+
**从 /specops:debug:**
|
|
55
|
+
```python
|
|
56
|
+
Task(
|
|
57
|
+
prompt=filled_template,
|
|
58
|
+
subagent_type="specops-debugger",
|
|
59
|
+
description="调试 {slug}"
|
|
60
|
+
)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**从 diagnose-issues (UAT):**
|
|
64
|
+
```python
|
|
65
|
+
Task(prompt=template, subagent_type="specops-debugger", description="调试 UAT-001")
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 续接
|
|
71
|
+
|
|
72
|
+
对于检查点,用以下内容生成新代理:
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
<objective>
|
|
76
|
+
继续调试 {slug}。证据在调试文件中。
|
|
77
|
+
</objective>
|
|
78
|
+
|
|
79
|
+
<prior_state>
|
|
80
|
+
调试文件: @.planning/debug/{slug}.md
|
|
81
|
+
</prior_state>
|
|
82
|
+
|
|
83
|
+
<checkpoint_response>
|
|
84
|
+
**类型:** {checkpoint_type}
|
|
85
|
+
**响应:** {user_response}
|
|
86
|
+
</checkpoint_response>
|
|
87
|
+
|
|
88
|
+
<mode>
|
|
89
|
+
goal: {goal}
|
|
90
|
+
</mode>
|
|
91
|
+
```
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# 发现模板
|
|
2
|
+
|
|
3
|
+
`.planning/phases/XX-name/DISCOVERY.md` 的模板,用于库/选项决策的浅层研究。
|
|
4
|
+
|
|
5
|
+
**用途:** 在 plan-phase 的强制发现阶段回答 "应该用哪个库/选项" 的问题。
|
|
6
|
+
|
|
7
|
+
深度生态系统研究 ("专家如何构建这个") 请使用 `/specops:research-phase`,它会生成 RESEARCH.md。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 文件模板
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
---
|
|
15
|
+
phase: XX-name
|
|
16
|
+
type: discovery
|
|
17
|
+
topic: [发现主题]
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
<session_initialization>
|
|
21
|
+
开始发现前,验证今天的日期:
|
|
22
|
+
!`date +%Y-%m-%d`
|
|
23
|
+
|
|
24
|
+
搜索 "当前" 或 "最新" 信息时使用此日期。
|
|
25
|
+
示例: 如果今天是 2025-11-22,搜索 "2025" 而非 "2024"。
|
|
26
|
+
</session_initialization>
|
|
27
|
+
|
|
28
|
+
<discovery_objective>
|
|
29
|
+
发现 [主题] 以指导 [阶段名称] 的实现。
|
|
30
|
+
|
|
31
|
+
目的: [此发现支持什么决策/实现]
|
|
32
|
+
范围: [边界]
|
|
33
|
+
输出: 包含建议的 DISCOVERY.md
|
|
34
|
+
</discovery_objective>
|
|
35
|
+
|
|
36
|
+
<discovery_scope>
|
|
37
|
+
<include>
|
|
38
|
+
- [需要回答的问题]
|
|
39
|
+
- [需要调查的领域]
|
|
40
|
+
- [需要的具体比较]
|
|
41
|
+
</include>
|
|
42
|
+
|
|
43
|
+
<exclude>
|
|
44
|
+
- [此次发现范围外的内容]
|
|
45
|
+
- [延后到实现阶段的内容]
|
|
46
|
+
</exclude>
|
|
47
|
+
</discovery_scope>
|
|
48
|
+
|
|
49
|
+
<discovery_protocol>
|
|
50
|
+
|
|
51
|
+
**来源优先级:**
|
|
52
|
+
1. **Context7 MCP** - 用于库/框架文档 (当前、权威)
|
|
53
|
+
2. **官方文档** - 用于平台特定或未索引的库
|
|
54
|
+
3. **WebSearch** - 用于比较、趋势、社区模式 (验证所有发现)
|
|
55
|
+
|
|
56
|
+
**质量检查清单:**
|
|
57
|
+
完成发现前,验证:
|
|
58
|
+
- [ ] 所有声明有权威来源 (Context7 或官方文档)
|
|
59
|
+
- [ ] 否定声明 ("X 不可能") 已用官方文档验证
|
|
60
|
+
- [ ] API 语法/配置来自 Context7 或官方文档 (绝不仅靠 WebSearch)
|
|
61
|
+
- [ ] WebSearch 发现已与权威来源交叉验证
|
|
62
|
+
- [ ] 已检查最近的更新/变更日志中的破坏性变更
|
|
63
|
+
- [ ] 已考虑替代方案 (不只是找到的第一个方案)
|
|
64
|
+
|
|
65
|
+
**置信度级别:**
|
|
66
|
+
- 高: Context7 或官方文档确认
|
|
67
|
+
- 中: WebSearch + Context7/官方文档确认
|
|
68
|
+
- 低: 仅 WebSearch 或仅训练知识 (标记需验证)
|
|
69
|
+
|
|
70
|
+
</discovery_protocol>
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<output_structure>
|
|
74
|
+
创建 `.planning/phases/XX-name/DISCOVERY.md`:
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
# [主题] 发现
|
|
78
|
+
|
|
79
|
+
## 摘要
|
|
80
|
+
[2-3 段执行摘要,研究了什么、发现了什么、建议什么]
|
|
81
|
+
|
|
82
|
+
## 首要建议
|
|
83
|
+
[做什么以及为什么,具体且可操作]
|
|
84
|
+
|
|
85
|
+
## 考虑过的替代方案
|
|
86
|
+
[还评估了什么以及为什么没选]
|
|
87
|
+
|
|
88
|
+
## 关键发现
|
|
89
|
+
|
|
90
|
+
### [类别 1]
|
|
91
|
+
- [发现及来源 URL 和与我们情况的相关性]
|
|
92
|
+
|
|
93
|
+
### [类别 2]
|
|
94
|
+
- [发现及来源 URL 和相关性]
|
|
95
|
+
|
|
96
|
+
## 代码示例
|
|
97
|
+
[相关的实现模式(如适用)]
|
|
98
|
+
|
|
99
|
+
## 元数据
|
|
100
|
+
|
|
101
|
+
<metadata>
|
|
102
|
+
<confidence level="high|medium|low">
|
|
103
|
+
[为什么是这个置信度级别,基于来源质量和验证]
|
|
104
|
+
</confidence>
|
|
105
|
+
|
|
106
|
+
<sources>
|
|
107
|
+
- [使用的主要权威来源]
|
|
108
|
+
</sources>
|
|
109
|
+
|
|
110
|
+
<open_questions>
|
|
111
|
+
[无法确定或需要在实现时验证的内容]
|
|
112
|
+
</open_questions>
|
|
113
|
+
|
|
114
|
+
<validation_checkpoints>
|
|
115
|
+
[如果置信度为低或中,列出实现时需要验证的具体事项]
|
|
116
|
+
</validation_checkpoints>
|
|
117
|
+
</metadata>
|
|
118
|
+
```
|
|
119
|
+
</output_structure>
|
|
120
|
+
|
|
121
|
+
<success_criteria>
|
|
122
|
+
- 所有范围内的问题已用权威来源回答
|
|
123
|
+
- 质量检查清单项目已完成
|
|
124
|
+
- 有明确的首要建议
|
|
125
|
+
- 低置信度发现已标记验证检查点
|
|
126
|
+
- 可以指导 PLAN.md 的创建
|
|
127
|
+
</success_criteria>
|
|
128
|
+
|
|
129
|
+
<guidelines>
|
|
130
|
+
**何时使用发现:**
|
|
131
|
+
- 技术选择不明确 (库 A vs B)
|
|
132
|
+
- 不熟悉的集成需要最佳实践
|
|
133
|
+
- 需要 API/库调查
|
|
134
|
+
- 单个决策待定
|
|
135
|
+
|
|
136
|
+
**何时不使用:**
|
|
137
|
+
- 已确立的模式 (CRUD、使用已知库的认证)
|
|
138
|
+
- 实现细节 (延后到执行)
|
|
139
|
+
- 可从现有项目上下文回答的问题
|
|
140
|
+
|
|
141
|
+
**何时改用 RESEARCH.md:**
|
|
142
|
+
- 利基/复杂领域 (3D、游戏、音频、着色器)
|
|
143
|
+
- 需要生态系统知识,不只是库选择
|
|
144
|
+
- "专家如何构建这个" 类问题
|
|
145
|
+
- 使用 `/specops:research-phase` 处理这些
|
|
146
|
+
</guidelines>
|
|
147
|
+
```
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# 里程碑归档模板
|
|
2
|
+
|
|
3
|
+
此模板由 complete-milestone 工作流使用,在 `.planning/milestones/` 中创建归档文件。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 文件模板
|
|
8
|
+
|
|
9
|
+
# 里程碑 v{{VERSION}}: {{MILESTONE_NAME}}
|
|
10
|
+
|
|
11
|
+
**状态:** ✅ 已发布 {{DATE}}
|
|
12
|
+
**阶段:** {{PHASE_START}}-{{PHASE_END}}
|
|
13
|
+
**总计划数:** {{TOTAL_PLANS}}
|
|
14
|
+
|
|
15
|
+
## 概览
|
|
16
|
+
|
|
17
|
+
{{MILESTONE_DESCRIPTION}}
|
|
18
|
+
|
|
19
|
+
## 阶段
|
|
20
|
+
|
|
21
|
+
{{PHASES_SECTION}}
|
|
22
|
+
|
|
23
|
+
[对此里程碑中的每个阶段,包含:]
|
|
24
|
+
|
|
25
|
+
### 阶段 {{PHASE_NUM}}: {{PHASE_NAME}}
|
|
26
|
+
|
|
27
|
+
**目标**: {{PHASE_GOAL}}
|
|
28
|
+
**依赖**: {{DEPENDS_ON}}
|
|
29
|
+
**计划数**: {{PLAN_COUNT}} 个计划
|
|
30
|
+
|
|
31
|
+
计划:
|
|
32
|
+
|
|
33
|
+
- [x] {{PHASE}}-01: {{PLAN_DESCRIPTION}}
|
|
34
|
+
- [x] {{PHASE}}-02: {{PLAN_DESCRIPTION}}
|
|
35
|
+
[... 所有计划 ...]
|
|
36
|
+
|
|
37
|
+
**详情:**
|
|
38
|
+
{{PHASE_DETAILS_FROM_ROADMAP}}
|
|
39
|
+
|
|
40
|
+
**对于小数阶段,包含 (INSERTED) 标记:**
|
|
41
|
+
|
|
42
|
+
### 阶段 2.1: 关键安全补丁 (INSERTED)
|
|
43
|
+
|
|
44
|
+
**目标**: 修复认证绕过漏洞
|
|
45
|
+
**依赖**: 阶段 2
|
|
46
|
+
**计划数**: 1 个计划
|
|
47
|
+
|
|
48
|
+
计划:
|
|
49
|
+
|
|
50
|
+
- [x] 02.1-01: 修补认证漏洞
|
|
51
|
+
|
|
52
|
+
**详情:**
|
|
53
|
+
{{PHASE_DETAILS_FROM_ROADMAP}}
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 里程碑总结
|
|
58
|
+
|
|
59
|
+
**小数阶段:**
|
|
60
|
+
|
|
61
|
+
- 阶段 2.1: 关键安全补丁 (在阶段 2 后插入用于紧急修复)
|
|
62
|
+
- 阶段 5.1: 性能热修复 (在阶段 5 后插入用于生产问题)
|
|
63
|
+
|
|
64
|
+
**关键决策:**
|
|
65
|
+
{{DECISIONS_FROM_PROJECT_STATE}}
|
|
66
|
+
[示例:]
|
|
67
|
+
|
|
68
|
+
- 决策: 使用 ROADMAP.md 拆分 (理由: 恒定的上下文成本)
|
|
69
|
+
- 决策: 小数阶段编号 (理由: 清晰的插入语义)
|
|
70
|
+
|
|
71
|
+
**已解决的问题:**
|
|
72
|
+
{{ISSUES_RESOLVED_DURING_MILESTONE}}
|
|
73
|
+
[示例:]
|
|
74
|
+
|
|
75
|
+
- 修复了 100+ 阶段时的上下文溢出
|
|
76
|
+
- 解决了阶段插入的混淆
|
|
77
|
+
|
|
78
|
+
**延后的问题:**
|
|
79
|
+
{{ISSUES_DEFERRED_TO_LATER}}
|
|
80
|
+
[示例:]
|
|
81
|
+
|
|
82
|
+
- PROJECT-STATE.md 分层 (延后到决策 > 300 时)
|
|
83
|
+
|
|
84
|
+
**产生的技术债务:**
|
|
85
|
+
{{SHORTCUTS_NEEDING_FUTURE_WORK}}
|
|
86
|
+
[示例:]
|
|
87
|
+
|
|
88
|
+
- 部分工作流仍有硬编码路径 (在阶段 5 修复)
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
_当前项目状态请参见 .planning/ROADMAP.md_
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 使用指南
|
|
97
|
+
|
|
98
|
+
<guidelines>
|
|
99
|
+
**何时创建里程碑归档:**
|
|
100
|
+
- 完成里程碑中的所有阶段后 (v1.0, v1.1, v2.0 等)
|
|
101
|
+
- 由 complete-milestone 工作流触发
|
|
102
|
+
- 在规划下一个里程碑工作之前
|
|
103
|
+
|
|
104
|
+
**如何填写模板:**
|
|
105
|
+
|
|
106
|
+
- 用实际值替换 {{PLACEHOLDERS}}
|
|
107
|
+
- 从 ROADMAP.md 提取阶段详情
|
|
108
|
+
- 用 (INSERTED) 标记记录小数阶段
|
|
109
|
+
- 包含来自 PROJECT-STATE.md 或 SUMMARY 文件的关键决策
|
|
110
|
+
- 列出已解决 vs 延后的问题
|
|
111
|
+
- 记录技术债务供未来参考
|
|
112
|
+
|
|
113
|
+
**归档位置:**
|
|
114
|
+
|
|
115
|
+
- 保存到 `.planning/milestones/v{VERSION}-{NAME}.md`
|
|
116
|
+
- 示例: `.planning/milestones/v1.0-mvp.md`
|
|
117
|
+
|
|
118
|
+
**归档后:**
|
|
119
|
+
|
|
120
|
+
- 更新 ROADMAP.md 将已完成的里程碑折叠到 `<details>` 标签中
|
|
121
|
+
- 更新 PROJECT.md 为棕地格式,包含当前状态部分
|
|
122
|
+
- 在下一个里程碑中继续阶段编号 (永远不要从 01 重新开始)
|
|
123
|
+
</guidelines>
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# 里程碑条目模板
|
|
2
|
+
|
|
3
|
+
完成里程碑时将此条目添加到 `.planning/MILESTONES.md`:
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
## v[X.Y] [名称] (发布: YYYY-MM-DD)
|
|
7
|
+
|
|
8
|
+
**交付:** [一句话描述发布了什么]
|
|
9
|
+
|
|
10
|
+
**完成阶段:** [X-Y] (共 [Z] 个计划)
|
|
11
|
+
|
|
12
|
+
**关键成就:**
|
|
13
|
+
- [主要成就 1]
|
|
14
|
+
- [主要成就 2]
|
|
15
|
+
- [主要成就 3]
|
|
16
|
+
- [主要成就 4]
|
|
17
|
+
|
|
18
|
+
**统计:**
|
|
19
|
+
- [X] 个文件创建/修改
|
|
20
|
+
- [Y] 行代码 (主要语言)
|
|
21
|
+
- [Z] 个阶段, [N] 个计划, [M] 个任务
|
|
22
|
+
- [D] 天从开始到发布 (或里程碑到里程碑)
|
|
23
|
+
|
|
24
|
+
**Git 范围:** `feat(XX-XX)` → `feat(YY-YY)`
|
|
25
|
+
|
|
26
|
+
**下一步:** [下一个里程碑目标的简要描述,或 "项目完成"]
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
<structure>
|
|
32
|
+
如果 MILESTONES.md 不存在,创建时添加头部:
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
# 项目里程碑: [项目名称]
|
|
36
|
+
|
|
37
|
+
[按时间倒序排列,最新的在前]
|
|
38
|
+
```
|
|
39
|
+
</structure>
|
|
40
|
+
|
|
41
|
+
<guidelines>
|
|
42
|
+
**何时创建里程碑:**
|
|
43
|
+
- 初始 v1.0 MVP 发布
|
|
44
|
+
- 主要版本发布 (v2.0, v3.0)
|
|
45
|
+
- 重要功能里程碑 (v1.1, v1.2)
|
|
46
|
+
- 归档规划前 (记录发布了什么)
|
|
47
|
+
|
|
48
|
+
**不要为以下创建里程碑:**
|
|
49
|
+
- 单个阶段完成 (正常工作流)
|
|
50
|
+
- 进行中的工作 (等到发布)
|
|
51
|
+
- 不构成发布的小 bug 修复
|
|
52
|
+
|
|
53
|
+
**要包含的统计:**
|
|
54
|
+
- 修改文件数: `git diff --stat feat(XX-XX)..feat(YY-YY) | tail -1`
|
|
55
|
+
- 代码行数: `find . -name "*.swift" -o -name "*.ts" | xargs wc -l` (或相关扩展名)
|
|
56
|
+
- 阶段/计划/任务数量来自 ROADMAP
|
|
57
|
+
- 时间线从第一个阶段提交到最后一个阶段提交
|
|
58
|
+
|
|
59
|
+
**Git 范围格式:**
|
|
60
|
+
- 里程碑的第一个提交 → 最后一个提交
|
|
61
|
+
- 示例: `feat(01-01)` → `feat(04-01)` 对应阶段 1-4
|
|
62
|
+
</guidelines>
|
|
63
|
+
|
|
64
|
+
<example>
|
|
65
|
+
```markdown
|
|
66
|
+
# 项目里程碑: WeatherBar
|
|
67
|
+
|
|
68
|
+
## v1.1 安全与打磨 (发布: 2025-12-10)
|
|
69
|
+
|
|
70
|
+
**交付:** 安全加固,集成 Keychain 和全面的错误处理
|
|
71
|
+
|
|
72
|
+
**完成阶段:** 5-6 (共 3 个计划)
|
|
73
|
+
|
|
74
|
+
**关键成就:**
|
|
75
|
+
- 将 API 密钥存储从明文迁移到 macOS Keychain
|
|
76
|
+
- 实现网络故障的全面错误处理
|
|
77
|
+
- 添加 Sentry 崩溃报告集成
|
|
78
|
+
- 修复自动刷新定时器的内存泄漏
|
|
79
|
+
|
|
80
|
+
**统计:**
|
|
81
|
+
- 23 个文件修改
|
|
82
|
+
- 650 行 Swift 代码新增
|
|
83
|
+
- 2 个阶段, 3 个计划, 12 个任务
|
|
84
|
+
- 从 v1.0 到 v1.1 共 8 天
|
|
85
|
+
|
|
86
|
+
**Git 范围:** `feat(05-01)` → `feat(06-02)`
|
|
87
|
+
|
|
88
|
+
**下一步:** v2.0 SwiftUI 重新设计,支持小组件
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## v1.0 MVP (发布: 2025-11-25)
|
|
93
|
+
|
|
94
|
+
**交付:** 菜单栏天气应用,显示当前天气和 3 天预报
|
|
95
|
+
|
|
96
|
+
**完成阶段:** 1-4 (共 7 个计划)
|
|
97
|
+
|
|
98
|
+
**关键成就:**
|
|
99
|
+
- 带弹出 UI 的菜单栏应用 (AppKit)
|
|
100
|
+
- OpenWeather API 集成及自动刷新
|
|
101
|
+
- 当前天气显示含天气图标
|
|
102
|
+
- 3 天预报列表含最高/最低温度
|
|
103
|
+
- 代码签名和公证,可分发
|
|
104
|
+
|
|
105
|
+
**统计:**
|
|
106
|
+
- 47 个文件创建
|
|
107
|
+
- 2,450 行 Swift 代码
|
|
108
|
+
- 4 个阶段, 7 个计划, 28 个任务
|
|
109
|
+
- 从开始到发布共 12 天
|
|
110
|
+
|
|
111
|
+
**Git 范围:** `feat(01-01)` → `feat(04-01)`
|
|
112
|
+
|
|
113
|
+
**下一步:** v1.1 安全审计和加固
|
|
114
|
+
```
|
|
115
|
+
</example>
|