@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.
Files changed (58) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/LICENSE +21 -0
  3. package/README.md +147 -74
  4. package/cli/bin/loom.js +428 -105
  5. package/cli/help/asset.md +36 -0
  6. package/cli/help/atelier.md +37 -0
  7. package/cli/help/capability.md +68 -0
  8. package/cli/help/concepts.md +100 -72
  9. package/cli/help/doctor.md +71 -121
  10. package/cli/help/loop.md +120 -135
  11. package/cli/help/patch.md +33 -0
  12. package/cli/help/preview.md +2 -1
  13. package/cli/help/proposals.md +21 -0
  14. package/cli/help/version.md +92 -16
  15. package/cli/help/workflow.md +101 -100
  16. package/cli/src/activate.js +349 -73
  17. package/cli/src/asset-library.js +384 -0
  18. package/cli/src/atelier.js +331 -0
  19. package/cli/src/capability-graph.js +351 -0
  20. package/cli/src/capability-proposals.js +225 -0
  21. package/cli/src/diagnostics.js +240 -44
  22. package/cli/src/guide.js +155 -40
  23. package/cli/src/init.js +58 -32
  24. package/cli/src/intent-draft.js +303 -0
  25. package/cli/src/intent-map.js +560 -54
  26. package/cli/src/patch.js +214 -0
  27. package/cli/src/philosophy.js +177 -154
  28. package/cli/src/preview-prompt.md +13 -6
  29. package/cli/src/preview.js +1 -0
  30. package/cli/src/shared/intent-ref.js +38 -0
  31. package/cli/src/shared/proof-reference.js +19 -0
  32. package/cli/src/shared/verification-method.js +32 -0
  33. package/cli/src/verify.js +202 -62
  34. package/cli/src/version.js +5 -4
  35. package/dimensions/AUTHORSHIP.md +45 -0
  36. package/dimensions/PART_DECOMPOSITION.md +42 -203
  37. package/dimensions/SEARCH_METHODOLOGY.md +101 -97
  38. package/dimensions/examples/AGENT_SYSTEM/README.md +1 -1
  39. package/dimensions/examples/CLI_TOOL/README.md +1 -1
  40. package/dimensions/universal/COLLABORATION_PHILOSOPHY.md +28 -77
  41. package/dimensions/universal/ENGINEERING_CREED.md +30 -74
  42. package/dimensions/universal/PRODUCT_PHILOSOPHY.md +32 -70
  43. package/meta/BASELINE.md +91 -276
  44. package/meta/INTENT_LOOP.md +289 -737
  45. package/meta/PHILOSOPHY_WEAVER.md +110 -343
  46. package/meta/ROLE_ACTIVATION.md +109 -267
  47. package/package.json +13 -7
  48. package/roles/architect.md +84 -111
  49. package/roles/forge.md +105 -126
  50. package/roles/keeper.md +109 -223
  51. package/roles/visionary.md +57 -86
  52. package/templates/ASSET_LIBRARY_MANIFEST_TEMPLATE.json +10 -0
  53. package/templates/ATELIER_RECORD_TEMPLATE.json +48 -0
  54. package/templates/CAPABILITY_BRIEF_TEMPLATE.md +34 -0
  55. package/templates/CAPABILITY_GRAPH_TEMPLATE.json +11 -0
  56. package/templates/INTENT_MAP_TEMPLATE.json +26 -10
  57. package/templates/PHILOSOPHY_TEMPLATE.md +44 -75
  58. 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 以图谱回链检查高影响问题是否真的被兑现。
