@specpow/framework 0.5.10 → 0.5.11
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/CHANGELOG.md +623 -623
- package/LICENSE +21 -21
- package/bin/specpow.js +9 -9
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +12 -11
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/archive.d.ts.map +1 -1
- package/dist/commands/archive.js +6 -3
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +5 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +29 -10
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +5 -2
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/explore.d.ts.map +1 -1
- package/dist/commands/explore.js +8 -10
- package/dist/commands/explore.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +5 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/propose.d.ts.map +1 -1
- package/dist/commands/propose.js +4 -3
- package/dist/commands/propose.js.map +1 -1
- package/dist/commands/schema.d.ts.map +1 -1
- package/dist/commands/schema.js +5 -2
- package/dist/commands/schema.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +5 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/store.d.ts.map +1 -1
- package/dist/commands/store.js +8 -6
- package/dist/commands/store.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +3 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate-specs.d.ts.map +1 -1
- package/dist/commands/validate-specs.js +8 -5
- package/dist/commands/validate-specs.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +5 -2
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/workflow/index.d.ts.map +1 -1
- package/dist/commands/workflow/index.js +13 -8
- package/dist/commands/workflow/index.js.map +1 -1
- package/dist/core/archive/engine.d.ts.map +1 -1
- package/dist/core/archive/engine.js +10 -6
- package/dist/core/archive/engine.js.map +1 -1
- package/dist/core/artifact-graph/resolver.d.ts.map +1 -1
- package/dist/core/artifact-graph/resolver.js +5 -2
- package/dist/core/artifact-graph/resolver.js.map +1 -1
- package/dist/core/config/config-schema.d.ts +104 -0
- package/dist/core/config/config-schema.d.ts.map +1 -1
- package/dist/core/config/config-schema.js +15 -1
- package/dist/core/config/config-schema.js.map +1 -1
- package/dist/core/hooks/session-start-hook.d.ts.map +1 -1
- package/dist/core/hooks/session-start-hook.js +50 -45
- package/dist/core/hooks/session-start-hook.js.map +1 -1
- package/dist/core/hooks/workflow-state-hook.d.ts.map +1 -1
- package/dist/core/hooks/workflow-state-hook.js +3 -1
- package/dist/core/hooks/workflow-state-hook.js.map +1 -1
- package/dist/core/init/engine.d.ts.map +1 -1
- package/dist/core/init/engine.js +15 -12
- package/dist/core/init/engine.js.map +1 -1
- package/dist/core/memory/adapters/sqlite-adapter.js +55 -55
- package/dist/core/migration/index.d.ts.map +1 -1
- package/dist/core/migration/index.js +128 -4
- package/dist/core/migration/index.js.map +1 -1
- package/dist/core/store/index.d.ts +4 -3
- package/dist/core/store/index.d.ts.map +1 -1
- package/dist/core/store/index.js +7 -7
- package/dist/core/store/index.js.map +1 -1
- package/dist/core/templates/index.d.ts +1 -1
- package/dist/core/templates/index.d.ts.map +1 -1
- package/dist/core/templates/index.js +11 -6
- package/dist/core/templates/index.js.map +1 -1
- package/dist/core/workflow-state.d.ts +1 -1
- package/dist/core/workflow-state.d.ts.map +1 -1
- package/dist/core/workflow-state.js +10 -5
- package/dist/core/workflow-state.js.map +1 -1
- package/dist/templates/claude-commands/specpow-apply.md +23 -23
- package/dist/templates/claude-commands/specpow-archive.md +22 -22
- package/dist/templates/claude-commands/specpow-propose.md +27 -27
- package/dist/templates/claude-commands/specpow-status.md +22 -22
- package/dist/templates/claude-commands/specpow-validate-specs.md +28 -28
- package/dist/templates/claude-commands/specpow-verify.md +21 -21
- package/dist/templates/claude-commands/specpow.md +34 -34
- package/package.json +121 -122
- package/.specpow/skills/business-code-review/SKILL.md +0 -78
- package/.specpow/skills/business-db-design/SKILL.md +0 -74
- package/.specpow/skills/business-deploy-check/SKILL.md +0 -72
- package/.specpow/skills/business-doc-sync/SKILL.md +0 -72
- package/.specpow/skills/business-java-codegen/SKILL.md +0 -97
- package/.specpow/skills/business-menu-register/SKILL.md +0 -63
- package/.specpow/skills/business-prd-writer/SKILL.md +0 -80
- package/.specpow/skills/business-test-gen/SKILL.md +0 -82
- package/.specpow/skills/business-ui-codegen/SKILL.md +0 -104
- package/.specpow/skills/cli-router/SKILL.md +0 -107
- package/.specpow/skills/execution-finish-branch/SKILL.md +0 -58
- package/.specpow/skills/execution-git-worktrees/SKILL.md +0 -48
- package/.specpow/skills/execution-parallel-agents/SKILL.md +0 -46
- package/.specpow/skills/execution-receiving-review/SKILL.md +0 -47
- package/.specpow/skills/execution-requesting-review/SKILL.md +0 -51
- package/.specpow/skills/execution-sdd-orchestrator/SKILL.md +0 -366
- package/.specpow/skills/execution-subagent-dispatch/SKILL.md +0 -295
- package/.specpow/skills/execution-subagent-driven-dev/SKILL.md +0 -143
- package/.specpow/skills/execution-systematic-debugging/SKILL.md +0 -95
- package/.specpow/skills/execution-tdd/SKILL.md +0 -74
- package/.specpow/skills/execution-verification-before-completion/SKILL.md +0 -75
- package/.specpow/skills/meta-create-skill/SKILL.md +0 -374
- package/.specpow/skills/meta-using-skills/SKILL.md +0 -97
- package/.specpow/skills/meta-writing-skills/SKILL.md +0 -66
- package/.specpow/skills/planning-apply-change/SKILL.md +0 -194
- package/.specpow/skills/planning-archive-change/SKILL.md +0 -53
- package/.specpow/skills/planning-explore/SKILL.md +0 -99
- package/.specpow/skills/planning-onboard/SKILL.md +0 -60
- package/.specpow/skills/planning-propose/SKILL.md +0 -156
- package/.specpow/skills/planning-update-change/SKILL.md +0 -45
- package/.specpow/skills/planning-verify-change/SKILL.md +0 -72
- package/.specpow/skills/planning-write-design/SKILL.md +0 -59
- package/.specpow/skills/planning-write-plans/SKILL.md +0 -55
- package/.specpow/skills/planning-write-specs/SKILL.md +0 -73
- package/.specpow/skills/using-specpow/SKILL.md +0 -232
|
@@ -78,7 +78,7 @@ export declare function inferStageFromContent(content: string): WorkflowStage |
|
|
|
78
78
|
/**
|
|
79
79
|
* 检测当前工作流阶段(共享函数)
|
|
80
80
|
*
|
|
81
|
-
* 基于
|
|
81
|
+
* 基于 config.paths.changesDir 目录结构推断当前阶段
|
|
82
82
|
*/
|
|
83
83
|
export declare function detectCurrentStage(projectRoot: string): WorkflowStage;
|
|
84
84
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-state.d.ts","sourceRoot":"","sources":["../../src/core/workflow-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"workflow-state.d.ts","sourceRoot":"","sources":["../../src/core/workflow-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,gBAAgB;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyDxE;AAeD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAwBrE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAEvD;AAID;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAatE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAUzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAUhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAE7D;AAID;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgBzE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAgB3E;AAID;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAiCrE;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAcjF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAc3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAW5D"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { existsSync, readdirSync, readFileSync, writeFileSync, mkdirSync, unlinkSync } from 'fs';
|
|
12
12
|
import { join } from 'path';
|
|
13
|
+
import { GlobalConfigManager } from './config/global-config.js';
|
|
13
14
|
// ─── 状态标签解析 ───────────────────────────────────────────
|
|
14
15
|
/**
|
|
15
16
|
* 解析工作流状态标签
|
|
@@ -214,10 +215,11 @@ export function inferStageFromContent(content) {
|
|
|
214
215
|
/**
|
|
215
216
|
* 检测当前工作流阶段(共享函数)
|
|
216
217
|
*
|
|
217
|
-
* 基于
|
|
218
|
+
* 基于 config.paths.changesDir 目录结构推断当前阶段
|
|
218
219
|
*/
|
|
219
220
|
export function detectCurrentStage(projectRoot) {
|
|
220
|
-
const
|
|
221
|
+
const config = new GlobalConfigManager(projectRoot).load();
|
|
222
|
+
const changesDir = join(projectRoot, config.paths.changesDir);
|
|
221
223
|
if (!existsSync(changesDir)) {
|
|
222
224
|
return 'idle';
|
|
223
225
|
}
|
|
@@ -250,7 +252,8 @@ export function detectCurrentStage(projectRoot) {
|
|
|
250
252
|
* 保存工作流状态到持久化文件
|
|
251
253
|
*/
|
|
252
254
|
export function saveWorkflowState(projectRoot, state) {
|
|
253
|
-
const
|
|
255
|
+
const config = new GlobalConfigManager(projectRoot).load();
|
|
256
|
+
const stateDir = join(projectRoot, config.paths.changesDir, '..', 'state');
|
|
254
257
|
try {
|
|
255
258
|
if (!existsSync(stateDir)) {
|
|
256
259
|
mkdirSync(stateDir, { recursive: true });
|
|
@@ -266,7 +269,8 @@ export function saveWorkflowState(projectRoot, state) {
|
|
|
266
269
|
* 加载持久化的工作流状态
|
|
267
270
|
*/
|
|
268
271
|
export function loadWorkflowState(projectRoot) {
|
|
269
|
-
const
|
|
272
|
+
const config = new GlobalConfigManager(projectRoot).load();
|
|
273
|
+
const stateFile = join(projectRoot, config.paths.changesDir, '..', 'state', 'workflow-state.json');
|
|
270
274
|
if (!existsSync(stateFile)) {
|
|
271
275
|
return null;
|
|
272
276
|
}
|
|
@@ -282,7 +286,8 @@ export function loadWorkflowState(projectRoot) {
|
|
|
282
286
|
* 清除持久化的工作流状态
|
|
283
287
|
*/
|
|
284
288
|
export function clearWorkflowState(projectRoot) {
|
|
285
|
-
const
|
|
289
|
+
const config = new GlobalConfigManager(projectRoot).load();
|
|
290
|
+
const stateFile = join(projectRoot, config.paths.changesDir, '..', 'state', 'workflow-state.json');
|
|
286
291
|
try {
|
|
287
292
|
if (existsSync(stateFile)) {
|
|
288
293
|
unlinkSync(stateFile);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-state.js","sourceRoot":"","sources":["../../src/core/workflow-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-state.js","sourceRoot":"","sources":["../../src/core/workflow-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# SpecPow 执行实现
|
|
2
|
-
|
|
3
|
-
执行 `specpow apply` 按任务清单逐任务实现代码变更。
|
|
4
|
-
|
|
5
|
-
## 执行步骤
|
|
6
|
-
|
|
7
|
-
1. 检查状态:
|
|
8
|
-
```bash
|
|
9
|
-
specpow status
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
2. 如果有多个活跃变更,让用户选择:
|
|
13
|
-
```bash
|
|
14
|
-
specpow apply --change <change-name>
|
|
15
|
-
```
|
|
16
|
-
或直接:
|
|
17
|
-
```bash
|
|
18
|
-
specpow apply
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
3. 监控执行输出,展示每个任务的完成状态。
|
|
22
|
-
|
|
23
|
-
4. 执行完成后,建议运行 `/specpow-verify` 验证变更。
|
|
1
|
+
# SpecPow 执行实现
|
|
2
|
+
|
|
3
|
+
执行 `specpow apply` 按任务清单逐任务实现代码变更。
|
|
4
|
+
|
|
5
|
+
## 执行步骤
|
|
6
|
+
|
|
7
|
+
1. 检查状态:
|
|
8
|
+
```bash
|
|
9
|
+
specpow status
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
2. 如果有多个活跃变更,让用户选择:
|
|
13
|
+
```bash
|
|
14
|
+
specpow apply --change <change-name>
|
|
15
|
+
```
|
|
16
|
+
或直接:
|
|
17
|
+
```bash
|
|
18
|
+
specpow apply
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
3. 监控执行输出,展示每个任务的完成状态。
|
|
22
|
+
|
|
23
|
+
4. 执行完成后,建议运行 `/specpow-verify` 验证变更。
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
# SpecPow 归档变更
|
|
2
|
-
|
|
3
|
-
执行 `specpow archive` 完成变更生命周期。
|
|
4
|
-
|
|
5
|
-
## 执行步骤
|
|
6
|
-
|
|
7
|
-
1. 执行归档:
|
|
8
|
-
```bash
|
|
9
|
-
specpow archive --change "$ARGUMENTS"
|
|
10
|
-
```
|
|
11
|
-
如果只有一个活跃变更:
|
|
12
|
-
```bash
|
|
13
|
-
specpow archive
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
2. 验证归档结果:
|
|
17
|
-
```bash
|
|
18
|
-
specpow status
|
|
19
|
-
ls .specpow/
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
3. 归档完成后,变更生命周期结束。
|
|
1
|
+
# SpecPow 归档变更
|
|
2
|
+
|
|
3
|
+
执行 `specpow archive` 完成变更生命周期。
|
|
4
|
+
|
|
5
|
+
## 执行步骤
|
|
6
|
+
|
|
7
|
+
1. 执行归档:
|
|
8
|
+
```bash
|
|
9
|
+
specpow archive --change "$ARGUMENTS"
|
|
10
|
+
```
|
|
11
|
+
如果只有一个活跃变更:
|
|
12
|
+
```bash
|
|
13
|
+
specpow archive
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
2. 验证归档结果:
|
|
17
|
+
```bash
|
|
18
|
+
specpow status
|
|
19
|
+
ls .specpow/archive/
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
3. 归档完成后,变更生命周期结束。
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
# SpecPow 创建变更提案
|
|
2
|
-
|
|
3
|
-
执行 `specpow propose` 创建变更提案,自动生成 proposal/design/tasks 工件。
|
|
4
|
-
|
|
5
|
-
## 执行步骤
|
|
6
|
-
|
|
7
|
-
1. 检查当前状态:
|
|
8
|
-
```bash
|
|
9
|
-
specpow status
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
2. 执行创建命令:
|
|
13
|
-
```bash
|
|
14
|
-
specpow propose "$ARGUMENTS"
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
3. 如果用户指定了 schema:
|
|
18
|
-
```bash
|
|
19
|
-
specpow propose "$ARGUMENTS" --schema bug-fix
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
4. 验证工件已创建:
|
|
23
|
-
```bash
|
|
24
|
-
specpow status
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
5. 提示用户编辑生成的工件文件,然后运行 `/specpow-apply`。
|
|
1
|
+
# SpecPow 创建变更提案
|
|
2
|
+
|
|
3
|
+
执行 `specpow propose` 创建变更提案,自动生成 proposal/design/tasks 工件。
|
|
4
|
+
|
|
5
|
+
## 执行步骤
|
|
6
|
+
|
|
7
|
+
1. 检查当前状态:
|
|
8
|
+
```bash
|
|
9
|
+
specpow status
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
2. 执行创建命令:
|
|
13
|
+
```bash
|
|
14
|
+
specpow propose "$ARGUMENTS"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
3. 如果用户指定了 schema:
|
|
18
|
+
```bash
|
|
19
|
+
specpow propose "$ARGUMENTS" --schema bug-fix
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
4. 验证工件已创建:
|
|
23
|
+
```bash
|
|
24
|
+
specpow status
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
5. 提示用户编辑生成的工件文件,然后运行 `/specpow-apply`。
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
# SpecPow 查看状态
|
|
2
|
-
|
|
3
|
-
执行 `specpow status` 查看当前变更状态。
|
|
4
|
-
|
|
5
|
-
## 执行步骤
|
|
6
|
-
|
|
7
|
-
1. 执行状态查询:
|
|
8
|
-
```bash
|
|
9
|
-
specpow status
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
2. 如需 JSON 格式(便于程序解析):
|
|
13
|
-
```bash
|
|
14
|
-
specpow status --json
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
3. 向用户展示:
|
|
18
|
-
- 当前活跃变更列表
|
|
19
|
-
- 每个变更的工件完成度
|
|
20
|
-
- 任务进度
|
|
21
|
-
|
|
22
|
-
4. 根据当前状态推荐下一步操作。
|
|
1
|
+
# SpecPow 查看状态
|
|
2
|
+
|
|
3
|
+
执行 `specpow status` 查看当前变更状态。
|
|
4
|
+
|
|
5
|
+
## 执行步骤
|
|
6
|
+
|
|
7
|
+
1. 执行状态查询:
|
|
8
|
+
```bash
|
|
9
|
+
specpow status
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
2. 如需 JSON 格式(便于程序解析):
|
|
13
|
+
```bash
|
|
14
|
+
specpow status --json
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
3. 向用户展示:
|
|
18
|
+
- 当前活跃变更列表
|
|
19
|
+
- 每个变更的工件完成度
|
|
20
|
+
- 任务进度
|
|
21
|
+
|
|
22
|
+
4. 根据当前状态推荐下一步操作。
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
# SpecPow 验证 Delta Spec 名称匹配
|
|
2
|
-
|
|
3
|
-
执行 `specpow validate-specs` 验证 Delta Spec 中的 MODIFIED/REMOVED/RENAMED 需求名称是否与主规范精确匹配。
|
|
4
|
-
|
|
5
|
-
## 执行步骤
|
|
6
|
-
|
|
7
|
-
1. 执行验证:
|
|
8
|
-
```bash
|
|
9
|
-
specpow validate-specs
|
|
10
|
-
```
|
|
11
|
-
如果多变更:
|
|
12
|
-
```bash
|
|
13
|
-
specpow validate-specs --change <change-name>
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
2. 解读验证结果:
|
|
17
|
-
- ✅ 全部匹配 → 可以直接归档
|
|
18
|
-
- ✗ 名称不匹配 → 列出每个 mismatch,根据建议名称修正 Delta Spec 文件
|
|
19
|
-
- 建议名称为 null → 需要手动查找主规范中的正确名称
|
|
20
|
-
|
|
21
|
-
3. 修正后重新验证,通过后运行 `/specpow-archive`。
|
|
22
|
-
|
|
23
|
-
## 注意事项
|
|
24
|
-
|
|
25
|
-
- 此命令应在 `specpow apply` 之后、`specpow archive` 之前运行
|
|
26
|
-
- ADDED 操作不需要名称匹配(新需求)
|
|
27
|
-
- 建议名称基于编辑距离(阈值 ≤ 3),超出范围不给出建议
|
|
28
|
-
- 名称不匹配的操作在归档时会被跳过
|
|
1
|
+
# SpecPow 验证 Delta Spec 名称匹配
|
|
2
|
+
|
|
3
|
+
执行 `specpow validate-specs` 验证 Delta Spec 中的 MODIFIED/REMOVED/RENAMED 需求名称是否与主规范精确匹配。
|
|
4
|
+
|
|
5
|
+
## 执行步骤
|
|
6
|
+
|
|
7
|
+
1. 执行验证:
|
|
8
|
+
```bash
|
|
9
|
+
specpow validate-specs
|
|
10
|
+
```
|
|
11
|
+
如果多变更:
|
|
12
|
+
```bash
|
|
13
|
+
specpow validate-specs --change <change-name>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
2. 解读验证结果:
|
|
17
|
+
- ✅ 全部匹配 → 可以直接归档
|
|
18
|
+
- ✗ 名称不匹配 → 列出每个 mismatch,根据建议名称修正 Delta Spec 文件
|
|
19
|
+
- 建议名称为 null → 需要手动查找主规范中的正确名称
|
|
20
|
+
|
|
21
|
+
3. 修正后重新验证,通过后运行 `/specpow-archive`。
|
|
22
|
+
|
|
23
|
+
## 注意事项
|
|
24
|
+
|
|
25
|
+
- 此命令应在 `specpow apply` 之后、`specpow archive` 之前运行
|
|
26
|
+
- ADDED 操作不需要名称匹配(新需求)
|
|
27
|
+
- 建议名称基于编辑距离(阈值 ≤ 3),超出范围不给出建议
|
|
28
|
+
- 名称不匹配的操作在归档时会被跳过
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
# SpecPow 验证变更
|
|
2
|
-
|
|
3
|
-
执行 `specpow verify` 进行 5 维验证。
|
|
4
|
-
|
|
5
|
-
## 执行步骤
|
|
6
|
-
|
|
7
|
-
1. 执行验证:
|
|
8
|
-
```bash
|
|
9
|
-
specpow verify
|
|
10
|
-
```
|
|
11
|
-
如果多变更:
|
|
12
|
-
```bash
|
|
13
|
-
specpow verify --change <change-name>
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
2. 解读验证结果:
|
|
17
|
-
- ✅ 通过项 → 确认
|
|
18
|
-
- ⚠️ 警告项 → 解释原因,判断是否阻塞
|
|
19
|
-
- ✗ 失败项 → 分析原因,建议修复方案
|
|
20
|
-
|
|
21
|
-
3. 验证通过后,建议运行 `/specpow-archive`。
|
|
1
|
+
# SpecPow 验证变更
|
|
2
|
+
|
|
3
|
+
执行 `specpow verify` 进行 5 维验证。
|
|
4
|
+
|
|
5
|
+
## 执行步骤
|
|
6
|
+
|
|
7
|
+
1. 执行验证:
|
|
8
|
+
```bash
|
|
9
|
+
specpow verify
|
|
10
|
+
```
|
|
11
|
+
如果多变更:
|
|
12
|
+
```bash
|
|
13
|
+
specpow verify --change <change-name>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
2. 解读验证结果:
|
|
17
|
+
- ✅ 通过项 → 确认
|
|
18
|
+
- ⚠️ 警告项 → 解释原因,判断是否阻塞
|
|
19
|
+
- ✗ 失败项 → 分析原因,建议修复方案
|
|
20
|
+
|
|
21
|
+
3. 验证通过后,建议运行 `/specpow-archive`。
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
# SpecPow 命令路由
|
|
2
|
-
|
|
3
|
-
用户请求 SpecPow 操作。根据用户意图执行对应命令。
|
|
4
|
-
|
|
5
|
-
## 可用命令
|
|
6
|
-
|
|
7
|
-
| 用户意图 | 执行命令 |
|
|
8
|
-
|---------|---------|
|
|
9
|
-
| 探索需求 | `specpow explore "$ARGUMENTS"` |
|
|
10
|
-
| 创建提案 | `specpow propose "$ARGUMENTS"` |
|
|
11
|
-
| 验证规范名称 | `specpow validate-specs` |
|
|
12
|
-
| 执行实现 | `specpow apply` |
|
|
13
|
-
| 验证变更 | `specpow verify` |
|
|
14
|
-
| 归档变更 | `specpow archive` |
|
|
15
|
-
| 查看状态 | `specpow status` |
|
|
16
|
-
| 诊断问题 | `specpow doctor` |
|
|
17
|
-
| 调试问题 | `specpow debug "$ARGUMENTS"` |
|
|
18
|
-
| 代码审查 | `specpow review` |
|
|
19
|
-
|
|
20
|
-
## 执行规则
|
|
21
|
-
|
|
22
|
-
1. 先运行 `specpow status` 查看当前状态
|
|
23
|
-
2. 根据用户意图选择对应命令
|
|
24
|
-
3. 用 Bash 工具执行命令,展示完整输出
|
|
25
|
-
4. 如果是交互式命令(如 explore),引导用户在终端中操作
|
|
26
|
-
5. 执行完成后,建议下一步操作(explore → propose → apply → verify → archive)
|
|
27
|
-
|
|
28
|
-
## 工作流引导
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
[无变更] → propose → [有提案] → apply → [已实现] → validate-specs → verify → [已验证] → archive
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
根据 `specpow status` 的输出,推荐当前阶段的下一步操作。
|
|
1
|
+
# SpecPow 命令路由
|
|
2
|
+
|
|
3
|
+
用户请求 SpecPow 操作。根据用户意图执行对应命令。
|
|
4
|
+
|
|
5
|
+
## 可用命令
|
|
6
|
+
|
|
7
|
+
| 用户意图 | 执行命令 |
|
|
8
|
+
|---------|---------|
|
|
9
|
+
| 探索需求 | `specpow explore "$ARGUMENTS"` |
|
|
10
|
+
| 创建提案 | `specpow propose "$ARGUMENTS"` |
|
|
11
|
+
| 验证规范名称 | `specpow validate-specs` |
|
|
12
|
+
| 执行实现 | `specpow apply` |
|
|
13
|
+
| 验证变更 | `specpow verify` |
|
|
14
|
+
| 归档变更 | `specpow archive` |
|
|
15
|
+
| 查看状态 | `specpow status` |
|
|
16
|
+
| 诊断问题 | `specpow doctor` |
|
|
17
|
+
| 调试问题 | `specpow debug "$ARGUMENTS"` |
|
|
18
|
+
| 代码审查 | `specpow review` |
|
|
19
|
+
|
|
20
|
+
## 执行规则
|
|
21
|
+
|
|
22
|
+
1. 先运行 `specpow status` 查看当前状态
|
|
23
|
+
2. 根据用户意图选择对应命令
|
|
24
|
+
3. 用 Bash 工具执行命令,展示完整输出
|
|
25
|
+
4. 如果是交互式命令(如 explore),引导用户在终端中操作
|
|
26
|
+
5. 执行完成后,建议下一步操作(explore → propose → apply → verify → archive)
|
|
27
|
+
|
|
28
|
+
## 工作流引导
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
[无变更] → propose → [有提案] → apply → [已实现] → validate-specs → verify → [已验证] → archive
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
根据 `specpow status` 的输出,推荐当前阶段的下一步操作。
|