@namewta/speculo 0.1.18 → 0.1.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.
Files changed (38) hide show
  1. package/README.md +11 -4
  2. package/dist/src/index.js +17 -9
  3. package/dist/src/index.js.map +1 -1
  4. package/package.json +1 -1
  5. package/template/.speculo/.config/LESSONS.md +1 -1
  6. package/template/.speculo/.config/RULES.md +0 -1
  7. package/template/.speculo/AGENTS.md +30 -0
  8. package/template/.speculo/archive/AGENTS.md +28 -0
  9. package/template/.speculo/dev/docs-sync-state.json +3 -3
  10. package/template/commands/archive.md +2 -2
  11. package/template/commands/config-prune.md +80 -0
  12. package/template/commands/status.md +1 -1
  13. package/template/skills/github-npm-ops/references/release-pipeline.md +2 -2
  14. package/template/skills/speculo-write/references/command-authoring-sop.md +2 -0
  15. package/template/skills/speculo-write/references/migration-sop.md +1 -1
  16. package/template/skills/speculo-write/references/persistence-contract-sop.md +3 -3
  17. package/template/skills/speculo-write/references/validation-checklist.md +1 -0
  18. package/template/skills/speculo-write/references/workflow-authoring-sop.md +2 -2
  19. package/template/skills/worktree-isolation/SKILL.md +1 -1
  20. package/template/workflows/dev/03-tdd/03-tdd.md +16 -0
  21. package/template/workflows/dev/03-tdd/tdd-loop.md +4 -2
  22. package/template/workflows/dev/03-tdd/tdd-plan.md +10 -7
  23. package/template/workflows/dev/{00-INDEX.md → AGENTS.md} +16 -7
  24. package/template/workflows/dev/D-docs-sync/D-docs-sync.md +47 -21
  25. package/template/workflows/dev/D-docs-sync/config-contract.md +75 -0
  26. package/template/workflows/dev/D-docs-sync/docs-sync-diff.md +40 -4
  27. package/template/workflows/dev/D-docs-sync/docs-sync-finish.md +11 -7
  28. package/template/workflows/dev/D-docs-sync/docs-sync-state.md +23 -8
  29. package/template/workflows/dev/D-docs-sync/docs-sync-update.md +22 -13
  30. package/template/workflows/dev/D-docs-sync/knowledge-extract.md +66 -0
  31. package/template/workflows/dev/D-docs-sync/state-json-schema.md +41 -24
  32. package/template/workflows/dev/M-domain-modeling/ADR-FORMAT.md +26 -1
  33. package/template/workflows/dev/_templates/docs-sync-report-template.md +21 -5
  34. package/template/workflows/dev/_templates/docs-sync-state-template.json +4 -4
  35. package/template/workflows/dev/_templates/tdd-log-template.md +3 -0
  36. package/template/workflows/dev/_templates/tdd-plan-template.md +3 -0
  37. package/template/workflows/doc/{00-INDEX.md → AGENTS.md} +14 -5
  38. package/template/workflows/person/{00-INDEX.md → AGENTS.md} +14 -5
@@ -8,19 +8,19 @@
8
8
 
9
9
  - docs-sync workflow **唯一**的跨 change 持久化状态
10
10
  - 每次成功同步后原子化写入
11
- - 必须跟随仓库提交到 git(作为同步基线的事实来源)
11
+ - 必须跟随仓库提交到 git(作为同步基线和 tracked assets 的事实来源)
12
12
  - **不放在 workflow 资产目录内**:workflow 目录是只读知识资产,状态属于项目 `speculo/.speculo/`
13
13
 
14
14
  **初始化模板**:`../_templates/docs-sync-state-template.json`
15
15
 
16
- ## 字段定义
16
+ ## 字段定义(schema_version 2)
17
17
 
18
18
  | 字段 | 类型 | 必填 | 说明 |
19
19
  |------|------|:---:|------|
20
- | `schema_version` | integer | ✓ | 当前 `1`;字段破坏性变化时递增 |
20
+ | `schema_version` | integer | ✓ | 当前 `2`;字段破坏性变化时递增 |
21
21
  | `skill` | string | ✓ | 固定为 `"docs-sync"`,便于多技能共用项目根目录时辨识 |
22
22
  | `state_path` | string | ✓ | 自描述字段:state 文件相对仓库根的路径;协助协作者理解文件位置 |
