@namewta/speculo 0.3.4 → 0.5.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/README.md +4 -5
- package/package.json +1 -1
- package/template/canonical/canonical-specdev-engineering-cognitive-mentor.md +5 -0
- package/template/canonical/canonical-specdev-goal-plan.md +366 -59
- package/template/canonical/canonical-specdev-grill-with-docs.md +153 -104
- package/template/canonical/canonical-specdev-spec.md +5 -0
- package/template/canonical/canonical-specdev-tickets.md +5 -0
- package/template/canonical/canonical-specdev-wayfinder.md +171 -249
- package/template/commands/docs-sync.md +3 -3
- package/template/skills/docs-sync/SKILL.md +4 -3
- package/template/skills/docs-sync/assets/report-template.md +1 -0
- package/template/skills/docs-sync/references/agents/agent-writing.md +75 -0
- package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/claude-redirect.md +1 -1
- package/template/skills/docs-sync/references/agents-contract.md +23 -1
- package/template/skills/typescript-standards-builder/README.md +53 -0
- package/template/skills/typescript-standards-builder/SKILL.md +245 -0
- package/template/skills/typescript-standards-builder/examples/sample-generated-tree.md +30 -0
- package/template/skills/typescript-standards-builder/examples/sample-interview-decisions.md +26 -0
- package/template/skills/typescript-standards-builder/manifest.txt +29 -0
- package/template/skills/typescript-standards-builder/references/00-governance-and-fixed-defaults.md +77 -0
- package/template/skills/typescript-standards-builder/references/01-project-discovery.md +100 -0
- package/template/skills/typescript-standards-builder/references/02-interview-workflow.md +129 -0
- package/template/skills/typescript-standards-builder/references/03-project-architecture-and-directory-layout.md +84 -0
- package/template/skills/typescript-standards-builder/references/04-file-directory-and-symbol-naming.md +92 -0
- package/template/skills/typescript-standards-builder/references/05-modules-imports-exports-and-dependencies.md +63 -0
- package/template/skills/typescript-standards-builder/references/06-typescript-type-system.md +64 -0
- package/template/skills/typescript-standards-builder/references/07-functions-async-errors-and-resources.md +42 -0
- package/template/skills/typescript-standards-builder/references/08-comments-jsdoc-and-documentation.md +51 -0
- package/template/skills/typescript-standards-builder/references/09-testing-strategy.md +58 -0
- package/template/skills/typescript-standards-builder/references/10-react-and-frontend.md +39 -0
- package/template/skills/typescript-standards-builder/references/11-node-cli-and-cross-platform.md +31 -0
- package/template/skills/typescript-standards-builder/references/12-formatting-lint-and-complexity.md +58 -0
- package/template/skills/typescript-standards-builder/references/13-configuration-dependencies-and-ci.md +71 -0
- package/template/skills/typescript-standards-builder/references/14-security-performance-and-i18n.md +32 -0
- package/template/skills/typescript-standards-builder/references/15-git-review-and-delivery.md +28 -0
- package/template/skills/typescript-standards-builder/references/16-adoption-exceptions-and-migration.md +61 -0
- package/template/skills/typescript-standards-builder/references/17-generation-contract.md +104 -0
- package/template/skills/typescript-standards-builder/references/README.md +37 -0
- package/template/skills/typescript-standards-builder/templates/agents-compat-skill/SKILL.md +1 -0
- package/template/skills/typescript-standards-builder/templates/claude-skill/SKILL.md +1 -0
- package/template/skills/typescript-standards-builder/templates/project-skill/SKILL.md.template +34 -0
- package/template/skills/typescript-standards-builder/templates/project-skill/references/00-project-profile.md.template +17 -0
- package/template/skills/typescript-standards-builder/templates/project-skill/references/10-review-checklist.md +23 -0
- package/template/skills/typescript-standards-builder/templates/project-skill/references/11-decisions-and-exceptions.md.template +19 -0
- package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +78 -73
- package/template/workflows/specdev/G-grill-with-docs/design-tree-template.json +9 -0
- package/template/workflows/specdev/G-grill-with-docs/grilling-protocol.md +16 -35
- package/template/workflows/specdev/G-grill-with-docs/log-format.md +2 -0
- package/template/workflows/specdev/I-implement/I-implement.md +12 -10
- package/template/workflows/specdev/I-implement/design-it-twice.md +45 -6
- package/template/workflows/specdev/I-implement/evidence-template.md +7 -0
- package/template/workflows/specdev/I-implement/execution-preflight.md +6 -0
- package/template/workflows/specdev/INDEX.md +11 -4
- package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +23 -10
- package/template/workflows/specdev/P-goal-plan/completion-control.md +20 -7
- package/template/workflows/specdev/P-goal-plan/goal-plan-template.md +55 -3
- package/template/workflows/specdev/P-goal-plan/orchestration-protocol.md +42 -38
- package/template/workflows/specdev/P-goal-plan/planning-modes.md +36 -2
- package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +67 -80
- package/template/workflows/specdev/R-review-architecture/architecture-report-contract.md +123 -0
- package/template/workflows/specdev/R-review-architecture/architecture-review-report-template.html +103 -55
- package/template/workflows/specdev/R-review-architecture/architecture-review-template.md +20 -29
- package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +76 -147
- package/template/workflows/specdev/W-wayfinder/investigation-ticket-template.md +8 -53
- package/template/workflows/specdev/W-wayfinder/local-tracker-contract.md +36 -0
- package/template/workflows/specdev/W-wayfinder/solution-comment-template.md +17 -0
- package/template/workflows/specdev/W-wayfinder/wayfinder-map-template.md +12 -65
- package/template/workflows/specdev/common/README.md +4 -0
- package/template/workflows/specdev/common/rules/artifact-contract.md +5 -0
- package/template/workflows/specdev/common/rules/codebase-design.md +148 -0
- package/template/workflows/specdev/common/schemas/design-tree.schema.json +35 -0
- package/template/workflows/specdev/common/schemas/wayfinder-ticket.schema.json +19 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/SKILL.md +61 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/references/external-web-subagent.md +32 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/references/github-checkpoints.md +24 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/references/native-subagent.md +35 -0
- package/template/workflows/specdev/common/skills/subagent-delivery/references/source-package.md +17 -0
- package/template/workflows/specdev/common/tools/validate-specdev.mjs +226 -5
- package/template/skills/agents-md-builder/SKILL.md +0 -30
- package/template/skills/typescript-engineering-standards/README.md +0 -36
- package/template/skills/typescript-engineering-standards/SKILL.md +0 -158
- package/template/skills/typescript-engineering-standards/examples/comment-patterns.md +0 -47
- package/template/skills/typescript-engineering-standards/examples/naming-patterns.md +0 -42
- package/template/skills/typescript-engineering-standards/examples/project-layouts.md +0 -75
- package/template/skills/typescript-engineering-standards/examples/review-output-example.md +0 -25
- package/template/skills/typescript-engineering-standards/examples/type-modeling-patterns.md +0 -66
- package/template/skills/typescript-engineering-standards/manifest.txt +0 -33
- package/template/skills/typescript-engineering-standards/references/00-standard-levels-and-precedence.md +0 -51
- package/template/skills/typescript-engineering-standards/references/01-project-architecture-and-directory-layout.md +0 -105
- package/template/skills/typescript-engineering-standards/references/02-file-directory-and-symbol-naming.md +0 -117
- package/template/skills/typescript-engineering-standards/references/03-modules-imports-exports-and-dependencies.md +0 -111
- package/template/skills/typescript-engineering-standards/references/04-typescript-type-system.md +0 -150
- package/template/skills/typescript-engineering-standards/references/05-functions-async-errors-and-resources.md +0 -142
- package/template/skills/typescript-engineering-standards/references/06-comments-jsdoc-and-documentation.md +0 -104
- package/template/skills/typescript-engineering-standards/references/07-testing-strategy.md +0 -84
- package/template/skills/typescript-engineering-standards/references/08-react-and-frontend.md +0 -91
- package/template/skills/typescript-engineering-standards/references/09-node-cli-and-cross-platform.md +0 -92
- package/template/skills/typescript-engineering-standards/references/10-formatting-lint-and-complexity.md +0 -107
- package/template/skills/typescript-engineering-standards/references/11-configuration-dependencies-and-ci.md +0 -86
- package/template/skills/typescript-engineering-standards/references/12-security-performance-and-i18n.md +0 -65
- package/template/skills/typescript-engineering-standards/references/13-git-review-and-delivery.md +0 -79
- package/template/skills/typescript-engineering-standards/references/14-adoption-exceptions-and-migration.md +0 -84
- package/template/skills/typescript-engineering-standards/references/15-orca-derived-observations.md +0 -54
- package/template/skills/typescript-engineering-standards/references/README.md +0 -45
- package/template/skills/typescript-engineering-standards/templates/.editorconfig +0 -12
- package/template/skills/typescript-engineering-standards/templates/AGENTS.typescript.md +0 -21
- package/template/skills/typescript-engineering-standards/templates/code-review-checklist.md +0 -37
- package/template/skills/typescript-engineering-standards/templates/package-scripts.json +0 -11
- package/template/skills/typescript-engineering-standards/templates/prettier.json +0 -6
- package/template/skills/typescript-engineering-standards/templates/pull-request-template.md +0 -37
- package/template/skills/typescript-engineering-standards/templates/tsconfig.base.json +0 -17
- package/template/skills/typescript-engineering-standards/templates/tsconfig.project-references.json +0 -8
- package/template/workflows/specdev/I-implement/codebase-design-glossary.md +0 -12
- package/template/workflows/specdev/I-implement/deepening.md +0 -17
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/content-contract.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/evidence-collection.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/manifest-discovery.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/role-classification.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/aggregator-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/capability-module-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/contract-module-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/repo-root-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/runnable-app-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/templates/scripts-docs-AGENTS.md +0 -0
- /package/template/skills/{agents-md-builder/references → docs-sync/references/agents}/writing-style.md +0 -0
|
@@ -13,191 +13,120 @@
|
|
|
13
13
|
- 若本地项目提供 Speculo Node 校验器,可运行它补充结构校验;纯网页环境按本文内联的 schema、Ready 清单和完成标准逐项核对,并明确记录未运行的自动校验。
|
|
14
14
|
- 提交、推送、合并、部署、发布、归档移动和不可逆迁移仍需用户明确授权。
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
一个模糊的想法出现了——太大而无法放入单个 Agent 会话,且从当前状态到**目的地**的路径尚不可见。寻路就是找到那条路,而非冲向目标。此 work 在 change state 中绘制一张**共享地图**,然后逐个处理其 Tickets,直到路径变得清晰。
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
目的地可能是一份待移交和迭代的 Spec、一个在规划开始前需锁定的决策,或一项经说明允许在地图中完成的变更。命名目的地是第一步,它塑造每个 Ticket。
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
- **以名称指代**:共享地图和每个调查 Ticket 都是有标题的实体。凡是人会读到的叙述,一律用**名称**指代(如“调查:登录态跨域刷新策略”),而不是裸编号(`INV-03`)或裸路径。ID 与路径作为链接附在名称里,不单独充当称呼。一屏 `INV-03、INV-04、INV-05` 无法阅读。
|
|
20
|
+
## 核心纪律
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
### 规划,而非执行
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
- 调查 Ticket 目录:`specdev/changes/{change}/investigation/`
|
|
27
|
-
- 单个调查 Ticket:`specdev/changes/{change}/investigation/{investigation-id}.md`
|
|
28
|
-
- 调查 Evidence:`specdev/changes/{change}/investigation/evidence/`
|
|
29
|
-
- 全局领取状态:`specdev/status.json` 中当前 change 的 `claimed_investigations`
|
|
24
|
+
Wayfinder 默认进行**规划**:每个 Ticket 解决一个决策,当地图完成时路径就清晰了——在某人动手之前没有任何剩余决定。想要直接动手通常说明已经到达地图边缘,是时候移交。只有地图“说明”明确覆盖此行为时,task 才能把解除阻塞的执行带入地图。
|
|
30
25
|
|
|
31
|
-
|
|
26
|
+
### 用名称引用
|
|
32
27
|
|
|
33
|
-
|
|
34
|
-
- 下方 `<wayfinder-map-template>` 标签
|
|
35
|
-
|
|
36
|
-
## 何时运行
|
|
37
|
-
|
|
38
|
-
- 路径未知,无法安全写出 Ready Spec 或 Ticket;
|
|
39
|
-
- 需要跨多个领域、技术栈或外部系统调查;
|
|
40
|
-
- 调查量超出单个上下文,适合并行研究;
|
|
41
|
-
- 存在多个相互依赖的高影响未知项;
|
|
42
|
-
- 需要在若干候选方案中先获得事实证据再做决定。
|
|
43
|
-
|
|
44
|
-
若问题只是一个可在当前上下文通过短暂只读探索回答的事实,不创建 Wayfinder Map。若在命名目标、绘制前沿后发现根本没有迷雾——所有决策都已清楚——则不需要地图,停下并直接告知用户下一步。
|
|
45
|
-
|
|
46
|
-
## 两种调用模式
|
|
47
|
-
|
|
48
|
-
Wayfinder 有两种入口,可分次进行:
|
|
49
|
-
|
|
50
|
-
- **绘制地图**:用户带来一个粗略想法。命名目标 → 广度优先勾勒前沿 → 建立共享地图(写好目标与笔记,已定决策留空,迷雾写入“尚未指定”)→ 创建当前可明确表述的调查 Ticket 并二次连边补齐阻塞关系 → 并行触发 research 型 AFK 调查 → 停止。绘制本身不解决任何未知项。
|
|
51
|
-
- **走完地图**:用户带来一张已存在的地图(可选带指定 Ticket)。加载低分辨率地图 → 选取并领取一个前沿 Ticket → 解决它 → 记录结论、释放领取、关闭 Ticket → 浮现新 Ticket、让已可表述的迷雾毕业、把越界工作移入范围之外。
|
|
52
|
-
|
|
53
|
-
## 流程
|
|
54
|
-
|
|
55
|
-
### 1. 命名目标与勾勒边界
|
|
56
|
-
|
|
57
|
-
命名目标是第一动作,它塑造每一个后续 Ticket。写明:
|
|
58
|
-
|
|
59
|
-
- **最终目标**:一到两行描述“终点长什么样”。
|
|
60
|
-
- **已知边界**:当前确定的前提、约束与不变量。
|
|
61
|
-
- **当前不能决定的事项**:以及“为什么这些未知项阻塞规划”。
|
|
62
|
-
|
|
63
|
-
高影响未知项按**调查目的**分为四类:
|
|
64
|
-
|
|
65
|
-
- **research**:答案可由代码、文档、实验或外部来源证实;
|
|
66
|
-
- **decision**:事实已足够,但需要用户或架构 owner 做取舍;
|
|
67
|
-
- **validation**:已有方案,需要实验验证关键可行性或风险;
|
|
68
|
-
- **mapping**:需要建立调用链、数据流、依赖图或影响面。
|
|
69
|
-
|
|
70
|
-
每个调查 Ticket 还需标注**执行模式**:
|
|
28
|
+
每张地图和每个 Ticket 都有一个名称。人类阅读的叙述和“已做出的决策”始终用名称引用;ID 和路径包裹在名称链接里,不以裸 `INV-01` 墙代替名称。
|
|
71
29
|
|
|
72
|
-
|
|
73
|
-
- **HITL**(human-in-the-loop):必须通过与用户的实时交流才能解决,代理不得替用户作答;典型是 decision,以及需要用户对原型或方案取舍反馈的 validation。
|
|
30
|
+
### 每会话一个 Ticket
|
|
74
31
|
|
|
75
|
-
|
|
32
|
+
无论绘制还是遍历,**每个会话绝不解决超过一个 Ticket**。绘制地图的会话不解决任何 Ticket;并行 research 的每个独立 Agent 也只负责一个 Ticket。
|
|
76
33
|
|
|
77
|
-
|
|
34
|
+
## 产物与适配
|
|
78
35
|
|
|
79
|
-
|
|
36
|
+
- 地图:`specdev/changes/{change}/wayfinder-map.md`
|
|
37
|
+
- 子 Tickets:`specdev/changes/{change}/investigation/`
|
|
38
|
+
- solution comments:`specdev/changes/{change}/investigation/comments/`
|
|
39
|
+
- assignment registry:`specdev/status.json` 的 `claimed_investigations`
|
|
80
40
|
|
|
81
|
-
|
|
82
|
-
- **战争迷雾**:范围内、你已隐约感到会出现、但此刻还无法精确表述的决策。它们写入共享地图的“尚未指定”区,不切成 Ticket。
|
|
83
|
-
- **毕业判据**:能否**此刻精确陈述这个问题**(而非能否此刻回答它)。问题已经足够锐利就立 Ticket(即使仍被阻塞);还说不清就留在迷雾里。不要预先把迷雾切成 Ticket 大小的碎片。
|
|
41
|
+
每次绘制或遍历前加载 下方 `<local-tracker-contract>` 标签。Ticket 和地图模板:
|
|
84
42
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
使用 下方 `<wayfinder-map-template>` 标签 写入 `specdev/changes/{change}/wayfinder-map.md`。地图是**索引而非仓库**:每个决策只在一处存放(对应调查 Ticket 或 Evidence),地图只给出一行摘要并链接到详情。地图包含:
|
|
90
|
-
|
|
91
|
-
- **目标**:终点,一到两行。
|
|
92
|
-
- **笔记**:领域、需参考的 skills、固定偏好,以及是否显式授权把执行纳入地图。
|
|
93
|
-
- **调查清单**:当前所有已表述 Ticket 的索引表(含 ID、类型、执行模式、问题、依赖、领取状态、结果指针),前沿由此表投影。
|
|
94
|
-
- **调查 DAG**:阻塞关系图,避免多个调查重复回答同一问题;标记可并行与必须串行的决策点。
|
|
95
|
-
- **已定决策**:每关闭一个 Ticket 追加一行结论,作为“实际走过的路线”索引。
|
|
96
|
-
- **尚未指定**:范围内、尚不可表述为 Ticket 的迷雾。
|
|
97
|
-
- **范围之外**:见第 4 节。
|
|
98
|
-
- **停止条件**:整体收敛判据,不以“所有可能问题都研究完”为目标。
|
|
99
|
-
|
|
100
|
-
每个 Ticket 只关闭一个高影响未知项。
|
|
101
|
-
|
|
102
|
-
### 4. 范围之外
|
|
103
|
-
|
|
104
|
-
迷雾只朝目标方向聚集,目标一旦确定就固定了范围,因此超出目标的工作是**范围之外**,不是迷雾。它单独成节,列出被有意识排除的工作,写清摘要与理由。
|
|
105
|
-
|
|
106
|
-
- 范围之外**永不毕业**回地图;只有在目标被重画时,作为新的 change 重新纳入。
|
|
107
|
-
- 当一个已存在的 Ticket 被发现落在目标之外时,关闭它并在“范围之外”留一行摘要与原因,**不写入“已定决策”**——已定决策只记录实际走过的路线。
|
|
108
|
-
|
|
109
|
-
### 5. 领取与并行
|
|
43
|
+
- 下方 `<investigation-ticket-template>` 标签
|
|
44
|
+
- 下方 `<wayfinder-map-template>` 标签
|
|
45
|
+
- 下方 `<solution-comment-template>` 标签
|
|
110
46
|
|
|
111
|
-
|
|
47
|
+
## Ticket 类型
|
|
112
48
|
|
|
113
|
-
|
|
114
|
-
- 已领取 → 跳过并选择其他前沿 Ticket;
|
|
115
|
-
- 超过配置的 claim 超时且无进展 → 允许在记录原因后回收;
|
|
116
|
-
- 完成或释放后从领取集合移除,并同步共享地图。
|
|
49
|
+
每个 Ticket 要么是 **HITL**,与一个代表自己发言的人类一起工作;要么是 **AFK**,由 Agent 独立驱动。HITL Ticket 只能通过实时交流解决,Agent 绝不代替人类一方发言。
|
|
117
50
|
|
|
118
|
-
|
|
51
|
+
- **Research(AFK)**:阅读文档、第三方 API 或知识库等资源,揭示某个决策等待的事实。调用 下方 `<research>` 标签。当需要当前工作目录之外的知识时使用。
|
|
52
|
+
- **Prototype(HITL)**:制作廉价、粗糙、具体的产物提高讨论保真度——大纲、粗略尝试、桩代码或 UI/逻辑原型。将原型链接为资产;当“它应是什么样”或“怎样表现”是关键问题时使用。
|
|
53
|
+
- **Grilling(HITL)**:对话。调用 “设计访谈能力” 的 grilling 与 domain-modeling 能力,但本会话只关闭当前 Wayfinder Ticket。
|
|
54
|
+
- **Task(HITL 或 AFK)**:在决策做出前必须完成的手动工作。它通过为决策解除阻塞赢得位置,不以交付目的地为目标。Agent 能独立驱动时使用 AFK,否则给人类精确清单。
|
|
119
55
|
|
|
120
|
-
|
|
121
|
-
- **decision 及其他 HITL 型 Ticket,单个会话一次只解决一个**。这类 Ticket 会实质改变方案走向、开启新的迷雾,逐个解决才能让地图稳定地生长;一次塞多个决策会污染前沿。因此除 research 型外,**同一会话不要在一轮里解决多个 HITL 型 Ticket**。
|
|
122
|
-
- 用户可能在其他会话并行推进未阻塞的 Ticket,要预期对地图和领取状态的并发编辑,写回前先重读。
|
|
56
|
+
Ticket label 只能是 `wayfinder:research | wayfinder:prototype | wayfinder:grilling | wayfinder:task`。
|
|
123
57
|
|
|
124
|
-
|
|
58
|
+
## 战争迷雾与范围
|
|
125
59
|
|
|
126
|
-
|
|
60
|
+
地图刻意不完整:不要绘制还看不到的内容。活跃 Tickets 之外是**战争迷雾**——能感觉即将到来、但依赖尚未解决问题而无法精确陈述的决策和调查。
|
|
127
61
|
|
|
128
|
-
|
|
129
|
-
- 文档、规范和官方来源研究;
|
|
130
|
-
- 可撤销的临时实验、最小原型或插桩(原型用于让用户对“看起来/表现如何”作出反应,是手段不是最终架构);
|
|
131
|
-
- 性能测量、调用点扫描、schema 对比或兼容性验证。
|
|
62
|
+
**迷雾还是 Ticket?** 判断标准是现在能否精确陈述问题,而非现在能否回答:
|
|
132
63
|
|
|
133
|
-
|
|
64
|
+
- 问题已经清晰时做成 Ticket,即使仍被阻塞;
|
|
65
|
+
- 还无法精确表述时留在“尚未明确”,不预先切成 Ticket 大小碎片。
|
|
134
66
|
|
|
135
|
-
|
|
67
|
+
目的地固定范围。目标之外的工作进入**超出范围**,不是战争迷雾。范围之外永不升级;只有重新命名目的地并创建新 change 时才重新考虑。越界 Ticket 关闭为 `out-of-scope`,链接进“超出范围”,不进入“已做出的决策”。
|
|
136
68
|
|
|
137
|
-
|
|
138
|
-
- 提交未经审查的实验代码;
|
|
139
|
-
- 将原型视为最终架构;
|
|
140
|
-
- 在没有证据时把建议写成事实;
|
|
141
|
-
- 代 HITL 型 Ticket 的用户作答;
|
|
142
|
-
- 无停止条件地持续研究。
|
|
69
|
+
## 调用模式
|
|
143
70
|
|
|
144
|
-
###
|
|
71
|
+
### 绘制地图
|
|
145
72
|
|
|
146
|
-
|
|
73
|
+
用户带着模糊想法调用:
|
|
147
74
|
|
|
148
|
-
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
75
|
+
1. **命名目的地。** 运行一轮 G 的 grilling/domain-modeling,确定正在寻路的 Spec、决策或变更。
|
|
76
|
+
2. **绘制前沿。** 再次质询,这次广度优先,在整个空间展开而非深入一条线索。如果没有浮现任何迷雾,停下并询问用户如何继续,不创建地图。
|
|
77
|
+
3. **创建地图。** 使用模板填写目的地和说明;“已做出的决策”为空,迷雾写入“尚未明确”。
|
|
78
|
+
4. **创建现在可明确的 Tickets。** 先创建全部 Ticket,再第二遍连接 `blocked_by`,因为 ID 必须先存在。
|
|
79
|
+
5. **派出 research Agent。** 每个 research Ticket 使用独立上下文和 claim,各自只解决一个 Ticket;需要 Git 分支时先取得对应授权。
|
|
80
|
+
6. 停止。绘制地图是一个会话的工作,它不亲手解决任何 Ticket。
|
|
154
81
|
|
|
155
|
-
|
|
82
|
+
**完成标准**:目的地、地图、当前可表述 Tickets、阻塞边和战争迷雾已持久化;绘图会话没有关闭 Ticket。
|
|
156
83
|
|
|
157
|
-
|
|
158
|
-
- `specdev/changes/{change}/ADR.md`;
|
|
159
|
-
- `specdev/changes/{change}/ticket/NN-<ticket-name>.md`;
|
|
160
|
-
- `specdev/changes/{change}/diagnosis.md`。
|
|
84
|
+
### 遍历地图
|
|
161
85
|
|
|
162
|
-
|
|
86
|
+
用户带来地图,可选指定 Ticket:
|
|
163
87
|
|
|
164
|
-
1.
|
|
165
|
-
2.
|
|
166
|
-
3.
|
|
167
|
-
4.
|
|
88
|
+
1. 加载地图的低分辨率视图,不加载每个 Ticket 正文。
|
|
89
|
+
2. 用户指定 Ticket 时使用它;否则按本地 tracker contract 查询并选择第一个 frontier Ticket。
|
|
90
|
+
3. 在任何工作前领取 Ticket。已领取时跳过并选择其他 frontier。
|
|
91
|
+
4. 按需缩放:只读取当前 Ticket、相关或已关闭 Ticket 的详情,以及“说明”指定的能力。
|
|
92
|
+
5. 解决当前唯一 Ticket,使用下一个未占用编号写 solution comment,原子关闭 Ticket 并释放 claim。
|
|
93
|
+
6. 在地图“已做出的决策”追加名称链接和一句概括;越界则写入“超出范围”。
|
|
94
|
+
7. 创建新浮现的 Tickets,第二遍连接阻塞;从“尚未明确”删除每个已升级补丁;更新或关闭被答案判定无效的 Tickets。
|
|
168
95
|
|
|
169
|
-
|
|
96
|
+
写回前重读地图、Ticket 与 claims,预期其他会话并发编辑。
|
|
170
97
|
|
|
171
|
-
|
|
98
|
+
**完成标准**:本会话只关闭一个 Ticket;Ticket、solution comment、claim、地图和新 frontier 一致。
|
|
172
99
|
|
|
173
|
-
|
|
100
|
+
## 收敛与路由
|
|
174
101
|
|
|
175
|
-
|
|
176
|
-
- 外部行为已清楚 → “编写 Spec 阶段”;
|
|
177
|
-
- Spec 已 Ready 且只是实现拆分未知 → “拆分 Tickets 阶段”;
|
|
178
|
-
- Bug 根因路径已收敛 → “Bug 诊断阶段”;
|
|
179
|
-
- 仍存在高影响未知项 → 保持 blocked,并明确下一调查或用户决策。
|
|
102
|
+
当前沿为空且“尚未明确”不再包含阻塞目的地的内容时,路径清晰:
|
|
180
103
|
|
|
181
|
-
|
|
104
|
+
- 需要产品或架构取舍:“设计访谈能力”;
|
|
105
|
+
- 外部行为已清楚:“编写 Spec 阶段”;
|
|
106
|
+
- Spec Ready、只需拆分:“拆分 Tickets 阶段”;
|
|
107
|
+
- Bug 根因路线收敛:“Bug 诊断阶段”;
|
|
108
|
+
- 仍有高影响未知项:保持 active/blocked 并返回下一 frontier Ticket 名称。
|
|
182
109
|
|
|
183
110
|
## 完成标准
|
|
184
111
|
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
-
|
|
188
|
-
-
|
|
189
|
-
-
|
|
190
|
-
-
|
|
191
|
-
-
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
195
|
-
- 已明确下一 work 或阻塞决策。
|
|
112
|
+
- 目的地塑造每个 Ticket 并固定范围;
|
|
113
|
+
- 地图是低分辨率索引,不列开放 Tickets,不复制答案详情;
|
|
114
|
+
- 四类 Ticket 与 HITL/AFK 语义正确;
|
|
115
|
+
- frontier 由 open、unblocked、unclaimed 事实查询;
|
|
116
|
+
- 名称用于人类叙述,裸 ID 只作内部标识;
|
|
117
|
+
- 战争迷雾、Ticket 与超出范围按可精确表述性和范围区分;
|
|
118
|
+
- 每会话最多解决一个 Ticket,HITL 用户没有被 Agent 代答;
|
|
119
|
+
- 每个关闭 Ticket 有 solution comment,资产通过链接引用;
|
|
120
|
+
- claim、阻塞、地图与 Ticket 状态一致;
|
|
121
|
+
- 路径清晰时返回下一 work,不把产品实现藏进寻路。
|
|
196
122
|
|
|
197
123
|
## 子文件引用
|
|
198
124
|
|
|
199
|
-
-
|
|
200
|
-
-
|
|
125
|
+
- 本地 Tracker:下方 `<local-tracker-contract>` 标签
|
|
126
|
+
- Ticket 模板:下方 `<investigation-ticket-template>` 标签
|
|
127
|
+
- Solution comment:下方 `<solution-comment-template>` 标签
|
|
128
|
+
- 地图模板:下方 `<wayfinder-map-template>` 标签
|
|
129
|
+
- Ticket schema:下方 `<wayfinder-ticket-schema>` 标签
|
|
201
130
|
|
|
202
131
|
---
|
|
203
132
|
|
|
@@ -212,66 +141,21 @@ Wayfinder 有两种入口,可分次进行:
|
|
|
212
141
|
生成该工件时,将以下字段写在文档开头的 YAML frontmatter 中:
|
|
213
142
|
|
|
214
143
|
```yaml
|
|
215
|
-
artifact:
|
|
144
|
+
artifact: wayfinder-ticket
|
|
216
145
|
id: INV-01
|
|
217
|
-
name:
|
|
218
|
-
|
|
219
|
-
|
|
146
|
+
name: <精确问题名称>
|
|
147
|
+
parent_map: specdev/changes/{change}/wayfinder-map.md
|
|
148
|
+
label: wayfinder:grilling
|
|
220
149
|
status: open
|
|
221
150
|
blocked_by: []
|
|
222
|
-
|
|
223
|
-
claimed_by: null
|
|
224
|
-
claimed_at: null
|
|
151
|
+
resolution: null
|
|
225
152
|
```
|
|
226
153
|
|
|
227
|
-
#
|
|
228
|
-
|
|
229
|
-
> 本 Ticket 只关闭**一个**高影响未知项,产出的是决策而非交付物。想“顺手实现”时即到了地图边缘,交接而非动手。
|
|
230
|
-
|
|
231
|
-
- **调查文件:** `specdev/changes/{change}/investigation/INV-01-<name>.md`
|
|
232
|
-
- **共享地图:** `specdev/changes/{change}/wayfinder-map.md`
|
|
233
|
-
- **Evidence:** `specdev/changes/{change}/investigation/evidence/INV-01.md`
|
|
234
|
-
|
|
235
|
-
## 0. 分类
|
|
236
|
-
|
|
237
|
-
- **Type:** research / decision / validation / mapping
|
|
238
|
-
- **模式:** AFK(子代理独立完成)/ HITL(须与用户实时交流,代理不代答)
|
|
239
|
-
|
|
240
|
-
## 1. 决策用途
|
|
241
|
-
|
|
242
|
-
- 要回答或决定什么(一个精确问题):
|
|
243
|
-
- 为什么阻塞规划:
|
|
244
|
-
- 结果由哪个工件消费:
|
|
154
|
+
# <精确问题名称>
|
|
245
155
|
|
|
246
|
-
##
|
|
156
|
+
## 问题
|
|
247
157
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
### 待验证假设
|
|
251
|
-
|
|
252
|
-
## 3. 调查契约
|
|
253
|
-
|
|
254
|
-
- **允许的代码探索:** `project/relative/path/**`
|
|
255
|
-
- **允许的实验 / 原型:**(原型仅供用户反应,不作最终架构)
|
|
256
|
-
- **禁止的产品实现:**
|
|
257
|
-
- **来源优先级:**
|
|
258
|
-
- **停止条件:**
|
|
259
|
-
- **时间或资源边界:**
|
|
260
|
-
|
|
261
|
-
## 4. 结果
|
|
262
|
-
|
|
263
|
-
- **状态:** confirmed / disproved / decision-needed / unresolved / superseded / cancelled
|
|
264
|
-
- **结论:**
|
|
265
|
-
- **证据:**
|
|
266
|
-
- **置信度:** high / medium / low
|
|
267
|
-
- **适用范围与版本:**
|
|
268
|
-
- **反例或限制:**
|
|
269
|
-
- **对 Spec 的影响:** 无 / `specdev/changes/{change}/spec.md`
|
|
270
|
-
- **对 ADR 的影响:** 无 / `specdev/changes/{change}/ADR.md`
|
|
271
|
-
- **对 Ticket 的影响:** 无 / `specdev/changes/{change}/ticket/NN-<ticket-name>.md`
|
|
272
|
-
- **浮现的新迷雾 / 新 Ticket:**
|
|
273
|
-
- **是否越界(移入范围之外):** 否 / 是(理由:)
|
|
274
|
-
- **下一步:**
|
|
158
|
+
<此 Ticket 要解决的一个决策、调查或解除阻塞工作。>
|
|
275
159
|
|
|
276
160
|
</investigation-ticket-template>
|
|
277
161
|
|
|
@@ -287,84 +171,97 @@ change: <YYYY-MM-DD-topic>
|
|
|
287
171
|
status: active
|
|
288
172
|
```
|
|
289
173
|
|
|
290
|
-
# Wayfinder Map:
|
|
174
|
+
# Wayfinder Map: <地图名称>
|
|
291
175
|
|
|
292
|
-
|
|
176
|
+
## 目的地
|
|
293
177
|
|
|
294
|
-
|
|
295
|
-
- **调查目录:** `specdev/changes/{change}/investigation/`
|
|
296
|
-
- **领取状态:** `specdev/status.json`
|
|
178
|
+
<到达此地图终点时的样子——此工作正在寻路的 spec、决策或变更。一到两行;每个会话在挑选 Ticket 之前以其为定位。>
|
|
297
179
|
|
|
298
|
-
##
|
|
180
|
+
## 说明
|
|
299
181
|
|
|
300
|
-
|
|
182
|
+
<领域;每个会话应咨询的 skills;此工作的常设偏好;是否明确把执行带入地图。>
|
|
301
183
|
|
|
302
|
-
##
|
|
184
|
+
## 已做出的决策
|
|
303
185
|
|
|
304
|
-
|
|
305
|
-
- **需参考的 skills:**
|
|
306
|
-
- **固定偏好 / 约束:**
|
|
307
|
-
- **执行授权:** 默认只产出决策不产出交付物;如需把执行纳入地图,在此显式写明。
|
|
186
|
+
<!-- 索引——每个已关闭 Ticket 一行:足以判断相关性,然后放大链接查看 solution comment 持有的详细信息。开放 Tickets 通过本地 tracker 查询,不列在这里。 -->
|
|
308
187
|
|
|
309
|
-
|
|
188
|
+
- **<已关闭 Ticket 标题>:** `specdev/changes/{change}/investigation/comments/INV-01/01-solution.md` —— <答案的一句话概括>
|
|
310
189
|
|
|
311
|
-
|
|
190
|
+
## 尚未明确
|
|
312
191
|
|
|
313
|
-
|
|
314
|
-
|---|---|---|---|---|---|---|---|---|
|
|
315
|
-
| 示例:登录态跨域刷新策略 | INV-01 | research | AFK | ... | — | unassigned | open | `specdev/changes/{change}/investigation/INV-01-<name>.md` |
|
|
192
|
+
<!-- 范围内但尚无法精确表述为 Ticket 的战争迷雾;随着前沿推进而升级。 -->
|
|
316
193
|
|
|
317
|
-
|
|
318
|
-
- 模式:AFK(子代理独立完成,典型 research/mapping)/ HITL(须与用户实时交流,代理不代答,典型 decision)。
|
|
194
|
+
## 超出范围
|
|
319
195
|
|
|
320
|
-
|
|
196
|
+
<!-- 被裁定在目的地之外的工作;已关闭,永不升级。 -->
|
|
321
197
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
└─→ INV-03
|
|
326
|
-
```
|
|
198
|
+
</wayfinder-map-template>
|
|
199
|
+
|
|
200
|
+
<local-tracker-contract>
|
|
327
201
|
|
|
328
|
-
|
|
202
|
+
# Wayfinder 本地 Tracker 适配
|
|
329
203
|
|
|
330
|
-
|
|
204
|
+
最新版 Wayfinder 以 issue tracker 为物理载体。SpecDev 的默认 tracker 是 change state 内的本地 Markdown/JSON;本文件只映射物理原语,不改写 Wayfinder 的地图、Ticket、战争迷雾或遍历语义。
|
|
331
205
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
206
|
+
| Tracker 原语 | 本地实现 |
|
|
207
|
+
|---|---|
|
|
208
|
+
| 地图 issue | `specdev/changes/{change}/wayfinder-map.md` |
|
|
209
|
+
| 子 issue | `specdev/changes/{change}/investigation/{investigation-id}.md` |
|
|
210
|
+
| label | Ticket frontmatter 的 `wayfinder:research|prototype|grilling|task` |
|
|
211
|
+
| 阻塞关系 | Ticket frontmatter 的 `blocked_by` |
|
|
212
|
+
| assignment | `specdev/status.json` 当前 change 的 `claimed_investigations` |
|
|
213
|
+
| solution comment | `specdev/changes/{change}/investigation/comments/{investigation-id}/NN-solution.md` |
|
|
214
|
+
| 关闭 issue | Ticket frontmatter 的 `status: closed` 与 `resolution` |
|
|
337
215
|
|
|
338
|
-
##
|
|
216
|
+
## 查询前沿
|
|
339
217
|
|
|
340
|
-
|
|
218
|
+
扫描当前地图的全部子 Ticket。一个 Ticket 同时满足以下条件时属于**前沿**:
|
|
341
219
|
|
|
342
|
-
|
|
343
|
-
|
|
220
|
+
1. `status: open`;
|
|
221
|
+
2. `blocked_by` 中的每个 Ticket 都是 `status: closed`;
|
|
222
|
+
3. `claimed_investigations` 中没有相同 `id`。
|
|
344
223
|
|
|
345
|
-
|
|
224
|
+
按文件名中的数字 ID 升序返回。地图正文不缓存开放 Ticket 列表;每次选择前沿都从 Ticket 与 claim 事实重新查询。
|
|
346
225
|
|
|
347
|
-
|
|
226
|
+
## 原子领取
|
|
348
227
|
|
|
349
|
-
|
|
228
|
+
开始任何工作前,重读全局状态并原子写入 `id`、`owner`、可选 `session` 和 `claimed_at`。已领取则选择下一前沿 Ticket。写回结果前再次重读;完成、释放或取消时删除 claim。
|
|
350
229
|
|
|
351
|
-
|
|
230
|
+
Ticket 文件不重复保存 assignee,地图不重复保存 claim。全局 assignment registry 是领取的单一事实源。
|
|
352
231
|
|
|
353
|
-
|
|
232
|
+
## 解决方案评论
|
|
354
233
|
|
|
355
|
-
|
|
356
|
-
|---|---|
|
|
234
|
+
Ticket 正文只保存问题。答案写入下一个未占用的 solution comment 文件,资产从评论链接,不粘贴进 Ticket。关闭 Ticket 后,地图的“已做出的决策”只追加名称链接和一句概括;`out-of-scope` 不进入决策索引。
|
|
357
235
|
|
|
358
|
-
|
|
236
|
+
**完成标准**:地图、Ticket、claim、阻塞和 solution comment 可以重建相同前沿;同一事实没有第二份可写副本。
|
|
359
237
|
|
|
360
|
-
-
|
|
361
|
-
- [ ] 所有高影响未知项已 confirmed、disproved,或明确转为用户/owner 决策。
|
|
362
|
-
- [ ] 战争迷雾中不再有阻塞目标、且已可精确表述却未立 Ticket 的问题。
|
|
363
|
-
- [ ] 可以形成 Ready Spec、Ticket、诊断契约或架构决策。
|
|
364
|
-
- [ ] 没有把产品实现留在调查 Ticket 中。
|
|
365
|
-
- [ ] 所有 claim 已释放或转为明确 blocked。
|
|
238
|
+
</local-tracker-contract>
|
|
366
239
|
|
|
367
|
-
|
|
240
|
+
<solution-comment-template>
|
|
241
|
+
|
|
242
|
+
## 产物 YAML 头部
|
|
243
|
+
|
|
244
|
+
生成该工件时,将以下字段写在文档开头的 YAML frontmatter 中:
|
|
245
|
+
|
|
246
|
+
```yaml
|
|
247
|
+
artifact: wayfinder-solution-comment
|
|
248
|
+
ticket: INV-01
|
|
249
|
+
sequence: 1
|
|
250
|
+
resolution: answered
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
# Solution: <Ticket 名称>
|
|
254
|
+
|
|
255
|
+
- **Ticket:** `specdev/changes/{change}/investigation/INV-01.md`
|
|
256
|
+
- **答案:** <此 Ticket 关闭的决定或已完成的解除阻塞工作>
|
|
257
|
+
- **事实与来源:**
|
|
258
|
+
- **资产:** 无 / `project/relative/path` / `<Url>https://example.com</Url>`
|
|
259
|
+
- **后续 Ticket 所依赖的事实:** 无 / ...
|
|
260
|
+
- **新浮现的 Tickets:** 无 / <按名称列出>
|
|
261
|
+
- **升级的战争迷雾:** 无 / ...
|
|
262
|
+
- **对现有 Tickets 的影响:** 无 / update / close / supersede
|
|
263
|
+
|
|
264
|
+
</solution-comment-template>
|
|
368
265
|
|
|
369
266
|
<research>
|
|
370
267
|
|
|
@@ -871,3 +768,28 @@ INV-01
|
|
|
871
768
|
```
|
|
872
769
|
|
|
873
770
|
</change-status-schema>
|
|
771
|
+
|
|
772
|
+
<wayfinder-ticket-schema>
|
|
773
|
+
|
|
774
|
+
```json
|
|
775
|
+
{
|
|
776
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
777
|
+
"$id": "urn:speculo:specdev:wayfinder-ticket:v1",
|
|
778
|
+
"title": "SpecDev Wayfinder Ticket Frontmatter",
|
|
779
|
+
"type": "object",
|
|
780
|
+
"required": ["artifact", "id", "name", "parent_map", "label", "status", "blocked_by", "resolution"],
|
|
781
|
+
"properties": {
|
|
782
|
+
"artifact": { "const": "wayfinder-ticket" },
|
|
783
|
+
"id": { "type": "string", "pattern": "^INV-[0-9]{2,}$" },
|
|
784
|
+
"name": { "type": "string", "minLength": 1 },
|
|
785
|
+
"parent_map": { "type": "string", "minLength": 1 },
|
|
786
|
+
"label": { "enum": ["wayfinder:research", "wayfinder:prototype", "wayfinder:grilling", "wayfinder:task"] },
|
|
787
|
+
"status": { "enum": ["open", "closed"] },
|
|
788
|
+
"blocked_by": { "type": "array", "items": { "type": "string", "pattern": "^INV-[0-9]{2,}$" } },
|
|
789
|
+
"resolution": { "enum": [null, "answered", "out-of-scope", "superseded", "cancelled"] }
|
|
790
|
+
},
|
|
791
|
+
"additionalProperties": false
|
|
792
|
+
}
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
</wayfinder-ticket-schema>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: docs-sync
|
|
3
3
|
type: command
|
|
4
4
|
name: Docs Sync
|
|
5
|
-
description: 清洁并提交工作区,以可复现 Git
|
|
5
|
+
description: 清洁并提交工作区,以可复现 Git 区间和确认范围同步项目文档、Agent 手册与 workflow 知识
|
|
6
6
|
keywords: [docs-sync, readme, changelog, agents, documentation]
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -19,8 +19,8 @@ keywords: [docs-sync, readme, changelog, agents, documentation]
|
|
|
19
19
|
## 执行
|
|
20
20
|
|
|
21
21
|
1. 读取 `../skills/docs-sync/SKILL.md`,解析 `speculo/config.json` 与 `speculo/.speculo/workspace.json`(不存在时以默认值静默降级),获取全部已安装 workflow/state 根。
|
|
22
|
-
2. 将 runtime context、报告路径、全局 state
|
|
22
|
+
2. 将 runtime context、报告路径、全局 state 路径、Git 副作用责任和 `handbook_mode` 传给 skill。`handbook_mode` 默认为 `incremental`;用户明确要求、手册缺失或 manifest 拓扑变化时使用 `rebuild`。
|
|
23
23
|
3. 整文件/目录删除和受保护知识仍逐次确认;skill 返回原子写入内容后,由本命令显式暂存并创建同步或 no-op commit。
|
|
24
24
|
4. 重新读取 Git、state、报告与 sidecar;只有工作区干净、节点可复现且所有文件已提交时完成。
|
|
25
25
|
|
|
26
|
-
完成标准:报告含输入节点、checkpoint
|
|
26
|
+
完成标准:报告含输入节点、checkpoint、确认范围、handbook mode、生命周期动作和验证;全局 state 与每个 workflow sidecar 有效;`git status --short` 为空。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
id: docs-sync
|
|
3
3
|
type: skill
|
|
4
4
|
name: Docs Sync
|
|
5
|
-
description:
|
|
5
|
+
description: 文档同步:基于可复现 Git 区间、确认范围和 workflow 规则审计项目文档,并在增量维护或重建分支中生成可预测的 AGENTS.md / CLAUDE.md 手册树。
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Docs Sync
|
|
@@ -16,7 +16,8 @@ description: 基于可复现 Git 区间、用户确认范围和 workflow 规则
|
|
|
16
16
|
1. 读取 `references/git-state-contract.md`,清理并提交可验证的既有工作区改动,解析上次基线与本次输入节点。完成标准:输入工作区干净,或已无损阻塞。
|
|
17
17
|
2. 读取 `references/workflow-scope-contract.md`,发现全部已安装 workflow,并解析全局范围与每个 workflow 的确认清单。完成标准:首次运行已统一确认范围,每个 workflow 状态根都有合法 sidecar。
|
|
18
18
|
3. 读取 `references/document-lifecycle-contract.md`,把输入区间和 workflow 证据映射为 `add | update | delete | merge | keep | propose-only`。完成标准:每个受影响资产已整份审计,而非只追加新段落。
|
|
19
|
-
4. 更新 README 时读取 `references/readme-contract.md`(同步规则)与 `references/readme-writing-guide.md`(内容写作规范);更新 CHANGELOG 时读取 `references/changelog-contract.md`;更新代理手册时读取 `references/agents-contract.md
|
|
20
|
-
5.
|
|
19
|
+
4. 更新 README 时读取 `references/readme-contract.md`(同步规则)与 `references/readme-writing-guide.md`(内容写作规范);更新 CHANGELOG 时读取 `references/changelog-contract.md`;更新代理手册时读取 `references/agents-contract.md`,由该契约选择 `incremental` 或 `rebuild` 分支。完成标准:每个命中文档只加载所属分支的规则,未发生分支泄漏。
|
|
20
|
+
5. 生成或修改任何 Agent 消费的手册、入口或上下文指针时,读取 `references/agents/agent-writing.md`,逐项应用上下文指针、信息层级、完成标准、引导词和精简规则。完成标准:每个含义只有一个事实源,每个分支有可到达的指针,逐句通过相关性与无效指令检查。
|
|
21
|
+
6. 验证项目和文档,按 `assets/report-template.md`、`assets/state-template.json` 与 `assets/workflow-scope-template.json` 返回原子写入内容。调用方提交显式文件列表并再次确认工作区干净。
|
|
21
22
|
|
|
22
23
|
完成标准:项目文档与当前事实一致,过期和重复内容已删除或合并;报告可复现输入区间;state 与 sidecar 已提交;没有未确认的越权写入或遗留工作区改动。
|