@haaaiawd/loom 1.3.1 → 2.0.1

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 (84) hide show
  1. package/CHANGELOG.md +16 -86
  2. package/CONTRIBUTING.md +37 -0
  3. package/EVIL_EVAL.md +112 -0
  4. package/README.md +156 -403
  5. package/README.zh-CN.md +176 -0
  6. package/SECURITY.md +11 -0
  7. package/cli/bin/loom.js +171 -998
  8. package/cli/src/protocol.js +411 -0
  9. package/cli/src/store.js +628 -0
  10. package/design.md +201 -0
  11. package/docs/PROMPT_CATALOG.md +106 -0
  12. package/docs/RELEASE_CHECKLIST.md +53 -0
  13. package/docs/UX_FLOW.md +171 -0
  14. package/docs/brand/loom-mark.svg +18 -0
  15. package/docs/brand/loom-readme-header.svg +34 -0
  16. package/docs/brand/loom-readme-header.zh-CN.svg +29 -0
  17. package/docs/loom-eval-loop.drawio +21 -0
  18. package/docs/loom-eval-loop.svg +56 -0
  19. package/docs/loom-production-loop.drawio +41 -0
  20. package/docs/loom-production-loop.svg +92 -0
  21. package/package.json +27 -24
  22. package/EXTERNAL_ACQUISITION_DESIGN.md +0 -143
  23. package/cli/help/asset.md +0 -36
  24. package/cli/help/atelier.md +0 -37
  25. package/cli/help/atlas.md +0 -48
  26. package/cli/help/capability.md +0 -118
  27. package/cli/help/concepts.md +0 -105
  28. package/cli/help/doctor.md +0 -80
  29. package/cli/help/expertise.md +0 -52
  30. package/cli/help/loop.md +0 -134
  31. package/cli/help/patch.md +0 -33
  32. package/cli/help/proposals.md +0 -21
  33. package/cli/help/version.md +0 -136
  34. package/cli/help/workflow.md +0 -116
  35. package/cli/src/activate.js +0 -505
  36. package/cli/src/asset-library.js +0 -384
  37. package/cli/src/atelier.js +0 -331
  38. package/cli/src/atlas.js +0 -282
  39. package/cli/src/auto.js +0 -116
  40. package/cli/src/capability-graph.js +0 -724
  41. package/cli/src/capability-proposals.js +0 -225
  42. package/cli/src/diagnostics.js +0 -859
  43. package/cli/src/expertise-pack.js +0 -336
  44. package/cli/src/guide.js +0 -548
  45. package/cli/src/help.js +0 -41
  46. package/cli/src/init.js +0 -187
  47. package/cli/src/intent-draft.js +0 -303
  48. package/cli/src/intent-map.js +0 -747
  49. package/cli/src/patch.js +0 -214
  50. package/cli/src/philosophy.js +0 -331
  51. package/cli/src/shared/intent-ref.js +0 -38
  52. package/cli/src/shared/md-utils.js +0 -125
  53. package/cli/src/shared/paths.js +0 -73
  54. package/cli/src/shared/proof-reference.js +0 -19
  55. package/cli/src/shared/verification-method.js +0 -32
  56. package/cli/src/verify.js +0 -394
  57. package/cli/src/version.js +0 -134
  58. package/dimensions/AUTHORSHIP.md +0 -45
  59. package/dimensions/PART_DECOMPOSITION.md +0 -42
  60. package/dimensions/SEARCH_METHODOLOGY.md +0 -101
  61. package/dimensions/examples/AGENT_SYSTEM/README.md +0 -219
  62. package/dimensions/examples/CLI_TOOL/README.md +0 -163
  63. package/dimensions/universal/COLLABORATION_PHILOSOPHY.md +0 -28
  64. package/dimensions/universal/ENGINEERING_CREED.md +0 -30
  65. package/dimensions/universal/PRODUCT_PHILOSOPHY.md +0 -32
  66. package/meta/BASELINE.md +0 -91
  67. package/meta/INTENT_LOOP.md +0 -296
  68. package/meta/PHILOSOPHY_WEAVER.md +0 -110
  69. package/meta/ROLE_ACTIVATION.md +0 -114
  70. package/roles/architect.md +0 -92
  71. package/roles/forge.md +0 -110
  72. package/roles/impact-reviewer.md +0 -37
  73. package/roles/keeper.md +0 -113
  74. package/roles/visionary.md +0 -57
  75. package/templates/ASSET_LIBRARY_MANIFEST_TEMPLATE.json +0 -10
  76. package/templates/ATELIER_RECORD_TEMPLATE.json +0 -48
  77. package/templates/ATLAS_TEMPLATE.html +0 -104
  78. package/templates/CAPABILITY_BRIEF_TEMPLATE.md +0 -36
  79. package/templates/CAPABILITY_GRAPH_EXAMPLE.json +0 -188
  80. package/templates/CAPABILITY_GRAPH_TEMPLATE.json +0 -78
  81. package/templates/EXPERTISE_PACK_TEMPLATE.json +0 -22
  82. package/templates/INTENT_MAP_TEMPLATE.json +0 -85
  83. package/templates/PHILOSOPHY_TEMPLATE.md +0 -44
  84. package/templates/VISION_TEMPLATE.md +0 -44