23
- | `tracked_docs` | string[] | ✓ | 本项目纳入同步的文档路径(相对仓库根);首次运行后由用户确认写入 |
23
+ | `tracked_assets` | string[] | ✓ | 本项目纳入同步的文档和 `.config` 知识资产路径(相对仓库根);首次空 state 由 `bootstrap` 初始化自动推导写入 |
24
24
  | `last_sync_sha` | string (40 hex) \| `null` | ✓ | 上次成功同步后记录的 commit SHA;下次 diff 的起点;首次运行前为 `null` |
25
25
  | `last_sync_short` | string (7 hex) \| `null` | ✓ | `last_sync_sha` 的前 7 位,便于日志阅读 |
26
26
  | `last_sync_commit_subject` | string \| `null` | ✓ | 上次基线 commit 的 subject 行 |
@@ -28,7 +28,12 @@
28
28
  | `last_sync_run_at` | string (ISO 8601 UTC) \| `null` | ✓ | 本次同步**完成写入**时刻;与 `last_sync_commit_date` 不同 —— 前者是"我什么时候做的",后者是"基线 commit 什么时候创建的" |
29
29
  | `previous_sync_sha` | string (40 hex) \| `null` | ✓ | 上一次的 `last_sync_sha`;首次运行时为 `null` |
30
30
  | `total_syncs` | integer | ✓ | 累计触发次数(含空同步) |
31
- | `synced_docs` | string[] | ✓ | 本次**实际被修改**的对外文档文件名数组;空同步时为 `[]` |
31
+ | `synced_assets` | string[] | ✓ | 本次**实际被修改**的 tracked assets;空同步时为 `[]` |
32
+
33
+ `tracked_assets` 支持两类写法:
34
+
35
+ - 精确路径:`README.md`、`AGENTS.md`、`speculo/.speculo/.config/RULES.md`
36
+ - 受限 Markdown glob:`docs/**/*.md`、`speculo/.speculo/.config/context/**/*.md`、`speculo/.speculo/.config/adr/**/*.md`
32
37
 
33
38
  **禁止**放入的字段:
34
39
 
@@ -36,6 +41,7 @@
36
41
  - 用户个人信息
37
42
  - 密钥 / token
38
43
  - 绝对路径(影响跨环境协作)
44
+ - archive 提取详情和用户确认原文(写入 report,不写 state)
39
45
 
40
46
  ## 典型状态
41
47
 
@@ -43,10 +49,10 @@
43
49
 
44
50
  ```json
45
51
  {
46
- "schema_version": 1,
52
+ "schema_version": 2,
47
53
  "skill": "docs-sync",
48
54
  "state_path": "speculo/.speculo/dev/docs-sync-state.json",
49
- "tracked_docs": [],
55
+ "tracked_assets": [],
50
56
  "last_sync_sha": null,
51
57
  "last_sync_short": null,
52
58
  "last_sync_commit_subject": null,
@@ -54,37 +60,37 @@
54
60
  "last_sync_run_at": null,
55
61
  "previous_sync_sha": null,
56
62
  "total_syncs": 0,
57
- "synced_docs": []
63
+ "synced_assets": []
58
64
  }
59
65
  ```
60
66
 
61
- ### 建立基线后(首次运行完成)
67
+ ### 建立基线后(首次 bootstrap 完成)
62
68
 
63
69
  ```json
64
70
  {
65
- "schema_version": 1,
71
+ "schema_version": 2,
66
72
  "skill": "docs-sync",
67
73
  "state_path": "speculo/.speculo/dev/docs-sync-state.json",
68
- "tracked_docs": ["README.md", "CHANGELOG.md"],
74
+ "tracked_assets": ["README.md", "CHANGELOG.md", "AGENTS.md", "docs/**/*.md", "speculo/.speculo/.config/LESSONS.md"],
69
75
  "last_sync_sha": "2d16d7a4d7f5da165c565b9aa3265824be133214",
70
76
  "last_sync_short": "2d16d7a",
71
77
  "last_sync_commit_subject": "chore: initial release",
72
78
  "last_sync_commit_date": "2026-05-10T09:48:14+08:00",
73
79
  "last_sync_run_at": "2026-05-10T12:00:00Z",
74
80
  "previous_sync_sha": null,
75
- "total_syncs": 0,
76
- "synced_docs": []
81
+ "total_syncs": 1,
82
+ "synced_assets": ["README.md", "CHANGELOG.md", "AGENTS.md"]
77
83
  }
78
84
  ```
79
85
 
