@feng-h/pdca-skill 1.0.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 (49) hide show
  1. package/CLAUDE.md +108 -0
  2. package/README.md +131 -0
  3. package/SKILL.md +438 -0
  4. package/assets/references/act-agent.md +51 -0
  5. package/assets/references/check-agent.md +43 -0
  6. package/assets/references/cron-driving.md +107 -0
  7. package/assets/references/dashboard-templates.md +436 -0
  8. package/assets/references/do-agent.md +44 -0
  9. package/assets/references/exception-handling.md +35 -0
  10. package/assets/references/feishu-integration.md +494 -0
  11. package/assets/references/manufacturing-templates.md +31 -0
  12. package/assets/references/plan-agent.md +52 -0
  13. package/assets/references/transition-checklist.md +41 -0
  14. package/assets/templates/project-template.md +109 -0
  15. package/assets/tests/baseline-test-results.md +146 -0
  16. package/assets/tests/baseline-test-scenarios.md +111 -0
  17. package/assets/tests/improvement-analysis-tdd.md +405 -0
  18. package/assets/tests/improvement-validation-scenarios.md +184 -0
  19. package/assets/tests/integration-test-scenarios.md +296 -0
  20. package/assets/tests/tdd-baseline-test-scenarios.md +164 -0
  21. package/assets/tests/tdd-green-verification.md +156 -0
  22. package/package.json +31 -0
  23. package/system/Agent/ActAgent.md +369 -0
  24. package/system/Agent/CheckAgent.md +327 -0
  25. package/system/Agent/DoAgent.md +289 -0
  26. package/system/Agent/PDCA/346/216/247/345/210/266/345/231/250.md +403 -0
  27. package/system/Agent/PDCA/351/241/271/347/233/256/347/256/241/347/220/206/347/263/273/347/273/237Agent.md +137 -0
  28. package/system/Agent/PlanAgent.md +404 -0
  29. package/system//345/210/266/351/200/240/350/264/250/351/207/217/351/241/271/347/233/256/346/250/241/346/235/277.md +122 -0
  30. package/system//345/267/245/345/205/267/Bitable/345/272/224/347/224/250/346/226/207/346/241/243/346/250/241/346/235/277.md +232 -0
  31. package/system//345/267/245/345/205/267/Bitable/350/241/250/347/273/223/346/236/204/345/256/232/344/271/211.md +376 -0
  32. package/system//345/267/245/345/205/267/OpenClow API/351/233/206/346/210/220.md" +109 -0
  33. package/system//345/267/245/345/205/267//344/273/252/350/241/250/346/235/277/347/224/237/346/210/220/345/231/250.md +274 -0
  34. package/system//345/267/245/345/205/267//344/273/252/350/241/250/347/233/230/347/273/204/344/273/266/351/205/215/347/275/256.md +66 -0
  35. package/system//345/267/245/345/205/267//344/273/273/345/212/241/350/207/252/345/212/250/347/224/237/346/210/220/345/231/250.md +365 -0
  36. package/system//345/267/245/345/205/267//345/267/245/344/275/234/346/265/201/350/207/252/345/212/250/345/214/226/351/205/215/347/275/256.md +119 -0
  37. package/system//345/267/245/345/205/267//345/274/202/345/270/270/345/244/204/347/220/206/346/214/207/345/215/227.md +441 -0
  38. package/system//345/267/245/345/205/267//346/224/266/351/233/206/350/241/250/351/205/215/347/275/256/346/214/207/345/215/227.md +70 -0
  39. package/system//345/267/245/345/205/267//346/231/272/350/203/275/345/267/241/346/243/200/351/242/221/347/216/207.md +374 -0
  40. package/system//345/267/245/345/205/267//350/241/250/345/215/225/351/205/215/347/275/256/347/224/237/346/210/220/345/231/250.md +221 -0
  41. package/system//345/267/245/345/205/267//351/230/266/346/256/265/350/275/254/346/215/242/346/243/200/346/237/245/350/241/250.md +281 -0
  42. package/system//346/250/241/346/235/277//351/241/271/347/233/256/346/250/241/346/235/277.md +418 -0
  43. package/system//347/273/217/351/252/214/345/272/223.md +57 -0
  44. package/system//350/247/204/350/214/203/Validators/logic.md +72 -0
  45. package/system//350/247/204/350/214/203/Validators/smart.md +63 -0
  46. package/system//350/247/204/350/214/203//346/240/270/345/277/203/350/247/204/350/214/203.md +339 -0
  47. package/system//351/241/271/347/233/256/347/212/266/346/200/201/350/267/237/350/270/252.md +186 -0
  48. package/system//351/241/271/347/233/256/347/256/241/347/220/206/347/263/273/347/273/237.md +143 -0
  49. package/system//351/241/271/347/233/256/347/264/242/345/274/225.md +22 -0
