@rpamis/comet 0.2.0 → 0.2.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/LICENSE +21 -21
- package/README.md +270 -270
- package/assets/manifest.json +21 -21
- package/assets/skills/comet/scripts/comet-archive.sh +258 -258
- package/assets/skills/comet/scripts/comet-guard.sh +7 -5
- package/assets/skills/comet/scripts/comet-state.sh +497 -496
- package/assets/skills/comet/scripts/comet-yaml-validate.sh +132 -132
- package/assets/skills/comet-archive/SKILL.md +63 -63
- package/assets/skills/comet-build/SKILL.md +153 -153
- package/assets/skills/comet-design/SKILL.md +91 -91
- package/assets/skills/comet-open/SKILL.md +70 -70
- package/assets/skills/comet-verify/SKILL.md +114 -114
- package/assets/skills-zh/comet-archive/SKILL.md +63 -63
- package/assets/skills-zh/comet-build/SKILL.md +153 -153
- package/assets/skills-zh/comet-design/SKILL.md +91 -91
- package/assets/skills-zh/comet-open/SKILL.md +70 -70
- package/assets/skills-zh/comet-verify/SKILL.md +114 -114
- package/bin/comet.js +3 -3
- package/dist/cli/index.js +10 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/detect.d.ts +6 -1
- package/dist/core/detect.d.ts.map +1 -1
- package/dist/core/detect.js +29 -1
- package/dist/core/detect.js.map +1 -1
- package/package.json +62 -61
- package/scripts/postinstall.js +44 -44
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: comet-verify
|
|
3
|
-
description: "Comet Phase 4: Verify and Complete. Invoke with /comet-verify. Verify implementation matches design, handle development branch."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Comet Phase 4: Verify and Complete (Verify)
|
|
7
|
-
|
|
8
|
-
## Prerequisites
|
|
9
|
-
|
|
10
|
-
- Code has been committed (Phase 3 complete)
|
|
11
|
-
- All tasks in tasks.md are complete
|
|
12
|
-
|
|
13
|
-
## Steps
|
|
14
|
-
|
|
15
|
-
### 0. Entry State Verification (Entry Check)
|
|
16
|
-
|
|
17
|
-
Execute entry verification:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
|
|
21
|
-
bash "$COMET_STATE" check <name> verify
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Proceed to Step 1 after verification passes. The script outputs specific failure reasons when verification fails.
|
|
25
|
-
|
|
26
|
-
### 1. Change Scale Assessment
|
|
27
|
-
|
|
28
|
-
Execute scale assessment:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
bash "$COMET_STATE" scale <name>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Script automatically counts tasks, delta specs, and changed files to determine whether to use light or full verification mode, and sets the verify_mode field.
|
|
35
|
-
|
|
36
|
-
### 2a. Lightweight Verification (Small Changes)
|
|
37
|
-
|
|
38
|
-
When scale assessment result is "small", skip `openspec-verify-change`, directly execute the following checks:
|
|
39
|
-
|
|
40
|
-
1. All tasks in tasks.md completed `[x]`
|
|
41
|
-
2. Changed files consistent with tasks.md description (`git diff --stat`对照 tasks content)
|
|
42
|
-
3. Build passes (run project-appropriate build command, e.g., `npm run build`, `mvn compile`, `cargo build`)
|
|
43
|
-
4. Related tests pass
|
|
44
|
-
5. No obvious security issues (no hardcoded secrets, no new unsafe operations)
|
|
45
|
-
|
|
46
|
-
**Pass standard**: All 5 items OK, no CRITICAL issues.
|
|
47
|
-
|
|
48
|
-
**Report format**: Brief table listing 5 check results + PASS/FAIL.
|
|
49
|
-
|
|
50
|
-
**Skipped items** (not checked in lightweight verification):
|
|
51
|
-
- spec scenario coverage
|
|
52
|
-
- design doc consistency deep comparison
|
|
53
|
-
- code pattern consistency recommendations
|
|
54
|
-
- delta spec and design doc drift detection
|
|
55
|
-
|
|
56
|
-
### 2b. Full Verification (Large Changes)
|
|
57
|
-
|
|
58
|
-
When scale assessment result is "large":
|
|
59
|
-
|
|
60
|
-
**Immediately execute:** Use the Skill tool to load the `openspec-verify-change` skill. Skipping this step is prohibited.
|
|
61
|
-
|
|
62
|
-
After the skill loads, follow its guidance to verify. Check items:
|
|
63
|
-
1. All tasks in tasks.md completed (`[x]`)
|
|
64
|
-
2. Implementation matches design.md design decisions
|
|
65
|
-
3. Implementation matches brainstorming design document
|
|
66
|
-
4. All capability specification scenarios pass
|
|
67
|
-
5. proposal.md goals satisfied
|
|
68
|
-
6. No contradiction between delta spec and design doc (if Build phase had incremental spec modifications, check if design doc has corresponding records)
|
|
69
|
-
7. `docs/superpowers/specs/` associated design document can be located (file exists and relates to current change)
|
|
70
|
-
|
|
71
|
-
When verification fails: report missing items, return to Phase 3 to supplement (invoke `/comet-build`).
|
|
72
|
-
|
|
73
|
-
**Spec drift handling**:
|
|
74
|
-
- If check item 6 finds contradiction (delta spec has content but design doc doesn't reflect it), prompt user:
|
|
75
|
-
- Option A: Append "Implementation Divergence" section to design doc recording deviation reason
|
|
76
|
-
- Option B: Roll back to Build phase, supplement brainstorming to update design doc
|
|
77
|
-
- Option C: Confirm deviation acceptable, continue verification (design doc will be marked as `superseded-by-main-spec` during archiving)
|
|
78
|
-
|
|
79
|
-
### 3. Completion (Superpowers)
|
|
80
|
-
|
|
81
|
-
**Immediately execute:** Use the Skill tool to load the `superpowers:finishing-a-development-branch` skill. Skipping this step is prohibited.
|
|
82
|
-
|
|
83
|
-
If `superpowers:finishing-a-development-branch` is unavailable, stop the process and prompt to install or enable Superpowers skills. Do not substitute this step with normal conversation.
|
|
84
|
-
|
|
85
|
-
After the skill loads, follow its guidance to complete. Branch handling options:
|
|
86
|
-
1. Local merge to main branch
|
|
87
|
-
2. Push and create PR
|
|
88
|
-
3. Keep branch (handle later)
|
|
89
|
-
4. Discard work
|
|
90
|
-
|
|
91
|
-
**Confirmation items**:
|
|
92
|
-
- All tests pass
|
|
93
|
-
- No hardcoded secrets or security issues
|
|
94
|
-
|
|
95
|
-
## Exit Conditions
|
|
96
|
-
|
|
97
|
-
- Verification report passed
|
|
98
|
-
- Branch handled
|
|
99
|
-
- `.comet.yaml` `verify_result` recorded as `pass`
|
|
100
|
-
- **Phase guard**: Run `bash $COMET_GUARD <change-name> verify`, allow transition only after all PASS
|
|
101
|
-
|
|
102
|
-
Before exit, run guard to auto-transition:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
bash $COMET_GUARD <change-name> verify --apply
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
State file is automatically updated to `phase: archive`, `verify_result: pass`, `verified_at: YYYY-MM-DD`.
|
|
109
|
-
|
|
110
|
-
## Automatic Transition
|
|
111
|
-
|
|
112
|
-
After exit conditions are met, **proceed immediately to the next phase without waiting for user input**:
|
|
113
|
-
|
|
114
|
-
> **REQUIRED NEXT SKILL:** Invoke `comet-archive` skill to enter the archiving phase.
|
|
1
|
+
---
|
|
2
|
+
name: comet-verify
|
|
3
|
+
description: "Comet Phase 4: Verify and Complete. Invoke with /comet-verify. Verify implementation matches design, handle development branch."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comet Phase 4: Verify and Complete (Verify)
|
|
7
|
+
|
|
8
|
+
## Prerequisites
|
|
9
|
+
|
|
10
|
+
- Code has been committed (Phase 3 complete)
|
|
11
|
+
- All tasks in tasks.md are complete
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
### 0. Entry State Verification (Entry Check)
|
|
16
|
+
|
|
17
|
+
Execute entry verification:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
|
|
21
|
+
bash "$COMET_STATE" check <name> verify
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Proceed to Step 1 after verification passes. The script outputs specific failure reasons when verification fails.
|
|
25
|
+
|
|
26
|
+
### 1. Change Scale Assessment
|
|
27
|
+
|
|
28
|
+
Execute scale assessment:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
bash "$COMET_STATE" scale <name>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Script automatically counts tasks, delta specs, and changed files to determine whether to use light or full verification mode, and sets the verify_mode field.
|
|
35
|
+
|
|
36
|
+
### 2a. Lightweight Verification (Small Changes)
|
|
37
|
+
|
|
38
|
+
When scale assessment result is "small", skip `openspec-verify-change`, directly execute the following checks:
|
|
39
|
+
|
|
40
|
+
1. All tasks in tasks.md completed `[x]`
|
|
41
|
+
2. Changed files consistent with tasks.md description (`git diff --stat`对照 tasks content)
|
|
42
|
+
3. Build passes (run project-appropriate build command, e.g., `npm run build`, `mvn compile`, `cargo build`)
|
|
43
|
+
4. Related tests pass
|
|
44
|
+
5. No obvious security issues (no hardcoded secrets, no new unsafe operations)
|
|
45
|
+
|
|
46
|
+
**Pass standard**: All 5 items OK, no CRITICAL issues.
|
|
47
|
+
|
|
48
|
+
**Report format**: Brief table listing 5 check results + PASS/FAIL.
|
|
49
|
+
|
|
50
|
+
**Skipped items** (not checked in lightweight verification):
|
|
51
|
+
- spec scenario coverage
|
|
52
|
+
- design doc consistency deep comparison
|
|
53
|
+
- code pattern consistency recommendations
|
|
54
|
+
- delta spec and design doc drift detection
|
|
55
|
+
|
|
56
|
+
### 2b. Full Verification (Large Changes)
|
|
57
|
+
|
|
58
|
+
When scale assessment result is "large":
|
|
59
|
+
|
|
60
|
+
**Immediately execute:** Use the Skill tool to load the `openspec-verify-change` skill. Skipping this step is prohibited.
|
|
61
|
+
|
|
62
|
+
After the skill loads, follow its guidance to verify. Check items:
|
|
63
|
+
1. All tasks in tasks.md completed (`[x]`)
|
|
64
|
+
2. Implementation matches design.md design decisions
|
|
65
|
+
3. Implementation matches brainstorming design document
|
|
66
|
+
4. All capability specification scenarios pass
|
|
67
|
+
5. proposal.md goals satisfied
|
|
68
|
+
6. No contradiction between delta spec and design doc (if Build phase had incremental spec modifications, check if design doc has corresponding records)
|
|
69
|
+
7. `docs/superpowers/specs/` associated design document can be located (file exists and relates to current change)
|
|
70
|
+
|
|
71
|
+
When verification fails: report missing items, return to Phase 3 to supplement (invoke `/comet-build`).
|
|
72
|
+
|
|
73
|
+
**Spec drift handling**:
|
|
74
|
+
- If check item 6 finds contradiction (delta spec has content but design doc doesn't reflect it), prompt user:
|
|
75
|
+
- Option A: Append "Implementation Divergence" section to design doc recording deviation reason
|
|
76
|
+
- Option B: Roll back to Build phase, supplement brainstorming to update design doc
|
|
77
|
+
- Option C: Confirm deviation acceptable, continue verification (design doc will be marked as `superseded-by-main-spec` during archiving)
|
|
78
|
+
|
|
79
|
+
### 3. Completion (Superpowers)
|
|
80
|
+
|
|
81
|
+
**Immediately execute:** Use the Skill tool to load the `superpowers:finishing-a-development-branch` skill. Skipping this step is prohibited.
|
|
82
|
+
|
|
83
|
+
If `superpowers:finishing-a-development-branch` is unavailable, stop the process and prompt to install or enable Superpowers skills. Do not substitute this step with normal conversation.
|
|
84
|
+
|
|
85
|
+
After the skill loads, follow its guidance to complete. Branch handling options:
|
|
86
|
+
1. Local merge to main branch
|
|
87
|
+
2. Push and create PR
|
|
88
|
+
3. Keep branch (handle later)
|
|
89
|
+
4. Discard work
|
|
90
|
+
|
|
91
|
+
**Confirmation items**:
|
|
92
|
+
- All tests pass
|
|
93
|
+
- No hardcoded secrets or security issues
|
|
94
|
+
|
|
95
|
+
## Exit Conditions
|
|
96
|
+
|
|
97
|
+
- Verification report passed
|
|
98
|
+
- Branch handled
|
|
99
|
+
- `.comet.yaml` `verify_result` recorded as `pass`
|
|
100
|
+
- **Phase guard**: Run `bash $COMET_GUARD <change-name> verify`, allow transition only after all PASS
|
|
101
|
+
|
|
102
|
+
Before exit, run guard to auto-transition:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
bash $COMET_GUARD <change-name> verify --apply
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
State file is automatically updated to `phase: archive`, `verify_result: pass`, `verified_at: YYYY-MM-DD`.
|
|
109
|
+
|
|
110
|
+
## Automatic Transition
|
|
111
|
+
|
|
112
|
+
After exit conditions are met, **proceed immediately to the next phase without waiting for user input**:
|
|
113
|
+
|
|
114
|
+
> **REQUIRED NEXT SKILL:** Invoke `comet-archive` skill to enter the archiving phase.
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: comet-archive
|
|
3
|
-
description: "Comet 阶段 5:归档。用 /comet-archive 调用。同步 delta spec 到主 spec,归档 change。"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Comet 阶段 5:归档(Archive)
|
|
7
|
-
|
|
8
|
-
## 前置条件
|
|
9
|
-
|
|
10
|
-
- 验证已通过(阶段 4 完成)
|
|
11
|
-
- 分支已处理
|
|
12
|
-
- `openspec/changes/<name>/.comet.yaml` 中 `verify_result: pass`
|
|
13
|
-
|
|
14
|
-
## 步骤
|
|
15
|
-
|
|
16
|
-
### 0. 入口状态验证(Entry Check)
|
|
17
|
-
|
|
18
|
-
执行入口验证:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
|
|
22
|
-
bash "$COMET_STATE" check <name> archive
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
26
|
-
|
|
27
|
-
### 1. 执行归档
|
|
28
|
-
|
|
29
|
-
运行归档脚本,自动完成以下全部步骤:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
COMET_ARCHIVE="${COMET_ARCHIVE:-$(find . -path '*/comet/scripts/comet-archive.sh' -type f -print -quit)}"
|
|
33
|
-
bash "$COMET_ARCHIVE" "<change-name>"
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
脚本自动执行:
|
|
37
|
-
1. 入口状态验证(phase=archive, verify_result=pass, archived=false)
|
|
38
|
-
2. Delta spec 同步到主 spec
|
|
39
|
-
3. Design doc 前置元数据标注(archived-with, status)
|
|
40
|
-
4. Plan 前置元数据标注(archived-with)
|
|
41
|
-
5. 移动 change 到归档目录
|
|
42
|
-
6. 更新 archived: true
|
|
43
|
-
|
|
44
|
-
如脚本返回非零退出码,报告错误并停止。
|
|
45
|
-
如脚本返回零退出码,归档完成。
|
|
46
|
-
|
|
47
|
-
如需预览而不实际执行,使用 `--dry-run` 参数。
|
|
48
|
-
|
|
49
|
-
### 2. 生命周期闭环
|
|
50
|
-
|
|
51
|
-
Spec 生命周期在此完成:
|
|
52
|
-
```
|
|
53
|
-
brainstorming → delta spec → 实施 → 验证 → 主 spec 覆盖 → design doc 标注 → 归档
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## 退出条件
|
|
57
|
-
|
|
58
|
-
- 归档脚本执行成功(退出码 0)
|
|
59
|
-
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> archive`,全部 PASS 后确认归档完整
|
|
60
|
-
|
|
61
|
-
## 完成
|
|
62
|
-
|
|
63
|
-
Comet 流程全部完成。如需开始新工作,调用 `/comet` 或 `/comet-open`。
|
|
1
|
+
---
|
|
2
|
+
name: comet-archive
|
|
3
|
+
description: "Comet 阶段 5:归档。用 /comet-archive 调用。同步 delta spec 到主 spec,归档 change。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comet 阶段 5:归档(Archive)
|
|
7
|
+
|
|
8
|
+
## 前置条件
|
|
9
|
+
|
|
10
|
+
- 验证已通过(阶段 4 完成)
|
|
11
|
+
- 分支已处理
|
|
12
|
+
- `openspec/changes/<name>/.comet.yaml` 中 `verify_result: pass`
|
|
13
|
+
|
|
14
|
+
## 步骤
|
|
15
|
+
|
|
16
|
+
### 0. 入口状态验证(Entry Check)
|
|
17
|
+
|
|
18
|
+
执行入口验证:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
|
|
22
|
+
bash "$COMET_STATE" check <name> archive
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
26
|
+
|
|
27
|
+
### 1. 执行归档
|
|
28
|
+
|
|
29
|
+
运行归档脚本,自动完成以下全部步骤:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
COMET_ARCHIVE="${COMET_ARCHIVE:-$(find . -path '*/comet/scripts/comet-archive.sh' -type f -print -quit)}"
|
|
33
|
+
bash "$COMET_ARCHIVE" "<change-name>"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
脚本自动执行:
|
|
37
|
+
1. 入口状态验证(phase=archive, verify_result=pass, archived=false)
|
|
38
|
+
2. Delta spec 同步到主 spec
|
|
39
|
+
3. Design doc 前置元数据标注(archived-with, status)
|
|
40
|
+
4. Plan 前置元数据标注(archived-with)
|
|
41
|
+
5. 移动 change 到归档目录
|
|
42
|
+
6. 更新 archived: true
|
|
43
|
+
|
|
44
|
+
如脚本返回非零退出码,报告错误并停止。
|
|
45
|
+
如脚本返回零退出码,归档完成。
|
|
46
|
+
|
|
47
|
+
如需预览而不实际执行,使用 `--dry-run` 参数。
|
|
48
|
+
|
|
49
|
+
### 2. 生命周期闭环
|
|
50
|
+
|
|
51
|
+
Spec 生命周期在此完成:
|
|
52
|
+
```
|
|
53
|
+
brainstorming → delta spec → 实施 → 验证 → 主 spec 覆盖 → design doc 标注 → 归档
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 退出条件
|
|
57
|
+
|
|
58
|
+
- 归档脚本执行成功(退出码 0)
|
|
59
|
+
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> archive`,全部 PASS 后确认归档完整
|
|
60
|
+
|
|
61
|
+
## 完成
|
|
62
|
+
|
|
63
|
+
Comet 流程全部完成。如需开始新工作,调用 `/comet` 或 `/comet-open`。
|
|
@@ -1,153 +1,153 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: comet-build
|
|
3
|
-
description: "Comet 阶段 3:计划与构建。用 /comet-build 调用。制定计划并通过 subagent-driven-development 执行实施。"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Comet 阶段 3:计划与构建(Build)
|
|
7
|
-
|
|
8
|
-
## 前置条件
|
|
9
|
-
|
|
10
|
-
- Design Doc 已创建(阶段 2 完成)
|
|
11
|
-
- 活跃 change 存在
|
|
12
|
-
|
|
13
|
-
## 步骤
|
|
14
|
-
|
|
15
|
-
### 0. 入口状态验证(Entry Check)
|
|
16
|
-
|
|
17
|
-
执行入口验证:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
|
|
21
|
-
bash "$COMET_STATE" check <name> build
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
25
|
-
|
|
26
|
-
### 1. 制定计划
|
|
27
|
-
|
|
28
|
-
**立即执行:** 使用 Skill 工具加载 `superpowers:writing-plans` 技能。禁止跳过此步骤。
|
|
29
|
-
|
|
30
|
-
技能加载后,按其指引制定计划。计划要求:
|
|
31
|
-
- 保存至 `docs/superpowers/plans/YYYY-MM-DD-<feature>.md`
|
|
32
|
-
- 引用设计文档,拆分为可执行任务
|
|
33
|
-
- **Plan 文件头必须包含关联元数据**:
|
|
34
|
-
|
|
35
|
-
```yaml
|
|
36
|
-
---
|
|
37
|
-
change: <openspec-change-name>
|
|
38
|
-
design-doc: docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md
|
|
39
|
-
---
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### 2. 更新计划状态
|
|
43
|
-
|
|
44
|
-
先记录 plan 路径:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
bash "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
无需手动更新 phase,guard 会在退出条件满足后自动流转。
|
|
51
|
-
|
|
52
|
-
### 3. 工作区隔离
|
|
53
|
-
|
|
54
|
-
计划已写入当前分支。在开始执行前,选择工作区隔离方式:
|
|
55
|
-
|
|
56
|
-
| 选项 | 方式 | 说明 |
|
|
57
|
-
|------|------|------|
|
|
58
|
-
| A | 创建分支 | 在当前仓库创建新分支,简单快速 |
|
|
59
|
-
| B | 创建 Worktree | 隔离工作区,完全独立,适合并行开发 |
|
|
60
|
-
|
|
61
|
-
**推荐规则**:
|
|
62
|
-
- 变更涉及 ≤ 3 个文件 → 推荐 A
|
|
63
|
-
- 需要并行开发、当前分支有未提交工作 → 推荐 B
|
|
64
|
-
|
|
65
|
-
用户选择后,更新 `isolation` 字段。`isolation` 只允许以下值之一:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
bash "$COMET_STATE" set <name> isolation <value>
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
- `branch`
|
|
72
|
-
- `worktree`
|
|
73
|
-
|
|
74
|
-
**执行隔离**:
|
|
75
|
-
|
|
76
|
-
- **branch**:执行 `git checkout -b <change-name>`,后续工作在新分支上进行
|
|
77
|
-
- **worktree**:调用 `superpowers:using-git-worktrees` 技能或使用原生 `EnterWorktree` 工具创建隔离工作区
|
|
78
|
-
|
|
79
|
-
创建隔离后,确认计划文件可访问(分支方式天然可访问;worktree 方式需确认计划已提交)。
|
|
80
|
-
|
|
81
|
-
### 4. 选择执行方式
|
|
82
|
-
|
|
83
|
-
向用户展示计划摘要(任务数、涉及模块),然后询问执行方式:
|
|
84
|
-
|
|
85
|
-
| 选项 | 技能 | 适用场景 |
|
|
86
|
-
|------|------|---------|
|
|
87
|
-
| A | `superpowers:subagent-driven-development` | 任务独立、复杂度高、需要双阶段审查 |
|
|
88
|
-
| B | `superpowers:executing-plans` | 任务简单、无子agent环境、轻量快速 |
|
|
89
|
-
|
|
90
|
-
**推荐规则**:
|
|
91
|
-
- 任务数 ≥ 3 → 推荐 A
|
|
92
|
-
- 任务数 ≤ 2 且无跨模块依赖 → 推荐 B
|
|
93
|
-
- 来自 hotfix 路径 → 推荐 B
|
|
94
|
-
|
|
95
|
-
用户选择后,更新 `build_mode` 字段。`build_mode` 只允许以下值之一:
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
bash "$COMET_STATE" set <name> build_mode <value>
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
- `subagent-driven-development`
|
|
102
|
-
- `executing-plans`
|
|
103
|
-
- `direct`(仅 hotfix preset 使用)
|
|
104
|
-
|
|
105
|
-
然后,**立即执行:** 使用 Skill 工具加载对应技能。禁止跳过此步骤。
|
|
106
|
-
|
|
107
|
-
如所选 Superpowers 技能不可用,停止流程并提示安装或启用对应技能,不要用普通对话替代该步骤。
|
|
108
|
-
|
|
109
|
-
技能加载后,按其指引执行:
|
|
110
|
-
- 按计划执行任务
|
|
111
|
-
- 完成 tasks.md 勾选(`- [ ]` → `- [x]`)
|
|
112
|
-
- 每个任务完成后提交代码
|
|
113
|
-
|
|
114
|
-
### 5. Spec 增量更新
|
|
115
|
-
|
|
116
|
-
实施过程中发现初版 spec 不完整时,按变更规模分级处理:
|
|
117
|
-
|
|
118
|
-
| 规模 | 触发条件 | 做法 |
|
|
119
|
-
|------|---------|------|
|
|
120
|
-
| 小 | 遗漏验收场景、边界条件 | 直接编辑 delta spec + design.md,追加 tasks.md 任务 |
|
|
121
|
-
| 中 | 接口变更、新增组件、数据流变化 | 重新 `superpowers:brainstorming` 更新 Design Doc + delta spec |
|
|
122
|
-
| 大 | 全新 capability 需求 | `/opsx:new` 创建独立 change |
|
|
123
|
-
|
|
124
|
-
**50% 阈值判定**:以 tasks.md 初始任务总数为基准,若新增任务数超过该总数的一半,视为超出原计划范围,应考虑拆分为新 change。
|
|
125
|
-
|
|
126
|
-
**原则**:
|
|
127
|
-
- delta spec 是活文档,本阶段期间随时可修改
|
|
128
|
-
- 每次更新应提交,commit message 说明变更原因
|
|
129
|
-
- 不提前同步到 main spec,归档时统一同步
|
|
130
|
-
- 如增量任务超过原 tasks.md 初始任务总数 50%,考虑拆分为新 change
|
|
131
|
-
- 小规模增量直接改 delta spec 时,应在 commit message 中注明,便于归档时判断 design doc 漂移
|
|
132
|
-
|
|
133
|
-
## 退出条件
|
|
134
|
-
|
|
135
|
-
- tasks.md 全部勾选
|
|
136
|
-
- 代码已提交
|
|
137
|
-
- 测试通过
|
|
138
|
-
- `.comet.yaml` 中 `phase` 已更新为 `verify`
|
|
139
|
-
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> build`,全部 PASS 后才允许流转
|
|
140
|
-
|
|
141
|
-
退出前运行 guard 自动流转:
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
bash $COMET_GUARD <change-name> build --apply
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
状态文件自动更新为 `phase: verify`、`verify_result: pending`。
|
|
148
|
-
|
|
149
|
-
## 自动流转
|
|
150
|
-
|
|
151
|
-
退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
|
|
152
|
-
|
|
153
|
-
> **REQUIRED NEXT SKILL:** 调用 `comet-verify` skill 进入验证与收尾阶段。
|
|
1
|
+
---
|
|
2
|
+
name: comet-build
|
|
3
|
+
description: "Comet 阶段 3:计划与构建。用 /comet-build 调用。制定计划并通过 subagent-driven-development 执行实施。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comet 阶段 3:计划与构建(Build)
|
|
7
|
+
|
|
8
|
+
## 前置条件
|
|
9
|
+
|
|
10
|
+
- Design Doc 已创建(阶段 2 完成)
|
|
11
|
+
- 活跃 change 存在
|
|
12
|
+
|
|
13
|
+
## 步骤
|
|
14
|
+
|
|
15
|
+
### 0. 入口状态验证(Entry Check)
|
|
16
|
+
|
|
17
|
+
执行入口验证:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
COMET_STATE="${COMET_STATE:-$(find . -path '*/comet/scripts/comet-state.sh' -type f -print -quit)}"
|
|
21
|
+
bash "$COMET_STATE" check <name> build
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
25
|
+
|
|
26
|
+
### 1. 制定计划
|
|
27
|
+
|
|
28
|
+
**立即执行:** 使用 Skill 工具加载 `superpowers:writing-plans` 技能。禁止跳过此步骤。
|
|
29
|
+
|
|
30
|
+
技能加载后,按其指引制定计划。计划要求:
|
|
31
|
+
- 保存至 `docs/superpowers/plans/YYYY-MM-DD-<feature>.md`
|
|
32
|
+
- 引用设计文档,拆分为可执行任务
|
|
33
|
+
- **Plan 文件头必须包含关联元数据**:
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
---
|
|
37
|
+
change: <openspec-change-name>
|
|
38
|
+
design-doc: docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md
|
|
39
|
+
---
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 2. 更新计划状态
|
|
43
|
+
|
|
44
|
+
先记录 plan 路径:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
bash "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
无需手动更新 phase,guard 会在退出条件满足后自动流转。
|
|
51
|
+
|
|
52
|
+
### 3. 工作区隔离
|
|
53
|
+
|
|
54
|
+
计划已写入当前分支。在开始执行前,选择工作区隔离方式:
|
|
55
|
+
|
|
56
|
+
| 选项 | 方式 | 说明 |
|
|
57
|
+
|------|------|------|
|
|
58
|
+
| A | 创建分支 | 在当前仓库创建新分支,简单快速 |
|
|
59
|
+
| B | 创建 Worktree | 隔离工作区,完全独立,适合并行开发 |
|
|
60
|
+
|
|
61
|
+
**推荐规则**:
|
|
62
|
+
- 变更涉及 ≤ 3 个文件 → 推荐 A
|
|
63
|
+
- 需要并行开发、当前分支有未提交工作 → 推荐 B
|
|
64
|
+
|
|
65
|
+
用户选择后,更新 `isolation` 字段。`isolation` 只允许以下值之一:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
bash "$COMET_STATE" set <name> isolation <value>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- `branch`
|
|
72
|
+
- `worktree`
|
|
73
|
+
|
|
74
|
+
**执行隔离**:
|
|
75
|
+
|
|
76
|
+
- **branch**:执行 `git checkout -b <change-name>`,后续工作在新分支上进行
|
|
77
|
+
- **worktree**:调用 `superpowers:using-git-worktrees` 技能或使用原生 `EnterWorktree` 工具创建隔离工作区
|
|
78
|
+
|
|
79
|
+
创建隔离后,确认计划文件可访问(分支方式天然可访问;worktree 方式需确认计划已提交)。
|
|
80
|
+
|
|
81
|
+
### 4. 选择执行方式
|
|
82
|
+
|
|
83
|
+
向用户展示计划摘要(任务数、涉及模块),然后询问执行方式:
|
|
84
|
+
|
|
85
|
+
| 选项 | 技能 | 适用场景 |
|
|
86
|
+
|------|------|---------|
|
|
87
|
+
| A | `superpowers:subagent-driven-development` | 任务独立、复杂度高、需要双阶段审查 |
|
|
88
|
+
| B | `superpowers:executing-plans` | 任务简单、无子agent环境、轻量快速 |
|
|
89
|
+
|
|
90
|
+
**推荐规则**:
|
|
91
|
+
- 任务数 ≥ 3 → 推荐 A
|
|
92
|
+
- 任务数 ≤ 2 且无跨模块依赖 → 推荐 B
|
|
93
|
+
- 来自 hotfix 路径 → 推荐 B
|
|
94
|
+
|
|
95
|
+
用户选择后,更新 `build_mode` 字段。`build_mode` 只允许以下值之一:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
bash "$COMET_STATE" set <name> build_mode <value>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
- `subagent-driven-development`
|
|
102
|
+
- `executing-plans`
|
|
103
|
+
- `direct`(仅 hotfix preset 使用)
|
|
104
|
+
|
|
105
|
+
然后,**立即执行:** 使用 Skill 工具加载对应技能。禁止跳过此步骤。
|
|
106
|
+
|
|
107
|
+
如所选 Superpowers 技能不可用,停止流程并提示安装或启用对应技能,不要用普通对话替代该步骤。
|
|
108
|
+
|
|
109
|
+
技能加载后,按其指引执行:
|
|
110
|
+
- 按计划执行任务
|
|
111
|
+
- 完成 tasks.md 勾选(`- [ ]` → `- [x]`)
|
|
112
|
+
- 每个任务完成后提交代码
|
|
113
|
+
|
|
114
|
+
### 5. Spec 增量更新
|
|
115
|
+
|
|
116
|
+
实施过程中发现初版 spec 不完整时,按变更规模分级处理:
|
|
117
|
+
|
|
118
|
+
| 规模 | 触发条件 | 做法 |
|
|
119
|
+
|------|---------|------|
|
|
120
|
+
| 小 | 遗漏验收场景、边界条件 | 直接编辑 delta spec + design.md,追加 tasks.md 任务 |
|
|
121
|
+
| 中 | 接口变更、新增组件、数据流变化 | 重新 `superpowers:brainstorming` 更新 Design Doc + delta spec |
|
|
122
|
+
| 大 | 全新 capability 需求 | `/opsx:new` 创建独立 change |
|
|
123
|
+
|
|
124
|
+
**50% 阈值判定**:以 tasks.md 初始任务总数为基准,若新增任务数超过该总数的一半,视为超出原计划范围,应考虑拆分为新 change。
|
|
125
|
+
|
|
126
|
+
**原则**:
|
|
127
|
+
- delta spec 是活文档,本阶段期间随时可修改
|
|
128
|
+
- 每次更新应提交,commit message 说明变更原因
|
|
129
|
+
- 不提前同步到 main spec,归档时统一同步
|
|
130
|
+
- 如增量任务超过原 tasks.md 初始任务总数 50%,考虑拆分为新 change
|
|
131
|
+
- 小规模增量直接改 delta spec 时,应在 commit message 中注明,便于归档时判断 design doc 漂移
|
|
132
|
+
|
|
133
|
+
## 退出条件
|
|
134
|
+
|
|
135
|
+
- tasks.md 全部勾选
|
|
136
|
+
- 代码已提交
|
|
137
|
+
- 测试通过
|
|
138
|
+
- `.comet.yaml` 中 `phase` 已更新为 `verify`
|
|
139
|
+
- **阶段守卫**:运行 `bash $COMET_GUARD <change-name> build`,全部 PASS 后才允许流转
|
|
140
|
+
|
|
141
|
+
退出前运行 guard 自动流转:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
bash $COMET_GUARD <change-name> build --apply
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
状态文件自动更新为 `phase: verify`、`verify_result: pending`。
|
|
148
|
+
|
|
149
|
+
## 自动流转
|
|
150
|
+
|
|
151
|
+
退出条件满足后,**无需等待用户再次输入**,直接执行下一阶段:
|
|
152
|
+
|
|
153
|
+
> **REQUIRED NEXT SKILL:** 调用 `comet-verify` skill 进入验证与收尾阶段。
|