80
- ### 常规同步(实际改了两份文档)
86
+ ### 常规同步(实际改了两份资产)
81
87
 
82
88
  ```json
83
89
  {
84
- "schema_version": 1,
90
+ "schema_version": 2,
85
91
  "skill": "docs-sync",
86
92
  "state_path": "speculo/.speculo/dev/docs-sync-state.json",
87
- "tracked_docs": ["README.md", "CHANGELOG.md"],
93
+ "tracked_assets": ["README.md", "CHANGELOG.md", "speculo/.speculo/.config/LESSONS.md"],
88
94
  "last_sync_sha": "abc1234def5678...",
89
95
  "last_sync_short": "abc1234",
90
96
  "last_sync_commit_subject": "feat(cli): add --json to status",
@@ -92,18 +98,18 @@
92
98
  "last_sync_run_at": "2026-05-15T14:00:00Z",
93
99
  "previous_sync_sha": "2d16d7a4d7f5da165c565b9aa3265824be133214",
94
100
  "total_syncs": 3,
95
- "synced_docs": ["README.md", "CHANGELOG.md"]
101
+ "synced_assets": ["README.md", "speculo/.speculo/.config/LESSONS.md"]
96
102
  }
97
103
  ```
98
104
 
99
- ### 空同步(diff 全是文档自身)
105
+ ### 空同步(diff 与知识审计都无需修改)
100
106
 
101
107
  ```json
102
108
  {
103
- "schema_version": 1,
109
+ "schema_version": 2,
104
110
  "skill": "docs-sync",
105
111
  "state_path": "speculo/.speculo/dev/docs-sync-state.json",
106
- "tracked_docs": ["README.md", "CHANGELOG.md"],
112
+ "tracked_assets": ["README.md", "CHANGELOG.md", "AGENTS.md", "docs/**/*.md"],
107
113
  "last_sync_sha": "ffe9876abc5432...",
108
114
  "last_sync_short": "ffe9876",
109
115
  "last_sync_commit_subject": "docs(readme): fix typo",
@@ -111,7 +117,7 @@
111
117
  "last_sync_run_at": "2026-05-16T11:00:00Z",
112
118
  "previous_sync_sha": "abc1234def5678...",
113
119
  "total_syncs": 4,
114
- "synced_docs": []
120
+ "synced_assets": []
115
121
  }
116
122
  ```
117
123
 
@@ -126,10 +132,11 @@
126
132
 
127
133
  读取 state 文件时按以下降级链处理:
128
134
 
129
- 1. 文件不存在 → 首次运行流程:复制 `../_templates/docs-sync-state-template.json` 到 `speculo/.speculo/dev/docs-sync-state.json`,基线设为当前 HEAD,请用户确认 `tracked_docs`
135
+ 1. 文件不存在 → 复制 `../_templates/docs-sync-state-template.json` 到 `speculo/.speculo/dev/docs-sync-state.json`,进入 `bootstrap` 文档初始化;不要立即把基线设为当前 HEAD
130
136
  2. JSON 解析失败 → 报错退出,要求用户手动修复或删除
131
- 3. `schema_version > 1` → 报错退出,提示技能版本过旧
132
- 4. `last_sync_sha` 不是 40 字符十六进制且不为 `null` → 视为损坏,回退到首次运行
137
+ 3. `schema_version > 2` → 报错退出,提示技能版本过旧
138
+ 4. `last_sync_sha` 不是 40 字符十六进制且不为 `null` → 视为损坏,回退到 `bootstrap` 文档初始化
139
+ 5. `tracked_assets` 为空或 `last_sync_sha` 为 `null` → 进入 `bootstrap` 文档初始化,自动推导首批 tracked assets 并完成从 0 到 1 的文档建档
133
140
 
134
141
  ## 版本演进规则
135
142
 
@@ -140,6 +147,16 @@
140
147
 
141
148
  递增时必须在本文件追加"vN → vN+1 迁移"小节,描述如何处理老格式。
142
149
 
150
+ ## v1 → v2 迁移
151
+
152
+ v2 把 docs-only 命名扩展为 assets:
153
+
154
+ - `tracked_docs` → `tracked_assets`
155
+ - `synced_docs` → `synced_assets`
156
+ - `schema_version` → `2`
157
+
158
+ 迁移时保留 baseline 字段、`previous_sync_sha` 和 `total_syncs`。若迁移后仍有有效 `tracked_assets` 和 `last_sync_sha`,不要自动扩大同步范围;若迁移后 `tracked_assets` 为空或 `last_sync_sha` 为 `null`,进入 `bootstrap` 文档初始化。
159
+
143
160
  ## 与 git 的协作