package/cli/src/auto.js DELETED
@@ -1,116 +0,0 @@
1
- // auto — AUTO 模式开关 + 心跳机制
2
- // 存储机制:.loom/auto 文件内容 = 模式名(auto-loop / auto-design),不存在 = manual
3
- // 心跳:每次 guide 调用时写 .loom/heartbeat.json(时间戳 + stage + next_command)
4
- //
5
- // 三种模式:
6
- // manual — 每步停,所有阶段需人类 review
7
- // auto-loop — 只 Intent Loop(stage 4+)自动,stage 1-3 仍需人类 review(默认)
8
- // auto-design — 哲学/愿景/架构也自动,全部阶段不需人类 review
9
-
10
- import { existsSync, writeFileSync, unlinkSync, readFileSync } from 'node:fs';
11
- import { join } from 'node:path';
12
-
13
- const VALID_MODES = ['auto-loop', 'auto-design'];
14
-
15
- /**
16
- * 读取 .loom/auto 文件内容,返回模式名。
17
- * 向后兼容:空文件 / 旧时间戳 / 未知内容 → auto-loop
18
- * @param {string} loomRoot — .loom 目录路径
19
- * @returns {string} 'manual' | 'auto-loop' | 'auto-design'
20
- */
21
- export function getAutoMode(loomRoot) {
22
- const path = join(loomRoot, 'auto');
23
- if (!existsSync(path)) return 'manual';
24
- const content = readFileSync(path, 'utf-8').trim();
25
- if (VALID_MODES.includes(content)) return content;
26
- return 'auto-loop'; // 旧格式兼容
27
- }
28
-
29
- /**
30
- * 检查 AUTO 模式是否开启(非 manual)。
31
- * @param {string} loomRoot — .loom 目录路径
32
- * @returns {boolean}
33
- */
34
- export function isAutoOn(loomRoot) {
35
- return getAutoMode(loomRoot) !== 'manual';
36
- }
37
-
38
- /**
39
- * 开启 AUTO 模式。
40
- * @param {string} loomRoot — .loom 目录路径
41
- * @param {string} mode — 'auto-loop' | 'auto-design'
42
- */
43
- export function autoOn(loomRoot, mode = 'auto-loop') {
44
- if (!VALID_MODES.includes(mode)) {
45
- throw new Error(`非法 AUTO 模式: "${mode}" (合法: ${VALID_MODES.join(' | ')})`);
46
- }
47
- writeFileSync(join(loomRoot, 'auto'), mode, 'utf-8');
48
- }
49
-
50
- /**
51
- * 关闭 AUTO 模式(切换到 manual)。
52
- * @param {string} loomRoot — .loom 目录路径
53
- */
54
- export function autoOff(loomRoot) {
55
- const path = join(loomRoot, 'auto');
56
- if (existsSync(path)) unlinkSync(path);
57
- }
58
-
59
- /**
60
- * 获取 AUTO 状态描述。
61
- * @param {string} loomRoot — .loom 目录路径
62
- * @returns {{ mode: string, heartbeat: object|null }}
63
- */
64
- export function autoStatus(loomRoot) {
65
- const mode = getAutoMode(loomRoot);
66
- const heartbeat = readHeartbeat(loomRoot);
67
- return { mode, heartbeat };
68
- }
69
-
70
- /**
71
- * 写入心跳——每次 guide 调用时记录当前状态。
72
- * @param {string} loomRoot — .loom 目录路径
73
- * @param {{ stage: string, stage_num: number, next_command: string, next_action: string }} info
74
- */
75
- export function writeHeartbeat(loomRoot, info) {
76
- const heartbeat = {
77
- timestamp: new Date().toISOString(),
78
- stage: info.stage,
79
- stage_num: info.stage_num,
80
- next_command: info.next_command,
81
- next_action: info.next_action,
82
- };
83
- writeFileSync(join(loomRoot, 'heartbeat.json'), JSON.stringify(heartbeat, null, 2), 'utf-8');
84
- }
85
-
86
- /**
87
- * 读取心跳。
88
- * @param {string} loomRoot — .loom 目录路径
89
- * @returns {object|null}
90
- */
91
- export function readHeartbeat(loomRoot) {
92
- const path = join(loomRoot, 'heartbeat.json');
93
- if (!existsSync(path)) return null;
94
- try {
95
- return JSON.parse(readFileSync(path, 'utf-8'));
96
- } catch {
97
- return null;
98
- }
99
- }
100
-
101
- /**
102
- * 判断当前阶段是否需要人类 review。
103
- * manual:全部需 review
104
- * auto-loop:stage 1-3 需 review,stage 4+ 自动
105
- * auto-design:全部自动
106
- * @param {string} loomRoot — .loom 目录路径
107
- * @param {number} stageNum — 阶段号
108
- * @returns {boolean} 是否需要人类 review
109
- */
110
- export function needsHumanReview(loomRoot, stageNum) {
111
- const mode = getAutoMode(loomRoot);
112
- if (mode === 'manual') return true;
113
- if (mode === 'auto-design') return false;
114
- // auto-loop:stage 1-3 需 review,stage 4+ 自动
115
- return stageNum > 0 && stageNum < 4;
116
- }