@namewta/speculo 1.0.17 → 1.0.19
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/package.json +5 -2
- package/template/canonical/canonical-specdev-goal-plan.md +2 -2
- package/template/canonical/canonical-specdev-grill-with-docs.md +2 -2
- package/template/canonical/canonical-specdev-spec.md +11 -136
- package/template/canonical/canonical-specdev-tickets.md +2 -2
- package/template/canonical/canonical-specdev-wayfinder.md +2 -2
- package/template/commands/handoff.md +16 -0
- package/template/commands/retro.md +1 -1
- package/template/skills/github-npm-ops/references/issue-pr-triage.md +8 -0
- package/template/skills/speculo-retro/references/entry-procedure.md +19 -3
- package/template/skills/speculo-retro/references/issue-drafting-sop.md +3 -1
- package/template/workflows/learning/A-archive/A-archive.md +2 -5
- package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +2 -5
- package/template/workflows/learning/C-consolidate/C-consolidate.md +2 -5
- package/template/workflows/learning/G-goal/G-goal.md +5 -23
- package/template/workflows/learning/H-homework/H-homework.md +2 -5
- package/template/workflows/learning/I-init-setup/I-init-setup.md +4 -9
- package/template/workflows/learning/L-lesson/L-lesson.md +2 -5
- package/template/workflows/learning/Q-question/Q-question.md +16 -8
- package/template/workflows/learning/Q-question/inquiry-template.md +2 -0
- package/template/workflows/learning/Q-question/tools/validate-inquiry.mjs +112 -0
- package/template/workflows/learning/R-review/R-review.md +3 -6
- package/template/workflows/learning/README.md +2 -2
- package/template/workflows/learning/common/rules/knowledge-organization.md +1 -1
- package/template/workflows/learning/common/rules/mastery-policy.md +1 -1
- package/template/workflows/learning/common/skills/socratic-questioning/SKILL.md +1 -1
- package/template/workflows/ops/D-project-deploy/D-project-deploy.md +15 -9
- package/template/workflows/ops/H-host-manage/H-host-manage.md +14 -21
- package/template/workflows/ops/H-host-manage/references/host-profiles.md +21 -0
- package/template/workflows/ops/I-initialize/I-initialize.md +7 -7
- package/template/workflows/ops/INDEX.md +20 -16
- package/template/workflows/ops/README.md +29 -73
- package/template/workflows/ops/S-server-connect/S-server-connect.md +28 -0
- package/template/workflows/ops/V-inventory-view/V-inventory-view.md +30 -0
- package/template/workflows/ops/common/CAPABILITIES.md +22 -15
- package/template/workflows/ops/common/WORKSPACE-USAGE.md +78 -0
- package/template/workflows/ops/common/examples/task-host.example.json +64 -0
- package/template/workflows/ops/common/rules/activation-and-memory.md +5 -3
- package/template/workflows/ops/common/rules/deployment-layout.md +51 -0
- package/template/workflows/ops/common/rules/inventory-and-records.md +55 -0
- package/template/workflows/ops/common/rules/recovery.md +6 -0
- package/template/workflows/ops/common/rules/research-and-decisions.md +18 -0
- package/template/workflows/ops/common/rules/server-onboarding.md +27 -0
- package/template/workflows/ops/common/rules/workspace-and-authorization.md +39 -0
- package/template/workflows/ops/common/schemas/fleet-view.schema.json +487 -0
- package/template/workflows/ops/common/schemas/server-check.schema.json +95 -0
- package/template/workflows/ops/common/schemas/task-request.schema.json +138 -0
- package/template/workflows/ops/common/templates/FLEET.html +61 -0
- package/template/workflows/ops/common/tests/test_ops_workspace.mjs +246 -0
- package/template/workflows/ops/common/tools/ops.mjs +5 -3
- package/template/workflows/ops/common/tools/opslib/fleet.mjs +155 -0
- package/template/workflows/ops/common/tools/opslib/server_checks.mjs +149 -0
- package/template/workflows/ops/common/tools/opslib/tasks.mjs +313 -0
- package/template/workflows/ops/common/tools/opslib/workspace.mjs +107 -0
- package/template/workflows/ops/common/tools/opslib/workspace_cli.mjs +80 -0
- package/template/workflows/ops/common/tools/validate-ops.mjs +11 -8
- package/template/workflows/ops/manifest.json +43 -7
- package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +13 -68
- package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +11 -123
- package/template/workflows/person/S-steelman-deliberation/references/state-and-publication.md +86 -0
- package/template/workflows/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md +2 -17
- package/template/workflows/specdev/A-archive-and-consolidate/consolidation-interview.md +10 -1
- package/template/workflows/specdev/C-code-review/C-code-review.md +3 -14
- package/template/workflows/specdev/C-code-review/code-review-template.md +4 -0
- package/template/workflows/specdev/D-diagnose-bugs/D-diagnose-bugs.md +1 -23
- package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +2 -2
- package/template/workflows/specdev/I-implement/I-implement.md +2 -2
- package/template/workflows/specdev/I-implement/evidence-template.md +8 -0
- package/template/workflows/specdev/I-implement/references/implementation-procedure.md +8 -42
- package/template/workflows/specdev/I-init-setup/I-init-setup.md +16 -117
- package/template/workflows/specdev/I-init-setup/references/first-setup.md +46 -0
- package/template/workflows/specdev/L-learn-change/L-learn-change.md +11 -89
- package/template/workflows/specdev/L-learn-change/references/lesson-format.md +47 -0
- package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +2 -2
- package/template/workflows/specdev/P-prototype/P-prototype.md +2 -16
- package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +19 -57
- package/template/workflows/specdev/R-review-architecture/architecture-review-template.md +2 -1
- package/template/workflows/specdev/R-review-architecture/references/selected-design.md +23 -0
- package/template/workflows/specdev/R-review-architecture/review-rubric.md +2 -2
- package/template/workflows/specdev/README.md +4 -4
- package/template/workflows/specdev/S-spec/S-spec.md +11 -138
- package/template/workflows/specdev/T-tickets/T-tickets.md +2 -2
- package/template/workflows/specdev/T-triage/T-triage.md +21 -136
- package/template/workflows/specdev/T-triage/intake-protocol.md +19 -0
- package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +2 -2
- package/template/workflows/specdev/common/rules/deployment-handoff.md +23 -0
- package/template/workflows/specdev/common/skills/code-review/SKILL.md +5 -4
- package/template/workflows/specdev/common/skills/code-review/references/result-reuse.md +15 -0
|
@@ -9,152 +9,37 @@ keywords: [triage, 摄入, import, issue, reconcile, publish, capture, close,
|
|
|
9
9
|
|
|
10
10
|
# 请求分诊
|
|
11
11
|
|
|
12
|
-
>
|
|
12
|
+
激活后先读 `<Path>{roots.workflows}/specdev/README.md</Path>` 与 `<Path>{roots.workflows}/specdev/common/rules/activation-and-memory.md</Path>`。Triage 只管理来源冻结和远程投影;已清晰的本地请求直接进入适用 Work,不为路由创建来源工件。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
## 选择模式
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
只读取选中模式的完整协议;协议中的授权、脱敏、去重、模板和失败恢复均为该模式的必需步骤。
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
| 模式与触发条件 | 必读协议 | 唯一产物/结果 |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| **intake**:冻结外部来源或用户要求来源审计 | `<Path>{roots.workflows}/specdev/T-triage/intake-protocol.md</Path>` | change 内 source、triage;分类、风险与下一 Work |
|
|
21
|
+
| **reconcile**:已完成 change 要通知并关闭支持的来源 Issue | `<Path>{roots.workflows}/specdev/T-triage/reconcile-protocol.md</Path>` | `external_action` 与远程完成回执 |
|
|
22
|
+
| **publish**:已完成 change 的 Ticket 要记入 GitHub | `<Path>{roots.workflows}/specdev/T-triage/publish-protocol.md</Path>` | `<Path>{roots.state}/specdev/changes/{change}/publish.md</Path>` 账本;标签 `specdev:published` |
|
|
23
|
+
| **capture**:尚未成 Change,只先记录仍 open 的记事项 | `<Path>{roots.workflows}/specdev/T-triage/capture-protocol.md</Path>` | workspace capture 账本;标签 `specdev:captured`;不关闭 Issue |
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
开发唯一权威始终是本地 source、triage、Spec、Ticket、Map、Goal Plan、Evidence 与状态,GitHub 不是开发 tracker。`external_action` 只拥有来源 Issue,`publish_action` 只拥有票级投影,capture 行 state 只拥有 inbox 记录;三者不互写。
|
|
23
26
|
|
|
24
|
-
##
|
|
27
|
+
## 定位、执行与写入边界
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
1. 从已打开的 workspace 解析 roots。intake 可创建或恢复 change;reconcile 与 publish 只选择已存在且满足本地完成门的 change,并读取 `<Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path>`。多个候选真实消歧,不覆盖已冻结来源。
|
|
30
|
+
2. capture **既不创建也不选择 change**,不写 `current_work`,不读取 change-completion;只使用可缺省的 `<Path>{roots.state}/specdev/capture.md</Path>`。`mode=capture` 不写入 change 的 triage。
|
|
31
|
+
3. 其余三模式读取 `<Path>{roots.state}/specdev/changes/{change}/source.md</Path>`、`<Path>{roots.state}/specdev/changes/{change}/triage.md</Path>` 和状态。`current_work` 为空才登记本 Work;他项占用先恢复或显式 handoff。publish 的轻量来源补建仅按其协议进行,不虚构 locator。
|
|
32
|
+
4. 按选中协议执行。远程写入必须有该动作的真实授权,未授权时远程写入为零;通过 `<Path>{roots.skills}/github-npm-ops/SKILL.md</Path>` 操作。失败保留原账本与检查点,不以远程失败改写本地完成事实。
|
|
30
33
|
|
|
31
|
-
##
|
|
34
|
+
## 验证与返回
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
2. Intake 可以创建 change;reconcile 与 publish 必须选择一个已存在的 change。publish 的对象必须已 completed。capture 既不创建也不选择 change,不写 `current_work`,不加载 `<Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path>`。
|
|
35
|
-
3. 仅 intake、reconcile 与 publish:若该 change 的 `current_work` 为 null,设置为 `specdev/triage`;指向其他 Work 时先恢复或完成显式 handoff。capture 跳过本步。
|
|
36
|
-
4. 重读已有 `<Path>{roots.state}/specdev/changes/{change}/source.md</Path>` 与 `<Path>{roots.state}/specdev/changes/{change}/triage.md</Path>`,不覆盖已冻结的来源。publish 在本地源缺失这些文件时可以按协议补建轻量快照,仍不得虚构 GitHub locator。capture 不读、不写这些文件。
|
|
37
|
-
|
|
38
|
-
`external_action` 只描述源 Issue。`publish_action` 只描述票级发布投影。capture 行 state 只描述 inbox 记录。三者互不覆盖。未授权时远程写入为零。
|
|
39
|
-
|
|
40
|
-
## Intake
|
|
41
|
-
|
|
42
|
-
输入为远程 Issue、URL、项目相对文件、用户粘贴内容或当前对话时,加载 `<Path>{roots.workflows}/specdev/T-triage/intake-protocol.md</Path>`:
|
|
43
|
-
|
|
44
|
-
1. 按协议解析来源、查重、脱敏、冻结并计算内容 hash;使用 `<Path>{roots.workflows}/specdev/T-triage/source-template.md</Path>` 原子写入 `<Path>{roots.state}/specdev/changes/{change}/source.md</Path>`。
|
|
45
|
-
2. 按需读取永久 ADR/CONTEXT、当前 change 工件和相关代码事实;缺失的可选输入静默跳过。相似的已归档拒绝或 ADR 只展示,不自动 wontfix,也不回写源 Issue 标签。
|
|
46
|
-
3. 分类为 bug、feature、refactor、investigation、operations、documentation、review 或 mixed。对照见 `<Path>{roots.workflows}/specdev/T-triage/references/classification-map.md</Path>`。
|
|
47
|
-
4. 评估影响、紧急度、事故半径、安全、数据、迁移和人工批准;把未知项分为可发现事实、decision-needed 和低影响实现细节。
|
|
48
|
-
5. 使用 `<Path>{roots.workflows}/specdev/T-triage/triage-template.md</Path>` 写入 `<Path>{roots.state}/specdev/changes/{change}/triage.md</Path>`。
|
|
49
|
-
6. 运行阶段校验并返回最小正确路线:
|
|
50
|
-
- 根因未知的 bug → `<Path>{roots.workflows}/specdev/D-diagnose-bugs/D-diagnose-bugs.md</Path>`;
|
|
51
|
-
- 产品或架构决定未锁定 → `<Path>{roots.workflows}/specdev/G-grill-with-docs/G-grill-with-docs.md</Path>`;
|
|
52
|
-
- 路径超出单次上下文 → `<Path>{roots.workflows}/specdev/W-wayfinder/W-wayfinder.md</Path>`;
|
|
53
|
-
- 需要检测项目 UI、比较风格候选并固化可运行设计包 → `<Path>{roots.workflows}/specdev/P-prototype/P-prototype.md</Path>`;
|
|
54
|
-
- 外部行为明确 → `<Path>{roots.workflows}/specdev/S-spec/S-spec.md</Path>`;
|
|
55
|
-
- 固定点 diff 或 PR 审查 → `<Path>{roots.workflows}/specdev/C-code-review/C-code-review.md</Path>`;
|
|
56
|
-
- 小型明确变更 → `<Path>{roots.workflows}/specdev/T-tickets/T-tickets.md</Path>` 或获批 Direct Spec。
|
|
57
|
-
|
|
58
|
-
只有目标、范围、验证、路径和风险全部明确且用户批准 Direct Spec 时,`ready_for_implementation` 才能为 true。
|
|
59
|
-
|
|
60
|
-
## Reconcile
|
|
61
|
-
|
|
62
|
-
本地 change 完成并需要关闭来源 Issue 时,加载:
|
|
63
|
-
|
|
64
|
-
- `<Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path>`;
|
|
65
|
-
- `<Path>{roots.workflows}/specdev/T-triage/reconcile-protocol.md</Path>`;
|
|
66
|
-
- `<Path>{roots.workflows}/specdev/T-triage/references/public-projection.md</Path>`。
|
|
67
|
-
|
|
68
|
-
按协议重验本地完成、生成最小外部摘要、展示准确目标和动作、取得本次明确授权,再调用 `<Path>{roots.skills}/github-npm-ops/SKILL.md</Path>`。成功时把 `external_action` 更新为 `closed`;部分或完全失败为 `close-failed` 并保留可重试检查点;用户明确不关闭时为 `waived`。任何结果都不改写本地完成事实。
|
|
69
|
-
|
|
70
|
-
Reconcile 成功或 waived 后返回 `<Path>{roots.workflows}/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md</Path>`。不支持关闭的来源使用 `not-applicable`,无需虚构 provider。若用户同时要求 publish,源 Issue 仍不是票 Issue。
|
|
71
|
-
|
|
72
|
-
## Publish
|
|
73
|
-
|
|
74
|
-
本地 change 完成、用户指定该 change 并要求把 Ticket 记到 GitHub 时,加载:
|
|
75
|
-
|
|
76
|
-
- `<Path>{roots.workflows}/specdev/common/rules/change-completion.md</Path>`;
|
|
77
|
-
- `<Path>{roots.workflows}/specdev/T-triage/publish-protocol.md</Path>`;
|
|
78
|
-
- `<Path>{roots.workflows}/specdev/T-triage/references/classification-map.md</Path>`;
|
|
79
|
-
- `<Path>{roots.workflows}/specdev/T-triage/references/public-projection.md</Path>`。
|
|
80
|
-
|
|
81
|
-
按协议走硬门、确认表、dry-run,再调用 github-npm-ops 的 `issue-search` / `issue-create` / `issue-comment-close`。账本写 `<Path>{roots.state}/specdev/changes/{change}/publish.md</Path>`。Issue 正文用 `<Path>{roots.workflows}/specdev/T-triage/issue-body-template.md</Path>`,关闭评论用 `<Path>{roots.workflows}/specdev/T-triage/close-comment-template.md</Path>`。
|
|
82
|
-
|
|
83
|
-
成功 `published`、用户放弃 `waived`,或从未请求的 `not-requested` 才允许归档。`pending` 与 `publish-failed` 挡住 Archive。下一站由用户指定:reconcile、A,或停止。
|
|
84
|
-
|
|
85
|
-
workspace 计数:
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
node <Path>{roots.workflows}/specdev/T-triage/tools/publish-status.mjs</Path> \
|
|
89
|
-
--state-root <Path>{roots.state}/specdev</Path>
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Capture
|
|
93
|
-
|
|
94
|
-
尚未成 Change、用户要求先把记事项写到 GitHub 时,加载:
|
|
95
|
-
|
|
96
|
-
- `<Path>{roots.workflows}/specdev/T-triage/capture-protocol.md</Path>`;
|
|
97
|
-
- `<Path>{roots.workflows}/specdev/T-triage/references/classification-map.md</Path>`;
|
|
98
|
-
- `<Path>{roots.workflows}/specdev/T-triage/references/public-projection.md</Path>`。
|
|
99
|
-
|
|
100
|
-
按协议走硬门、确认表、dry-run,再调用 github-npm-ops 的 `issue-search` / `issue-create`。不调用 `issue-comment-close`。账本写 `<Path>{roots.state}/specdev/capture.md</Path>`。Issue 正文用 `<Path>{roots.workflows}/specdev/T-triage/issue-record-template.md</Path>`。默认 1 条记录对应一次未来 intake / 一个未来 Change。攒多了再处理:批量 capture,然后逐条 intake 或先走 W;不把多条 locator 写入同一个 source。
|
|
101
|
-
|
|
102
|
-
成功留下仍 open 的 inbox Issue。intake 消费到同一 locator 时把对应行标为 `intaken`。用户放弃为 `waived`。capture 不挡 Archive,因为没有 change 可归档。
|
|
103
|
-
|
|
104
|
-
workspace inbox 计数:
|
|
36
|
+
intake、reconcile、publish 校验当前 change;capture 只在账本已经存在时校验账本,不为校验创建它:
|
|
105
37
|
|
|
106
38
|
```bash
|
|
107
|
-
node <Path>{roots.workflows}/specdev/
|
|
108
|
-
|
|
39
|
+
node <Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path> --stage triage <Path>{roots.state}/specdev/changes/{change}</Path>
|
|
40
|
+
node <Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path> --capture <Path>{roots.state}/specdev/capture.md</Path>
|
|
109
41
|
```
|
|
110
42
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
intake、reconcile 或 publish 运行:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
node <Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path> \
|
|
117
|
-
--stage triage \
|
|
118
|
-
<Path>{roots.state}/specdev/changes/{change}</Path>
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
capture 在账本存在时运行:
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
node <Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path> \
|
|
125
|
-
--capture <Path>{roots.state}/specdev/capture.md</Path>
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
缺失 `<Path>{roots.state}/specdev/capture.md</Path>` 合法,不要为了校验去创建它。
|
|
129
|
-
|
|
130
|
-
验证通过后,intake / reconcile / publish 原子重读 source、triage、publish(若请求过)和 change 状态;成功时将 `specdev/triage` 去重加入 `works_run` 并清空 `current_work`;可恢复失败保留 `current_work` 和具体 blocker。capture 不改任何 change 状态。
|
|
131
|
-
|
|
132
|
-
## 完成标准
|
|
133
|
-
|
|
134
|
-
- 来源已冻结为本地工件,原意未被改写,敏感值未持久化;
|
|
135
|
-
- 相同 locator 不会静默创建重复 change或覆盖已有快照;
|
|
136
|
-
- 分类、影响、风险、未知项和下一 Work 有证据;
|
|
137
|
-
- 开发权威完全位于本地 state;
|
|
138
|
-
- 未授权时远程写入为零;
|
|
139
|
-
- Reconcile 可从失败检查点幂等恢复;
|
|
140
|
-
- Publish 可从 `<Path>{roots.state}/specdev/changes/{change}/publish.md</Path>` 失败行幂等恢复,cancelled 默认 skip,本地源计入发布数;
|
|
141
|
-
- Capture 可从 `<Path>{roots.state}/specdev/capture.md</Path>` 失败行幂等恢复,Issue 保持 open,不创建 Change;
|
|
142
|
-
- 状态、验证结果和下一 Work 完整路径已返回。
|
|
143
|
-
|
|
144
|
-
## 子文件引用
|
|
43
|
+
回读选中模式的真实源、对应账本、状态和远程回执,报告结果、未完成项、验证命令与完整恢复路径。change 三模式成功才去重更新 `works_run` 并清空 `current_work`;可恢复失败保留当前 Work。capture 不修改任何 change 状态。
|
|
145
44
|
|
|
146
|
-
-
|
|
147
|
-
- Reconcile:`<Path>{roots.workflows}/specdev/T-triage/reconcile-protocol.md</Path>`
|
|
148
|
-
- Publish:`<Path>{roots.workflows}/specdev/T-triage/publish-protocol.md</Path>`
|
|
149
|
-
- Capture:`<Path>{roots.workflows}/specdev/T-triage/capture-protocol.md</Path>`
|
|
150
|
-
- Source 模板:`<Path>{roots.workflows}/specdev/T-triage/source-template.md</Path>`
|
|
151
|
-
- Triage 模板:`<Path>{roots.workflows}/specdev/T-triage/triage-template.md</Path>`
|
|
152
|
-
- Publish 模板:`<Path>{roots.workflows}/specdev/T-triage/publish-template.md</Path>`
|
|
153
|
-
- Capture 模板:`<Path>{roots.workflows}/specdev/T-triage/capture-template.md</Path>`
|
|
154
|
-
- 分类映射:`<Path>{roots.workflows}/specdev/T-triage/references/classification-map.md</Path>`
|
|
155
|
-
- 公共投影:`<Path>{roots.workflows}/specdev/T-triage/references/public-projection.md</Path>`
|
|
156
|
-
- Issue 正文:`<Path>{roots.workflows}/specdev/T-triage/issue-body-template.md</Path>`
|
|
157
|
-
- 记事项正文:`<Path>{roots.workflows}/specdev/T-triage/issue-record-template.md</Path>`
|
|
158
|
-
- 关闭评论:`<Path>{roots.workflows}/specdev/T-triage/close-comment-template.md</Path>`
|
|
159
|
-
- 发布计数:`<Path>{roots.workflows}/specdev/T-triage/tools/publish-status.mjs</Path>`
|
|
160
|
-
- inbox 计数:`<Path>{roots.workflows}/specdev/T-triage/tools/capture-status.mjs</Path>`
|
|
45
|
+
intake 返回协议选出的 Work。reconcile 的 `closed | waived | not-applicable`、publish 的 `not-requested | published | waived` 才满足各自归档门;`pending-close | close-failed` 或 `pending | publish-failed` 分别恢复原模式。归档交 `<Path>{roots.workflows}/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md</Path>`,不自动合并两类 Issue。capture 成功返回仍 open 的记录;以后逐条 intake,或由 W 探索,capture 本身不挡归档。
|
|
@@ -36,3 +36,22 @@ GitHub 来源保存 title、body、author、state、labels、created/updated 和
|
|
|
36
36
|
- 相似归档/ADR 项已展示或明确无匹配;
|
|
37
37
|
- 失败没有生成伪造或不完整的 Ready source;
|
|
38
38
|
- 源 Issue 标签未被本协议修改。
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## 分诊与交接
|
|
42
|
+
|
|
43
|
+
来源冻结后,按命中条目读取永久 ADR/CONTEXT、当前 change 工件和代码事实;可选输入缺失不补造。使用 `<Path>{roots.workflows}/specdev/T-triage/references/classification-map.md</Path>` 分类为 bug、feature、refactor、investigation、operations、documentation、review 或 mixed。评估影响、紧急度、事故半径、安全、数据、迁移与人工批准,把未知项区分为可发现事实、待用户决定和低影响实现细节。
|
|
44
|
+
|
|
45
|
+
使用 `<Path>{roots.workflows}/specdev/T-triage/triage-template.md</Path>` 写入 `<Path>{roots.state}/specdev/changes/{change}/triage.md</Path>`。按以下条件选择下一 Work,而不是要求每个请求经过全链:
|
|
46
|
+
|
|
47
|
+
| 条件 | 下一 Work |
|
|
48
|
+
|---|---|
|
|
49
|
+
| 根因未知的 bug | `<Path>{roots.workflows}/specdev/D-diagnose-bugs/D-diagnose-bugs.md</Path>` |
|
|
50
|
+
| 产品或架构高影响决定未锁定 | `<Path>{roots.workflows}/specdev/G-grill-with-docs/G-grill-with-docs.md</Path>` |
|
|
51
|
+
| 大需求的 change 边界或路线尚不清晰 | `<Path>{roots.workflows}/specdev/W-wayfinder/W-wayfinder.md</Path>` |
|
|
52
|
+
| 检测 UI、比较风格并固化设计包 | `<Path>{roots.workflows}/specdev/P-prototype/P-prototype.md</Path>` |
|
|
53
|
+
| 外部行为明确,需要验收合同 | `<Path>{roots.workflows}/specdev/S-spec/S-spec.md</Path>` |
|
|
54
|
+
| 固定点 diff 或 PR 审查 | `<Path>{roots.workflows}/specdev/C-code-review/C-code-review.md</Path>` |
|
|
55
|
+
| 小型明确变更 | `<Path>{roots.workflows}/specdev/T-tickets/T-tickets.md</Path>`,或获批 Direct Spec |
|
|
56
|
+
|
|
57
|
+
只有目标、范围、验证、路径和风险全部明确且用户批准 Direct Spec,`ready_for_implementation` 才能为 true。相似的归档拒绝或 ADR 只作为决策证据,不自动 wontfix 或回写远程标签。
|
|
@@ -15,9 +15,9 @@ W 位于 change 形成之前:Initiative → 候选 change → 各自 Grill →
|
|
|
15
15
|
|
|
16
16
|
## 读取范围
|
|
17
17
|
|
|
18
|
-
先读 `<Path>{roots.workflows}/specdev/common/rules/activation-and-memory.md</Path
|
|
18
|
+
先读 `<Path>{roots.workflows}/specdev/common/rules/activation-and-memory.md</Path>`;先从共享地图定位当前调查 ID,再读当前问题、直接依赖及其 solution comment 原文;共享答案只引用 provenance。低分辨率地图不缓存所有开放票正文。
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## 按当前调查选择参考
|
|
21
21
|
|
|
22
22
|
| 当前需要 | 按需读取 |
|
|
23
23
|
|---|---|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# SpecDev 与 OPS 的交付引用
|
|
2
|
+
|
|
3
|
+
只有用户要求把当前开发成果交给 OPS 部署,或 OPS 收到开发交付时读取。使用既有 Evidence、部署 spec、task Plan 与双边回执,不创建全局交付状态、镜像 Ticket 或自动部署 Work。
|
|
4
|
+
|
|
5
|
+
## 开发侧:Evidence 中记录事实
|
|
6
|
+
|
|
7
|
+
由 SpecDev Lead 在当前 Evidence 的交付小节记录:change/Ticket 稳定 ID、权威 Spec/AC 与验收证据 locator、实际代码 revision、可交付构件 digest、已运行检查/未测项、所需目标/环境及兼容、配置、迁移、备份恢复和发布约束。用户未指定目标或构件不存在时明确缺口,不虚构 OPS Host 或已部署结果。交付数量保持用户要求。
|
|
8
|
+
|
|
9
|
+
对可部署构件使用实际字节或已验证镜像摘要;代码 revision 不能替代构件 digest。必要引用带来源位置、验证时间/摘要;不复制 Spec/Ticket 正文、不输出秘密。变更完成只证明开发合同,不证明部署完成。
|
|
10
|
+
|
|
11
|
+
## 运维侧:独立验证目标和授权
|
|
12
|
+
|
|
13
|
+
D 从原 OPS 网关取得真实 Controller、server_ids、project_id、environment/instance 与授权,核对交付源码/构件和当前验收证据。缺失、漂移或不符合部署约束时阻塞部署,不能据此改写开发完成事实。
|
|
14
|
+
|
|
15
|
+
沿用现有 spec 字段:`resource_updates.projects[].source` 保存真实 type/location/revision,`deployments[].notes` 以字符串记录 change/Ticket、Evidence locator 与 digest/验收约束;部署目标、备份和恢复仍使用原字段。不要添加 schema 不支持的顶层 handoff/status 字段。任务中需要执行或引用的本地构件/脚本按原 `input_paths` 冻结;普通文档指针不是执行权限。
|
|
16
|
+
|
|
17
|
+
执行、健康与文档回执由 OPS D 已激活入口中明确指向的任务授权、持久化与恢复合同拥有;由 OPS 执行方读取并验证,不从 SpecDev 路径解析器展开其他工作流的根。没有交付请求时,本分支不增加开发侧必读材料或部署门。
|
|
18
|
+
|
|
19
|
+
## 回传而非代写
|
|
20
|
+
|
|
21
|
+
OPS 返回原 task/Run/Release/receipt locator、observed revision/version、实际健康与双边文档结果、未验证项。`unknown`、`failed`、`docs_pending` 保持真实状态;V 失败单独报告,不重跑业务。
|
|
22
|
+
|
|
23
|
+
OPS 不修改 SpecDev Ticket、Map、Goal Plan 或状态。若用户要求回填,由原 SpecDev Lead 核对回执后在已有 Evidence 追加指针;已完成旧 Evidence 与归档只读时创建原流程允许的新记录或 change,不覆盖历史。开发验收与运维部署各自拥有完成结论。
|
|
@@ -24,10 +24,11 @@ metadata: {"speculo-legacy-name": "specdev-code-review"}
|
|
|
24
24
|
|
|
25
25
|
1. 重验 fixed point/head 可解析、三点 diff 非空,失败时不启动 reviewer。
|
|
26
26
|
2. 加载 `<Path>{roots.workflows}/specdev/common/skills/code-review/references/source-discovery.md</Path>`,穷尽规范和标准来源。
|
|
27
|
-
3.
|
|
28
|
-
4.
|
|
29
|
-
5.
|
|
30
|
-
6.
|
|
27
|
+
3. 发现已有审查并拟复用时,先读取 `<Path>{roots.workflows}/specdev/common/skills/code-review/references/result-reuse.md</Path>`,完整核对输入、两轴隔离与原始证据;能证明相同的轴保留原结果,其余轴按下列步骤运行;未能证明相同就正常重审两轴。
|
|
28
|
+
4. 加载 `<Path>{roots.workflows}/specdev/common/skills/code-review/references/fowler-smells.md</Path>` 作为标准轴最低启发式;仓库明确标准优先。
|
|
29
|
+
5. 用户要求全面审查或触及安全、数据迁移、公共契约、并发和恢复时,先加载 `<Path>{roots.workflows}/specdev/common/skills/code-review/references/risk-review.md</Path>`,覆盖全部适用风险,不限制 finding 数量。
|
|
30
|
+
6. 加载 `<Path>{roots.workflows}/specdev/common/skills/code-review/references/reviewer-contracts.md</Path>`,用互不共享发现的上下文分别运行两个轴。
|
|
31
|
+
7. 原顺序返回 `standards` 和 `specification` 两份结果。规范来源不存在时只跳过规范轴并解释,标准轴继续。
|
|
31
32
|
|
|
32
33
|
## 输出
|
|
33
34
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# 复用已有审查证据
|
|
2
|
+
|
|
3
|
+
仅在当前调用发现已有 C 报告或 I Evidence 并拟复用时读取。先完成当前来源发现,再核对以下完整输入;没有完整记录就正常重新审查,不推测相等。
|
|
4
|
+
|
|
5
|
+
| 必须相同并可回读 | 核对证据 |
|
|
6
|
+
|---|---|
|
|
7
|
+
| fixed_point、head、三点 diff 与 commit 范围 | 本地不可变 SHA、diff 字节摘要 |
|
|
8
|
+
| 规范、标准、ADR 和适用项目指令 | 稳定来源路径、原始字节摘要与明确范围 |
|
|
9
|
+
| review Skill 与当前触发的全部参考 | ID、入口/参考字节摘要、风险分支与跳过理由 |
|
|
10
|
+
| 与结论相关的工具、测试环境、配置 | 实际版本/配置摘要与观察证据;未记录不能宣称相同 |
|
|
11
|
+
| 两轴隔离及执行结果 | 原 reviewer 输入、独立 findings、原验证输出及其 locator |
|
|
12
|
+
|
|
13
|
+
Lead 必须回读真实原报告和证据;相同文件名、报告“通过”文字、相同 HEAD 或结构校验均不足。任一输入变化、缺失、不可解析或来源不明,重跑受影响轴;无法证明两轴输入独立时重跑两轴。新风险范围必须完整审查,不因复用缩减 finding 数量。
|
|
14
|
+
|
|
15
|
+
复用保持原结果与来源,不能把 request-changes、skipped:no-spec 或未测结果改成 passed。C 仍创建自己的新 CR 报告并引用原证据;I 仍由 Lead 写入本票 Evidence,旧报告/旧完成证据不覆盖。复用报告不跳过当前 workspace/集成/E2E/授权检查,不新增全局缓存、状态树或完成捷径。
|