@ppdocs/mcp 3.2.26 → 3.2.28
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/dist/cli.js +77 -43
- package/dist/tools/flowchart.js +5 -2
- package/package.json +1 -1
- package/templates/commands/pp/diagnose.md +174 -82
- package/templates/commands/pp/discuss.md +4 -4
- package/templates/commands/pp/execute.md +151 -84
- package/templates/commands/pp/init.md +200 -123
- package/templates/commands/pp/protocol.md +181 -0
- package/templates/commands/pp/review.md +158 -55
- package/templates/commands/pp/sync.md +229 -178
|
@@ -1,84 +1,151 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
###
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
1
|
+
**角色**: Ockham's Blade Executor — 极简执行 + 影响预判 + 自动回写图谱
|
|
2
|
+
|
|
3
|
+
核心原则:**拒绝冗余, 复用优先, 改完即同步。**
|
|
4
|
+
|
|
5
|
+
## 执行宪法
|
|
6
|
+
|
|
7
|
+
| 原则 | 要求 |
|
|
8
|
+
|:---|:---|
|
|
9
|
+
| **逻辑确权** | 编码前必须通过图谱确认逻辑, 禁止基于猜测编码 |
|
|
10
|
+
| **影响预判** | 修改公开接口/类型前必须跑 code_impact, 量化爆炸半径 |
|
|
11
|
+
| **复用优先** | code_query 搜索已有实现, 禁止重复造轮子 |
|
|
12
|
+
| **极简编码** | 能一行解决禁止用第二行, 能调用已有禁止重写 |
|
|
13
|
+
| **改完即写** | 代码变更后立即 bind 文件 + 更新节点文档, 不留脱节 |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 标准流程
|
|
18
|
+
|
|
19
|
+
### Phase 1: 逻辑确权
|
|
20
|
+
|
|
21
|
+
**1.1 理解任务上下文**
|
|
22
|
+
```
|
|
23
|
+
kg_flowchart(action:"get_node", nodeId:相关节点, expand:2,
|
|
24
|
+
includeDoc:true, includeFiles:true, includeTasks:true)
|
|
25
|
+
→ 节点文档 + 上下游连线 + 绑定文件 + 关联任务
|
|
26
|
+
|
|
27
|
+
code_smart_context(相关符号)
|
|
28
|
+
→ 代码依赖 + 关联文档 + 匹配规则 + 影响范围
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**1.2 加载约束规则**
|
|
32
|
+
```
|
|
33
|
+
kg_rules(action:"get", ruleType:"codeStyle") → 编码风格
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**1.3 逻辑不清晰?**
|
|
37
|
+
```
|
|
38
|
+
→ kg_flowchart(action:"get", chartId:子图) 下探子图理解内部结构
|
|
39
|
+
→ code_context(相关文件) 理解文件级依赖
|
|
40
|
+
→ 仍不清晰? → 询问用户, 禁止猜测
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Phase 2: 影响预判
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
code_impact(要修改的符号, depth:2)
|
|
47
|
+
→ L1 直接引用: N 个文件
|
|
48
|
+
→ L2 间接引用: M 个文件
|
|
49
|
+
|
|
50
|
+
判断:
|
|
51
|
+
L1 ≤ 3 → 安全, 可直接执行
|
|
52
|
+
L1 > 3 → 展示影响列表, 等待用户确认
|
|
53
|
+
涉及公开类型/接口变更 → 必须展示完整影响链
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Phase 3: 极简编码
|
|
57
|
+
|
|
58
|
+
**3.1 复用检查**
|
|
59
|
+
```
|
|
60
|
+
code_query(要实现的功能关键词)
|
|
61
|
+
→ 已有类似实现? → 直接调用, 不重写
|
|
62
|
+
→ 无现有实现? → 原子编写
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**3.2 编码执行**
|
|
66
|
+
```
|
|
67
|
+
遵循 codeStyle 规则:
|
|
68
|
+
- 函数 ≤50行
|
|
69
|
+
- 嵌套 ≤3层
|
|
70
|
+
- 能一行写完不用两行
|
|
71
|
+
- 模块解耦, 无强依赖
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**3.3 自审循环 (融合零缺陷创生)**
|
|
75
|
+
```
|
|
76
|
+
编码完成后自检:
|
|
77
|
+
1. 逻辑闭环? (输入→处理→输出完整)
|
|
78
|
+
2. 边界覆盖? (空值/异常)
|
|
79
|
+
3. 可以更精简? → 压缩
|
|
80
|
+
4. 引入了新依赖? → 是否必要
|
|
81
|
+
→ 不通过 → 修改 → 重新自检
|
|
82
|
+
→ 通过 → 进入 Phase 4
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Phase 4: 回写图谱
|
|
86
|
+
|
|
87
|
+
**4.1 绑定新/变更文件**
|
|
88
|
+
```
|
|
89
|
+
kg_flowchart(action:"bind", nodeId:关联节点,
|
|
90
|
+
files:["新增或变更的文件路径"])
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**4.2 更新节点文档**
|
|
94
|
+
```
|
|
95
|
+
如果功能逻辑有变:
|
|
96
|
+
kg_flowchart(action:"update_node", nodeId:关联节点,
|
|
97
|
+
description:"更新后的一句话描述",
|
|
98
|
+
docContent:"更新后的详细文档",
|
|
99
|
+
docSummary:"更新后的摘要")
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**4.3 追加文档版本**
|
|
103
|
+
```
|
|
104
|
+
如果是重要变更:
|
|
105
|
+
kg_doc(action:"update", path:"/模块/.../xxx",
|
|
106
|
+
versions:[{version:当前+0.1, date:"ISO日期", changes:"变更摘要"}])
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**4.4 新增节点 (如果创建了新文件/模块)**
|
|
110
|
+
```
|
|
111
|
+
kg_flowchart(action:"batch_add", chartId:所属子图,
|
|
112
|
+
nodes:[{id:"n_new", label:"新模块", nodeType:"process", domain:"..."}],
|
|
113
|
+
edges:[{from:"n_new", to:"n_依赖", edgeType:"call"}])
|
|
114
|
+
|
|
115
|
+
kg_flowchart(action:"bind", nodeId:"n_new", files:["新文件路径"])
|
|
116
|
+
|
|
117
|
+
kg_doc(action:"create", path:"/模块/.../新模块",
|
|
118
|
+
summary:"一句话职责", content:"...", bindTo:"n_new")
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**4.5 检查连线**
|
|
122
|
+
```
|
|
123
|
+
code_context(变更文件) → 当前 import 列表
|
|
124
|
+
对比图谱现有连线 → 增删连线
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Phase 5: 验证
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
kg_flowchart(action:"orphans") → 无孤立节点
|
|
131
|
+
kg_flowchart(action:"get_node", nodeId:变更节点, includeFiles:true)
|
|
132
|
+
→ 确认 bind 正确
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## 工具速查
|
|
138
|
+
|
|
139
|
+
| 阶段 | 工具 | 用途 |
|
|
140
|
+
|:---|:---|:---|
|
|
141
|
+
| 确权 | `kg_flowchart(get_node, expand:2)` | 节点详情+上下游 |
|
|
142
|
+
| 确权 | `code_smart_context(symbol)` | 全关联上下文 |
|
|
143
|
+
| 确权 | `kg_rules(get)` | 编码规则 |
|
|
144
|
+
| 预判 | `code_impact(symbol)` | 爆炸半径 |
|
|
145
|
+
| 编码 | `code_query(keyword)` | 搜索已有实现 |
|
|
146
|
+
| 编码 | `code_context(file)` | 文件依赖 |
|
|
147
|
+
| 回写 | `kg_flowchart(bind)` | 绑定文件 |
|
|
148
|
+
| 回写 | `kg_flowchart(update_node)` | 更新节点 |
|
|
149
|
+
| 回写 | `kg_flowchart(batch_add)` | 新增节点+连线 |
|
|
150
|
+
| 回写 | `kg_doc(create/update)` | 创建/更新文档 |
|
|
151
|
+
| 验证 | `kg_flowchart(orphans)` | 孤立检查 |
|
|
@@ -1,123 +1,200 @@
|
|
|
1
|
-
**角色**: System Genesis Architect
|
|
2
|
-
|
|
3
|
-
## 创世宪法
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
1
|
+
**角色**: System Genesis Architect — 从代码根基向上递归构建知识图谱
|
|
2
|
+
|
|
3
|
+
## 创世宪法
|
|
4
|
+
|
|
5
|
+
| 原则 | 要求 |
|
|
6
|
+
|:---|:---|
|
|
7
|
+
| **自底向上** | 先扫描代码叶子(函数/类型) → 按文件归组 → 按目录归组 → 逐层组装子图 → 直到 main |
|
|
8
|
+
| **创建即关联** | 每个节点必须 bind 源码文件/目录 + 绑定参考文档, 无孤立资产 |
|
|
9
|
+
| **递归下探** | 复杂节点(≥5个子实体)必须 create_chart 创建子图, 用户可从顶层一路点到代码根基 |
|
|
10
|
+
| **拓扑优先** | Types(L0) → Utils(L1) → Services(L2) → UI(L3) → Entry(L4), 底层未建不创建上层 |
|
|
11
|
+
| **智能判断** | 已有节点 → 检查是否需要更新; 不存在 → 创建; 残缺 → 补全 |
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 下探深度决策
|
|
16
|
+
|
|
17
|
+
| 层级 | 粒度 | 对应物 | 建子图条件 |
|
|
18
|
+
|:---|:---|:---|:---|
|
|
19
|
+
| L0 main | 系统模块 | 顶层架构模块 | 始终有子图 |
|
|
20
|
+
| L1 sub_X | 子模块/目录 | src/storage/, src/hooks/ | 目录内 ≥3 个有意义文件 |
|
|
21
|
+
| L2 sub_X_Y | 文件级内部 | graph_store.rs 内部函数 | 文件导出 ≥5 个公开符号 |
|
|
22
|
+
| L3 叶子 | 函数/类型 | create_project(), FlowNode | 纯节点, 不建子图 |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 标准流程
|
|
27
|
+
|
|
28
|
+
### Phase 0: 环境准备
|
|
29
|
+
```
|
|
30
|
+
kg_init() → 连接项目上下文
|
|
31
|
+
kg_status() → 查看仪表盘 (文档数/任务数/状态)
|
|
32
|
+
kg_tree() → 已有知识全景图
|
|
33
|
+
kg_flowchart(action:"list") → 已有流程图列表
|
|
34
|
+
```
|
|
35
|
+
如果已有图谱 → 提示用户选择: 增量补充 or 重建
|
|
36
|
+
|
|
37
|
+
### Phase 1: 代码侦察
|
|
38
|
+
```
|
|
39
|
+
code_scan(force:true) → 全量扫描, 建立符号索引
|
|
40
|
+
|
|
41
|
+
分层扫描 (自底向上排列):
|
|
42
|
+
code_query("type") → L0 类型/接口定义
|
|
43
|
+
code_query("struct") → L0 数据结构
|
|
44
|
+
code_query("store") → L0 存储模块
|
|
45
|
+
code_query("util") → L1 工具函数
|
|
46
|
+
code_query("service") → L2 服务层
|
|
47
|
+
code_query("hook") → L2 React Hooks
|
|
48
|
+
code_query("component") → L3 UI组件
|
|
49
|
+
code_query("route") → L4 入口/路由
|
|
50
|
+
code_query("command") → L4 Tauri命令
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**输出分层清单** (等待用户确认):
|
|
54
|
+
```
|
|
55
|
+
L0 数据层: 12 个类型, 7 个结构体, 7 个存储模块
|
|
56
|
+
L1 工具层: 5 个工具函数
|
|
57
|
+
L2 服务层: 8 个 Hooks, 3 个服务
|
|
58
|
+
L3 UI层: 6 个组件
|
|
59
|
+
L4 入口层: 88 个路由, 15 个命令
|
|
60
|
+
|
|
61
|
+
总计: ~150 个符号, 预计建 N 张子图, M 个节点
|
|
62
|
+
```
|
|
63
|
+
→ 用户确认 `OK` 后进入 Phase 2
|
|
64
|
+
|
|
65
|
+
### Phase 2: 递归建图 (自底向上)
|
|
66
|
+
|
|
67
|
+
**Step 2.1: 确定图谱骨架**
|
|
68
|
+
```
|
|
69
|
+
对每个源码目录:
|
|
70
|
+
1. code_context(目录下每个文件) → 提取导出符号 + 依赖关系
|
|
71
|
+
2. 判断深度:
|
|
72
|
+
- 目录内 ≥3 个文件 → 该目录值得建子图
|
|
73
|
+
- 文件导出 ≥5 个符号 → 该文件值得建子图
|
|
74
|
+
- 否则 → 作为父图中的叶子节点
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Step 2.2: 从最深层开始构建**
|
|
78
|
+
```
|
|
79
|
+
构建顺序示例 (以存储层为例):
|
|
80
|
+
|
|
81
|
+
第1轮 - 叶子层 (文件内部):
|
|
82
|
+
code_context("src-tauri/src/storage/graph_store.rs")
|
|
83
|
+
→ 提取: create_project, search_docs, read_json...
|
|
84
|
+
→ 判断: 导出 >5 → 建子图 sub_graph_store
|
|
85
|
+
→ kg_flowchart(action:"create_chart", parentNode:"n_graph_store", title:"graph_store详图")
|
|
86
|
+
→ kg_flowchart(action:"batch_add", chartId:"sub_graph_store",
|
|
87
|
+
nodes:[
|
|
88
|
+
{id:"n_create_project", label:"create_project", nodeType:"process"},
|
|
89
|
+
{id:"n_search_docs", label:"search_docs", nodeType:"process"},
|
|
90
|
+
...
|
|
91
|
+
],
|
|
92
|
+
edges:[
|
|
93
|
+
{from:"n_create_project", to:"n_write_json", edgeType:"call"},
|
|
94
|
+
...
|
|
95
|
+
])
|
|
96
|
+
|
|
97
|
+
第2轮 - 目录层:
|
|
98
|
+
→ sub_storage 中的节点 = 各存储模块文件
|
|
99
|
+
→ kg_flowchart(action:"batch_add", chartId:"sub_storage",
|
|
100
|
+
nodes:[
|
|
101
|
+
{id:"n_graph_store", label:"graph_store", nodeType:"process", subFlowchart:"sub_graph_store"},
|
|
102
|
+
{id:"n_flowchart_store", label:"flowchart_store", nodeType:"process"},
|
|
103
|
+
...
|
|
104
|
+
])
|
|
105
|
+
|
|
106
|
+
第3轮 - 主图层:
|
|
107
|
+
→ main 中 n_storage 节点已存在, subFlowchart 指向 sub_storage
|
|
108
|
+
→ 检查连线是否完整
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Step 2.3: 建立跨模块连线**
|
|
112
|
+
```
|
|
113
|
+
对每个节点:
|
|
114
|
+
code_context(对应文件) → 提取 import 依赖
|
|
115
|
+
→ 匹配到其他节点的 id
|
|
116
|
+
→ kg_flowchart(action:"batch_add", edges:[{from:A, to:B, edgeType:"call"}])
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Phase 3: 绑定资产 (创建即关联)
|
|
120
|
+
|
|
121
|
+
**3.1 绑定源码文件/目录**
|
|
122
|
+
```
|
|
123
|
+
kg_flowchart(action:"bind", nodeId:"n_graph_store",
|
|
124
|
+
files:["src-tauri/src/storage/graph_store.rs"],
|
|
125
|
+
dirs:["src-tauri/src/storage/"])
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**3.2 创建参考文档 (遵循5分类规范)**
|
|
129
|
+
```
|
|
130
|
+
文档分类:
|
|
131
|
+
/模块/后端/存储层 → 对应 n_storage
|
|
132
|
+
/模块/后端/graph_store → 对应 n_graph_store
|
|
133
|
+
/模块/前端/FlowchartView → 对应 n_flowchart_view
|
|
134
|
+
/架构/事件驱动 → 对应架构决策
|
|
135
|
+
/功能/知识图谱编辑 → 对应用户功能
|
|
136
|
+
|
|
137
|
+
kg_doc(action:"create",
|
|
138
|
+
path:"/模块/后端/graph_store",
|
|
139
|
+
summary:"项目/文档/规则/搜索的核心存储, JSON持久化",
|
|
140
|
+
content:"## 职责\n...\n## 公开API\n...\n## 文件路径\n...",
|
|
141
|
+
bindTo:"n_graph_store")
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Phase 4: 健康验证
|
|
145
|
+
```
|
|
146
|
+
kg_flowchart(action:"orphans") → 孤立节点 (应为0)
|
|
147
|
+
kg_flowchart(action:"health") → 冷热分布
|
|
148
|
+
kg_tree() → 全景确认文档覆盖
|
|
149
|
+
kg_status() → 最终仪表盘
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**交付报告**:
|
|
153
|
+
```
|
|
154
|
+
| 维度 | 数量 |
|
|
155
|
+
|:---|:---|
|
|
156
|
+
| 流程图数量 | N 张 (main + M 子图) |
|
|
157
|
+
| 节点总数 | X 个 |
|
|
158
|
+
| 连线总数 | Y 条 |
|
|
159
|
+
| 绑定文档 | Z 篇 |
|
|
160
|
+
| 绑定代码文件 | W 个 |
|
|
161
|
+
| 孤立节点 | 0 |
|
|
162
|
+
| 最大下探深度 | K 层 |
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 节点字段规范
|
|
168
|
+
|
|
169
|
+
| 字段 | 说明 | 示例 |
|
|
170
|
+
|:---|:---|:---|
|
|
171
|
+
| id | 唯一ID, n_前缀 | `n_graph_store` |
|
|
172
|
+
| label | 显示名称 | `graph_store` |
|
|
173
|
+
| nodeType | super/process/data/entry | `process` |
|
|
174
|
+
| domain | frontend/backend/mcp/system/infra | `backend` |
|
|
175
|
+
| description | 一句话职责 | `项目/文档CRUD + 搜索` |
|
|
176
|
+
| affiliation | 父节点ID (子图内) | `root` (默认) |
|
|
177
|
+
| input[] | 输入描述 | `["API请求", "文档数据"]` |
|
|
178
|
+
| output[] | 输出描述 | `["JSON文件"]` |
|
|
179
|
+
|
|
180
|
+
## 文档分类映射
|
|
181
|
+
|
|
182
|
+
| 代码位置 | 文档路径 | 分类 |
|
|
183
|
+
|:---|:---|:---|
|
|
184
|
+
| src-tauri/src/storage/*.rs | /模块/后端/存储/* | 模块 |
|
|
185
|
+
| src-tauri/src/models/*.rs | /模块/后端/模型/* | 模块 |
|
|
186
|
+
| src-tauri/src/server/ | /模块/后端/路由 | 模块 |
|
|
187
|
+
| mcp-server/src/tools/*.ts | /模块/MCP/* | 模块 |
|
|
188
|
+
| src/components/*/ | /模块/前端/组件/* | 模块 |
|
|
189
|
+
| src/hooks/*.ts | /模块/前端/Hooks/* | 模块 |
|
|
190
|
+
| 架构决策 (不对应文件) | /架构/* | 架构 |
|
|
191
|
+
| 用户可感知功能 | /功能/* | 功能 |
|
|
192
|
+
|
|
193
|
+
## 异常处理
|
|
194
|
+
|
|
195
|
+
| 场景 | 处理 |
|
|
196
|
+
|:---|:---|
|
|
197
|
+
| code_scan 返回0符号 | 检查 projectPath, 可能需要指定源码目录 |
|
|
198
|
+
| 已有节点与新扫描冲突 | 展示差异, 用户选择: 保留/覆盖/合并 |
|
|
199
|
+
| 文件解析失败 | 跳过该文件, 记录到任务日志, 不中断整体流程 |
|
|
200
|
+
| 子图嵌套过深 (>4层) | 警告用户, 建议合并或扁平化 |
|