@@ -1,72 +1,100 @@
1
- ## LOOM 核心概念
2
-
3
- ## 哲学
4
-
5
- 项目的价值观和工程原则——为什么存在、什么不做、冲突时谁优先。
6
- Philosophy Weaver 从真实思想体系织造,不是模板填空。
7
- 所有角色激活时强制加载哲学作为共同锚点。
8
-
9
- 相关命令:
10
- - \`loom philosophy get <anchor>\` — 加载哲学章节
11
- - \`loom philosophy list\` — 列出哲学文档
12
- - \`loom intent reverse-ref <anchor>\` — 哪些 Intent 引用了这个哲学锚点
13
-
14
- ## Intent
15
-
16
- 一个意图单元——不是"做什么"(任务),是"为什么做"(意图)。
17
- 每个 Intent 携带:
18
- - narrative_ref — 意图叙事引用(为什么存在)
19
- - depends_on — 依赖的 Intent(拓扑序)
20
- - acceptance — 验收契约(Keeper 据此判定)
21
- - philosophy_anchors — 哲学锚点(引用哪些哲学原则)
22
- - status — 状态(pending|in_progress|completed|blocked|needs_review)
23
- - verification_method — 验证方式(L1 静态|L2 运行时|L3 人类反馈,可选)
24
-
25
- 相关命令:
26
- - \`loom intent next\` — 下一个可执行 Intent
27
- - \`loom intent get <id>\` — Intent 详情
28
- - \`loom intent narrative <id>\` — 意图叙事
29
- - \`loom intent trace <id>\` — 完整追溯链
30
- - \`loom intent reverse-dep <id>\` — 谁依赖这个 Intent
31
-
32
- ## Intent Map
33
-
34
- 所有 Intent 的依赖图(JSON)。Architect 绘制,定义拓扑序和依赖关系。
35
- 必须是 DAG(有向无环图),不能有循环依赖。
36
-
37
- 相关命令:
38
- - \`loom intent validate\` 校验结构 + 依赖一致性
39
- - \`loom intent graph\` — Mermaid 依赖图
40
- - \`loom intent status\` — 进度概览
41
-
42
- ## Intent Loop
43
-
44
- 核心循环:Keeper 选 Intent → Forge 实现 → Keeper 验证 → 闭合或修正。
45
- 每个 Intent 独立走一圈。详细流程见 \`loom help loop\`。
46
-
47
- ## Keeper
48
-
49
- 独立验证子代理——不继承 Forge 的实现上下文,从磁盘重新加载意图和契约。
50
- 判定四维度:意图忠实度 / 哲学一致性 / 底线合规 / 验收达成。
51
- 判定结果:passed / deviated / blocked / pending_human。
52
-
53
- ## 底线
54
-
55
- 不可妥协的约束(BASELINE.md 5 条 + 项目特定底线)。
56
- 角色激活时强制加载,哲学不能覆盖。违反底线必须立即停止。
57
-
58
- ## 验证记录
59
-
60
- Keeper 每次验证写入一条记录(追加模式),包含:
61
- - verdict(passed/deviated/blocked/pending_human)
62
- - 四维度判定
63
- - 证据
64
- - 偏离说明(如果 deviated)
65
-
66
- deviated 连续 3 轮升级 blocked。pending_human 默认 7 天超时升级 blocked。
67
-
68
- 相关命令:
69
- - \`loom verify contract <id>\` — 获取验收契约
70
- - \`loom verify write --json-file <path>\` — 写入验证记录
71
- - \`loom verify history <id>\` — 验证历史
72
- - \`loom verify pending\` — 待验证的 Intent
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`
@@ -1,121 +1,71 @@
1
- ## 诊断与恢复指南
2
-
3
- ## 健康检查
4
-
5
- \`\`\`bash
6
- loom doctor
7
- \`\`\`
8
-
9
- 检测 7 类问题:
10
-
11
- | 问题类型 | 严重度 | 说明 |
12
- |---|---|---|
13
- | cycle | fatal | 循环依赖(Intent Map 有环) |
14
- | orphan_philosophy_ref | high | 哲学锚点指向不存在的文件 |
15
- | orphan_dependency | high | depends_on 引用不存在的 Intent |
16
- | completed_no_record | high | completed 但无验证记录 |
17
- | completed_depends_blocked | high | completed 依赖 blocked 的 Intent |
18
- | inspiration_source | high/medium | 灵感来源质量不达标(源太少/全是 Wikipedia/缺理由) |
19
- | part_decomposition | high/medium | 缺少实现部分拆解清单(Weaver 跳过了拆解步骤) |
20
- | in_progress_no_record | medium | in_progress 但无验证记录(可能中断) |
21
- | zombie | medium | in_progress/blocked 超过 7 天无活动 |
22
-
23
- ## 灵感来源校验
24
-
25
- \`\`\`bash
26
- loom philosophy check
27
- \`\`\`
28
-
29
- 单独校验哲学文档的灵感来源质量。防止 Weaver 从训练数据"背"几个名字就交差。
30
-
31
- 校验规则:
32
- - 至少 3 个独立源
33
- - 至少 2 个非 Wikipedia 链接
34
- - 每个源必须有选取理由(萃取/转译/启发关系)
35
- - Wikipedia 占比不超过 70%
36
-
37
- 不达标时,需要重新织造哲学——真正走搜索漏斗,找原著、论文、工程博客等深度源。
38
-
39
- ## 实现部分拆解校验
40
-
41
- \`\`\`bash
42
- loom philosophy check
43
- \`\`\`
44
-
45
- 同时校验哲学文档是否包含"实现部分清单"——Weaver 是否按 PART_DECOMPOSITION.md 拆解了项目的实现部分。
46
-
47
- 校验规则:
48
- - 哲学文档中必须有"实现部分清单"章节(或"部分拆解""Part Decomposition"等)
49
- - 至少识别到 2 个实现部分(小项目建议 3-5 个,大项目 6-10 个)
50
-
51
- 缺少时,说明 Weaver 跳过了拆解步骤,需要重新织造——按 PART_DECOMPOSITION.md 的方法论识别项目的实现部分。
52
-
53
- ## 上下文摘要
54
-
55
- \`\`\`bash
56
- loom context
57
- \`\`\`
58
-
59
- 一条命令获取:进度 + 下一个 Intent + 待验证 + 不一致项 + 风险。
60
- Agent 重启后先跑这个,快速知道"我在哪、接下来做什么"。
61
-
62
- ## 只读阶段诊断
63
-
64
- \`\`\`bash
65
- loom guide --dry-run
66
- \`\`\`
67
-
68
- 用于审计、子代理预演、只读探测。它输出和 `loom guide` 同样的阶段判断,但不写 `.loom/heartbeat.json`。
69
-
70
- ## Preview 新鲜度诊断
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
+ ```