@haaaiawd/loom 0.10.0 → 1.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/CHANGELOG.md +22 -0
- package/LICENSE +21 -0
- package/README.md +147 -74
- package/cli/bin/loom.js +428 -105
- package/cli/help/asset.md +36 -0
- package/cli/help/atelier.md +37 -0
- package/cli/help/capability.md +68 -0
- package/cli/help/concepts.md +100 -72
- package/cli/help/doctor.md +71 -121
- package/cli/help/loop.md +120 -135
- package/cli/help/patch.md +33 -0
- package/cli/help/preview.md +2 -1
- package/cli/help/proposals.md +21 -0
- package/cli/help/version.md +92 -16
- package/cli/help/workflow.md +101 -100
- package/cli/src/activate.js +349 -73
- package/cli/src/asset-library.js +384 -0
- package/cli/src/atelier.js +331 -0
- package/cli/src/capability-graph.js +351 -0
- package/cli/src/capability-proposals.js +225 -0
- package/cli/src/diagnostics.js +240 -44
- package/cli/src/guide.js +155 -40
- package/cli/src/init.js +58 -32
- package/cli/src/intent-draft.js +303 -0
- package/cli/src/intent-map.js +560 -54
- package/cli/src/patch.js +214 -0
- package/cli/src/philosophy.js +177 -154
- package/cli/src/preview-prompt.md +13 -6
- package/cli/src/preview.js +1 -0
- package/cli/src/shared/intent-ref.js +38 -0
- package/cli/src/shared/proof-reference.js +19 -0
- package/cli/src/shared/verification-method.js +32 -0
- package/cli/src/verify.js +202 -62
- package/cli/src/version.js +5 -4
- package/dimensions/AUTHORSHIP.md +45 -0
- package/dimensions/PART_DECOMPOSITION.md +42 -203
- package/dimensions/SEARCH_METHODOLOGY.md +101 -97
- package/dimensions/examples/AGENT_SYSTEM/README.md +1 -1
- package/dimensions/examples/CLI_TOOL/README.md +1 -1
- package/dimensions/universal/COLLABORATION_PHILOSOPHY.md +28 -77
- package/dimensions/universal/ENGINEERING_CREED.md +30 -74
- package/dimensions/universal/PRODUCT_PHILOSOPHY.md +32 -70
- package/meta/BASELINE.md +91 -276
- package/meta/INTENT_LOOP.md +289 -737
- package/meta/PHILOSOPHY_WEAVER.md +110 -343
- package/meta/ROLE_ACTIVATION.md +109 -267
- package/package.json +13 -7
- package/roles/architect.md +84 -111
- package/roles/forge.md +105 -126
- package/roles/keeper.md +109 -223
- package/roles/visionary.md +57 -86
- package/templates/ASSET_LIBRARY_MANIFEST_TEMPLATE.json +10 -0
- package/templates/ATELIER_RECORD_TEMPLATE.json +48 -0
- package/templates/CAPABILITY_BRIEF_TEMPLATE.md +34 -0
- package/templates/CAPABILITY_GRAPH_TEMPLATE.json +11 -0
- package/templates/INTENT_MAP_TEMPLATE.json +26 -10
- package/templates/PHILOSOPHY_TEMPLATE.md +44 -75
- package/templates/VISION_TEMPLATE.md +44 -67
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Asset Library Protocol
|
|
2
|
+
|
|
3
|
+
Asset Library is the versioned, local-first source of truth for project materials. It stores asset bytes under `.loom/vN/08_ASSET_LIBRARY/files/` and metadata in `manifest.json`. A remote URL, successful download, or HTTP 200 is never proof that an asset is renderable in the target host.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
loom asset import ./approved-image.png \
|
|
9
|
+
--kind image \
|
|
10
|
+
--tags "庆祝,表情,项目名" \
|
|
11
|
+
--source "用户自有素材包" \
|
|
12
|
+
--author "作者或权利人" \
|
|
13
|
+
--license "授权说明或许可证" \
|
|
14
|
+
--approval approved
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Import copies an explicitly named ordinary local file, computes SHA-256, derives a stable `ASSET-...` ID, and rejects symbolic links, destination/path escape, duplicate bytes, missing provenance, and unapproved assets. It does not fetch remote material.
|
|
18
|
+
|
|
19
|
+
## Recoverable import transaction
|
|
20
|
+
|
|
21
|
+
An evidence-linked import changes three files: the copied bytes, `manifest.json`, and `07_CAPABILITY_GRAPH.json`. Filesystems do not provide one atomic operation across those files, so Loom does not claim that they do. It first prevalidates the complete candidate, then writes same-directory temporary files and a recovery journal (flushed where the filesystem supports it). If an import errors, Loom rolls back to the recorded pre-import state; if the process is interrupted, the next `loom asset validate`, import, or library read recovers the journal before using the library. `loom asset validate` reports a recovered transaction in its JSON output.
|
|
22
|
+
|
|
23
|
+
## Discover and verify
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
loom asset list
|
|
27
|
+
loom asset search 表情
|
|
28
|
+
loom asset get ASSET-<hash-prefix>
|
|
29
|
+
loom asset validate
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Tags are Unicode strings, so Chinese search works without a separate tokenizer for the small local library. Search returns only active `approval: approved` assets; `asset list` remains the audit view. Only approved assets may be used by Forge.
|
|
33
|
+
|
|
34
|
+
## Evidence links
|
|
35
|
+
|
|
36
|
+
When importing with `--evidence`, Loom validates the complete prospective manifest and Graph first, then writes both the asset's `evidence_refs` and the evidence node's `asset_refs` as one recoverable transaction. `loom asset validate` checks this reciprocal link plus hashes and provenance. This records bytes and traceability; Keeper must still check the real target host renders the result.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Atelier
|
|
2
|
+
|
|
3
|
+
Atelier 是 `quality_strategy=atelier` 的创作深路径。它让 Authorial Stance、基线、候选、
|
|
4
|
+
修正和选择证据成为单个版本化记录,不替代 Intent 状态或 Keeper。
|
|
5
|
+
|
|
6
|
+
## 何时启用
|
|
7
|
+
|
|
8
|
+
由 Architect 在 Intent 同时声明:
|
|
9
|
+
|
|
10
|
+
```json
|
|
11
|
+
{
|
|
12
|
+
"quality_contract": "相对基线可观察的质量主张与证据方式",
|
|
13
|
+
"quality_strategy": "atelier",
|
|
14
|
+
"creative_scope": "允许改变什么;必须保护什么。"
|
|
15
|
+
}
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
普通任务省略该字段或使用 `adaptive`,不会创建 Atelier Record。
|
|
19
|
+
|
|
20
|
+
## 工作流
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
loom activate forge --intent INT-001
|
|
24
|
+
loom atelier init INT-001
|
|
25
|
+
loom atelier validate INT-001
|
|
26
|
+
loom atelier get INT-001
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
记录位于 `.loom/vN/09_ATELIER/INT-001.json`,证据位于
|
|
30
|
+
`.loom/vN/09_ATELIER/files/INT-001/`。
|
|
31
|
+
|
|
32
|
+
每个候选必须绑定 `stance_revision`。Stance 改变后,旧候选要设置 `archived: true`,
|
|
33
|
+
或在重新检查后写 `requalified_for_stance_revision`。局部创作修正写入 `corrections[]`;
|
|
34
|
+
结构性新发现提交 Capability Graph proposal,由 Architect 裁决。
|
|
35
|
+
|
|
36
|
+
`loom atelier validate` 只证明记录结构、新鲜度和引用合法,不证明作品优秀。最终质量仍由
|
|
37
|
+
新的 Keeper task 依据 Quality Proof 独立判定。
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
## Capability Graph 指南
|
|
2
|
+
|
|
3
|
+
Capability Graph 位于 Vision 与 Intent Map 之间:它把项目初衷展开为需要被理解、设计、实现或证明的
|
|
4
|
+
问题面、能力缺口、风险与证据。它不是待办列表,也不替代 Intent Map。
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
loom capability graph
|
|
8
|
+
loom capability frontier
|
|
9
|
+
loom capability get <node-id>
|
|
10
|
+
loom capability coverage
|
|
11
|
+
loom capability compile <intent-id>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 工作方式
|
|
15
|
+
|
|
16
|
+
Visionary 给出 outcome、角色、非目标与项目事实。Architect 用项目类型相符的透镜检查用户旅程、
|
|
17
|
+
体验、系统、资产、横切质量和未知;每个透镜必须被展开、覆盖或明确排除。
|
|
18
|
+
|
|
19
|
+
高影响节点不能停在 `open`。它必须继续展开、生成 Capability Brief、编译为 Intent,或带理由地
|
|
20
|
+
延后/排除。`loom capability frontier` 显示尚未路由的高影响节点;`loom capability coverage` 检查
|
|
21
|
+
图谱与 Intent 的双向追溯。
|
|
22
|
+
|
|
23
|
+
高影响 `outcome` 还必须有一条真实的观察链:以 `validated_by` 指向 `evidence` 节点。该 evidence 的
|
|
24
|
+
`verification` 对象必须包含 `method`、`target`、`procedure`、`pass_criteria` 和 `artifact`,并以
|
|
25
|
+
`intent_refs` 回链负责产出该证据的 Intent。`target` 写结果真正要被看见、接收或使用的位置,例如目标
|
|
26
|
+
宿主的渲染面、用户拿到的导出文件、外部系统的接收端或人工验收现场。不要把“HTTP 200”“URL 可访问”或
|
|
27
|
+
“本地生成了文件”当作用户已得到结果。
|
|
28
|
+
|
|
29
|
+
不新增媒体、平台或版权专用节点类型:目标宿主与交付链路用 `concern` / `capability` 表达,许可、来源、
|
|
30
|
+
隐私或平台限制用 `risk` 和 `constrains` 关系表达;只有需要项目化判断时才为相关节点创建 Brief,并在其
|
|
31
|
+
“项目约束”和“产出与验证入口”中写清授权边界与实际交付验证。
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"id": "EVIDENCE-DELIVERY-RENDER",
|
|
36
|
+
"kind": "evidence",
|
|
37
|
+
"title": "在目标宿主中实际呈现交付物",
|
|
38
|
+
"status": "covered",
|
|
39
|
+
"impact": "high",
|
|
40
|
+
"route": "intent",
|
|
41
|
+
"intent_refs": ["INT-004"],
|
|
42
|
+
"verification": {
|
|
43
|
+
"method": "manual_visual",
|
|
44
|
+
"target": "目标桌面客户端的消息渲染面",
|
|
45
|
+
"procedure": "在干净会话中发送产物并观察实际渲染",
|
|
46
|
+
"pass_criteria": "用户无需打开外链即可看见完整内容",
|
|
47
|
+
"artifact": "verifications/INT-004-host-render.png"
|
|
48
|
+
},
|
|
49
|
+
"relationships": []
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Capability Brief
|
|
54
|
+
|
|
55
|
+
只有高影响、需要调研、需要专业方法或将进入当前 Intent 的能力节点才需要 Brief。Brief 位于:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
.loom/vN/07_CAPABILITY_BRIEFS/<node-id>.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
它写当前项目问题、成功判断、约束、能力获取计划、产出/验证入口与非目标。不要复制通用教程,
|
|
62
|
+
也不要用“你是某领域专家”代替项目化能力说明。
|
|
63
|
+
|
|
64
|
+
## 编译与回流
|
|
65
|
+
|
|
66
|
+
`loom capability compile <intent-id>` 只读显示会进入当前 Intent 的图谱节点与 Brief。Forge 激活
|
|
67
|
+
Intent 时会获得同一份输入;发现新依赖、风险或能力缺口时必须回流 Architect 更新 Graph,不能静默
|
|
68
|
+
扩展实现。Keeper 以图谱回链检查高影响问题是否真的被兑现。
|
package/cli/help/concepts.md
CHANGED
|
@@ -1,72 +1,100 @@
|
|
|
1
|
-
## LOOM 核心概念
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
1
|
+
## LOOM 核心概念
|
|
2
|
+
|
|
3
|
+
LOOM 用一条完整链路把长期判断、当前意图、专业能力、创造性探索和独立证明连起来:
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
Doctrine → Intent narrative → Capability Graph → Contract
|
|
7
|
+
→ Expertise Compiler → Quality Arena → Quality Proof
|
|
8
|
+
→ Reflow
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
最后三步合称 **LOOM Quality Engine**。
|
|
12
|
+
|
|
13
|
+
## Doctrine
|
|
14
|
+
|
|
15
|
+
项目长期使用的判断系统:保护什么、冲突时如何取舍、什么算优秀、哪些反模式不能接受。
|
|
16
|
+
Weaver 从项目事实和决策相关证据中织造 Doctrine;它不预写产品需求、架构或实现步骤。
|
|
17
|
+
|
|
18
|
+
## Intent
|
|
19
|
+
|
|
20
|
+
一个需要保护的产品结果,而不是任务清单。每个 Intent 包含:
|
|
21
|
+
|
|
22
|
+
- `narrative_ref`:为什么存在。
|
|
23
|
+
- `revision`:语义版本。
|
|
24
|
+
- `depends_on`:依赖关系。
|
|
25
|
+
- `acceptance`:完成契约,即 Reliability Floor。
|
|
26
|
+
- `continuity_required`:仅对会修改既有用户或系统状态的 Intent 启用;要求守恒证据,但不另存一份契约。
|
|
27
|
+
- `quality_contract`:可选的质量契约,即 Distinctive Ceiling。
|
|
28
|
+
- `capability_needs`:可选的专业能力需求。
|
|
29
|
+
- `creative_scope`:可选的探索边界。
|
|
30
|
+
- `philosophy_anchors`、`status` 与 `verification_method`。
|
|
31
|
+
|
|
32
|
+
Architect 是 Intent DAG 与两类契约的唯一负责人。
|
|
33
|
+
|
|
34
|
+
## Capability Graph
|
|
35
|
+
|
|
36
|
+
Capability Graph 位于 Vision 和 Intent Map 之间。它将项目初衷展开成 `outcome`、`concern`、`capability`、`risk`、`evidence` 五类节点,描述哪些问题必须被理解、设计、实现或证明。
|
|
37
|
+
|
|
38
|
+
它不是执行 DAG,也不替代 Intent Map:Graph 保留未知、研究与分叉;Intent 只保留边界明确、能独立验收的承诺。高影响节点必须有明确路由(继续展开、Brief、Intent、延后或排除),每个 Intent 必须回链至少一个图谱节点。只有需要专业方法、调研或即将进入当前 Intent 的节点才创建短小的项目化 Capability Brief。
|
|
39
|
+
|
|
40
|
+
## System Boundary
|
|
41
|
+
|
|
42
|
+
LOOM 不假装能够清除宿主 Agent 的既有记忆。`loom activate` 生成有序 Context Pack,
|
|
43
|
+
明确当前角色、当前 Intent、硬约束、成功契约与停止条件;系统和用户指令始终优先。
|
|
44
|
+
|
|
45
|
+
## Expertise Compiler
|
|
46
|
+
|
|
47
|
+
Forge 针对当前 Intent 临时组装一个 Expertise Pack。先由 Capability Graph 编译关联节点和 Capability Brief,再回答:
|
|
48
|
+
|
|
49
|
+
1. 这是什么专业问题。
|
|
50
|
+
2. 优秀作品的判断标准是什么。
|
|
51
|
+
3. 哪些项目事实和约束会改变做法。
|
|
52
|
+
4. 应加载哪些真实能力、资料或工具。
|
|
53
|
+
5. 最可能出现哪些“合格但平庸”的失败。
|
|
54
|
+
6. 如何验证专业质量。
|
|
55
|
+
|
|
56
|
+
能力名称只表示“可发现”;只有真实加载并转化为任务判断的内容才算进入 Expertise Pack。
|
|
57
|
+
Pack 仅服务当前任务,不成为长期 Doctrine。
|
|
58
|
+
|
|
59
|
+
## Quality Arena
|
|
60
|
+
|
|
61
|
+
Forge 的实现环境。结果显然时走直接路径;当目标是“更好、惊艳、出众”时:
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
Baseline → Mechanism-different Candidates → Compare → Realize → Observe → Adjust
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
候选必须依赖不同机制,而不是同一方案换皮。没有候选真实胜过基线时,保留原方案是合法结论。
|
|
68
|
+
|
|
69
|
+
## Quality Proof
|
|
70
|
+
|
|
71
|
+
Keeper 在独立上下文中验证:
|
|
72
|
+
|
|
73
|
+
- `intent_fidelity`
|
|
74
|
+
- `philosophy_consistency`
|
|
75
|
+
- `baseline_compliance`
|
|
76
|
+
- `acceptance_achievement`
|
|
77
|
+
- `preservation_achievement`(仅 `continuity_required` 时)
|
|
78
|
+
- `quality_achievement`(仅有 `quality_contract` 时)
|
|
79
|
+
|
|
80
|
+
质量提升声明必须有 Quality Proof:修改前基线、可观察主张、候选选择依据、稳定性证据与代价。
|
|
81
|
+
完成可以通过而质量未通过;此时不得宣称“更好”。
|
|
82
|
+
|
|
83
|
+
## Reflow
|
|
84
|
+
|
|
85
|
+
发现问题时回到真正拥有该问题的层:
|
|
86
|
+
|
|
87
|
+
- 长期价值判断 → Weaver
|
|
88
|
+
- 产品目标与 narrative → Visionary
|
|
89
|
+
- 系统边界、Intent、契约 → Architect
|
|
90
|
+
- 图谱遗漏、未路由高影响节点或新的能力缺口 → Architect 更新 Capability Graph
|
|
91
|
+
- 专业能力与实现 → Forge
|
|
92
|
+
- 证据不足或判定偏离 → Keeper
|
|
93
|
+
|
|
94
|
+
相关入口:
|
|
95
|
+
|
|
96
|
+
- `loom context`
|
|
97
|
+
- `loom intent next|get|trace|validate`
|
|
98
|
+
- `loom activate <role> --intent <id>`
|
|
99
|
+
- `loom verify contract|write|pass|history`
|
|
100
|
+
- `loom doctor`
|
package/cli/help/doctor.md
CHANGED
|
@@ -1,121 +1,71 @@
|
|
|
1
|
-
##
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
\`\`\`bash
|
|
73
|
-
loom preview status
|
|
74
|
-
\`\`\`
|
|
75
|
-
|
|
76
|
-
检查 `loom-preview.html` 是否比当前 `.loom/v{N}` 源文件更新。人类要求看 preview 时,Agent 先跑这个命令:
|
|
77
|
-
- `fresh=true`:可以 `loom preview`
|
|
78
|
-
- `fresh=false`:不要打开旧投影,先 `loom preview --regen`
|
|
79
|
-
- 必须看旧投影:`loom preview --stale`
|
|
80
|
-
|
|
81
|
-
## 崩溃恢复
|
|
82
|
-
|
|
83
|
-
### Forge 崩溃(Intent 留在 in_progress)
|
|
84
|
-
|
|
85
|
-
1. 跑 \`loom doctor\` 确认哪些 Intent 状态不一致
|
|
86
|
-
2. 跑 \`loom context\` 看整体状态
|
|
87
|
-
3. 用户决定:
|
|
88
|
-
- 继续:重新激活 Forge,从当前代码接着做
|
|
89
|
-
- 重置:\`loom intent update <id> --status pending\`,从头来
|
|
90
|
-
|
|
91
|
-
### Intent Map 文件损坏
|
|
92
|
-
|
|
93
|
-
1. \`loom intent validate\` 会检测到格式错误
|
|
94
|
-
2. 从 Git 恢复(.loom/ 应纳入版本控制)
|
|
95
|
-
|
|
96
|
-
### 验证记录丢失
|
|
97
|
-
|
|
98
|
-
1. \`loom doctor\` 会检测到 completed 无记录
|
|
99
|
-
2. 重新验证该 Intent,或从 Git 恢复
|
|
100
|
-
|
|
101
|
-
## 追溯工具
|
|
102
|
-
|
|
103
|
-
\`\`\`bash
|
|
104
|
-
# Intent 完整追溯链(依赖+验证+哲学+叙事)
|
|
105
|
-
loom intent trace <id>
|
|
106
|
-
|
|
107
|
-
# 反向依赖(谁依赖这个 Intent → 变更影响评估)
|
|
108
|
-
loom intent reverse-dep <id>
|
|
109
|
-
|
|
110
|
-
# 反向哲学引用(哪些 Intent 引用这个锚点 → 哲学变更影响评估)
|
|
111
|
-
loom intent reverse-ref <anchor>
|
|
112
|
-
\`\`\`
|
|
113
|
-
|
|
114
|
-
## 版本控制是前提
|
|
115
|
-
|
|
116
|
-
LOOM 假设项目使用 Git。所有 .loom/ 下的文件都应纳入版本控制:
|
|
117
|
-
- 文件损坏 → 从 Git 恢复
|
|
118
|
-
- 误操作 → 从 Git 回滚
|
|
119
|
-
- 变更追溯 → Git log 就是审计日志
|
|
120
|
-
|
|
121
|
-
LOOM 不内置备份、审计、回滚——这些是版本控制的职责。
|
|
1
|
+
## 诊断与恢复
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
loom doctor
|
|
5
|
+
loom context
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
`doctor` 只检查能够机械判断的系统一致性,不假装用规则替代专业判断。
|
|
9
|
+
|
|
10
|
+
## 主要诊断
|
|
11
|
+
|
|
12
|
+
| 类型 | 严重度 | 含义 |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `cycle` | fatal | Intent DAG 有环 |
|
|
15
|
+
| `orphan_philosophy_ref` | high | Doctrine 引用不存在 |
|
|
16
|
+
| `orphan_dependency` | high | Intent 依赖不存在 |
|
|
17
|
+
| `completed_no_record` | high | completed 没有验证记录 |
|
|
18
|
+
| `completed_verification_not_passed` | high | 最新记录不能闭合当前 revision |
|
|
19
|
+
| `stale_verification` | high | passed 记录早于当前 revision |
|
|
20
|
+
| `quality_dimension_missing` | high | 有质量契约,但缺少通过的质量维度 |
|
|
21
|
+
| `preservation_dimension_missing` | high | 启用了状态守恒门,但缺少通过的守恒维度 |
|
|
22
|
+
| `inspiration_source` | high/medium | Doctrine 证据不可追溯、缺理由或仍是模板 |
|
|
23
|
+
| `verification_method_drift` | high | 声明的验证方式与复现证据不一致 |
|
|
24
|
+
| `in_progress_no_record` | medium | 工作可能中断 |
|
|
25
|
+
| `zombie` | medium | Intent 长时间无活动 |
|
|
26
|
+
|
|
27
|
+
## Doctrine 证据
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
loom philosophy check
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
校验只要求:
|
|
34
|
+
|
|
35
|
+
- 至少有实际使用的证据条目。
|
|
36
|
+
- 每条证据有选择或转译理由。
|
|
37
|
+
- 每条证据有 URL、`file://` 或 `local:` 可追溯位置。
|
|
38
|
+
|
|
39
|
+
不要求固定数量、不排斥 Wikipedia,也不强制来源多样性。来源是否足以支持主张由 Weaver 与审阅者
|
|
40
|
+
判断;CLI 只阻止空白、装饰性名字和不可追溯引用。
|
|
41
|
+
|
|
42
|
+
## Quality Proof
|
|
43
|
+
|
|
44
|
+
有 `quality_contract` 的 Intent 若写入 `passed`:
|
|
45
|
+
|
|
46
|
+
- `dimensions.quality_achievement` 必须存在并通过。
|
|
47
|
+
- 声明相对提升时,`dimensions.quality_achievement.quality_proof_ref` 指向基线比较与稳定性证据。
|
|
48
|
+
|
|
49
|
+
快速命令:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
loom verify pass <id> --summary "<证据>" --quality-proof "<ref>"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
若只达到完成契约,写 `deviated` 或完整验证记录,不要伪造质量通过。
|
|
56
|
+
|
|
57
|
+
## 恢复
|
|
58
|
+
|
|
59
|
+
- Forge 中断:检查真实产物后继续,或把 Intent 回退到 `pending`。
|
|
60
|
+
- Intent Map 损坏:从 Git 恢复,再运行 `loom intent validate`。
|
|
61
|
+
- 验证记录丢失:重新独立验证,不从旧会话记忆补写。
|
|
62
|
+
- Preview 过期:`loom preview status` 后使用 `loom preview --regen`。
|
|
63
|
+
|
|
64
|
+
追溯入口:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
loom intent trace <id>
|
|
68
|
+
loom intent reverse-dep <id>
|
|
69
|
+
loom intent reverse-ref <anchor>
|
|
70
|
+
loom verify history <id>
|
|
71
|
+
```
|