@@ -0,0 +1,232 @@
1
+ # Bitable 应用内文档配置模板
2
+
3
+ ## 概述
4
+
5
+ Bitable 多维表格支持应用内的文档视图(文档/文件夹功能)。项目创建时,应在 Bitable 应用内配置好文档结构,作为各阶段文档分析和协作的载体。
6
+
7
+ **与 Wiki 的关系**:
8
+ - **Wiki = 容器**:知识库空间,用于存放 Bitable 应用、项目索引、经验库
9
+ - **Bitable 应用 = 文件**:放在 Wiki 节点下,内含数据表、收集表、仪表盘、工作流、文档
10
+ - 项目的所有文档(Plan/Do/Check/Act 各阶段文档)应放在 **Bitable 应用内** 的文档视图中,而非 Wiki 独立文档
11
+
12
+ ## Bitable 应用内文档结构
13
+
14
+ ### 文件夹结构
15
+
16
+ 在 Bitable 应用中,创建以下文件夹层级:
17
+
18
+ ```
19
+ Bitable 应用([项目名称] PDCA)
20
+ ├── 📊 数据表(4张)
21
+ ├── 📋 收集表(按框架维度)
22
+ ├── 📈 仪表盘
23
+ ├── ⚙️ 工作流
24
+ ├── 📁 Plan阶段/
25
+ │ ├── 问题分析.md
26
+ │ ├── 目标设定.md
27
+ │ ├── 解决方案.md
28
+ │ └── 执行计划.md
29
+ ├── 📁 Do阶段/
30
+ │ ├── 执行日志.md
31
+ │ ├── 进度报告.md
32
+ │ └── 问题记录.md
33
+ ├── 📁 Check阶段/
34
+ │ ├── 数据分析.md
35
+ │ ├── 效果评估.md
36
+ │ └── 问题诊断.md
37
+ └── 📁 Act阶段/
38
+ ├── 行动决策.md
39
+ ├── 实施方案.md
40
+ └── 知识总结.md
41
+ ```
42
+
43
+ ### 配置方式
44
+
45
+ 由于飞书 Bitable 暂无官方 API 支持程序化创建内部文档/文件夹,采用以下方式配置:
46
+
47
+ #### 方式一:手动配置(首次创建时)
48
+ 1. 在 PlanAgent 创建 Bitable 应用后,引导用户在 Bitable 应用中手动创建文档结构
49
+ 2. 提供文件夹结构参考和文档模板内容
50
+ 3. 用户确认后继续项目流程
51
+
52
+ #### 方式二:AI 引导配置
53
+ 1. AI 在 Plan 阶段分析完成后,向用户发送配置指导
54
+ 2. 逐步引导用户在 Bitable UI 中创建文件夹和文档
55
+ 3. 每个文档提供初始模板内容供用户编辑
56
+
57
+ ### 文档模板内容
58
+
59
+ #### Plan 阶段文档模板
60
+
61
+ **问题分析.md**
62
+ ```markdown
63
+ # 问题分析
64
+
65
+ ## 问题描述
66
+ - **问题现象:**
67
+ - **发生频率:**
68
+ - **影响范围:**
69
+
70
+ ## MECE 框架分析
71
+ (根据选择的框架,按维度逐项分析)
72
+
73
+ ## 根本原因
74
+ 1.
75
+ 2.
76
+ 3.
77
+
78
+ ## 影响评估
79
+ - **对目标的影响:**
80
+ - **对其他方面的影响:**
81
+ ```
82
+
83
+ **目标设定.md**
84
+ ```markdown
85
+ # 目标设定
86
+
87
+ ## SMART 目标
88
+ - **Specific(具体):**
89
+ - **Measurable(可衡量):**
90
+ - **Achievable(可实现):**
91
+ - **Relevant(相关):**
92
+ - **Time-bound(有时限):**
93
+
94
+ ## 关键指标
95
+ | 指标名称 | 基准值 | 目标值 | 单位 |
96
+ |---------|--------|--------|------|
97
+ ```
98
+
99
+ **解决方案.md**
100
+ ```markdown
101
+ # 解决方案
102
+
103
+ ## 方案一(推荐)
104
+ - **方案描述:**
105
+ - **可行性分析:**
106
+ - **成本效益:**
107
+ - **风险评估:**
108
+
109
+ ## 因果逻辑映射
110
+ | 根因 | 对应措施 | 预期效果 |
111
+ |------|---------|---------|
112
+ ```
113
+
114
+ **执行计划.md**
115
+ ```markdown
116
+ # 执行计划
117
+
118
+ ## 任务列表
119
+ | 任务编号 | 任务描述 | 负责人 | 截止日期 | 优先级 | 来源维度 |
120
+ |---------|---------|--------|---------|--------|---------|
121
+ ```
122
+
123
+ #### Do 阶段文档模板
124
+
125
+ **执行日志.md**
126
+ ```markdown
127
+ # 执行日志
128
+
129
+ | 日期 | 完成内容 | 遇到的问题 | 备注 |
130
+ |------|---------|-----------|------|
131
+ ```
132
+
133
+ **进度报告.md**
134
+ ```markdown
135
+ # 进度报告
136
+
137
+ ## 当前进度
138
+ - **整体完成度:** %
139
+ - **已完成任务:**
140
+ - **进行中任务:**
141
+ - **未开始任务:**
142
+ ```
143
+
144
+ **问题记录.md**
145
+ ```markdown
146
+ # 问题记录
147
+
148
+ | 日期 | 问题描述 | 影响 | 处理措施 | 状态 |
149
+ |------|---------|------|---------|------|
150
+ ```
151
+
152
+ #### Check 阶段文档模板
153
+
154
+ **数据分析.md**
155
+ ```markdown
156
+ # 数据分析
157
+
158
+ ## 收集的数据
159
+ (来自数据记录表的趋势分析)
160
+
161
+ ## 趋势分析
162
+ - **指标变化趋势:**
163
+ - **异常数据点:**
164
+ ```
165
+
166
+ **效果评估.md**
167
+ ```markdown
168
+ # 效果评估
169
+
170
+ ## 目标达成情况
171
+ | 指标 | 基准值 | 目标值 | 实际值 | 达成率 |
172
+ |------|--------|--------|--------|--------|
173
+ ```
174
+
175
+ **问题诊断.md**
176
+ ```markdown
177
+ # 问题诊断
178
+
179
+ ## 未达预期分析
180
+ - **问题点:**
181
+ - **根本原因:**
182
+ - **改进建议:**
183
+ ```
184
+
185
+ #### Act 阶段文档模板
186
+
187
+ **行动决策.md**
188
+ ```markdown
189
+ # 行动决策
190
+
191
+ ## 决策内容
192
+ 1.
193
+ 2.
194
+ 3.
195
+
196
+ ## 决策依据
197
+ - **数据支撑:**
198
+ - **团队共识:**
199
+ ```
200
+
201
+ **实施方案.md**
202
+ ```markdown
203
+ # 实施方案
204
+
205
+ ## 具体措施
206
+ | 措施 | 负责人 | 时间 | 预期效果 |
207
+ |------|--------|------|---------|
208
+ ```
209
+
210
+ **知识总结.md**
211
+ ```markdown
212
+ # 知识总结
213
+
214
+ ## 成功经验
215
+ 1.
216
+
217
+ ## 失败教训
218
+ 1.
219
+
220
+ ## 标准化成果
221
+ - **SOP 更新:**
222
+ - **制度更新:**
223
+ ```
224
+
225
+ ## AI 巡检时读取 Bitable 文档
226
+
227
+ PDCA 控制器在巡检时,应读取 Bitable 应用内的文档视图:
228
+ 1. 通过文档视图读取各阶段文档的完成度
229
+ 2. 检查必填项和交付物是否完成
230
+ 3. 对比阶段要求,验证文档质量
231
+
232
+ > **注意**: 目前 Bitable 文档视图无 API 直接读取内容。AI 通过查看 Bitable 文档的元信息(如是否存在、是否更新)来判断进度,具体内容通过用户确认获取。待飞书 API 支持后,可实现自动读取。
@@ -0,0 +1,376 @@
1
+ # Bitable 表结构定义
2
+
3
+ PDCA 任务/排期管理系统使用飞书多维表格(Bitable)作为核心数据存储,定义 4 张核心表实现项目、任务、数据、日志的全生命周期管理。
4
+
5
+ ---
6
+
7
+ ## 数据表概览
8
+
9
+ ```
10
+ PDCA Bitable 应用
11
+ ├── 项目主表 (projects) — 项目核心信息与状态管理
12
+ ├── 任务数据表 (tasks) — 任务分解与执行跟踪
13
+ ├── 数据收集记录表 (data_records) — 测量数据与指标记录
14
+ └── 执行日志表 (logs) — 过程记录与决策追溯
15
+ ```
16
+
17
+ ---
18
+
19
+ ## 表 1: 项目主表 (projects)
20
+
21
+ ### 用途
22
+ 存储 PDCA 项目的核心信息,作为项目状态管理的唯一事实来源。
23
+
24
+ ### 字段定义
25
+
26
+ | 字段名 | 类型 | type值 | 说明 | 值格式 | 必填 |
27
+ |--------|------|--------|------|--------|------|
28
+ | 项目ID | 文本 | 1 | 唯一标识符 | UUID 字符串 | 是 |
29
+ | 项目名称 | 文本 | 1 | 项目标题 | 字符串 | 是 |
30
+ | 选择框架 | 单选 | 3 | MECE 分析框架 | 4M1E/TREND/PPTD/5P/COMET/3RL-TD/GRCT/5S/TIME/SIPOC/5P2E | 是 |
31
+ | 当前阶段 | 单选 | 3 | PDCA 当前阶段 | Plan/Do/Check/Act/已完成 | 是 |
32
+ | 状态 | 单选 | 3 | 项目健康状态 | 正常/预警/超时/已完成 | 是 |
33
+ | 负责人 | 人员 | 11 | 项目负责人 | `[{id: "ou_xxx"}]` | 是 |
34
+ | 开始日期 | 日期 | 5 | 项目启动日期 | 毫秒时间戳 | 是 |
35
+ | 预计结束日期 | 日期 | 5 | 计划结束日期 | 毫秒时间戳 | 是 |
36
+ | 完成度 | 数字 | 2 | 项目完成百分比 | 0-100 | 是 |
37
+ | Bitable链接 | 超链接 | 15 | Bitable 应用链接 | `{link: "url", text: "标题"}` | 是 |
38
+ | Wiki链接 | 超链接 | 15 | Wiki 项目节点链接 | `{link: "url", text: "标题"}` | 是 |
39
+
40
+ ### 字段 property 配置示例
41
+
42
+ ```json
43
+ {
44
+ "选择框架": {
45
+ "type": 3,
46
+ "property": {
47
+ "options": [
48
+ {"name": "4M1E"},
49
+ {"name": "TREND"},
50
+ {"name": "PPTD"},
51
+ {"name": "5P"},
52
+ {"name": "COMET"},
53
+ {"name": "3RL-TD"},
54
+ {"name": "GRCT"},
55
+ {"name": "5S"},
56
+ {"name": "TIME"},
57
+ {"name": "SIPOC"},
58
+ {"name": "5P2E"}
59
+ ]
60
+ }
61
+ },
62
+ "当前阶段": {
63
+ "type": 3,
64
+ "property": {
65
+ "options": [
66
+ {"name": "Plan"},
67
+ {"name": "Do"},
68
+ {"name": "Check"},
69
+ {"name": "Act"},
70
+ {"name": "已完成"}
71
+ ]
72
+ }
73
+ },
74
+ "状态": {
75
+ "type": 3,
76
+ "property": {
77
+ "options": [
78
+ {"name": "正常"},
79
+ {"name": "预警"},
80
+ {"name": "超时"},
81
+ {"name": "已完成"}
82
+ ]
83
+ }
84
+ }
85
+ }
86
+ ```
87
+
88
+ ### 索引建议
89
+ - 主索引:项目ID
90
+ - 查询索引:状态 + 当前阶段(用于巡检筛选)
91
+
92
+ ---
93
+
94
+ ## 表 2: 任务数据表 (tasks)
95
+
96
+ ### 设计原则:任务即数据行
97
+
98
+ 任务直接在 Bitable 数据表中管理,任务状态作为列存在,不再依赖飞书 Task。
99
+ 每行既是任务也是数据记录,支持直接关联到数据记录表的测量数据。
100
+
101
+ ### 用途
102
+ 管理 PDCA 各阶段的具体任务,支持从框架维度自动生成和手动添加。
103
+ 任务与数据在同一表中,可通过关联字段连接数据记录。
104
+
105
+ ### 字段定义
106
+
107
+ | 字段名 | 类型 | type值 | 说明 | 值格式 | 必填 |
108
+ |--------|------|--------|------|--------|------|
109
+ | 任务ID | 文本 | 1 | 唯一标识符 | 如 "TASK-001" | 是 |
110
+ | 项目ID | 文本 | 1 | 关联项目 | 关联到项目主表.项目ID | 是 |
111
+ | 任务标题 | 文本 | 1 | 任务名称 | 字符串 | 是 |
112
+ | 任务状态 | 单选 | 3 | 任务状态 | 未开始/进行中/已完成/已取消 | 是 |
113
+ | 任务描述 | 多行文本 | 15 | 详细说明 | 长文本 | 否 |
114
+ | 来源维度 | 单选 | 3 | MECE 框架维度 | 根据选择框架动态生成 | 是 |
115
+ | 来源类型 | 单选 | 3 | 任务来源 | 问题分析生成/执行计划生成/手动添加 | 是 |
116
+ | 截止日期 | 日期 | 5 | 任务截止时间 | 毫秒时间戳 | 是 |
117
+ | 负责人 | 人员 | 11 | 任务负责人 | `[{id: "ou_xxx"}]` | 是 |
118
+ | 优先级 | 单选 | 3 | 任务优先级 | 高/中/低 | 是 |
119
+ | **数据记录** | **关联记录** | **18** | **关联到数据记录表** | `["记录ID1", "记录ID2"]` | 否 |
120
+ | **完成度** | **数字** | **2** | **完成百分比** | 0-100 | 是 |
121
+ | 创建时间 | 日期时间 | 5 | 任务创建时间 | 毫秒时间戳 | 是 |
122
+ | 完成时间 | 日期时间 | 5 | 任务完成时间 | 毫秒时间戳 | 否 |
123
+
124
+ ### 字段 property 配置示例
125
+
126
+ ```json
127
+ {
128
+ "任务状态": {
129
+ "type": 3,
130
+ "property": {
131
+ "options": [
132
+ {"name": "未开始"},
133
+ {"name": "进行中"},
134
+ {"name": "已完成"},
135
+ {"name": "已取消"}
136
+ ]
137
+ }
138
+ },
139
+ "来源类型": {
140
+ "type": 3,
141
+ "property": {
142
+ "options": [
143
+ {"name": "问题分析生成"},
144
+ {"name": "执行计划生成"},
145
+ {"name": "手动添加"}
146
+ ]
147
+ }
148
+ },
149
+ "优先级": {
150
+ "type": 3,
151
+ "property": {
152
+ "options": [
153
+ {"name": "高"},
154
+ {"name": "中"},
155
+ {"name": "低"}
156
+ ]
157
+ }
158
+ }
159
+ }
160
+ ```
161
+
162
+ ### 来源维度示例(以 4M1E 为例)
163
+ - Man(人):人员培训、技能提升
164
+ - Machine(机):设备维护、工具改进
165
+ - Material(料):原料质量、供应商管理
166
+ - Method(法):工艺优化、流程改进
167
+ - Environment(环):工作环境、现场管理
168
+
169
+ ### 索引建议
170
+ - 主索引:任务ID
171
+ - 查询索引:项目ID + 状态(用于项目任务看板)
172
+
173
+ ---
174
+
175
+ ## 表 3: 数据收集记录表 (data_records)
176
+
177
+ ### 用途
178
+ 记录 Do 阶段收集的测量数据,支撑 Check 阶段的效果分析。
179
+
180
+ ### 字段定义
181
+
182
+ | 字段名 | 类型 | type值 | 说明 | 值格式 | 必填 |
183
+ |--------|------|--------|------|--------|------|
184
+ | 记录ID | 文本 | 1 | 唯一标识符 | UUID 字符串 | 是 |
185
+ | 项目ID | 文本 | 1 | 关联项目 | 关联到项目主表.项目ID | 是 |
186
+ | 指标名称 | 文本 | 1 | 数据项名称 | 如 "设备OEE"、"不良率" | 是 |
187
+ | 维度 | 单选 | 3 | 框架维度 | 对应分析框架的维度 | 是 |
188
+ | 数值 | 数字 | 2 | 测量值 | 数字 | 是 |
189
+ | 单位 | 文本 | 1 | 测量单位 | 如 "%"、"ppm"、"小时" | 是 |
190
+ | 记录时间 | 日期时间 | 5 | 数据采集时间 | 毫秒时间戳 | 是 |
191
+ | 记录人 | 人员 | 11 | 数据记录者 | `[{id: "ou_xxx"}]` | 是 |
192
+
193
+ ### 使用场景
194
+ - **Plan 阶段**:定义指标模板(基准值、目标值)
195
+ - **Do 阶段**:按计划频率收集实际数据
196
+ - **Check 阶段**:分析趋势,计算改善效果
197
+
198
+ ### 索引建议
199
+ - 主索引:记录ID
200
+ - 查询索引:项目ID + 指标名称(用于数据趋势分析)
201
+ - 时间索引:记录时间(用于时序查询)
202
+
203
+ ---
204
+
205
+ ## 表 4: 执行日志表 (logs)
206
+
207
+ ### 用途
208
+ 记录 PDCA 执行过程中的关键事件、决策和问题,支持过程追溯。
209
+
210
+ ### 字段定义
211
+
212
+ | 字段名 | 类型 | type值 | 说明 | 值格式 | 必填 |
213
+ |--------|------|--------|------|--------|------|
214
+ | 日志ID | 文本 | 1 | 唯一标识符 | UUID 字符串 | 是 |
215
+ | 项目ID | 文本 | 1 | 关联项目 | 关联到项目主表.项目ID | 是 |
216
+ | 阶段 | 单选 | 3 | 所属阶段 | Plan/Do/Check/Act | 是 |
217
+ | 日志类型 | 单选 | 3 | 日志分类 | 进展更新/问题记录/决策记录/AI洞察 | 是 |
218
+ | 内容 | 多行文本 | 15 | 日志详细内容 | 长文本 | 是 |
219
+ | 记录时间 | 日期时间 | 5 | 日志创建时间 | 毫秒时间戳 | 是 |
220
+ | 记录人 | 人员 | 11 | 日志创建者 | `[{id: "ou_xxx"}]` | 是 |
221
+
222
+ ### 字段 property 配置示例
223
+
224
+ ```json
225
+ {
226
+ "日志类型": {
227
+ "type": 3,
228
+ "property": {
229
+ "options": [
230
+ {"name": "进展更新"},
231
+ {"name": "问题记录"},
232
+ {"name": "决策记录"},
233
+ {"name": "AI洞察"}
234
+ ]
235
+ }
236
+ }
237
+ }
238
+ ```
239
+
240
+ ### 日志内容示例
241
+
242
+ **进展更新**
243
+ ```
244
+ 完成了设备停机原因的数据收集,共收集 30 天数据,
245
+ 发现主要故障集中在液压系统(占 65%)。
246
+ ```
247
+
248
+ **问题记录**
249
+ ```
250
+ 数据收集过程中遇到传感器故障,导致第 12-14 天数据缺失。
251
+ 已安排维修,预计明天恢复。
252
+ ```
253
+
254
+ **决策记录**
255
+ ```
256
+ 经团队讨论,决定优先处理液压系统问题。
257
+ 理由:1. 影响最大;2. 改善成本可控;3. 技术方案成熟。
258
+ ```
259
+
260
+ **AI洞察**
261
+ ```
262
+ AI 分析 Do 阶段数据发现:设备停机时间与环境温度存在强相关性(r=0.78)。
263
+ 建议:在 Check 阶段增加环境温度作为控制变量,验证相关性是否成立。
264
+ ```
265
+
266
+ ### 索引建议
267
+ - 主索引:日志ID
268
+ - 查询索引:项目ID + 记录时间(用于项目时间线)
269
+
270
+ ---
271
+
272
+ ## API 调用注意事项
273
+
274
+ ### 创建数据表
275
+
276
+ ```bash
277
+ # 1. 创建 Bitable 应用
278
+ feishu_bitable_app.create --name "PDCA项目管理" --folder "<folder_token>"
279
+
280
+ # 2. 创建数据表(以项目主表为例)
281
+ feishu_bitable_app_table.create \
282
+ --app_token "<app_token>" \
283
+ --table "projects" \
284
+ --default_view_name "所有项目" \
285
+ --fields '[
286
+ {"name": "项目ID", "type": 1, "property": {}},
287
+ {"name": "项目名称", "type": 1, "property": {}},
288
+ {"name": "选择框架", "type": 3, "property": {"options": [{"name": "4M1E"}, ...]}},
289
+ ...
290
+ ]'
291
+ ```
292
+
293
+ ### 插入记录
294
+
295
+ ```bash
296
+ # 创建项目记录
297
+ feishu_bitable_app_table_record.create \
298
+ --app_token "<app_token>" \
299
+ --table_id "<table_id>" \
300
+ --fields '{
301
+ "项目ID": "uuid-xxx",
302
+ "项目名称": "挖掘机臂架开裂改善",
303
+ "选择框架": "4M1E",
304
+ "当前阶段": "Plan",
305
+ "状态": "正常",
306
+ "负责人": [{"id": "ou_xxx"}],
307
+ "开始日期": 1712457600000,
308
+ "预计结束日期": 1715308800000,
309
+ "完成度": 0,
310
+ "Wiki链接": {"link": "https://xxx", "text": "查看文档"}
311
+ }'
312
+ ```
313
+
314
+ ### 重要坑位
315
+
316
+ > ⚠️ 参考 `pdca/references/feishu-integration.md` 中的 Bitable 集成规范:
317
+ >
318
+ > 1. **人员字段**:值必须是 `[{id: "ou_xxx"}]`,不能直接传字符串
319
+ > 2. **日期字段**:使用**毫秒时间戳**,不是秒
320
+ > 3. **超链接字段 (type=15)**:创建时**不要传 property 参数**,否则报错
321
+ > 4. **并发限制**:同一表不支持并发写,串行调用并延迟 0.5-1 秒
322
+ > 5. **默认空行**:新建表会有空行,插入前先 `list` + `batch_delete` 清理
323
+ > 6. **关联记录字段 (type=18)**:如果飞书 API 不支持关联记录类型,改用文本字段存储关联 ID 列表(如 `["rec_001", "rec_002"]`)
324
+
325
+ ---
326
+
327
+ ## 数据关系图
328
+
329
+ ```
330
+ 项目主表 (projects)
331
+ ├── 1:N → 任务数据表 (tasks)
332
+ ├── 1:N → 数据收集记录表 (data_records)
333
+ └── 1:N → 执行日志表 (logs)
334
+
335
+ 任务数据表 (tasks)
336
+ └── N:M → 数据收集记录表 (data_records) [通过 数据记录 关联记录字段(type=18)]
337
+
338
+ 关联字段:项目ID
339
+ ```
340
+
341
+ ---
342
+
343
+ ## 巡检逻辑
344
+
345
+ 基于这些表结构,PDCA Controller 的巡检流程:
346
+
347
+ 1. **搜索活跃项目**
348
+ ```bash
349
+ feishu_bitable_app_table_record.search \
350
+ --filter '{"状态": ["正常", "预警", "超时"]}'
351
+ ```
352
+
353
+ 2. **计算完成度**
354
+ - 读取 Wiki 文档内容
355
+ - 对比当前阶段交付物清单
356
+ - 计算 0-100 完成度
357
+
358
+ 3. **状态判定**
359
+ - 正常:当前日期 < 截止日 且 进度符合预期
360
+ - 预警:剩余时间 < 20% 且 进度滞后
361
+ - 超时:当前日期 > 截止日
362
+
363
+ 4. **更新记录**
364
+ ```bash
365
+ feishu_bitable_app_table_record.update \
366
+ --record_id "<record_id>" \
367
+ --fields '{"完成度": 65, "状态": "预警"}'
368
+ ```
369
+
370
+ ---
371
+
372
+ ## 版本历史
373
+
374
+ | 版本 | 日期 | 变更说明 |
375
+ |------|------|---------|
376
+ | v1.0 | 2026-04-04 | 初始版本,定义 4 张核心表结构 |
@@ -0,0 +1,109 @@
1
+ # OpenClow API 集成
2
+
3
+ ## 概述
4
+
5
+ OpenClow 通过 `/pdca/analyze` 端点提供 PDCA 项目的 AI 分析能力。
6
+ Bitable 工作流和 PDCA 控制器通过该 API 实现对项目的智能巡检。
7
+
8
+ ## 接口定义
9
+
10
+ ### POST /pdca/analyze
11
+
12
+ **请求体**:
13
+ ```json
14
+ {
15
+ "project": "[项目名称]",
16
+ "trigger": "scheduled|event|manual",
17
+ "context": {
18
+ "trigger_type": "form_submit|task_complete|scheduled",
19
+ "data_record_id": "[记录ID]",
20
+ "task_id": "[任务ID]"
21
+ }
22
+ }
23
+ ```
24
+
25
+ **请求参数说明**:
26
+
27
+ | 参数 | 类型 | 必填 | 说明 |
28
+ |------|------|------|------|
29
+ | project | string | 是 | 项目名称,用于定位 Bitable 中的数据 |
30
+ | trigger | string | 是 | 触发方式:scheduled(定时)/event(事件)/manual(手动) |
31
+ | context | object | 否 | 附加上下文信息 |
32
+ | context.trigger_type | string | 否 | 具体触发类型 |
33
+ | context.data_record_id | string | 否 | 新数据记录 ID(事件触发时传入) |
34
+ | context.task_id | string | 否 | 任务 ID(任务变更时传入) |
35
+
36
+ **响应体**:
37
+ ```json
38
+ {
39
+ "status": "success",
40
+ "insights": ["AI 分析结果1", "AI 分析结果2"],
41
+ "actions": ["建议操作1", "建议操作2"],
42
+ "updates": {
43
+ "wiki": ["需要更新的 Wiki 文档路径"],
44
+ "bitable": {
45
+ "project_completion": 65,
46
+ "project_status": "正常",
47
+ "task_updates": []
48
+ }
49
+ }
50
+ }
51
+ ```
52
+
53
+ **响应字段说明**:
54
+
55
+ | 字段 | 类型 | 说明 |
56
+ |------|------|------|
57
+ | status | string | 分析状态:success/timeout/error/no_changes |
58
+ | insights | string[] | AI 分析洞察,每条为一条分析结果 |
59
+ | actions | string[] | 建议的操作行动 |
60
+ | updates.wiki | string[] | 需要更新的 Wiki 文档路径列表 |
61
+ | updates.bitable.project_completion | number | 建议的项目完成度 (0-100) |
62
+ | updates.bitable.project_status | string | 建议的项目状态:正常/预警/超时/已完成 |
63
+ | updates.bitable.task_updates | object[] | 需要更新的任务记录列表 |
64
+
65
+ ## 调用方式
66
+
67
+ ### 从 Bitable 工作流调用
68
+
69
+ 工作流中的 HTTP 节点配置:
70
+ - **URL**: `https://<openclow-host>/pdca/analyze`
71
+ - **Method**: `POST`
72
+ - **Headers**: `{"Authorization": "Bearer ${OPENCLOW_API_KEY}"}`
73
+ - **Body**: 动态填充项目名和上下文
74
+
75
+ ### 从 PDCA 控制器调用
76
+
77
+ 当工作流不可用时,PDCA 控制器可以直接调用:
78
+ ```bash
79
+ curl -X POST https://<openclow-host>/pdca/analyze \
80
+ -H "Authorization: Bearer ${OPENCLOW_API_KEY}" \
81
+ -d '{"project": "项目名称", "trigger": "manual"}'
82
+ ```
83
+
84
+ ## AI 分析职责
85
+
86
+ 1. **读取 Bitable 数据**: 读取项目主表、任务数据表、数据记录表的当前状态
87
+ 2. **读取 Wiki 文档**: 读取各阶段文档完成度
88
+ 3. **计算完成度**: 根据阶段交付物清单计算百分比
89
+ 4. **状态判定**: 判断正常/预警/超时
90
+ 5. **趋势分析**: 分析数据记录的变化趋势
91
+ 6. **生成洞察**: 输出分析结果和建议
92
+
93
+ ## 错误处理
94
+
95
+ | 状态码 | 响应 | 说明 |
96
+ |--------|------|------|
97
+ | success | 正常响应 | 分析完成 |
98
+ | timeout | `{"status": "timeout"}` | 30 秒超时 |
99
+ | error | `{"status": "error", "message": "错误描述"}` | API 错误 |
100
+ | no_changes | `{"status": "no_changes", "message": "自上次分析无新数据"}` | 无新数据 |
101
+
102
+ ## 认证
103
+
104
+ 使用 Bearer Token 认证:
105
+ ```
106
+ Authorization: Bearer ${OPENCLOW_API_KEY}
107
+ ```
108
+
109
+ API Key 通过环境变量或密钥管理获取,不应硬编码在工作流配置中。