144
161
 
145
162
  - state 文件**提交到 git**,作为仓库的一部分
@@ -16,11 +16,36 @@ ADR 存放在 `speculo/.speculo/.config/adr/` 目录下,使用顺序编号:`
16
16
 
17
17
  就这些。一个 ADR 可以只是一段话。价值在于记录「做出了某个决策」以及「为什么」——而不是填满各个章节。
18
18
 
19
+ ## 生命周期元数据
20
+
21
+ 默认 ADR 不需要元数据。只有当决策需要生命周期联动时,在标题下方放极简字段:
22
+
23
+ ```md
24
+ # {决策的简短标题}
25
+
26
+ Status: accepted
27
+ superseded_by: null
28
+
29
+ {1-3 句话:背景是什么、我们决定了什么、为什么这样决定。}
30
+ ```
31
+
32
+ 允许值:
33
+
34
+ - `Status: proposed | accepted | deprecated | superseded`
35
+ - `superseded_by: ADR-NNNN | null`
36
+
37
+ 当新 ADR 取代旧 ADR 时:
38
+
39
+ - 新 ADR 正文说明取代了哪个 ADR 以及原因。
40
+ - 旧 ADR 顶部更新为 `Status: superseded` 和 `superseded_by: ADR-NNNN`。
41
+ - 若项目有 ADR 索引或 README,同步状态和取代链。
42
+ - 任何 CONTEXT、AGENTS、README 或 docs 中的旧 ADR 引用都必须改为新 ADR、删除,或标记为待确认。
43
+
19
44
  ## 可选章节
20
45
 
21
46
  只有确实能增加价值时才包含以下章节。大多数 ADR 不需要它们。
22
47
 
23
- - **Status** 前置元数据(`proposed | accepted | deprecated | superseded by ADR-NNNN`)—— 当决策被重新审视时很有用
48
+ - **Status** 前置元数据(见「生命周期元数据」)—— 当决策被重新审视时很有用
24
49
  - **Considered Options** —— 只有被拒绝的替代方案值得记住时才写
25
50
  - **Consequences** —— 只有非显而易见的下游影响需要指出时才写
26
51
 
@@ -6,19 +6,35 @@
6
6
 
7
7
  ## Range
8
8
 
9
- [TODO: 记录 `<LAST_SYNC_SHA>..HEAD`、commit 数、文件数和 shortstat。]
9
+ [TODO: 记录 `<LAST_SYNC_SHA>..HEAD`;bootstrap 模式写 `<bootstrap>..HEAD`,并说明本次为首次文档初始化。]
10
+
11
+ ## Bootstrap Initialization
12
+
13
+ [TODO: 仅 bootstrap 模式填写:记录项目事实盘点、自动推导的 tracked assets、缺失文档清单和初始化动作;常规同步写 `N/A`。]
10
14
 
11
15
  ## Diff Summary
12
16
 
13
- [TODO: 记录 git log、name-status 和路径分组摘要。]
17
+ [TODO: 记录 git log、name-status、路径分组、archive/.config 相关 diff 摘要。]
18
+
19
+ ## Archive Sources
20
+
21
+ [TODO: 列出本次读取的 `speculo/.speculo/archive/` 产物路径;没有相关归档时写 `[]` 和原因。]
22
+
23
+ ## Knowledge Suggestions
24
+
25
+ [TODO: 记录从归档提取的 ADR / CONTEXT / RULES / LESSONS / 文档漂移候选,包含来源路径和动作。]
26
+
27
+ ## Config Audit
28
+
29
+ [TODO: 记录 `.config` 审计结果,按 add / update / delete / keep / propose-only 分组;RULES 写入确认单独记录。]
14
30
 
15
31
  ## Mapping
16
32
 
17
- [TODO: 说明哪些变更映射到哪些 tracked docs。]
33
+ [TODO: 说明哪些变更或 bootstrap 初始化发现映射到哪些 tracked assets。]
18
34
 
19
- ## Synced Docs
35
+ ## Synced Assets
20
36
 
21
- [TODO: 列出实际修改的文档和一句话说明;空同步时写 `[]`。]
37
+ [TODO: 列出实际创建或修改的资产和一句话说明;空同步时写 `[]`。]
22
38
 
23
39
  ## Verification
24
40
 
@@ -1,8 +1,8 @@
1
1
  {
2
- "schema_version": 1,
2
+ "schema_version": 2,
3
3
  "skill": "docs-sync",
4
- "state_path": ".speculo/dev/docs-sync-state.json",
5
- "tracked_docs": [],
4
+ "state_path": "speculo/.speculo/dev/docs-sync-state.json",
5
+ "tracked_assets": [],
6
6
  "last_sync_sha": null,
7
7
  "last_sync_short": null,
8
8
  "last_sync_commit_subject": null,
@@ -10,5 +10,5 @@
10
10
  "last_sync_run_at": null,
11
11
  "previous_sync_sha": null,
12
12
  "total_syncs": 0,
13
- "synced_docs": []
13
+ "synced_assets": []
14
14
  }
@@ -7,6 +7,9 @@
7
7
  ## 阶段标识
8
8
  [TODO: 本阶段 `<phase-id>`(与同目录 `tdd-plan.md` 一致)。]
9
9
 
10
+ ## Git 状态变化
11
+ [TODO: 记录相对 `tdd-plan.md` 执行前基线新增/变化的 dirty、staged、untracked 文件,以及未知改动的处理结论。]
12
+
10
13
  ## 循环记录
11
14
  [TODO: 对每轮 RED/GREEN/REFACTOR 记录切片、行为、测试、实现摘要、重构摘要和验证结果。]
12
15
 
@@ -10,6 +10,9 @@
10
10
  ## 切片来源
11
11
  [TODO: 记录来自 PRD、slices、diagnosis 还是用户直接请求。]
12
12
 
13
+ ## 执行前 Git 基线
14
+ [TODO: 记录当前分支、`git status --short --branch` 摘要、`git diff --stat`、`git diff --cached --stat`。若不是 git 仓库或命令失败,记录原因。]
15
+
13
16
  ## 保留/不动(约束)
14
17
  [TODO: 承接本切片「保留/不动」:实现中不能碰的代码/契约/数据(冻结常量、共享依赖、邻近功能);无则写「无」。]
15
18
 
@@ -1,19 +1,27 @@
1
1
  ---
2
2
  id: doc/index
3
3
  category: doc
4
- name: Doc Workflow Index
5
- description: 文档写作、塑形、编辑与素材管理的横向工作流导航入口
6
- keywords: [doc, writing, article, fragments, edit, 文档, 写作]
4
+ name: Doc Workflow AGENTS Guide
5
+ description: 文档写作、塑形、编辑与素材管理的横向工作流导航与渐进披露指引
6
+ keywords: [doc, writing, article, fragments, edit, agents, 文档, 写作]
7
7
  ---
8
8
 
9
- # Doc Workflow Index
9
+ # Doc Workflow AGENTS Guide
10
10
 
11
11
  > ⚠️ **持久化铁律:本文件及所有 doc workflow 的全部产物,必须且只能写入 `speculo/.speculo/doc/<change>/`。绝对禁止写入项目根目录的 `.speculo/`、`temp/` 或其他任何非规范位置。**
12
12
 
13
- 本文件是 doc 分类的导航入口。进入时先读取 `speculo/.speculo/doc-status.json`,再按其中 active change 读取 `speculo/.speculo/doc/<change>/.status.json`,根据用户意图推荐横向 workflow。
13
+ 本文件是 doc 分类的 AGENTS 导航入口。进入时先读取 `speculo/.speculo/doc-status.json`,再按其中 active change 读取 `speculo/.speculo/doc/<change>/.status.json`,根据用户意图推荐横向 workflow。
14
14
 
15
15
  > **命名铁律:** 所有 change 目录必须为 `YYYY-MM-DD-<kebab-name>`(例:`2026-06-12-article-draft`)。不符合此格式的目录视为 `malformed`,仅汇报不自动操作。
16
16
 
17
+ ## 渐进披露
18
+
19
+ 1. 先读本文件,确认当前 doc change、写作模式和入口别名。
20
+ 2. 选定入口后,只读取对应 workflow 入口文件(如 `S-writing-shape/S-writing-shape.md`)。
21
+ 3. 进入具体 phase 时,再读取该 phase 文件、模板和被调用 skill wrapper。
22
+ 4. 执行中如涉及项目硬约束、跨任务经验、写作上下文、术语定义、ADR 或决策依据,必须参考 `../../.speculo/.config/` 下对应文件;`RULES.md` 的约束高于普通 workflow 文案。
23
+ 5. 需要理解状态骨架、archive 或 `.config` 时,读取 `../../.speculo/AGENTS.md` 和相关子目录的 `AGENTS.md`。
24
+
17
25
  ## 入口别名
18
26
 
19
27
  | 别名 | 入口 | 用途 |
@@ -36,6 +44,7 @@ keywords: [doc, writing, article, fragments, edit, 文档, 写作]
36
44
  - 以上三步全部成功后,方可继续推荐入口。
37
45
  4. 推荐入口时优先使用用户显式别名;没有别名时按用户意图推荐一个横向 workflow。
38
46
  5. 执行任何 workflow 前,读取该 workflow 入口文件、阶段文件和模板。
47
+ 6. 执行中一旦需要项目规则、经验、上下文、术语或 ADR,先读取 `../../.speculo/.config/`,再继续判断或写入产物;除非用户明确要求或规则允许,不自动改写 `.config/`。
39
48
 
40
49
  ## 执行模式
41
50
 
@@ -1,19 +1,27 @@
1
1
  ---
2
2
  id: person/index
3
3
  category: person
4
- name: Person Workflow Index
5
- description: 以人物方法论为底座的工作流导航入口
6
- keywords: [person, methodology, 人物, 方法论, cognitive, 认知]
4
+ name: Person Workflow AGENTS Guide
5
+ description: 以人物方法论为底座的工作流导航与渐进披露指引
6
+ keywords: [person, methodology, agents, 人物, 方法论, cognitive, 认知]
7
7
  ---
8
8
 
9
- # Person Workflow Index
9
+ # Person Workflow AGENTS Guide
10
10
 
11
11
  > ⚠️ **持久化铁律:本文件及所有 person workflow 的全部产物,必须且只能写入 `speculo/.speculo/person/<change>/`。绝对禁止写入项目根目录的 `.speculo/`、`temp/` 或其他任何非规范位置。**
12
12
 
13
- 本文件是 person 分类的导航入口。进入时先读取 `speculo/.speculo/person-status.json`,再按其中 active change 读取 `speculo/.speculo/person/<change>/.status.json`,根据用户意图推荐横向 workflow。
13
+ 本文件是 person 分类的 AGENTS 导航入口。进入时先读取 `speculo/.speculo/person-status.json`,再按其中 active change 读取 `speculo/.speculo/person/<change>/.status.json`,根据用户意图推荐横向 workflow。
14
14
 
15
15
  > **命名铁律:** 所有 change 目录必须为 `YYYY-MM-DD-<kebab-name>`(例:`2026-06-12-mao-strategy-consult`)。不符合此格式的目录视为 `malformed`,仅汇报不自动操作。
16
16
 
17
+ ## 渐进披露
18
+
19
+ 1. 先读本文件,确认当前 person change、咨询模式和入口别名。
20
+ 2. 选定入口后,只读取对应 workflow 入口文件(如 `M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md`)。
21
+ 3. 进入具体 phase 时,再读取该 phase 文件、模板和被调用 skill wrapper。
22
+ 4. 执行中如涉及项目硬约束、跨任务经验、人物方法论上下文、术语定义、ADR 或决策依据,必须参考 `../../.speculo/.config/` 下对应文件;`RULES.md` 的约束高于普通 workflow 文案。
23
+ 5. 需要理解状态骨架、archive 或 `.config` 时,读取 `../../.speculo/AGENTS.md` 和相关子目录的 `AGENTS.md`。
24
+
17
25
  ## 入口别名
18
26
 
19
27
  | 别名 | 入口 | 用途 |
@@ -28,6 +36,7 @@ keywords: [person, methodology, 人物, 方法论, cognitive, 认知]
28
36
  3. 若没有 active change,按用户意图创建新的 change 目录,**目录名必须为 `YYYY-MM-DD-<kebab-name>`**(使用当前日期,`<kebab-name>` 从用户意图提取),并初始化 `.status.json` 与 `speculo/.speculo/person-status.json`。
29
37
  4. 推荐入口时优先使用用户显式别名;没有别名时按用户意图推荐一个横向 workflow。
30
38
  5. 执行任何 workflow 前,读取该 workflow 入口文件、阶段文件和模板。
39
+ 6. 执行中一旦需要项目规则、经验、上下文、术语或 ADR,先读取 `../../.speculo/.config/`,再继续判断或写入产物;除非用户明确要求或规则允许,不自动改写 `.config/`。
31
40
 
32
41
  ## 执行模式
33
42