odoo-forge-bundle 0.1.10 → 0.1.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "odoo-forge-bundle",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "Generated bundle payload for Odoo Forge internal 1.0.",
5
5
  "type": "module",
6
6
  "exports": "./index.js",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "Odoo Forge",
3
3
  "slug": "odoo-forge",
4
- "version": "0.1.10",
4
+ "version": "0.1.11",
5
5
  "description": "Unified Odoo agent toolkit for Codex and Claude Code.",
6
6
  "localInstallRoot": "~/.odoo-forge",
7
7
  "packages": {
@@ -1,389 +1,287 @@
1
1
  ---
2
2
  name: module-report
3
- description: Odoo 模块报告 skill。用于对已选定的模块、仓库或本地路径做深入阅读,生成完整模块报告,并写入 Notion 的“项目Wiki / 模块报告”。当用户需要“精读模块”“沉淀模块知识库”“生成模块报告”时使用;如果还在大范围找候选,则先用 module-research。
3
+ description: Odoo 模块报告 skill。对已选定模块、仓库或本地模块路径做深入精读,结合 Notion 中的“项目 Wiki / 项目概览”判断项目相关度,生成完整报告并写回 Notion「📦 odoo 模块报告」数据库。用户提到“精读模块”“看看值不值得用”“生成模块报告”“把模块写进项目 Wiki 模块报告库”时使用;如果还在大范围找候选,则先用 module-research。
4
4
  ---
5
5
 
6
6
  # 模块报告
7
7
 
8
- ## 定位
8
+ ## 1. 定位
9
9
 
10
- 这是一个 Odoo 模块报告 skill。
10
+ skill 只做三件事:
11
11
 
12
- 它只负责:
12
+ 1. 精读已选定模块源码
13
+ 2. 结合项目背景给出项目口径的简介、评分和使用场景
14
+ 3. 将结果写回 Notion `📦 odoo 模块报告` 数据库
13
15
 
14
- 1. 深入阅读已选定的模块或仓库
15
- 2. 生成完整模块报告正文
16
- 3. 将模块报告沉淀到 Notion 的模块知识库
16
+ 不要做这些事:
17
17
 
18
- 它**不负责做大范围候选搜索**。如果用户还没确定要看哪个模块,先交给 `module-research`。
18
+ - 不要在用户还没选定目标模块时替代 `module-research`
19
+ - 不要只核实官方模块能力,这类问题交给 `odoo18-docs`
20
+ - 不要脱离项目背景直接评分
21
+ - 不要在 `项目 Wiki` 下新建“每仓库一个数据库”的并行结构
19
22
 
20
- ## 必需上游上下文
23
+ ## 2. 先定位 Notion 上下文
21
24
 
22
- | 上游内容 | 必需性 | 用途 | 缺失时怎么做 |
23
- |----------|--------|------|--------------|
24
- | `全局资源` 页面及其子页 | 必需 | 判断模块对你们项目的推荐度、简介口径和使用场景 | 如果没有,仍可写报告,但要明确推荐度可信度下降 |
25
- | 目标仓库 / 模块 / 本地路径 | 必需 | 决定要精读什么 | 没有目标就停止,先让调用方回到 `module-research` |
26
- | `项目Wiki / 模块报告` 页面 | 建议 | 写入 Notion 模块知识库 | 如果没有,则先创建 |
27
- | 相关业务域的 `BRD / Solution` | 推荐 | 结合当前业务域判断该模块在你们项目中的实际使用场景 | 如果没有,则至少基于 `全局资源` 做判断,并说明适用范围仍较宽 |
25
+ 先按当前工作区的真实结构定位,不要假设存在旧的“全局资源”页面树。
28
26
 
29
- ## 开始前先读什么
27
+ ### 2.1 先看见什么
30
28
 
31
- 在进入模块源码之前,先用 Notion MCP 读取与你们项目有关的上下文,不要直接脱离项目背景写“推荐度 / 使用场景 / 简介”。
29
+ 1. 定位页面 `项目 Wiki`
30
+ 2. `fetch` `项目 Wiki`
31
+ 3. 在页面内容里确认至少存在两个 inline 数据库:
32
+ - `🏗️ 项目概览`
33
+ - `📦 odoo 模块报告`
32
34
 
33
- 默认先读:
35
+ 如果 `项目 Wiki` 下没有这两个数据库,先停止并说明当前工作区结构与 skill 预期不一致。
34
36
 
35
- 1. `产品设计 / 全局资源 / 项目背景`,了解项目范围、阶段和目标
36
- 2. `产品设计 / 全局资源 / 组织架构`,了解谁会用、谁维护、谁审批
37
- 3. `产品设计 / 全局资源 / 业务域全景图`,了解模块大概率落在哪些业务域
38
- 4. `产品设计 / 全局资源 / 术语表`,避免模块概览里的术语和你们项目口径打架
39
- 5. `产品设计 / 全局资源 / 现有系统清单`,判断是否涉及外部系统或现有系统边界
40
- 6. 如果模块是为某个明确业务域筛出来的,再读该业务域的 `BRD / Solution`
37
+ ### 2.2 怎么读到项目级文档
41
38
 
42
- 读这些内容的目的要明确:
39
+ `项目背景`、`业务域全景图` 等并不是 `项目 Wiki` 的普通子页面;它们当前是 `🏗️ 项目概览` 数据库里的页面。
43
40
 
44
- - `简介`:写成适合你们项目口径的一句话,而不是照抄模块 README
45
- - `使用场景`:写清楚在你们项目的哪类业务域、流程、角色或需求下可以考虑
46
- - `推荐度`:结合你们项目背景判断是 `推荐 / 备选 / 谨慎`
41
+ 按下面顺序读取:
47
42
 
48
- ## Notion 页面怎么找
43
+ 1. `fetch` `🏗️ 项目概览` 数据库,拿到真实 schema 和 view URL
44
+ 2. 查询 `🏗️ 项目概览` 的 `全部文档` 视图
45
+ 3. 在视图结果里找到并 `fetch` 这些页面:
46
+ - `项目背景`
47
+ - `业务域全景图`
48
+ - `组织架构`
49
+ - `术语表`
50
+ - `现有系统清单`
51
+ - `项目约束`
52
+ 4. 先把这些页面当作项目级公共上下文
49
53
 
50
- 写入时默认按下面的顺序定位:
54
+ 不要跳过 `项目概览` 直接在全工作区盲搜 `项目背景`。优先沿着 `项目 Wiki -> 项目概览 -> 文档页面` 这条路径读取。
51
55
 
52
- 1. 先定位根页面 `项目Wiki`
53
- 2. 读取 `项目Wiki` 的页面结构
54
- 3. 在 `项目Wiki` 下进入或创建页面 `模块报告`
55
- 4. 在 `模块报告` 下按仓库名定位或创建数据库,数据库名字就是仓库名字
56
- 5. 先 `fetch` 数据库,拿到真实 schema 和 `data_source_id`
57
- 6. 再在对应 `data_source_id` 下按 `标题` 查找记录;有则更新,没有则新建
56
+ ### 2.3 怎么补读业务域文档
58
57
 
59
- 这里要按 Notion MCP 的真实工作方式来写,不要再沿用旧的“多维表 + create_page/update_page”心智。
58
+ 如果模块明显属于某个业务域,在读完项目级文档后,再补一层业务域上下文即可,不要把所有业务域子文档都读一遍。
60
59
 
61
- ### 页面与数据库创建模板
60
+ 建议这样做:
62
61
 
63
- 1. 创建 `项目Wiki` 页面:
62
+ 1. 先根据 `业务域全景图` 判断模块最相关的业务域
63
+ 2. 去 `产品设计` 下找对应业务域页面
64
+ 3. 先读该业务域页本身的 `业务域简介`
65
+ 4. 如果只靠 `业务域简介` 已足够判断模块是否匹配该域,就继续写报告
66
+ 5. 只有在判断仍不够清楚时,再按需补读该业务域页下面的子文档,例如 `BRD`、`技术方案`、`Epics`
64
67
 
65
- ```json
66
- {
67
- "pages": [
68
- {
69
- "properties": {
70
- "title": "项目Wiki"
71
- },
72
- "icon": "📚"
73
- }
74
- ]
75
- }
76
- ```
68
+ 把这层理解成“轻量补证据”:
77
69
 
78
- 2. 在 `项目Wiki` 下创建 `模块报告` 页面:
70
+ - 项目级文档:决定项目范围、一阶段边界、通用术语和系统边界
71
+ - 业务域页:帮助判断模块是不是明显落在这个业务域
72
+ - 业务域子文档:只在需要补充证据时再读
79
73
 
80
- ```json
81
- {
82
- "parent": {
83
- "page_id": "{项目Wiki_page_id}"
84
- },
85
- "pages": [
86
- {
87
- "properties": {
88
- "title": "模块报告"
89
- },
90
- "icon": "📦"
91
- }
92
- ]
93
- }
94
- ```
74
+ 如果模块无法明确归到某个业务域,可以只基于项目级文档产出报告,但要在“使用场景”里写清这是宽口径判断。
95
75
 
96
- 3. 在 `模块报告` 页面下创建仓库级数据库。
97
- 推荐 schema 固定为:
76
+ ### 2.4 哪些页面是评分必需
98
77
 
99
- ```sql
100
- CREATE TABLE (
101
- "标题" TITLE,
102
- "简介" RICH_TEXT,
103
- "使用场景" RICH_TEXT,
104
- "推荐度" SELECT('推荐':green, '备选':yellow, '谨慎':red)
105
- )
106
- ```
78
+ 评分前的最低门槛如下:
107
79
 
108
- 对应调用形态:
80
+ - `项目背景`:必读。没有它就不要评分
81
+ - `业务域全景图`:必读。没有它就不要评分
82
+ - `组织架构`:推荐读取。缺失时可继续,但角色判断可信度下降
83
+ - `术语表`:推荐读取。缺失时可继续,但要注意用词
84
+ - `现有系统清单`:推荐读取。缺失时可继续,但系统边界要标 `待确认`
85
+ - `项目约束`:推荐读取。缺失时可继续,但一期优先级判断要标 `待确认`
86
+ - 业务域页的 `业务域简介`:模块已能明确归属业务域时推荐读取;若缺失,可继续,但业务贴合度判断要标 `待确认`
87
+ - 业务域子文档如 `BRD / 技术方案 / Epics`:只在 `业务域简介` 不足以支撑判断时再补读
109
88
 
110
- ```json
111
- {
112
- "parent": {
113
- "page_id": "{模块报告_page_id}"
114
- },
115
- "title": "server-tools",
116
- "schema": "CREATE TABLE (\"标题\" TITLE, \"简介\" RICH_TEXT, \"使用场景\" RICH_TEXT, \"推荐度\" SELECT('推荐':green, '备选':yellow, '谨慎':red))"
117
- }
118
- ```
89
+ 如果缺少 `项目背景` 或 `业务域全景图`,停止写报告,并明确说明“无法判断项目相关度,因此不评分”。
119
90
 
120
- 4. 创建完数据库后,立刻 `fetch` 该数据库。
121
- 不要跳过这一步,因为后续写记录必须用返回结果里的 `data_source_id` 和真实属性名。
91
+ ## 3. 评分口径
122
92
 
123
- 5. 在仓库级数据库里创建模块记录页:
93
+ 评分必须结合项目相关度,不能只看模块本身质量或 OCA 活跃度。
124
94
 
125
- ```json
126
- {
127
- "parent": {
128
- "data_source_id": "{仓库级数据库_data_source_id}"
129
- },
130
- "pages": [
131
- {
132
- "properties": {
133
- "标题": "sale_order_tag",
134
- "简介": "为销售订单提供标签分类与筛选能力",
135
- "使用场景": "适合在你们项目中需要按业务主题、项目来源或专项任务给销售订单分类时考虑",
136
- "推荐度": "备选"
137
- },
138
- "icon": "🧩"
139
- }
140
- ]
141
- }
142
- ```
143
-
144
- ### 创建后的验证步骤
145
-
146
- 每次创建仓库级数据库后,都要立刻做这两步验证:
147
-
148
- 1. `fetch` 父页面,确认数据库已经出现在 `模块报告` 页面下
149
- 2. `fetch` 新数据库,确认返回结果中能看到真实 schema 和 `data_source_id`
95
+ | 评分 | 含义 | 典型信号 |
96
+ |------|------|----------|
97
+ | `⭐` | 功能可用但与项目几乎无关 | 业务域不在一期范围,无直接需求对应 |
98
+ | `⭐⭐` | 有通用价值,不在一期范围 | 模块质量尚可,但项目暂无此类需求 |
99
+ | `⭐⭐⭐` | 与项目业务域相关,可作备选 | 需求存在但有其他方案,或需明显二开 |
100
+ | `⭐⭐⭐⭐` | 高度契合需求,建议优先评估 | 能直接覆盖需求,落地成本较低 |
101
+ | `⭐⭐⭐⭐⭐` | 直接解决一期核心痛点 | 不采用就大概率需要从零自研 |
150
102
 
151
- 不要只以“create_database 调用了成功”作为结束条件,
152
- 要以“父页面可见 + schema 可识别 + 可拿到 data_source_id”作为成功标准。
103
+ 产出时至少要把这三件事写清楚:
153
104
 
154
- ## Notion 数据库约定
105
+ - `简介`:用项目口径写一句话,不照抄 README
106
+ - `评分`:明确给出 `⭐` 到 `⭐⭐⭐⭐⭐`
107
+ - `使用场景`:写清楚在项目的哪个业务域、流程或角色下可以考虑
155
108
 
156
- 每个仓库一个数据库,数据库标题直接使用仓库名字,例如:
157
-
158
- - `server-tools`
159
- - `project`
160
- - `hr`
161
-
162
- 每个数据库应具备 4 个核心属性:
163
-
164
- - `标题`
165
- - `简介`
166
- - `使用场景`
167
- - `推荐度`
168
-
169
- 推荐类型如下:
170
-
171
- - `标题`:`TITLE`
172
- - `简介`:`RICH_TEXT`
173
- - `使用场景`:`RICH_TEXT`
174
- - `推荐度`:`SELECT('推荐':green, '备选':yellow, '谨慎':red)`
175
-
176
- 如果数据库已经存在,则:
177
-
178
- - 先 `fetch` 数据库,读取真实 schema
179
- - 如果缺少属性,用 `update_data_source` 补齐
180
- - 如果属性名与预期不一致,先统一命名,再继续写记录
181
- - 不要在没有拿到 `data_source_id` 的情况下直接写记录
182
-
183
- ### 模块记录写入要求
184
-
185
- 目标上,模块记录应包含:
186
-
187
- - `标题`
188
- - `简介`
189
- - `使用场景`
190
- - `推荐度`
191
-
192
- 摘要字段口径按下面的标准准备:
193
-
194
- ```json
195
- {
196
- "标题": "sale_order_tag",
197
- "简介": "为销售订单提供标签分类与筛选能力",
198
- "使用场景": "适合在你们项目中需要按业务主题、项目来源或专项任务给销售订单分类时考虑",
199
- "推荐度": "备选"
200
- }
201
- ```
202
-
203
- 写入时要按这个顺序:
204
-
205
- 1. 如果是新记录,用 `create_pages` 在数据库的 `data_source_id` 下创建
206
- 2. 如果是已有记录,先 `fetch` 该页面,再用 `update_page` 更新属性和正文
207
- 3. 写完后重新 `fetch` 页面或数据库,确认属性和值已经落进去
208
- 4. 只有在属性和正文都成功写入后,才可以把本次 Notion 更新当作完成状态
209
-
210
- 点开每一行的页面后,再写入完整模块报告正文。
211
-
212
- ## 什么时候使用
213
-
214
- 以下场景必须使用本 skill:
215
-
216
- - “帮我精读这个模块”
217
- - “帮我看看这个模块值不值得用”
218
- - “把候选模块 A/B/C 各出一份精读结论”
219
- - `solution` 已经找到候选模块,需要沉淀正式模块报告
220
- - “把这个模块写进项目 Wiki 的模块报告库”
221
-
222
- 以下情况不要用本 skill:
223
-
224
- - 只是想快速看看有哪些模块可选,用 `module-research`
225
- - 只是想核实官方模块能力,用 `odoo18-docs`
226
-
227
- ## 工作流
109
+ ## 4. 精读工作流
228
110
 
229
111
  1. 读 `__manifest__.py`
230
- 2. `README*`
231
- 3. 读核心目录:
112
+ 2. 检查 `version` 是否以 `18.0` 开头;如果明显不是 Odoo 18,立即提示版本不匹配,不要硬推荐
113
+ 3. 读 `README*`
114
+ 4. 读核心目录:
232
115
  - `models/`
233
116
  - `views/`
234
117
  - `security/`
235
118
  - `data/`
236
119
  - `controllers/`(如有)
237
- 4. 识别:
238
- - 核心模型
239
- - 关键视图 / 工作流
240
- - 依赖模块
241
- - 安装前置条件
242
- - 维护和兼容性信号
243
- 5. 再回到 Notion 上下文判断:
244
- - 对你们项目的推荐度
245
- - 在你们项目中的使用场景
246
- - 适合写进数据库属性的简介口径
247
- 6. 生成完整模块报告正文,固定按 5 段结构写
248
- 7. 写入 Notion:
249
- - 定位仓库名对应的数据库
250
- - 先 `fetch` 数据库,确认 schema 和 `data_source_id`
251
- - 如果 schema 有问题,先修 schema 再继续
252
- - 创建或更新模块记录,并验证 4 个属性已写入
253
- - 将完整报告写入该行页面正文
254
- 8. 返回简短摘要给调用方
255
-
256
- ## 正文标准
257
-
258
- 模块报告正文统一按下面 5 段写,不再自由发挥章节结构。
259
-
260
- ### 1. 模块概览
261
-
262
- 这一段至少要写清楚:
263
-
264
- - 模块核心作用,一句话说清它解决什么问题
265
- - 模块主要服务哪个业务对象、流程或工作台
266
- - 模块来源和维护信号是否正常
267
-
268
- 不要只重复 README 第一段。
120
+ 5. 识别这些信息:
121
+ - 核心模型和关键字段
122
+ - 关键视图、动作和工作流
123
+ - 自动化、约束、权限和联动
124
+ - 依赖模块和安装前置
125
+ - 维护与兼容性信号
126
+ 6. 回到 Notion 上下文,结合项目级文档和必要的业务域文档判断:
127
+ - 该模块在项目中的落点
128
+ - 该模块的星级评分
129
+ - 适合写入数据库属性的 `简介`
130
+ - 正文第 3 段的 `使用场景`
131
+ 7. 生成完整报告正文
132
+ 8. 写回 Notion
133
+ 9. 重新读取已写入页面,确认属性和值都已落库
134
+
135
+ ## 5. 写回 Notion
136
+
137
+ 所有模块统一写入 `📦 odoo 模块报告` 数据库,不再按仓库创建多个数据库。
138
+
139
+ ### 5.1 先拿真实 schema
140
+
141
+ 1. `fetch` `📦 odoo 模块报告` 数据库
142
+ 2. 记录真实 `data_source_id`
143
+ 3. 以当前 schema 为准,不要凭记忆写属性名
144
+
145
+ 当前工作区里,这个数据库至少应包含这些核心属性:
146
+
147
+ - `模块名称`
148
+ - `简介`
149
+ - `所属仓库`
150
+ - `评分`
151
+ - `评估人`
152
+ - `评估状态`
269
153
 
270
- ### 2. 功能说明
154
+ 如果 schema 与上面明显不一致,先处理再继续。尤其注意:
271
155
 
272
- 这一段重点写模块“实际做了什么”,至少要覆盖:
156
+ - `所属仓库` 必须是能正常存仓库名的类型
157
+ - 如果它仍然是明显不适合仓库名的类型,例如 `email`,先修 schema,再继续写值
158
+ - 如果数据库已有额外字段,不要随意删除;只修会阻塞本次写入的问题
273
159
 
274
- - 核心模型或关键业务对象
275
- - 关键页面、动作或工作流
276
- - 关键规则、自动化或联动
277
- - 与标准 Odoo 相比的主要补充点
160
+ ### 5.2 查重规则
278
161
 
279
- 不要把“功能说明”和“使用场景”混写在一起。
162
+ 先按 `模块名称` 精确查重,再决定创建还是更新。
280
163
 
281
- ### 3. 使用场景
164
+ 推荐顺序:
282
165
 
283
- 这一段必须结合项目背景写,不能泛泛而谈。
166
+ 1. 查询 `📦 odoo 模块报告` 的主表视图,或在该 data source 内搜索模块技术名
167
+ 2. 只把 `模块名称` 精确匹配的页面视为同一模块
168
+ 3. 如果只有模糊匹配,先 `fetch` 候选页确认后再更新
169
+ 4. 如果没有精确匹配,再创建新记录
284
170
 
285
- 至少回答这几个问题:
171
+ 不要因为 README 标题相近或功能接近,就覆盖别的模块记录。
286
172
 
287
- - 在你们项目的哪个业务域或哪类需求里可以考虑这个模块
288
- - 更适合作为主方案、补充方案,还是备选方案
289
- - 如果要落地,前提通常是什么
173
+ ### 5.3 属性回填口径
290
174
 
291
- 如果没有足够上下文支撑精确判断:
175
+ | 属性 | 期望类型 | 填写标准 |
176
+ |------|----------|----------|
177
+ | `模块名称` | `TITLE` | 模块技术名,如 `sale_order_tag` |
178
+ | `简介` | `RICH_TEXT` / `TEXT` | 一句话说明模块做什么,语气贴近项目口径 |
179
+ | `所属仓库` | `RICH_TEXT` / `SELECT` | 仓库名,如 `server-tools` |
180
+ | `评分` | `SELECT` | 使用 `⭐` 到 `⭐⭐⭐⭐⭐` |
181
+ | `评估人` | `PEOPLE` | 当前执行精读的人;如需写入,先获取当前用户 ID |
182
+ | `评估状态` | `STATUS` | 写完正文并验证后改为 `已出报告` |
292
183
 
293
- - 先明确是基于 `全局资源` 的哪部分判断
294
- - 再说明哪些业务背景仍待确认
184
+ 建议的属性值长这样:
295
185
 
296
- ### 4. 依赖与安装
186
+ ```json
187
+ {
188
+ "模块名称": "sale_order_tag",
189
+ "简介": "为销售订单提供标签分类与筛选能力,适合按项目主题或专项任务做快速归类。",
190
+ "所属仓库": "sale-workflow",
191
+ "评分": "⭐⭐⭐",
192
+ "评估状态": "已出报告"
193
+ }
194
+ ```
297
195
 
298
- 内容必须包含:
196
+ ### 5.4 写入顺序
299
197
 
300
- - 依赖模块
301
- - 前置条件
302
- - 安装步骤
303
- - 安装后如何确认模块已正确安装
198
+ 1. 如果不存在记录,用 `create_pages` 在 `data_source_id` 下创建页面
199
+ 2. 如果已存在记录,先 `fetch` 该页面
200
+ 3. 先写或更新属性:`模块名称 / 简介 / 所属仓库 / 评分 / 评估人`
201
+ 4. 再写完整报告正文
202
+ 5. 最后把 `评估状态` 改为 `已出报告`
203
+ 6. 重新 `fetch` 页面,确认:
204
+ - 属性值已正确落库
205
+ - 正文不是空白页
206
+ - 状态已变成 `已出报告`
304
207
 
305
- ### 5. 操作指南
208
+ 不要只写属性不写正文,也不要只写正文不回填属性。
306
209
 
307
- 这一段必须同时包含“配置指南”和“一个演示场景”,不要只罗列按钮或菜单。
210
+ ## 6. 正文模板
308
211
 
309
- 至少拆成这两块:
212
+ 正文固定按 5 段写,标题建议保持一致,方便后续横向阅读。
310
213
 
311
- - `配置指南`
312
- - `演示场景`
214
+ ```markdown
215
+ ## 1. 模块概览
313
216
 
314
- `配置指南` 至少包含:
217
+ - 核心作用:{一句话说清模块解决什么问题}
218
+ - 主要对象/流程:{服务哪个业务对象、流程或工作台}
219
+ - 来源与维护:{模块来源、仓库、维护活跃度、版本匹配情况}
315
220
 
316
- - 配置入口路径
317
- - 配置步骤
318
- - 关键配置项说明
319
- - 推荐配置方式或常见配置值
320
- - 配置完成后如何验证生效
221
+ ## 2. 功能说明
321
222
 
322
- `演示场景` 至少包含:
223
+ - 核心模型:{模型、关键字段、关系}
224
+ - 关键界面/动作:{视图、按钮、菜单、动作、自动化}
225
+ - 关键规则:{权限、约束、自动化、与标准 Odoo 的主要差异}
323
226
 
324
- - 场景名称
325
- - 适用角色
326
- - 前置条件
327
- - 操作步骤
328
- - 预期结果
227
+ ## 3. 使用场景
329
228
 
330
- 至少写 1 个完整闭环演示场景。
331
- 如果模块功能较多,可写 2-3 个典型演示场景。
229
+ - 适用业务域:{结合项目背景和业务域全景图判断}
230
+ - 适用方式:{主方案 / 补充方案 / 备选方案}
231
+ - 落地前提:{依赖什么业务前提、主数据、流程或外部系统}
232
+ - 待确认项:{上下文不足时写清楚缺什么}
332
233
 
333
- 如果是多模块批量精读:
234
+ ## 4. 依赖与安装
334
235
 
335
- - 同仓库模块写入同一个数据库
336
- - 不同仓库分别写入各自仓库名的数据库
337
- - 每个模块独立占一行并拥有自己的正文页面
236
+ - 依赖模块:{模块列表}
237
+ - 前置条件:{安装前准备}
238
+ - 安装步骤:{按顺序列出}
239
+ - 安装后验证:{如何确认模块已生效}
338
240
 
339
- ## Notion 写入结果
241
+ ## 5. 操作指南
340
242
 
341
- 写入数据库时,摘要字段按下面的口径回填:
243
+ ### 配置指南
342
244
 
343
- - `标题`:模块技术名或最常用名称
344
- - `简介`:一句话说明模块做什么,语气与术语要尽量贴近你们项目
345
- - `使用场景`:适合在你们项目中的哪类业务域、流程或需求里考虑
346
- - `推荐度`:`推荐 / 备选 / 谨慎`
245
+ - 配置入口:{菜单路径}
246
+ - 配置步骤:{步骤列表}
247
+ - 关键配置项:{字段、推荐值、注意事项}
248
+ - 生效验证:{如何检查配置已生效}
347
249
 
348
- 如果同一模块已经存在:
250
+ ### 演示场景
349
251
 
350
- - 优先读取现有记录和数据库 schema,再判断如何更新 4 个属性
351
- - 更新该行页面正文
352
- - 不重复新建
252
+ - 场景名称:{一个完整场景}
253
+ - 适用角色:{谁来操作}
254
+ - 前置条件:{需要先准备什么}
255
+ - 操作步骤:{按顺序列出}
256
+ - 预期结果:{系统应表现出什么结果}
257
+ ```
353
258
 
354
- ## 质量标准
259
+ 补充规则:
355
260
 
356
- - 不只重复 README,要补代码层判断
357
- - 不只说“有这个功能”,要说清楚模块的实际使用方式
358
- - `简介 / 使用场景 / 推荐度` 必须结合 `全局资源`,有业务域上下文时还要结合对应 `BRD / Solution`
359
- - 不要跳过 `fetch`,要以 Notion 当前真实 schema 和 `data_source_id` 为准
360
- - 创建或更新模块记录时,目标上不应漏掉 `简介 / 使用场景 / 推荐度`
361
- - `依赖与安装` 必须细到跟着就能装好
362
- - `操作指南` 里的配置指南必须细到跟着就能配好
363
- - `操作指南` 必须包含至少 1 个闭环演示场景,让用户能实际走通一遍
364
- - 不确定的信息写“待确认”,不要编造
261
+ - `功能说明` 和 `使用场景` 不要混写
262
+ - `使用场景` 必须引用项目背景判断,不要写成通用营销文案
263
+ - 纯库模块或无独立 UI 的模块,`操作指南` 可以简化为“安装即生效 + 验证方式”
264
+ - 如果信息不够,明确写 `待确认`,不要编造
365
265
 
366
- ## 返回给调用方的摘要格式
266
+ ## 7. 返回给调用方的摘要
367
267
 
368
- 写完 Notion 后,给调用方返回一段短摘要即可,例如:
268
+ 写完 Notion 后,返回一段短摘要即可:
369
269
 
370
270
  ```markdown
371
271
  ## 模块报告已更新
372
-
373
272
  - 仓库:{repo_name}
374
273
  - 模块:{module_name}
375
274
  - 简介:{一句话简介}
376
- - 推荐度:推荐 / 备选 / 谨慎
377
- - 使用场景:{一句话}
275
+ - 评分:⭐~⭐⭐⭐⭐⭐
276
+ - 评估状态:已出报告
378
277
  - 结论:{一句话总结}
379
278
  ```
380
279
 
381
- ## Guardrails
280
+ ## 8. 质量边界
382
281
 
383
- - 不要在用户还没选定目标时替代 `module-research`
384
- - 不要再写本地 `docs/module_report/`
385
- - 不要只看 README 就下结论
386
- - 不要脱离 `全局资源` 直接给“推荐度”
282
+ - 不要只重复 README,要补代码层判断
283
+ - 不要跳过 `项目背景` 和 `业务域全景图` 直接评分
284
+ - 不要在 `项目 Wiki` 下新建并行数据库结构
387
285
  - 不要为同一个模块重复创建多条记录
388
- - 不要擅自新增这 5 段之外的强制章节
389
- - 如果模块明显版本不匹配,要明确提示,不要硬推荐
286
+ - 不要擅自新增 5 段之外的强制章节
287
+ - 版本不匹配要明确提示,不硬推荐
@@ -1,6 +1,6 @@
1
1
  interface:
2
2
  display_name: "模块报告"
3
- short_description: "精读已选定模块并把完整模块报告写入 Notion 的项目Wiki/模块报告"
3
+ short_description: "精读模块,结合项目概览判断适配度并写回 Notion 模块报告"
4
4
  icon_small: "./assets/icon-small.svg"
5
5
  icon_large: "./assets/icon-large.svg"
6
6
  brand_color: "#714B67"