@haaaiawd/loom 0.7.0 → 0.8.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 +31 -19
- package/cli/bin/loom.js +89 -27
- package/cli/help/doctor.md +56 -5
- package/cli/help/preview.md +59 -0
- package/cli/help/workflow.md +18 -12
- package/cli/src/diagnostics.js +184 -43
- package/cli/src/guide.js +17 -15
- package/cli/src/philosophy.js +228 -0
- package/cli/src/preview.js +67 -10
- package/cli/src/verify.js +8 -4
- package/dimensions/PART_DECOMPOSITION.md +203 -0
- package/dimensions/examples/AGENT_SYSTEM/README.md +219 -0
- package/dimensions/examples/CLI_TOOL/README.md +163 -0
- package/dimensions/universal/COLLABORATION_PHILOSOPHY.md +77 -0
- package/dimensions/universal/ENGINEERING_CREED.md +74 -0
- package/dimensions/universal/PRODUCT_PHILOSOPHY.md +70 -0
- package/meta/PHILOSOPHY_WEAVER.md +104 -50
- package/package.json +4 -4
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# 维度指引:协作哲学
|
|
2
|
+
|
|
3
|
+
> 所有项目都需要。回答"怎么决策、怎么处理冲突、谁说了算"。
|
|
4
|
+
> 产出融入 DECISION_RUBRIC.md 或独立文档。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 触发条件
|
|
9
|
+
|
|
10
|
+
**必跑**——通用层三个维度之一,所有项目都激活。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 引导问题
|
|
15
|
+
|
|
16
|
+
1. **谁做决策?** 单人决策?共识决策?权威决策?不同类型的决策(技术选型、接口变更、架构调整)分别由谁拍板?
|
|
17
|
+
2. **冲突怎么处理?** 两个人对同一个设计有不同意见,怎么解决?投票?权威?数据驱动?
|
|
18
|
+
3. **变更怎么管理?** 谁能发起变更?变更需要什么审批?变更的影响怎么评估?
|
|
19
|
+
4. **代码审查的标准是什么?** 审查看什么——风格?逻辑?架构?安全?审查不通过怎么办?
|
|
20
|
+
5. **文档和代码的关系?** 文档先行?代码先行?同步更新?文档过时了怎么办?
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 参考源指引
|
|
25
|
+
|
|
26
|
+
### 决策哲学
|
|
27
|
+
|
|
28
|
+
- **Amazon"Disagree and Commit"** — Jeff Bezos 的股东信。搜 "Amazon disagree and commit"。核心:分歧可以,但定了就全力执行。
|
|
29
|
+
- **Google"Design Docs"** — 搜 "Google design doc culture"。核心:设计先行、文档驱动决策、异议记录在文档里。
|
|
30
|
+
- **RFC 文化** — Rust/IETF 的 RFC 流程。搜 "Rust RFC process"。核心:提案-评审-决策的显式流程。
|
|
31
|
+
|
|
32
|
+
### 代码审查哲学
|
|
33
|
+
|
|
34
|
+
- **Linux Kernel Review 文化** — Linus Torvalds 的 review 风格(有争议,批判性阅读)。搜 "Linux kernel code review philosophy"。
|
|
35
|
+
- **Google Code Review Guidelines** — 搜 "Google code review guide"。核心:事实 > 偏好、 kindness + technical rigor。
|
|
36
|
+
- **Conventional Comments** — https://conventionalcomments.org/。核心:评论带标签(praise/nitpick/question/issue)。
|
|
37
|
+
|
|
38
|
+
### 冲突处理
|
|
39
|
+
|
|
40
|
+
- **Crucial Conversations** — Patterson 等(2011)。核心:安全氛围、事实先行、共同目标。
|
|
41
|
+
- **Nonviolent Communication (NVC)** — Marshall Rosenberg。核心:观察-感受-需要-请求。适用于团队冲突。
|
|
42
|
+
|
|
43
|
+
### 文档哲学
|
|
44
|
+
|
|
45
|
+
- **Docs as Code** — 搜 "docs as code philosophy"。核心:文档和代码同生命周期、同审查流程。
|
|
46
|
+
- **The Bitter Lesson of Documentation** — 搜 "documentation bitter lesson"。核心:文档过时比没有文档更危险。
|
|
47
|
+
|
|
48
|
+
### ADR(架构决策记录)
|
|
49
|
+
|
|
50
|
+
- **Michael Nygard"Documenting Architecture Decisions"** — 原文:https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions。ADR 的原始定义。
|
|
51
|
+
- **ADR GitHub Organization** — https://adr.github.io/。ADR 的变体和实践。
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 落地要求
|
|
56
|
+
|
|
57
|
+
织造出的协作哲学融入 DECISION_RUBRIC.md 或独立文档,必须包含:
|
|
58
|
+
|
|
59
|
+
1. **决策权限矩阵**:哪些决策由谁做(单人/共识/权威)
|
|
60
|
+
2. **冲突处理规则**:分歧升级路径、仲裁机制
|
|
61
|
+
3. **变更管理流程**:变更发起、审批、影响评估
|
|
62
|
+
4. **代码审查标准**:审查看什么、不通过怎么办
|
|
63
|
+
5. **维度冲突取舍规则**:当产品哲学和工程哲学冲突时,谁优先?什么条件下可以覆盖?
|
|
64
|
+
6. **灵感来源**:至少 2 个独立源,每个源说明"为什么选它"
|
|
65
|
+
|
|
66
|
+
### DECISION_RUBRIC.md 的特殊要求
|
|
67
|
+
|
|
68
|
+
- 维度冲突的取舍规则(如"性能 vs 体验冲突时,体验优先")
|
|
69
|
+
- 取舍规则的适用条件(什么时候规则生效)
|
|
70
|
+
- 例外条件(什么时候规则可以被覆盖)
|
|
71
|
+
- 覆盖规则需要什么(如"需要用户显式批准")
|
|
72
|
+
|
|
73
|
+
### 禁止
|
|
74
|
+
|
|
75
|
+
- 禁止"共识决策"这种没有操作性的规则——必须说明"共识达不成怎么办"
|
|
76
|
+
- 禁止冲突处理只有"讨论解决"——必须有升级路径和仲裁机制
|
|
77
|
+
- 禁止维度冲突取舍规则没有例外条件——所有规则都应有可覆盖的场景
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# 维度指引:工程哲学
|
|
2
|
+
|
|
3
|
+
> 所有项目都需要。回答"怎么写代码、什么不做、什么是好代码"。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 触发条件
|
|
8
|
+
|
|
9
|
+
**必跑**——通用层三个维度之一,所有项目都激活。
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 引导问题
|
|
14
|
+
|
|
15
|
+
1. **什么是好代码?** 不是"能跑的代码",是"五年后的人能看懂的代码"。具体到这个项目,好代码的标准是什么?
|
|
16
|
+
2. **数据流是怎样的?** 单向还是双向?有状态还是无状态?纯函数还是有副作用?为什么这样选?
|
|
17
|
+
3. **错误怎么处理?** 静默吞错?抛异常?返回错误码?透传?每种错误类型的处理策略是什么?
|
|
18
|
+
4. **依赖策略是什么?** 零依赖?最小依赖?依赖什么、不依赖什么、为什么?
|
|
19
|
+
5. **抽象到什么程度?** YAGNI 还是预留扩展?什么时候加抽象,什么时候不加?
|
|
20
|
+
6. **测试策略是什么?** 单元测试?集成测试?契约测试?测什么、不测什么、为什么?
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 参考源指引
|
|
25
|
+
|
|
26
|
+
### 通用工程哲学
|
|
27
|
+
|
|
28
|
+
- **Clean Code** — Robert C. Martin(2008)。核心:函数短小、单一职责、命名清晰。但注意:Martin 的某些主张有争议(函数不超过 20 行等),需要批判性阅读。
|
|
29
|
+
- **The Pragmatic Programmer** — Andy Hunt & Dave Thomas(1999/2019 修订)。核心:DRY、正交性、曳光弹、契约式设计。比 Clean Code 更务实。
|
|
30
|
+
- **A Philosophy of Software Design** — John Ousterhout(2018)。核心:深模块 vs 浅模块、接口设计、复杂度管理。Ousterhout 和 Martin 在"函数大小"上有分歧——对比阅读。
|
|
31
|
+
- **SICP** — Abelson & Sussman(MIT 经典)。核心:抽象、组合、元语言抽象。理论根基。
|
|
32
|
+
|
|
33
|
+
### 函数式编程哲学
|
|
34
|
+
|
|
35
|
+
- **Structure and Interpretation of Computer Programs** — 见上。
|
|
36
|
+
- **Pure Function-based Architecture** — 搜 "pure function architecture"。核心:纯函数 + 不可变数据 + 副作用隔离。
|
|
37
|
+
- **Haskell 设计哲学** — 搜 "Haskell philosophy pure functional"。核心:纯函数、惰性求值、类型系统。
|
|
38
|
+
|
|
39
|
+
### 系统设计哲学
|
|
40
|
+
|
|
41
|
+
- **A Philosophy of Software Design** — 见上(深模块部分)。
|
|
42
|
+
- **Designing Data-Intensive Applications** — Martin Kleppmann(2017)。核心:数据流、一致性、容错。
|
|
43
|
+
- **The Twelve-Factor App** — https://12factor.net/。核心:配置外置、无状态进程、一次性。
|
|
44
|
+
|
|
45
|
+
### 错误处理哲学
|
|
46
|
+
|
|
47
|
+
- **Joel Spolsky"Exceptions vs Error Codes"** — 搜 "Joel Spolsky exceptions"。经典争论。
|
|
48
|
+
- **Go 的 error-as-value 哲学** — 搜 "Go error handling philosophy"。核心:错误是值,不是控制流。
|
|
49
|
+
- **Rust 的 Result/Option** — 搜 "Rust error handling philosophy"。核心:类型系统强制错误处理。
|
|
50
|
+
|
|
51
|
+
### 测试哲学
|
|
52
|
+
|
|
53
|
+
- **TDD** — Kent Beck *Test-Driven Development*(2002)。核心:红-绿-重构。
|
|
54
|
+
- **Property-based Testing** — 搜 "property based testing philosophy"。核心:测不变量,不测具体案例。
|
|
55
|
+
- **The Way of Testivus** — 搜 "testivus testing philosophy"。核心:测试够用就好,不要过度。
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 落地要求
|
|
60
|
+
|
|
61
|
+
织造出的 ENGINEERING_CREED.md 必须包含:
|
|
62
|
+
|
|
63
|
+
1. **工程北极星**:一句话,工程层面的判断基准
|
|
64
|
+
2. **代码原则**:编号(E1, E2...),每条有理由
|
|
65
|
+
3. **工程反模式清单**:编号(EAP1, EAP2...),每条有"不做"和"为什么"
|
|
66
|
+
4. **灵感来源**:至少 2 个独立源,每个源说明"为什么选它"
|
|
67
|
+
5. **底线内化声明**:与 PRODUCT_PHILOSOPHY.md 一致
|
|
68
|
+
6. **章节锚点**:每个章节有 `{#english-anchor}` 标识
|
|
69
|
+
|
|
70
|
+
### 禁止
|
|
71
|
+
|
|
72
|
+
- 禁止照搬 Clean Code 的条目不加工——必须转译为本项目的具体约束
|
|
73
|
+
- 禁止"好代码是可读的"这种废话——必须具体到"什么场景下可读性优先于性能"
|
|
74
|
+
- 禁止抽象层和产品层重复——工程哲学聚焦"怎么写",产品哲学聚焦"为什么存在"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# 维度指引:产品哲学
|
|
2
|
+
|
|
3
|
+
> 所有项目都需要。回答"这个产品为什么存在、北极星是什么、什么不能妥协"。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 触发条件
|
|
8
|
+
|
|
9
|
+
**必跑**——通用层三个维度之一,所有项目都激活。
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 引导问题
|
|
14
|
+
|
|
15
|
+
织造时依次回答:
|
|
16
|
+
|
|
17
|
+
1. **这个产品为什么存在?** 不是"它能做什么",是"如果没有它会怎样"。如果答案是"用户会用别的工具",那这个产品没有存在理由。
|
|
18
|
+
2. **北极星是什么?** 一句话。不是愿景陈述,是判断基准——遇到冲突时,拿这句话量一下。
|
|
19
|
+
3. **什么不能妥协?** 3-5 条。不是"想要"的,是"没有就不行"的。每条必须有理由——为什么这条不能妥协,妥协了会怎样。
|
|
20
|
+
4. **反模式是什么?** 和"做什么"同样重要。每个反模式必须说明"不做"和"为什么不做"。
|
|
21
|
+
5. **决策原则是什么?** 当价值冲突时怎么取舍。不是口号,是可执行的判断规则。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 参考源指引
|
|
26
|
+
|
|
27
|
+
### 实践驱动领域(CLI 工具、开发者工具、基础设施)
|
|
28
|
+
|
|
29
|
+
- **Unix Philosophy** — Doug McIlroy, 1978。原著:*The UNIX Time-Sharing System*(论文)。延伸:Eric Raymond *The Art of UNIX Programming*(2003)、Mike Gancarz *The UNIX Philosophy*(1995)。不要只引 Wikipedia——读 Raymond 的书,里面有 17 条具体原则。
|
|
30
|
+
- **Plan 9 设计原则** — Rob Pike, Ken Thompson。和 Unix Philosophy 有继承也有分歧("一切皆文件"走得更远)。对比阅读能产生张力。
|
|
31
|
+
- **Dieter Rams"好设计十诫"** — 原文在 Vitsoe 官网(https://www.vitsoe.com/eu/about/good-design),不是 Wikipedia 摘要。
|
|
32
|
+
- **Stripe API 设计哲学** — Stripe 工程博客。搜 "Stripe API design philosophy"。核心:API 是产品契约、一致性 > 灵活性。
|
|
33
|
+
- **Jeff Atwood / Joel Spolsky 的工具哲学** — Stack Overflow / Fog Creek 创始人。搜 "Joel Spolsky software philosophy"。
|
|
34
|
+
|
|
35
|
+
### 2C 产品领域(面向终端用户)
|
|
36
|
+
|
|
37
|
+
- **Steve Jobs 产品哲学** — 原著:Walter Isaacson *Steve Jobs*(2011)。核心:减法优先、体验 > 功能。
|
|
38
|
+
- **John Maeda"减法法则"** — *The Laws of Simplicity*(2006)。MIT Press 出版。
|
|
39
|
+
- **Don Norman"以用户为中心的设计"** — *The Design of Everyday Things*(1988/2013 修订版)。
|
|
40
|
+
|
|
41
|
+
### 2B / 平台领域
|
|
42
|
+
|
|
43
|
+
- **Amazon Working Backwards** — 搜 "Amazon working backwards document"。核心:从 PR/FAQ 倒推技术方案。
|
|
44
|
+
- **Google Design Docs** — 搜 "Google design doc template"。核心:设计先行、文档驱动。
|
|
45
|
+
|
|
46
|
+
### 学术建制化领域(如果有理论根基需求)
|
|
47
|
+
|
|
48
|
+
- **SEP"Philosophy of Technology"** — 斯坦福哲学百科全书条目。搜 "SEP philosophy of technology"。
|
|
49
|
+
- **Hubert Dreyfus** — *What Computers Still Can't Do*(技术哲学视角)。
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 落地要求
|
|
54
|
+
|
|
55
|
+
织造出的 PRODUCT_PHILOSOPHY.md 必须包含:
|
|
56
|
+
|
|
57
|
+
1. **北极星**:一句话,可被 Intent 的 `philosophy_anchors` 引用
|
|
58
|
+
2. **不可妥协的价值**:3-5 条,每条有理由
|
|
59
|
+
3. **反模式清单**:编号(AP1, AP2...),每条有"不做"和"为什么"
|
|
60
|
+
4. **决策原则**:编号(P1, P2...),每条有适用条件和判断标准
|
|
61
|
+
5. **灵感来源**:至少 3 个独立源,至少 2 个非 Wikipedia 链接,每个源说明"为什么选它"
|
|
62
|
+
6. **底线内化声明**:显式声明已内化 BASELINE
|
|
63
|
+
7. **章节锚点**:每个章节有 `{#english-anchor}` 标识
|
|
64
|
+
|
|
65
|
+
### 禁止
|
|
66
|
+
|
|
67
|
+
- 禁止只有 Wikipedia 链接——Wikipedia 是常识入口,不是深度源
|
|
68
|
+
- 禁止"灵感来源"只有名字没有理由——必须说明萃取/转译关系
|
|
69
|
+
- 禁止北极星是口号(如"做最好的工具")——必须是判断基准
|
|
70
|
+
- 禁止反模式没有"为什么"——"不做"和"为什么不做"同样重要
|
|
@@ -50,13 +50,28 @@ Philosophy Weaver 是一个**独立的 Agent 步骤**,在项目启动时运行
|
|
|
50
50
|
|
|
51
51
|
Weaver 自己决定要产出几个文档、多详细——这取决于项目特征。
|
|
52
52
|
|
|
53
|
+
### 灵感来源的硬约束
|
|
54
|
+
|
|
55
|
+
哲学文档的"灵感来源"章节不是装饰——它是搜索过程的证据。CLI 会校验灵感来源质量(`loom philosophy check`):
|
|
56
|
+
|
|
57
|
+
1. **至少 3 个独立源**——少于 3 个说明搜索不充分
|
|
58
|
+
2. **至少 2 个非 Wikipedia 链接**——Wikipedia 是常识入口,不是深度源。需要原著、论文、工程博客、标准文档等
|
|
59
|
+
3. **每个源必须有选取理由**——必须说明"为什么选这个源"、萃取/转译关系
|
|
60
|
+
4. **源类型不能单一**——Wikipedia 占比超过 70% 会报警
|
|
61
|
+
|
|
62
|
+
**如果 Agent 从训练数据"背"几个熟悉的名字(如 Unix Philosophy、Dieter Rams)就交差,校验会失败。** 必须真正走搜索漏斗,找到原著、深度解读、实践案例。
|
|
63
|
+
|
|
64
|
+
`loom doctor` 也会自动跑灵感来源校验——不达标的哲学文档会被标记为问题。
|
|
65
|
+
|
|
53
66
|
---
|
|
54
67
|
|
|
55
|
-
##
|
|
68
|
+
## 哲学织造的两个轴
|
|
69
|
+
|
|
70
|
+
Weaver 从两个正交的轴织造哲学:
|
|
56
71
|
|
|
57
|
-
|
|
72
|
+
### 轴一:通用层(回答"为什么")
|
|
58
73
|
|
|
59
|
-
|
|
74
|
+
所有项目都需要。回答产品为什么存在、代码怎么写、团队怎么协作。
|
|
60
75
|
|
|
61
76
|
| 维度 | 回答什么 | 必须产出 |
|
|
62
77
|
|---|---|---|
|
|
@@ -64,40 +79,66 @@ Weaver 从三个层次织造哲学。不是所有层次都需要——按项目
|
|
|
64
79
|
| 工程哲学 | 怎么写代码?什么不做?什么是好代码? | ENGINEERING_CREED.md |
|
|
65
80
|
| 协作哲学 | 怎么决策?怎么处理冲突? | 融入 DECISION_RUBRIC.md 或独立文档 |
|
|
66
81
|
|
|
67
|
-
|
|
82
|
+
通用层三个维度必跑,不可跳过。参考源指引见 `dimensions/universal/` 下的维度文件。
|
|
68
83
|
|
|
69
|
-
|
|
70
|
-
|---|---|---|
|
|
71
|
-
| 前端/UX 哲学 | 项目有用户界面 | UX_PHILOSOPHY.md |
|
|
72
|
-
| 游戏设计哲学 | 项目是游戏 | GAME_DESIGN_PHILOSOPHY.md |
|
|
73
|
-
| 后端/基础设施哲学 | 项目是后端/平台 | BACKEND_PHILOSOPHY.md |
|
|
74
|
-
| AI/ML 哲学 | 项目涉及 AI/ML | AI_PHILOSOPHY.md |
|
|
84
|
+
### 轴二:实现部分层(回答"怎么做")
|
|
75
85
|
|
|
76
|
-
|
|
86
|
+
按项目特征**动态拆解**——不预设"有哪些部分",由 Agent 根据项目特征自行识别。
|
|
77
87
|
|
|
78
|
-
|
|
88
|
+
**拆解方法论**:见 `dimensions/PART_DECOMPOSITION.md`。核心流程:
|
|
79
89
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
1. **识别项目类型**(CLI 工具 / Agent 系统 / Web 前端 / 后端服务 / 游戏 / ...)
|
|
91
|
+
2. **拆解实现部分**——问三个问题:
|
|
92
|
+
- 用户接触面是什么?(CLI 输出 / 对话格式 / 页面交互 / ...)
|
|
93
|
+
- 内部由哪些子系统组成?(转换引擎 / 工具调度 / 路由 / ...)
|
|
94
|
+
- 每个子系统的职责边界在哪?
|
|
95
|
+
3. **对每个部分独立走搜索漏斗**——搜"这个部分该怎么做、什么标准、有什么好实践"
|
|
96
|
+
4. **产出部分哲学文档**——每个部分有北极星、该做什么、不该做什么、参考实践
|
|
86
97
|
|
|
87
|
-
|
|
98
|
+
**拆解原则**:
|
|
99
|
+
- 按职责拆,不按文件拆
|
|
100
|
+
- 粒度适中——太粗没有约束力,太细是架构不是哲学
|
|
101
|
+
- 用户接触面优先——用户能看到的部分,哲学约束最重要
|
|
102
|
+
- 每个部分能独立搜索到好实践
|
|
88
103
|
|
|
89
|
-
|
|
104
|
+
**拆解示例**:
|
|
90
105
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
106
|
+
CLI 工具(如 md2html):
|
|
107
|
+
```
|
|
108
|
+
├── CLI 交互设计 — 参数解析、--help、--version、用法提示
|
|
109
|
+
├── CLI 输出美学 — 成功反馈格式、颜色策略、Rule of Silence 的正确理解
|
|
110
|
+
├── CLI 错误呈现 — 错误结构、修复建议、退出码语义
|
|
111
|
+
├── 转换引擎 — 纯函数、子集策略、透传 vs 报错
|
|
112
|
+
└── 产物设计 — HTML 结构、CSS 内联、可预测性
|
|
113
|
+
```
|
|
97
114
|
|
|
98
|
-
|
|
115
|
+
Agent 系统:
|
|
116
|
+
```
|
|
117
|
+
├── 系统架构 — 编排 vs 控制、进程边界、IPC 机制
|
|
118
|
+
├── 工具调用哲学 — 委托边界、失控收回、工具描述怎么写
|
|
119
|
+
├── 上下文压缩 — 什么时候压缩、压缩什么、保留什么
|
|
120
|
+
├── 提示词工程 — 角色激活、约束注入、上下文窗口管理
|
|
121
|
+
├── 验证哲学 — 怎么信、怎么验、自动化 vs 人类
|
|
122
|
+
└── 失败与恢复 — 崩溃恢复、状态一致性、回滚策略
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 两轴的关系
|
|
126
|
+
|
|
127
|
+
- 通用层是地基——没有产品哲学,实现部分的哲学就没有判断基准
|
|
128
|
+
- 实现部分层是落地——没有部分哲学,通用层就飘在空中,Forge 实现时不知道该对照什么
|
|
129
|
+
- 两层正交,都需要
|
|
99
130
|
|
|
100
|
-
|
|
131
|
+
### 交叉维度(按需,跨部分)
|
|
132
|
+
|
|
133
|
+
某些维度不属于单个实现部分,而是跨多个部分:
|
|
134
|
+
|
|
135
|
+
| 维度 | 触发条件 | 产出 |
|
|
136
|
+
|---|---|---|
|
|
137
|
+
| 性能哲学 | 性能敏感 | 融入相关部分哲学或独立文档 |
|
|
138
|
+
| 安全哲学 | 涉及敏感数据/系统 | 融入相关部分哲学或独立文档 |
|
|
139
|
+
| 体验心理学 | 面向终端用户 | 融入用户接触面部分哲学 |
|
|
140
|
+
|
|
141
|
+
交叉维度不单独成层——它们融入相关的实现部分哲学中。
|
|
101
142
|
|
|
102
143
|
---
|
|
103
144
|
|
|
@@ -201,29 +242,33 @@ Step 0:内化 BASELINE
|
|
|
201
242
|
→ 底线是织造的硬约束
|
|
202
243
|
|
|
203
244
|
Step 1:项目特征识别
|
|
204
|
-
→ 识别项目类型(
|
|
245
|
+
→ 识别项目类型(CLI 工具 / Agent 系统 / Web 前端 / 后端服务 / 游戏 / ...)
|
|
205
246
|
→ 识别规模(小/中/大)
|
|
206
|
-
→ 识别领域(前端/后端/AI/数据/...)
|
|
207
247
|
→ 识别核心价值(这个产品为什么要存在)
|
|
208
248
|
|
|
209
|
-
Step 2
|
|
210
|
-
→
|
|
211
|
-
→
|
|
212
|
-
→
|
|
213
|
-
→
|
|
214
|
-
|
|
215
|
-
Step 3
|
|
216
|
-
→
|
|
217
|
-
→
|
|
218
|
-
→
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
Step
|
|
222
|
-
→
|
|
249
|
+
Step 2:实现部分拆解
|
|
250
|
+
→ 按 dimensions/PART_DECOMPOSITION.md 的方法论拆解
|
|
251
|
+
→ 问三个问题:用户接触面是什么?内部由哪些子系统组成?每个子系统的职责边界?
|
|
252
|
+
→ 产出"实现部分清单"——本项目拆解出哪些部分
|
|
253
|
+
→ 展示给用户确认或调整
|
|
254
|
+
|
|
255
|
+
Step 3:通用层织造
|
|
256
|
+
→ 织造产品哲学、工程哲学、协作哲学
|
|
257
|
+
→ 参照 dimensions/universal/ 下的维度指引搜索
|
|
258
|
+
→ 每个维度走"搜索→萃取→转译→落地"漏斗
|
|
259
|
+
|
|
260
|
+
Step 4:实现部分层织造
|
|
261
|
+
→ 对 Step 2 拆解出的每个部分,独立走搜索漏斗
|
|
262
|
+
→ 搜"这个部分该怎么做、什么标准、有什么好实践"
|
|
263
|
+
→ 产出部分哲学文档(独立文件或融入通用层文档的章节)
|
|
264
|
+
→ 每个部分必须有:北极星、该做什么、不该做什么、参考实践、灵感来源
|
|
265
|
+
|
|
266
|
+
Step 5:整合与冲突解决
|
|
267
|
+
→ 检查部分间冲突(如 CLI 输出美学 vs CLI 错误呈现的格式冲突)
|
|
223
268
|
→ 产出 DECISION_RUBRIC.md(冲突取舍规则)
|
|
224
269
|
→ 确保所有哲学文档不与 BASELINE 冲突
|
|
225
270
|
|
|
226
|
-
Step
|
|
271
|
+
Step 6:版本锚定
|
|
227
272
|
→ 哲学文档写入 .loom/v{N}/00_PHILOSOPHY/
|
|
228
273
|
→ 版本升级时可重新织造,旧版保留
|
|
229
274
|
→ 记录织造日志(参考了哪些源、为什么这么织)
|
|
@@ -231,8 +276,8 @@ Step 5:版本锚定
|
|
|
231
276
|
|
|
232
277
|
### 人类检查点
|
|
233
278
|
|
|
234
|
-
Step 2
|
|
235
|
-
Step
|
|
279
|
+
Step 2(实现部分拆解)后:用户确认拆解出的部分清单。
|
|
280
|
+
Step 5(整合)后:用户确认冲突取舍规则。
|
|
236
281
|
|
|
237
282
|
其他步骤 Weaver 自主推进,不需要逐步批准。
|
|
238
283
|
|
|
@@ -269,7 +314,15 @@ Weaver 织造时读取对应维度文件,按其指引搜索和萃取。
|
|
|
269
314
|
|
|
270
315
|
维度库是**可扩展**的——用户或 Agent 可以添加新维度。但新维度必须包含上述四要素,否则 Weaver 无法使用。
|
|
271
316
|
|
|
272
|
-
> **注**:`dimensions/`
|
|
317
|
+
> **注**:`dimensions/` 当前包含:
|
|
318
|
+
> - `SEARCH_METHODOLOGY.md` — 检索方法论(怎么找到优质思想)
|
|
319
|
+
> - `PART_DECOMPOSITION.md` — 实现部分拆解方法论(怎么识别项目由哪些部分组成)
|
|
320
|
+
> - `universal/PRODUCT_PHILOSOPHY.md` — 产品哲学维度指引(参考源清单 + 落地要求)
|
|
321
|
+
> - `universal/ENGINEERING_CREED.md` — 工程哲学维度指引
|
|
322
|
+
> - `universal/COLLABORATION_PHILOSOPHY.md` — 协作哲学维度指引
|
|
323
|
+
> - `examples/` — 参考案例库(按项目类型组织,每个类型一个子目录)
|
|
324
|
+
>
|
|
325
|
+
> 通用层三个维度已填充,Weaver 织造时必须读取对应维度文件,按其参考源指引搜索。实现部分层不预设——Weaver 按 `PART_DECOMPOSITION.md` 的方法论自行拆解,`examples/` 提供参考案例但不强制遵循。
|
|
273
326
|
|
|
274
327
|
---
|
|
275
328
|
|
|
@@ -278,12 +331,13 @@ Weaver 织造时读取对应维度文件,按其指引搜索和萃取。
|
|
|
278
331
|
| 由这份文件规定(元规范) | 由 Weaver 织造(哲学) |
|
|
279
332
|
|---|---|
|
|
280
333
|
| 织造漏斗是"搜索→萃取→转译→落地" | 每步的具体内容 |
|
|
281
|
-
|
|
|
334
|
+
| 哲学分两个轴(通用层 + 实现部分层) | 拆解出哪些实现部分 |
|
|
282
335
|
| 通用层三个维度必跑 | 三个维度的具体内容 |
|
|
336
|
+
| 实现部分按 PART_DECOMPOSITION.md 拆解 | 每个部分的具体哲学 |
|
|
283
337
|
| 哲学文档必须包含 5 个结构要素 | 每个要素的具体内容 |
|
|
284
338
|
| DECISION_RUBRIC 必须有冲突取舍规则 | 规则的具体内容 |
|
|
285
339
|
| 哲学必须内化 BASELINE | 内化的具体表达方式 |
|
|
286
340
|
| 哲学跟随版本演进 | 演进时变什么、为什么变 |
|
|
287
|
-
|
|
|
341
|
+
| 灵感来源必须通过源多样性校验 | 具体引用哪些源 |
|
|
288
342
|
|
|
289
343
|
元规范定义"怎么织造",哲学定义"织出什么"。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haaaiawd/loom",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "LOOM — 哲学驱动开发框架。Agent 通过 CLI 访问 Intent Map / 哲学 / 验证记录,不直接读文件",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"license": "MIT",
|
|
36
36
|
"repository": {
|
|
37
37
|
"type": "git",
|
|
38
|
-
"url": "git+https://github.com/
|
|
39
|
-
},
|
|
40
|
-
"homepage": "https://github.com/
|
|
38
|
+
"url": "git+https://github.com/Haaaiawd/loom.git"
|
|
39
|
+
},
|
|
40
|
+
"homepage": "https://github.com/Haaaiawd/loom#readme",
|
|
41
41
|
"author": "haaaiawd"
|
|
42
42
|
}
|