@namewta/speculo 0.1.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/LICENSE +21 -0
- package/README.md +89 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +58 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.js +60 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/utils.d.ts +1 -0
- package/dist/src/utils.js +11 -0
- package/dist/src/utils.js.map +1 -0
- package/package.json +54 -0
- package/speculo/.speculo/.config/LESSONS.md +9 -0
- package/speculo/.speculo/.config/RULES.md +9 -0
- package/speculo/.speculo/.config/adr/.gitkeep +1 -0
- package/speculo/.speculo/.config/context/.gitkeep +1 -0
- package/speculo/.speculo/archive/dev/.gitkeep +0 -0
- package/speculo/.speculo/archive/doc/.gitkeep +1 -0
- package/speculo/.speculo/commands/.gitkeep +0 -0
- package/speculo/.speculo/dev/.gitkeep +0 -0
- package/speculo/.speculo/dev/docs-sync-state.json +14 -0
- package/speculo/.speculo/dev-status.json +3 -0
- package/speculo/.speculo/doc/.gitkeep +1 -0
- package/speculo/.speculo/doc-status.json +3 -0
- package/speculo/commands/archive.md +53 -0
- package/speculo/commands/caveman.md +43 -0
- package/speculo/commands/grill-me.md +42 -0
- package/speculo/commands/handoff.md +42 -0
- package/speculo/commands/scaffold-exercises.md +50 -0
- package/speculo/commands/status.md +51 -0
- package/speculo/commands/write-a-skill.md +46 -0
- package/speculo/skills/caveman/SKILL.md +38 -0
- package/speculo/skills/caveman/references/compression-rules.md +102 -0
- package/speculo/skills/github-npm-ops/SKILL.md +53 -0
- package/speculo/skills/github-npm-ops/references/ci-and-security-ops.md +178 -0
- package/speculo/skills/github-npm-ops/references/failure-recovery.md +132 -0
- package/speculo/skills/github-npm-ops/references/issue-pr-triage.md +219 -0
- package/speculo/skills/github-npm-ops/references/package-json-checklist.md +171 -0
- package/speculo/skills/github-npm-ops/references/preflight-checklist.md +39 -0
- package/speculo/skills/github-npm-ops/references/publish-detection.md +68 -0
- package/speculo/skills/github-npm-ops/references/release-notes-injection.md +236 -0
- package/speculo/skills/github-npm-ops/references/release-pipeline.md +108 -0
- package/speculo/skills/github-npm-ops/references/setup-npm-token.md +63 -0
- package/speculo/skills/github-npm-ops/references/troubleshooting-playbook.md +305 -0
- package/speculo/skills/github-npm-ops/references/version-bump-flow.md +232 -0
- package/speculo/skills/github-npm-ops/references/workflow-yaml-reference.md +268 -0
- package/speculo/skills/grill-me/SKILL.md +40 -0
- package/speculo/skills/handoff/SKILL.md +41 -0
- package/speculo/skills/scaffold-exercises/SKILL.md +41 -0
- package/speculo/skills/scaffold-exercises/references/exercise-structure.md +85 -0
- package/speculo/skills/scaffold-exercises/references/lint-and-git.md +54 -0
- package/speculo/skills/speculo-write/SKILL.md +53 -0
- package/speculo/skills/speculo-write/references/asset-selection-sop.md +65 -0
- package/speculo/skills/speculo-write/references/command-authoring-sop.md +92 -0
- package/speculo/skills/speculo-write/references/migration-sop.md +101 -0
- package/speculo/skills/speculo-write/references/persistence-contract-sop.md +123 -0
- package/speculo/skills/speculo-write/references/skill-authoring-sop.md +195 -0
- package/speculo/skills/speculo-write/references/validation-checklist.md +73 -0
- package/speculo/skills/speculo-write/references/workflow-authoring-sop.md +130 -0
- package/speculo/workflows/dev/00-INDEX.md +56 -0
- package/speculo/workflows/dev/01-grill-with-docs/01-grill-with-docs.md +79 -0
- package/speculo/workflows/dev/01-grill-with-docs/ADR-FORMAT.md +49 -0
- package/speculo/workflows/dev/01-grill-with-docs/CONTEXT-FORMAT.md +65 -0
- package/speculo/workflows/dev/01-grill-with-docs/grill-context-scan.md +30 -0
- package/speculo/workflows/dev/01-grill-with-docs/grill-decision.md +38 -0
- package/speculo/workflows/dev/02-prd/02-prd.md +64 -0
- package/speculo/workflows/dev/02-prd/prd-synthesis.md +30 -0
- package/speculo/workflows/dev/02-prd/prd-zoom-out.md +29 -0
- package/speculo/workflows/dev/03-tdd/03-tdd.md +80 -0
- package/speculo/workflows/dev/03-tdd/deep-modules.md +33 -0
- package/speculo/workflows/dev/03-tdd/interface-design.md +31 -0
- package/speculo/workflows/dev/03-tdd/mocking.md +60 -0
- package/speculo/workflows/dev/03-tdd/refactoring.md +10 -0
- package/speculo/workflows/dev/03-tdd/tdd-finish.md +28 -0
- package/speculo/workflows/dev/03-tdd/tdd-loop.md +33 -0
- package/speculo/workflows/dev/03-tdd/tdd-plan.md +30 -0
- package/speculo/workflows/dev/03-tdd/tests.md +61 -0
- package/speculo/workflows/dev/D-docs-sync/D-docs-sync.md +97 -0
- package/speculo/workflows/dev/D-docs-sync/agents-contract.md +95 -0
- package/speculo/workflows/dev/D-docs-sync/changelog-contract.md +155 -0
- package/speculo/workflows/dev/D-docs-sync/docs-sync-diff.md +50 -0
- package/speculo/workflows/dev/D-docs-sync/docs-sync-finish.md +33 -0
- package/speculo/workflows/dev/D-docs-sync/docs-sync-state.md +32 -0
- package/speculo/workflows/dev/D-docs-sync/docs-sync-update.md +35 -0
- package/speculo/workflows/dev/D-docs-sync/readme-contract.md +124 -0
- package/speculo/workflows/dev/D-docs-sync/state-json-schema.md +155 -0
- package/speculo/workflows/dev/H-diagnose/H-diagnose.md +80 -0
- package/speculo/workflows/dev/H-diagnose/diagnose-fix.md +34 -0
- package/speculo/workflows/dev/H-diagnose/diagnose-guide.md +114 -0
- package/speculo/workflows/dev/H-diagnose/diagnose-loop.md +32 -0
- package/speculo/workflows/dev/H-diagnose/scripts/hitl-loop.template.sh +41 -0
- package/speculo/workflows/dev/I-to-issues/I-to-issues.md +70 -0
- package/speculo/workflows/dev/I-to-issues/issues-slices.md +31 -0
- package/speculo/workflows/dev/R-review/R-review.md +82 -0
- package/speculo/workflows/dev/R-review/review-setup.md +39 -0
- package/speculo/workflows/dev/R-review/review-two-axis.md +33 -0
- package/speculo/workflows/dev/_templates/diagnosis-template.md +19 -0
- package/speculo/workflows/dev/_templates/docs-sync-report-template.md +28 -0
- package/speculo/workflows/dev/_templates/docs-sync-state-template.json +14 -0
- package/speculo/workflows/dev/_templates/grill-context-map-template.md +19 -0
- package/speculo/workflows/dev/_templates/grill-decision-log-template.md +19 -0
- package/speculo/workflows/dev/_templates/issues-slices-template.md +19 -0
- package/speculo/workflows/dev/_templates/prd-overview-template.md +19 -0
- package/speculo/workflows/dev/_templates/prd-template.md +25 -0
- package/speculo/workflows/dev/_templates/regression-template.md +19 -0
- package/speculo/workflows/dev/_templates/review-report-template.md +16 -0
- package/speculo/workflows/dev/_templates/review-sources-template.md +24 -0
- package/speculo/workflows/dev/_templates/tdd-log-template.md +16 -0
- package/speculo/workflows/dev/_templates/tdd-plan-template.md +19 -0
- package/speculo/workflows/dev/_templates/tdd-verification-template.md +16 -0
- package/speculo/workflows/doc/00-INDEX.md +51 -0
- package/speculo/workflows/doc/B-writing-beats/B-writing-beats.md +77 -0
- package/speculo/workflows/doc/B-writing-beats/writing-beats-append.md +31 -0
- package/speculo/workflows/doc/B-writing-beats/writing-beats-options.md +29 -0
- package/speculo/workflows/doc/E-edit-article/E-edit-article.md +77 -0
- package/speculo/workflows/doc/E-edit-article/edit-article-plan.md +30 -0
- package/speculo/workflows/doc/E-edit-article/edit-article-rewrite.md +31 -0
- package/speculo/workflows/doc/F-writing-fragments/F-writing-fragments.md +78 -0
- package/speculo/workflows/doc/F-writing-fragments/writing-fragments-interview.md +32 -0
- package/speculo/workflows/doc/F-writing-fragments/writing-fragments-log.md +29 -0
- package/speculo/workflows/doc/S-writing-shape/S-writing-shape.md +79 -0
- package/speculo/workflows/doc/S-writing-shape/writing-shape-block.md +32 -0
- package/speculo/workflows/doc/S-writing-shape/writing-shape-opening.md +27 -0
- package/speculo/workflows/doc/_templates/edit-article-plan-template.md +24 -0
- package/speculo/workflows/doc/_templates/edit-article-template.md +6 -0
- package/speculo/workflows/doc/_templates/writing-article-template.md +6 -0
- package/speculo/workflows/doc/_templates/writing-beat-options-template.md +20 -0
- package/speculo/workflows/doc/_templates/writing-fragments-template.md +6 -0
- package/speculo/workflows/doc/_templates/writing-interview-log-template.md +20 -0
- package/speculo/workflows/doc/_templates/writing-shape-log-template.md +24 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Diagnose Loop Phase
|
|
2
|
+
|
|
3
|
+
## 输入
|
|
4
|
+
|
|
5
|
+
- 用户描述的失败现象、日志、trace、性能症状或失败测试
|
|
6
|
+
- 可运行的测试、脚本、服务、CLI 或浏览器自动化
|
|
7
|
+
- `H-diagnose.md` 中的内置诊断指引
|
|
8
|
+
- 同目录 `diagnose-guide.md`
|
|
9
|
+
|
|
10
|
+
## 产物
|
|
11
|
+
|
|
12
|
+
- `.speculo/dev/<change>/diagnosis.md`,由 `../_templates/diagnosis-template.md` 填写
|
|
13
|
+
|
|
14
|
+
## 填写引导
|
|
15
|
+
|
|
16
|
+
1. 遵循 `H-diagnose.md` 的内置诊断指引,并按需读取 `diagnose-guide.md`。
|
|
17
|
+
2. 先建立快速、确定、可信的反馈循环。
|
|
18
|
+
3. 没有反馈循环时停止假设阶段,记录已尝试方法和需要用户提供的材料。
|
|
19
|
+
4. 复现后提出 3-5 个排序假设,并把每个假设写成可证伪预测。
|
|
20
|
+
5. 插桩必须映射到具体预测,并使用可清理的唯一调试标记。
|
|
21
|
+
6. 性能回退先建立基线测量,再二分或假设检验;先测量,后修复。
|
|
22
|
+
|
|
23
|
+
## 边界
|
|
24
|
+
|
|
25
|
+
- 不在未复现或无可信反馈循环时进入修复。
|
|
26
|
+
- 不把无关日志批量加入代码。
|
|
27
|
+
- 不默认保留一次性调试脚本。
|
|
28
|
+
|
|
29
|
+
## 完成准则
|
|
30
|
+
|
|
31
|
+
- `diagnosis.md` 无残留 `[TODO:]`
|
|
32
|
+
- `.status.json` 已记录 `feedback_loop` 和 `hypothesis_status`
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# 人在环路的复现循环。
|
|
3
|
+
# 复制此文件,编辑下方步骤,然后运行。
|
|
4
|
+
# agent 运行脚本;用户在终端中跟随提示操作。
|
|
5
|
+
#
|
|
6
|
+
# 用法:
|
|
7
|
+
# bash hitl-loop.template.sh
|
|
8
|
+
#
|
|
9
|
+
# 两个辅助函数:
|
|
10
|
+
# step "<指令>" → 显示指令,等待 Enter
|
|
11
|
+
# capture VAR "<问题>" → 显示问题,将回答读入 VAR
|
|
12
|
+
#
|
|
13
|
+
# 结束时,捕获的值以 KEY=VALUE 格式打印供 agent 解析。
|
|
14
|
+
|
|
15
|
+
set -euo pipefail
|
|
16
|
+
|
|
17
|
+
step() {
|
|
18
|
+
printf '\n>>> %s\n' "$1"
|
|
19
|
+
read -r -p " [完成后按 Enter] " _
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
capture() {
|
|
23
|
+
local var="$1" question="$2" answer
|
|
24
|
+
printf '\n>>> %s\n' "$question"
|
|
25
|
+
read -r -p " > " answer
|
|
26
|
+
printf -v "$var" '%s' "$answer"
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
# --- edit below ---------------------------------------------------------
|
|
30
|
+
|
|
31
|
+
step "在浏览器中打开 http://localhost:3000 并登录。"
|
|
32
|
+
|
|
33
|
+
capture ERRORED "点击「导出」按钮。是否报错了?(y/n)"
|
|
34
|
+
|
|
35
|
+
capture ERROR_MSG "粘贴错误信息(或输入 'none'):"
|
|
36
|
+
|
|
37
|
+
# --- edit above ---------------------------------------------------------
|
|
38
|
+
|
|
39
|
+
printf '\n--- 已捕获 ---\n'
|
|
40
|
+
printf 'ERRORED=%s\n' "$ERRORED"
|
|
41
|
+
printf 'ERROR_MSG=%s\n' "$ERROR_MSG"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: dev/I-to-issues
|
|
3
|
+
category: dev
|
|
4
|
+
name: To Issues
|
|
5
|
+
description: 将 PRD、计划或诊断结论拆成可独立接手的垂直切片 issue
|
|
6
|
+
keywords: [issues, slices, vertical, AFK, HITL, 切片]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# To Issues 工作流执行指引
|
|
10
|
+
|
|
11
|
+
本工作流是 `dev/I` 入口。它既可独立执行,也可嵌入 `dev/01`、`dev/02`、`dev/03` 或 `dev/H`,用于生成垂直切片。垂直切片和 issue 发布指引已内置在本 workflow 目录中。
|
|
12
|
+
|
|
13
|
+
## 内置指引
|
|
14
|
+
|
|
15
|
+
使用垂直切片(示踪弹)将计划、规格或 PRD 分解为可独立接手的 issue。
|
|
16
|
+
|
|
17
|
+
### 输入
|
|
18
|
+
|
|
19
|
+
- PRD、计划、设计记录、bug 诊断结论或当前对话上下文
|
|
20
|
+
- 用户明确提供的 issue tracker 配置和标签词汇表(如果存在)
|
|
21
|
+
- 当前 change 目录:`.speculo/dev/<change>/`
|
|
22
|
+
|
|
23
|
+
### 输出
|
|
24
|
+
|
|
25
|
+
- `.speculo/dev/<change>/slices.md`
|
|
26
|
+
- 垂直切片清单、依赖关系、HITL/AFK 标记和验收标准
|
|
27
|
+
- 可选的外部 issue 引用
|
|
28
|
+
|
|
29
|
+
### 垂直切片规则
|
|
30
|
+
|
|
31
|
+
- 每个切片交付一条贯穿所有层(schema、API、UI、测试)的窄但完整的路径。
|
|
32
|
+
- 完成的切片可独立演示或验证。
|
|
33
|
+
- 优先选择多个薄切片而非少数厚切片。
|
|
34
|
+
|
|
35
|
+
切片可以是 `HITL` 或 `AFK`。HITL 切片需要人类交互,例如架构决策或设计评审。AFK 切片可以在无人类交互的情况下实现和合并。尽可能优先选择 AFK 而非 HITL。
|
|
36
|
+
|
|
37
|
+
默认只生成本地切片计划。只有 tracker 已配置且用户明确要求时,才发布外部 issue;发布时按依赖顺序发布,以便被阻塞字段引用真实 issue 标识符。不要关闭或修改任何父级 issue。
|
|
38
|
+
|
|
39
|
+
## 阶段
|
|
40
|
+
|
|
41
|
+
### 1. Slice Issues — 垂直切片分解
|
|
42
|
+
- 规范:`issues-slices.md`
|
|
43
|
+
- 模板:`../_templates/issues-slices-template.md`
|
|
44
|
+
- 产物:`slices.md`
|
|
45
|
+
- 完成准则:
|
|
46
|
+
- 每个切片都有标题、类型、依赖、覆盖的用户故事或来源
|
|
47
|
+
- 已确认粒度、依赖和 HITL/AFK 标记
|
|
48
|
+
- `slices.md` 无残留 `[TODO:]`
|
|
49
|
+
|
|
50
|
+
## 依赖
|
|
51
|
+
|
|
52
|
+
- 软依赖:`../02-prd/02-prd.md`,scope: same-change
|
|
53
|
+
- 硬依赖:无;可从用户计划、issue、诊断结论或 PRD 直接进入
|
|
54
|
+
|
|
55
|
+
## 状态扩展字段
|
|
56
|
+
|
|
57
|
+
本工作流需在同 change 的 `.status.json` 追加:
|
|
58
|
+
|
|
59
|
+
- `dev_entry` (string) — 固定为 `dev/I`
|
|
60
|
+
- `embedded_guides` (array) — 包含 `to-issues`
|
|
61
|
+
- `slice_count` (number) — 切片数量
|
|
62
|
+
- `hitl_slice_count` (number) — HITL 切片数量
|
|
63
|
+
- `published_issue_refs` (array) — 已发布 issue 引用,默认空
|
|
64
|
+
- `issue_tracker_mode` (disabled | local-only | publish-requested | published) — issue tracker 使用状态
|
|
65
|
+
|
|
66
|
+
## 完成与状态更新
|
|
67
|
+
|
|
68
|
+
- 默认只生成本地 `slices.md`。
|
|
69
|
+
- 只有 tracker 已配置且用户明确要求时才发布外部 issue。
|
|
70
|
+
- 完成后不自动完成 change;通常移交 `../03-tdd/03-tdd.md`。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Slice Issues Phase
|
|
2
|
+
|
|
3
|
+
## 输入
|
|
4
|
+
|
|
5
|
+
- `prd.md`、`decision-log.md`、`diagnosis.md`、现有 issue 或用户计划
|
|
6
|
+
- 可选 issue tracker 配置和标签词汇表
|
|
7
|
+
- `I-to-issues.md` 中的内置切片指引
|
|
8
|
+
|
|
9
|
+
## 产物
|
|
10
|
+
|
|
11
|
+
- `.speculo/dev/<change>/slices.md`,由 `../_templates/issues-slices-template.md` 填写
|
|
12
|
+
|
|
13
|
+
## 填写引导
|
|
14
|
+
|
|
15
|
+
1. 遵循 `I-to-issues.md` 的内置切片指引。
|
|
16
|
+
2. 先本地起草切片,按垂直切片原则覆盖端到端行为。
|
|
17
|
+
3. 用编号列表向用户确认粒度、依赖、HITL/AFK 标记和是否需要发布。
|
|
18
|
+
4. 按依赖顺序记录切片;发布外部 issue 时也按依赖顺序发布。
|
|
19
|
+
5. 每个切片展示标题、类型、被哪些切片阻塞、覆盖的用户故事或来源。
|
|
20
|
+
6. 迭代直到用户批准分解;未批准前不发布外部 issue。
|
|
21
|
+
|
|
22
|
+
## 边界
|
|
23
|
+
|
|
24
|
+
- 不关闭或修改父级 issue。
|
|
25
|
+
- 不默认发布到外部 tracker。
|
|
26
|
+
- 不写实现代码。
|
|
27
|
+
|
|
28
|
+
## 完成准则
|
|
29
|
+
|
|
30
|
+
- `slices.md` 无残留 `[TODO:]`
|
|
31
|
+
- `.status.json` 已记录 `slice_count`、`hitl_slice_count` 和 `issue_tracker_mode`
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: dev/R-review
|
|
3
|
+
category: dev
|
|
4
|
+
name: Review
|
|
5
|
+
description: 从固定比较点开始,按 Standards 与 Spec 两个维度审查当前 diff
|
|
6
|
+
keywords: [review, diff, standards, spec, pr, 审查]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Review 工作流执行指引
|
|
10
|
+
|
|
11
|
+
本工作流是 `dev/R` 入口,用于审查 `HEAD` 与用户提供的固定点之间的 diff。审查结果必须分成两个并行维度:Standards 与 Spec,避免一个维度掩盖另一个维度。
|
|
12
|
+
|
|
13
|
+
## 内置指引
|
|
14
|
+
|
|
15
|
+
### 何时使用
|
|
16
|
+
|
|
17
|
+
当用户想审查分支、PR、进行中的变更,或要求 `review since <fixed-point>` 时使用。
|
|
18
|
+
|
|
19
|
+
### 输入
|
|
20
|
+
|
|
21
|
+
- 固定比较点:commit SHA、分支名、tag、`main`、`HEAD~5` 等
|
|
22
|
+
- 当前 change 目录:`.speculo/dev/<change>/`
|
|
23
|
+
- 可发现的标准来源:`.speculo/.config/RULES.md`、`.speculo/.config/context/`、`.speculo/.config/adr/`、`AGENTS.md`、`CONTRIBUTING.md`、配置文件等
|
|
24
|
+
- spec 来源:当前 change 的 PRD、slices、用户提供路径、commit message 中引用的 issue 或其他规格文档
|
|
25
|
+
|
|
26
|
+
### 输出
|
|
27
|
+
|
|
28
|
+
- `.speculo/dev/<change>/review-sources.md`
|
|
29
|
+
- `.speculo/dev/<change>/review-report.md`
|
|
30
|
+
- Standards 与 Spec 两个分区的 findings,不合并、不重排
|
|
31
|
+
|
|
32
|
+
### 执行原则
|
|
33
|
+
|
|
34
|
+
用户说的任何东西都是固定点。若用户没有指定固定点,先询问固定点;拿到前不要继续。
|
|
35
|
+
|
|
36
|
+
比较命令使用三点语法:`git diff <fixed-point>...HEAD`。同时记录 `git log <fixed-point>..HEAD --oneline`。
|
|
37
|
+
|
|
38
|
+
Standards 维度检查 diff 是否违反仓库已记录标准;Spec 维度检查 diff 是否忠实实现来源 issue、PRD 或 spec。若缺少 spec,Spec 维度跳过并报告 `no spec available`。
|
|
39
|
+
|
|
40
|
+
如果环境支持并行子代理,Standards 与 Spec 审查应并行执行;如果不支持,按两个独立上下文顺序执行,并在报告中保持分离。
|
|
41
|
+
|
|
42
|
+
## 阶段
|
|
43
|
+
|
|
44
|
+
### 1. Review Setup — 固定点与来源收集
|
|
45
|
+
- 规范:`review-setup.md`
|
|
46
|
+
- 模板:`../_templates/review-sources-template.md`
|
|
47
|
+
- 产物:`review-sources.md`
|
|
48
|
+
- 完成准则:
|
|
49
|
+
- 已记录 fixed point、diff 命令、commit 列表
|
|
50
|
+
- 已列出 standards 来源和 spec 来源,或记录 spec 缺失
|
|
51
|
+
- `review-sources.md` 无残留 `[TODO:]`
|
|
52
|
+
|
|
53
|
+
### 2. Two-Axis Review — 双维度审查
|
|
54
|
+
- 规范:`review-two-axis.md`
|
|
55
|
+
- 模板:`../_templates/review-report-template.md`
|
|
56
|
+
- 产物:`review-report.md`
|
|
57
|
+
- 完成准则:
|
|
58
|
+
- Standards 与 Spec 分区独立呈现
|
|
59
|
+
- 每条 finding 有文件/行或 hunk 依据,以及对应标准或 spec 引用
|
|
60
|
+
- `review-report.md` 无残留 `[TODO:]`
|
|
61
|
+
|
|
62
|
+
## 依赖
|
|
63
|
+
|
|
64
|
+
- 软依赖:`../02-prd/02-prd.md` 或 `../I-to-issues/I-to-issues.md`,scope: same-change
|
|
65
|
+
- 硬依赖:无;用户提供 fixed point 即可进入
|
|
66
|
+
|
|
67
|
+
## 状态扩展字段
|
|
68
|
+
|
|
69
|
+
本工作流需在同 change 的 `.status.json` 追加:
|
|
70
|
+
|
|
71
|
+
- `dev_entry` (string) — 固定为 `dev/R`
|
|
72
|
+
- `review_fixed_point` (string) — 用户提供的比较点
|
|
73
|
+
- `review_diff_command` (string) — 实际使用的 diff 命令
|
|
74
|
+
- `standards_sources` (array) — Standards 审查读取的规则来源
|
|
75
|
+
- `spec_sources` (array) — Spec 审查读取的规格来源
|
|
76
|
+
- `review_status` (collecting | reviewing | completed | blocked) — 审查状态
|
|
77
|
+
|
|
78
|
+
## 完成与状态更新
|
|
79
|
+
|
|
80
|
+
- 进入每个 phase 时更新 `current_phase` 和 `phase_history`。
|
|
81
|
+
- 完成 setup 后写入 fixed point、diff 命令和来源清单。
|
|
82
|
+
- 完成报告后更新 `review_status`,但不自动完成 change;是否进入修复或收尾由用户决定。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Review Setup Phase
|
|
2
|
+
|
|
3
|
+
## 输入
|
|
4
|
+
|
|
5
|
+
- 用户提供的 fixed point;如果缺失,先询问
|
|
6
|
+
- 当前 git 仓库
|
|
7
|
+
- 当前 change 目录:`.speculo/dev/<change>/`
|
|
8
|
+
|
|
9
|
+
## 产物
|
|
10
|
+
|
|
11
|
+
- `.speculo/dev/<change>/review-sources.md`,由 `../_templates/review-sources-template.md` 填写
|
|
12
|
+
|
|
13
|
+
## 填写引导
|
|
14
|
+
|
|
15
|
+
1. 沿用用户提供的 fixed point,不自行替换为其他分支。
|
|
16
|
+
2. 记录 `git diff <fixed-point>...HEAD` 和 `git log <fixed-point>..HEAD --oneline`。
|
|
17
|
+
3. 寻找 spec 来源,顺序为:
|
|
18
|
+
- commit message 中的 issue / PR 引用
|
|
19
|
+
- 用户作为参数传入的路径
|
|
20
|
+
- `.speculo/dev/<change>/prd.md`、`slices.md`、`decision-log.md`
|
|
21
|
+
- 仓库中与分支名或功能匹配的规格文档
|
|
22
|
+
4. 寻找 standards 来源,常见路径包括:
|
|
23
|
+
- `.speculo/.config/RULES.md`
|
|
24
|
+
- `.speculo/.config/context/`
|
|
25
|
+
- `.speculo/.config/adr/`
|
|
26
|
+
- `AGENTS.md`、`CONTRIBUTING.md`
|
|
27
|
+
- `.editorconfig`、`eslint.config.*`、`biome.json`、`prettier.config.*`、`tsconfig.json`
|
|
28
|
+
5. 机器强制的标准只记录来源,不重复检查工具已覆盖的内容。
|
|
29
|
+
|
|
30
|
+
## 边界
|
|
31
|
+
|
|
32
|
+
- 不开始主观审查,先完成来源收集。
|
|
33
|
+
- 找不到 spec 时不要编造;记录 `no spec available`。
|
|
34
|
+
|
|
35
|
+
## 完成准则
|
|
36
|
+
|
|
37
|
+
- fixed point、diff 命令、commit 列表已记录
|
|
38
|
+
- standards 与 spec 来源已记录
|
|
39
|
+
- `.status.json` 的 review setup 字段已更新
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Two-Axis Review Phase
|
|
2
|
+
|
|
3
|
+
## 输入
|
|
4
|
+
|
|
5
|
+
- `.speculo/dev/<change>/review-sources.md`
|
|
6
|
+
- `git diff <fixed-point>...HEAD`
|
|
7
|
+
- standards 来源文件
|
|
8
|
+
- spec 来源文件或 `no spec available`
|
|
9
|
+
|
|
10
|
+
## 产物
|
|
11
|
+
|
|
12
|
+
- `.speculo/dev/<change>/review-report.md`,由 `../_templates/review-report-template.md` 填写
|
|
13
|
+
|
|
14
|
+
## 填写引导
|
|
15
|
+
|
|
16
|
+
1. Standards 审查:阅读标准文档,再阅读 diff;报告违反已记录标准的位置,引用标准来源。
|
|
17
|
+
2. Spec 审查:阅读 spec,再阅读 diff;报告缺失需求、范围蔓延、看似实现但有问题的需求,引用 spec 原文。
|
|
18
|
+
3. 如果可用,使用两个并行子代理分别审查 Standards 与 Spec。
|
|
19
|
+
4. 如果没有子代理,分两个独立小节顺序执行,不让 Standards 结论影响 Spec 结论。
|
|
20
|
+
5. 最终报告在 `## Standards` 和 `## Spec` 下并排呈现,可以轻微清理措辞,但不要合并或重新排序 findings。
|
|
21
|
+
6. 最后一行总结每个维度的 findings 数量和最严重单个问题。
|
|
22
|
+
|
|
23
|
+
## 边界
|
|
24
|
+
|
|
25
|
+
- 不修复代码。
|
|
26
|
+
- 不把两个维度混成一个优先级列表。
|
|
27
|
+
- 缺少 spec 时跳过 Spec 审查,并明确写 `no spec available`。
|
|
28
|
+
|
|
29
|
+
## 完成准则
|
|
30
|
+
|
|
31
|
+
- `review-report.md` 已按 Standards / Spec 分区
|
|
32
|
+
- 每条 finding 有明确依据
|
|
33
|
+
- `.status.json` 的 `review_status` 已更新
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
> **服务工作流:** `../H-diagnose/H-diagnose.md`
|
|
2
|
+
> **产物文件名:** `diagnosis.md`
|
|
3
|
+
|
|
4
|
+
# Diagnosis
|
|
5
|
+
|
|
6
|
+
## 用户症状
|
|
7
|
+
[TODO: 描述用户报告的 Bug、异常、失败测试或性能回退。]
|
|
8
|
+
|
|
9
|
+
## 反馈循环
|
|
10
|
+
[TODO: 描述已建立的反馈循环、运行方式、速度、稳定性和信号质量。]
|
|
11
|
+
|
|
12
|
+
## 复现结果
|
|
13
|
+
[TODO: 记录复现步骤、失败输出、频率和是否匹配用户症状。]
|
|
14
|
+
|
|
15
|
+
## 假设列表
|
|
16
|
+
[TODO: 列出 3-5 个排序假设,每个假设包含可证伪预测。]
|
|
17
|
+
|
|
18
|
+
## 插桩结果
|
|
19
|
+
[TODO: 记录每个探针对应的假设、观察结果和结论。]
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
> **服务工作流:** `../D-docs-sync/D-docs-sync.md`
|
|
2
|
+
> **产物文件名:** `docs-sync-report.md`
|
|
3
|
+
|
|
4
|
+
# Docs Sync Report
|
|
5
|
+
|
|
6
|
+
## Range
|
|
7
|
+
|
|
8
|
+
[TODO: 记录 `<LAST_SYNC_SHA>..HEAD`、commit 数、文件数和 shortstat。]
|
|
9
|
+
|
|
10
|
+
## Diff Summary
|
|
11
|
+
|
|
12
|
+
[TODO: 记录 git log、name-status 和路径分组摘要。]
|
|
13
|
+
|
|
14
|
+
## Mapping
|
|
15
|
+
|
|
16
|
+
[TODO: 说明哪些变更映射到哪些 tracked docs。]
|
|
17
|
+
|
|
18
|
+
## Synced Docs
|
|
19
|
+
|
|
20
|
+
[TODO: 列出实际修改的文档和一句话说明;空同步时写 `[]`。]
|
|
21
|
+
|
|
22
|
+
## Verification
|
|
23
|
+
|
|
24
|
+
[TODO: 记录运行的校验命令、结果,或无法运行原因。]
|
|
25
|
+
|
|
26
|
+
## State
|
|
27
|
+
|
|
28
|
+
[TODO: 记录 `.speculo/dev/docs-sync-state.json` 的 old/new baseline。]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"skill": "docs-sync",
|
|
4
|
+
"state_path": ".speculo/dev/docs-sync-state.json",
|
|
5
|
+
"tracked_docs": [],
|
|
6
|
+
"last_sync_sha": null,
|
|
7
|
+
"last_sync_short": null,
|
|
8
|
+
"last_sync_commit_subject": null,
|
|
9
|
+
"last_sync_commit_date": null,
|
|
10
|
+
"last_sync_run_at": null,
|
|
11
|
+
"previous_sync_sha": null,
|
|
12
|
+
"total_syncs": 0,
|
|
13
|
+
"synced_docs": []
|
|
14
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
> **服务工作流:** `../01-grill-with-docs/01-grill-with-docs.md`
|
|
2
|
+
> **产物文件名:** `context-map.md`
|
|
3
|
+
|
|
4
|
+
# Context Map
|
|
5
|
+
|
|
6
|
+
## 变更目标
|
|
7
|
+
[TODO: 用 1-2 段描述用户要澄清或改变的目标。]
|
|
8
|
+
|
|
9
|
+
## 已读取上下文
|
|
10
|
+
[TODO: 列出已读取的 CONTEXT、ADR、配置、代码路径和每个来源提供的关键事实。]
|
|
11
|
+
|
|
12
|
+
## 领域术语
|
|
13
|
+
[TODO: 列出已确认术语、冲突术语、模糊术语和需要用户确认的问题。]
|
|
14
|
+
|
|
15
|
+
## 决策线索
|
|
16
|
+
[TODO: 列出可能需要用户决策的分支、代码现实约束和 ADR 候选。]
|
|
17
|
+
|
|
18
|
+
## 下一阶段问题
|
|
19
|
+
[TODO: 按优先级列出 Decision Grill 阶段应该首先追问的问题。]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
> **服务工作流:** `../01-grill-with-docs/01-grill-with-docs.md`
|
|
2
|
+
> **产物文件名:** `decision-log.md`
|
|
3
|
+
|
|
4
|
+
# Decision Log
|
|
5
|
+
|
|
6
|
+
## 已确认决策
|
|
7
|
+
[TODO: 列出已确认的术语、范围、设计或产品决策,以及用户确认依据。]
|
|
8
|
+
|
|
9
|
+
## 推荐但未确认
|
|
10
|
+
[TODO: 列出 agent 推荐答案、推荐理由和仍需用户确认的点。]
|
|
11
|
+
|
|
12
|
+
## 开放问题
|
|
13
|
+
[TODO: 列出被阻塞的问题、缺失信息和下一步需要谁提供什么。]
|
|
14
|
+
|
|
15
|
+
## CONTEXT 更新
|
|
16
|
+
[TODO: 列出已写入、待写入或不需要写入 CONTEXT.md 的术语项。]
|
|
17
|
+
|
|
18
|
+
## ADR 候选
|
|
19
|
+
[TODO: 列出符合 ADR 条件的决策、备选方案和是否已获用户确认。]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
> **服务工作流:** `../I-to-issues/I-to-issues.md`
|
|
2
|
+
> **产物文件名:** `slices.md`
|
|
3
|
+
|
|
4
|
+
# Vertical Slices
|
|
5
|
+
|
|
6
|
+
## 来源
|
|
7
|
+
[TODO: 记录切片来源,如 PRD、计划、诊断结论、issue 或用户请求。]
|
|
8
|
+
|
|
9
|
+
## 切片列表
|
|
10
|
+
[TODO: 用编号列表列出每个切片的标题、HITL/AFK 类型、依赖和覆盖的用户故事。]
|
|
11
|
+
|
|
12
|
+
## 依赖顺序
|
|
13
|
+
[TODO: 按可执行顺序列出切片,并说明阻塞关系。]
|
|
14
|
+
|
|
15
|
+
## 用户确认
|
|
16
|
+
[TODO: 记录用户对粒度、依赖、HITL/AFK 标记和发布策略的确认。]
|
|
17
|
+
|
|
18
|
+
## 发布记录
|
|
19
|
+
[TODO: 若发布到外部 issue tracker,记录 issue 引用;否则写明 local-only。]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
> **服务工作流:** `../02-prd/02-prd.md`
|
|
2
|
+
> **产物文件名:** `overview.md`
|
|
3
|
+
|
|
4
|
+
# Overview
|
|
5
|
+
|
|
6
|
+
## 目标区域
|
|
7
|
+
[TODO: 描述本次变更涉及的业务区域、用户目标和现有入口。]
|
|
8
|
+
|
|
9
|
+
## 模块全景
|
|
10
|
+
[TODO: 列出相关模块、调用者、下游依赖和数据流向。]
|
|
11
|
+
|
|
12
|
+
## 现有行为
|
|
13
|
+
[TODO: 描述当前代码或产品已经支持什么,以及关键约束。]
|
|
14
|
+
|
|
15
|
+
## 缺失能力
|
|
16
|
+
[TODO: 描述为满足用户目标仍缺少的能力或行为。]
|
|
17
|
+
|
|
18
|
+
## 风险与未知点
|
|
19
|
+
[TODO: 列出需要在 PRD 或实现前解决的风险和未知点。]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
> **服务工作流:** `../02-prd/02-prd.md`
|
|
2
|
+
> **产物文件名:** `prd.md`
|
|
3
|
+
|
|
4
|
+
# PRD
|
|
5
|
+
|
|
6
|
+
## Problem Statement
|
|
7
|
+
[TODO: 从用户视角描述当前问题、受影响对象和为什么现在需要解决。]
|
|
8
|
+
|
|
9
|
+
## Solution
|
|
10
|
+
[TODO: 从用户视角描述目标方案和成功后的行为。]
|
|
11
|
+
|
|
12
|
+
## User Stories
|
|
13
|
+
[TODO: 用编号列表列出用户故事,格式为 "As an <actor>, I want <feature>, so that <benefit>"。]
|
|
14
|
+
|
|
15
|
+
## Implementation Decisions
|
|
16
|
+
[TODO: 列出模块边界、接口决策、架构选择、数据模型或 API 合同,不写易过时的具体文件路径。]
|
|
17
|
+
|
|
18
|
+
## Testing Decisions
|
|
19
|
+
[TODO: 描述要测试的公共行为、目标模块、测试层级和可参考的既有测试。]
|
|
20
|
+
|
|
21
|
+
## Out of Scope
|
|
22
|
+
[TODO: 明确本 PRD 不包含的功能、迁移、优化或发布动作。]
|
|
23
|
+
|
|
24
|
+
## Further Notes
|
|
25
|
+
[TODO: 记录后续切片、依赖、风险或需要用户确认的事项。]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
> **服务工作流:** `../H-diagnose/H-diagnose.md`
|
|
2
|
+
> **产物文件名:** `regression.md`
|
|
3
|
+
|
|
4
|
+
# Regression
|
|
5
|
+
|
|
6
|
+
## 确认原因
|
|
7
|
+
[TODO: 记录最终确认的根因和为什么其他假设被排除。]
|
|
8
|
+
|
|
9
|
+
## 回归测试
|
|
10
|
+
[TODO: 描述新增回归测试;若无法添加,记录缺少正确接缝的原因。]
|
|
11
|
+
|
|
12
|
+
## 修复摘要
|
|
13
|
+
[TODO: 描述修复行为、用户可见影响和不包含的范围。]
|
|
14
|
+
|
|
15
|
+
## 重新验证
|
|
16
|
+
[TODO: 记录原始反馈循环和相关测试的重新运行结果。]
|
|
17
|
+
|
|
18
|
+
## 清理与后续
|
|
19
|
+
[TODO: 记录调试残留清理、架构改善建议和后续 issue。]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
> **服务工作流:** `../R-review/R-review.md`
|
|
2
|
+
> **产物文件名:** `review-report.md`
|
|
3
|
+
|
|
4
|
+
# Review Report
|
|
5
|
+
|
|
6
|
+
## Standards
|
|
7
|
+
|
|
8
|
+
[TODO: 按 Standards 维度列出 findings;引用文件/行或 hunk,以及对应标准来源。]
|
|
9
|
+
|
|
10
|
+
## Spec
|
|
11
|
+
|
|
12
|
+
[TODO: 按 Spec 维度列出 findings;引用 spec 来源。若缺失 spec,写 `no spec available`。]
|
|
13
|
+
|
|
14
|
+
## Summary
|
|
15
|
+
|
|
16
|
+
[TODO: 一行总结每个维度 findings 数量和最严重单个问题。]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
> **服务工作流:** `../R-review/R-review.md`
|
|
2
|
+
> **产物文件名:** `review-sources.md`
|
|
3
|
+
|
|
4
|
+
# Review Sources
|
|
5
|
+
|
|
6
|
+
## Fixed Point
|
|
7
|
+
|
|
8
|
+
[TODO: 记录用户提供的 fixed point。]
|
|
9
|
+
|
|
10
|
+
## Diff Command
|
|
11
|
+
|
|
12
|
+
[TODO: 记录 `git diff <fixed-point>...HEAD`。]
|
|
13
|
+
|
|
14
|
+
## Commits
|
|
15
|
+
|
|
16
|
+
[TODO: 粘贴或摘要 `git log <fixed-point>..HEAD --oneline`。]
|
|
17
|
+
|
|
18
|
+
## Standards Sources
|
|
19
|
+
|
|
20
|
+
[TODO: 列出已发现的规则、上下文、ADR、贡献指南或配置文件。]
|
|
21
|
+
|
|
22
|
+
## Spec Sources
|
|
23
|
+
|
|
24
|
+
[TODO: 列出 PRD、issue、slices、用户路径或 `no spec available`。]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
> **服务工作流:** `../03-tdd/03-tdd.md`
|
|
2
|
+
> **产物文件名:** `implementation-log.md`
|
|
3
|
+
|
|
4
|
+
# Implementation Log
|
|
5
|
+
|
|
6
|
+
## 循环记录
|
|
7
|
+
[TODO: 对每轮 RED/GREEN/REFACTOR 记录切片、行为、测试、实现摘要、重构摘要和验证结果。]
|
|
8
|
+
|
|
9
|
+
## 接口变化
|
|
10
|
+
[TODO: 记录对公共接口、用户可见行为或集成边界的实际变化。]
|
|
11
|
+
|
|
12
|
+
## 偏离计划
|
|
13
|
+
[TODO: 记录实现中发现的计划偏差、原因和用户确认情况。]
|
|
14
|
+
|
|
15
|
+
## 剩余切片
|
|
16
|
+
[TODO: 列出尚未完成的切片、阻塞原因或已明确取消的范围。]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
> **服务工作流:** `../03-tdd/03-tdd.md`
|
|
2
|
+
> **产物文件名:** `tdd-plan.md`
|
|
3
|
+
|
|
4
|
+
# TDD Plan
|
|
5
|
+
|
|
6
|
+
## 切片来源
|
|
7
|
+
[TODO: 记录来自 PRD、slices、diagnosis 还是用户直接请求。]
|
|
8
|
+
|
|
9
|
+
## 公共接口
|
|
10
|
+
[TODO: 描述需要新增或修改的公共接口、命令、页面、API 或模块边界。]
|
|
11
|
+
|
|
12
|
+
## 行为优先级
|
|
13
|
+
[TODO: 列出最重要的可观察行为和测试优先级。]
|
|
14
|
+
|
|
15
|
+
## 第一个 Tracing Slice
|
|
16
|
+
[TODO: 描述第一条端到端薄切片、失败信号和成功判据。]
|
|
17
|
+
|
|
18
|
+
## 验证命令
|
|
19
|
+
[TODO: 列出应运行的测试、类型检查、lint 或构建命令。]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
> **服务工作流:** `../03-tdd/03-tdd.md`
|
|
2
|
+
> **产物文件名:** `verification.md`
|
|
3
|
+
|
|
4
|
+
# Verification
|
|
5
|
+
|
|
6
|
+
## 已运行命令
|
|
7
|
+
[TODO: 列出实际运行的测试、类型检查、lint 或构建命令及结果。]
|
|
8
|
+
|
|
9
|
+
## 未运行命令
|
|
10
|
+
[TODO: 列出未运行但相关的命令,以及原因。]
|
|
11
|
+
|
|
12
|
+
## 调试残留检查
|
|
13
|
+
[TODO: 记录临时日志、DEBUG 标记、一次性脚本和推测性功能的清理结果。]
|
|
14
|
+
|
|
15
|
+
## 完成结论
|
|
16
|
+
[TODO: 说明 change 是否已完成、仍被阻塞或需要后续 review/handoff。]
|