cgraphx 1.1.0 → 1.2.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 +0 -1
- package/dist/.claude-template/skills/cgraphx/SKILL.md +3 -3
- package/dist/.claude-template/skills/cgraphx/agent-prompt.md +1 -1
- package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +94 -0
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +403 -0
- package/dist/.claude-template/skills/clarify-requirements/SKILL.md +19 -8
- package/dist/.claude-template/skills/code-impact-docgen/SKILL.md +186 -176
- package/dist/.claude-template/skills/code-impact-docgen/template-design-html.md +357 -0
- package/dist/.claude-template/skills/code-impact-docgen/template-design-md.md +164 -0
- package/dist/.claude-template/skills/code-impact-init/SKILL.md +47 -47
- package/dist/.claude-template/skills/developer-timeline/SKILL.md +9 -0
- package/dist/.claude-template/skills/write-api-doc/SKILL.md +317 -0
- package/dist/.claude-template/skills/write-api-doc/template-api-html.md +422 -0
- package/dist/.claude-template/skills/write-plan/SKILL.md +38 -16
- package/dist/.claude-template/skills/write-prd/SKILL.md +32 -8
- package/dist/.claude-template/skills/write-spec/SKILL.md +34 -9
- package/dist/bin/codegraph.js +0 -100
- package/dist/bin/codegraph.js.map +1 -1
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +13 -0
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/scope-index.d.ts +86 -0
- package/dist/resolution/scope-index.d.ts.map +1 -0
- package/dist/resolution/scope-index.js +143 -0
- package/dist/resolution/scope-index.js.map +1 -0
- package/dist/resolution/stdlib-blocklist.d.ts +53 -0
- package/dist/resolution/stdlib-blocklist.d.ts.map +1 -0
- package/dist/resolution/stdlib-blocklist.js +143 -0
- package/dist/resolution/stdlib-blocklist.js.map +1 -0
- package/dist/search/ast-helpers.d.ts +42 -0
- package/dist/search/ast-helpers.d.ts.map +1 -0
- package/dist/search/ast-helpers.js +106 -0
- package/dist/search/ast-helpers.js.map +1 -0
- package/dist/search/call-sites.d.ts +398 -0
- package/dist/search/call-sites.d.ts.map +1 -0
- package/dist/search/call-sites.js +1433 -0
- package/dist/search/call-sites.js.map +1 -0
- package/dist/search/context.d.ts +134 -0
- package/dist/search/context.d.ts.map +1 -0
- package/dist/search/context.js +575 -0
- package/dist/search/context.js.map +1 -0
- package/dist/search/impact.d.ts +139 -0
- package/dist/search/impact.d.ts.map +1 -0
- package/dist/search/impact.js +646 -0
- package/dist/search/impact.js.map +1 -0
- package/dist/search/related.d.ts +178 -0
- package/dist/search/related.d.ts.map +1 -0
- package/dist/search/related.js +667 -0
- package/dist/search/related.js.map +1 -0
- package/dist/search/slice.d.ts +148 -0
- package/dist/search/slice.d.ts.map +1 -0
- package/dist/search/slice.js +460 -0
- package/dist/search/slice.js.map +1 -0
- package/dist/search/snr-constants.d.ts +41 -0
- package/dist/search/snr-constants.d.ts.map +1 -0
- package/dist/search/snr-constants.js +44 -0
- package/dist/search/snr-constants.js.map +1 -0
- package/dist/search/types.d.ts +28 -0
- package/dist/search/types.d.ts.map +1 -0
- package/dist/search/types.js +12 -0
- package/dist/search/types.js.map +1 -0
- package/dist/timeline/cli.d.ts.map +1 -1
- package/dist/timeline/cli.js +22 -3
- package/dist/timeline/cli.js.map +1 -1
- package/dist/timeline/store.d.ts +5 -0
- package/dist/timeline/store.d.ts.map +1 -1
- package/dist/timeline/store.js +23 -3
- package/dist/timeline/store.js.map +1 -1
- package/package.json +1 -1
- package/scripts/agent-eval/block-cgraphx-and-gitnexus-cli-hook.sh +43 -0
- package/scripts/agent-eval/block-cgraphx-cli-hook.sh +32 -0
- package/scripts/agent-eval/block-cgraphx-cli-settings.json +16 -0
- package/scripts/agent-eval/cli-vs-mcp-3arm.sh +121 -0
- package/scripts/agent-eval/multi-tool-eval.sh +171 -0
- package/scripts/agent-eval/parse-cli-vs-mcp.mjs +232 -0
- package/scripts/agent-eval/parse-multi-tool.mjs +242 -0
- package/scripts/agent-eval/subagent-token-cost.py +188 -0
- package/dist/.claude-template/skills/code-impact-docgen/template-business-html.md +0 -242
- package/dist/.claude-template/skills/code-impact-docgen/template-business-md.md +0 -107
- package/dist/.claude-template/skills/code-impact-docgen/template-technical-html.md +0 -205
- package/dist/.claude-template/skills/code-impact-docgen/template-technical-md.md +0 -155
|
@@ -1,90 +1,122 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-impact-docgen
|
|
3
|
-
description:
|
|
3
|
+
description: 从本地图谱知识库(docs/knowledge/)和当前 feature 目录下的 spec/plan 召回素材,合成面向研发和技术负责人的"设计文档"。在 feature 自测通过后调用,默认输出到 docs/features/<feature-id>/<文件前缀>-设计文档.md。支持 HTML 和 Markdown 两种输出格式,可按章节结构进行配置。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Code Impact DocGen
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
从本地图谱知识库和当前 feature 目录下的 spec/plan 召回素材,合成**面向研发和技术负责子的设计文档**。
|
|
9
9
|
|
|
10
|
-
本 skill
|
|
10
|
+
本 skill 在 feature 实现自测通过后调用,把 `docs/knowledge/` 中的 AI 导向知识文档与当前 feature 目录下的 spec/plan 一起,合成为连贯、精炼、可读性强的设计文档。输出文档不含 YAML frontmatter,不使用 AI 导向的稳定标题,按设计文档的章节结构组织内容。
|
|
11
|
+
|
|
12
|
+
**典型场景**:用户完成 feature 实现 + 自测后,说"生成设计文档"、"写设计文档"、"用 docgen 沉淀一下"——本 skill 召回 knowledge + 读取 spec/plan,合成一份设计文档落到 feature 目录。
|
|
11
13
|
|
|
12
14
|
## Trigger
|
|
13
15
|
|
|
14
|
-
使用此 skill
|
|
16
|
+
使用此 skill 当:
|
|
15
17
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
- 用户要求生成 HTML 或 Markdown
|
|
18
|
+
- 用户完成 feature 自测后要求"生成设计文档"、"写设计文档"、"沉淀设计文档"
|
|
19
|
+
- 用户要求基于 spec/plan 和项目知识库合成一份技术文档
|
|
20
|
+
- 用户说"用 docgen 生成"、"自测完了,该写设计文档了"
|
|
21
|
+
- 用户要求把 spec + plan + knowledge 整理为一份可分享的设计文档
|
|
22
|
+
- 用户要求生成 HTML 或 Markdown 格式的设计文档
|
|
21
23
|
|
|
22
|
-
不要使用此 skill
|
|
24
|
+
不要使用此 skill 当:
|
|
23
25
|
|
|
24
|
-
- 创建或编辑 AI
|
|
25
|
-
-
|
|
26
|
-
-
|
|
26
|
+
- 创建或编辑 AI 导向的知识文件(使用 `code-impact-markdown` skill)
|
|
27
|
+
- 查询知识以辅助代码编辑(使用 `code-impact-api` skill)
|
|
28
|
+
- 探索陌生项目(使用 `code-impact-init` skill)
|
|
29
|
+
- 写 PRD(使用 `write-prd` skill,设计文档是事后沉淀,PRD 是事前业务确认)
|
|
30
|
+
- 写 spec(使用 `write-spec` skill,设计文档不重新定义规格契约)
|
|
31
|
+
- 写 plan(使用 `write-plan` skill)
|
|
27
32
|
|
|
28
33
|
## 依赖
|
|
29
34
|
|
|
30
35
|
- cgraphx 已安装(`cgraphx --version` 可跑)
|
|
31
36
|
- 项目已跑过 `cgraphx docs index`,索引中有知识文档数据(用 `cgraphx docs concepts` 验证)
|
|
32
|
-
-
|
|
37
|
+
- 若 knowledge 索引为空:先按 `code-impact-markdown` skill 写文档到 `docs/knowledge/`,再 `cgraphx docs index`
|
|
38
|
+
- 当前 feature 目录下应有 spec(`docs/features/<feature-id>/<文件前缀>-spec.md`)和/或 plan(`docs/features/<feature-id>/plan/`)
|
|
39
|
+
|
|
40
|
+
## 内容来源规格
|
|
41
|
+
|
|
42
|
+
设计文档的内容来源**必须包含两类**:
|
|
43
|
+
|
|
44
|
+
1. **`docs/knowledge/` 中的 AI 导向知识文档** — 通过 `cgraphx docs find` 召回,提供项目级架构、决策、风险等背景
|
|
45
|
+
2. **当前 feature 目录下的 spec 和 plan** — 直接 Read,提供本 feature 的目标、契约、任务拆分、技术约束
|
|
46
|
+
|
|
47
|
+
**两类来源都不可缺**:若 knowledge 为空且 feature 目录无 spec/plan,skill 必须拒绝生成,提示用户先准备素材。
|
|
48
|
+
|
|
49
|
+
## feature-id 与文件前缀规则
|
|
50
|
+
|
|
51
|
+
**feature-id 识别(优先级从高到低)**:
|
|
52
|
+
|
|
53
|
+
1. 用户调用时显式传 feature-id 或输出路径参数 → 使用用户指定
|
|
54
|
+
2. skill 自动从 cwd 向上探测最近的 `docs/features/<feature-id>/` 目录 → 使用探测结果
|
|
55
|
+
3. 都失败 → skill 报错并要求用户显式传 feature-id 或输出路径
|
|
56
|
+
|
|
57
|
+
**文件前缀算法**:
|
|
58
|
+
|
|
59
|
+
feature-id 格式:`YYYY-MM-DD-[业务ID-]<标题>`
|
|
60
|
+
|
|
61
|
+
- 有业务ID:文件前缀 = `<业务ID>-<标题>`(如 `CRM-req19230-号百商品详情查询接口`)
|
|
62
|
+
- 无业务ID:文件前缀 = `<标题>`(如 `features目录结构调整`)
|
|
63
|
+
|
|
64
|
+
业务ID 段允许字母数字 + 连字符;标题段允许中文、英文或混合。**不得**对中文做英文 slug 转换。
|
|
33
65
|
|
|
34
|
-
|
|
66
|
+
文件名不得包含 `/`、`:`、`*`、`?`、`"`、`<`、`>`、`|`;若含敏感字符,要求用户重命名,不自动替换。
|
|
35
67
|
|
|
36
|
-
|
|
68
|
+
**默认输出路径**:`docs/features/<feature-id>/<文件前缀>-设计文档.md`(或 `.html`)
|
|
37
69
|
|
|
38
|
-
|
|
70
|
+
用户可显式参数覆盖默认路径。
|
|
39
71
|
|
|
40
|
-
|
|
72
|
+
## 召回与生成流程
|
|
41
73
|
|
|
42
|
-
|
|
43
|
-
2. **文档类型** — `business`(面向业务读者)或 `technical`(面向技术人员)
|
|
44
|
-
3. **输出格式** — `html` 或 `md`
|
|
45
|
-
4. **可选:目标章节** — 用户可以选择包含或排除哪些章节(见章节菜单)
|
|
74
|
+
生成设计文档前,必须通过以下流程收集源材料。不要凭空编写内容——所有事实性内容必须来自上述两类来源。
|
|
46
75
|
|
|
47
|
-
|
|
76
|
+
### 第一步:确认需求与识别 feature-id
|
|
48
77
|
|
|
49
|
-
|
|
50
|
-
- 主题涉及代码架构、模块设计、技术实现 → 默认 `technical`
|
|
51
|
-
- 不确定时向用户确认
|
|
78
|
+
向用户确认(如果未明确指定):
|
|
52
79
|
|
|
53
|
-
|
|
80
|
+
1. **feature-id / 输出路径** — 默认按上方规则识别,用户可覆盖
|
|
81
|
+
2. **输出格式** — `html` 或 `md`
|
|
82
|
+
3. **可选:目标章节** — 用户可以选择包含或排除哪些章节(见章节菜单)
|
|
83
|
+
4. **可选:主题范围补充** — 若 feature spec/plan 之外还有特定主题需要覆盖,用户可补充
|
|
54
84
|
|
|
55
|
-
|
|
85
|
+
### 第二步:召回 knowledge 文档
|
|
56
86
|
|
|
57
|
-
|
|
87
|
+
用 `cgraphx docs find` 按 concept/domain/keyword/tag 过滤(见下方命令)。
|
|
88
|
+
|
|
89
|
+
**按概念精确过滤(推荐,召回最精准)**:
|
|
58
90
|
|
|
59
91
|
```bash
|
|
60
92
|
cgraphx docs find --concept=<concept-name> --limit=20
|
|
61
93
|
```
|
|
62
94
|
|
|
63
|
-
**按 domain
|
|
95
|
+
**按 domain 过滤(覆盖整个业务领域)**:
|
|
64
96
|
|
|
65
97
|
```bash
|
|
66
98
|
cgraphx docs find --domain=<domain-name> --limit=20
|
|
67
99
|
```
|
|
68
100
|
|
|
69
|
-
|
|
101
|
+
**按关键词子串匹配(适合模糊探索;LIKE on title + Summary)**:
|
|
70
102
|
|
|
71
103
|
```bash
|
|
72
104
|
cgraphx docs find --q=<关键词> --limit=20
|
|
73
105
|
```
|
|
74
106
|
|
|
75
|
-
**按 tag
|
|
107
|
+
**按 tag 过滤(横向主题分组)**:
|
|
76
108
|
|
|
77
109
|
```bash
|
|
78
110
|
cgraphx docs find --tag=<tag-name> --limit=20
|
|
79
111
|
```
|
|
80
112
|
|
|
81
|
-
|
|
113
|
+
**组合多维过滤(交集)**:
|
|
82
114
|
|
|
83
115
|
```bash
|
|
84
116
|
cgraphx docs find --concept=X --domain=Y --status=active --type=decision
|
|
85
117
|
```
|
|
86
118
|
|
|
87
|
-
**列出全部 concept / domain / tag
|
|
119
|
+
**列出全部 concept / domain / tag(找主题入口)**:
|
|
88
120
|
|
|
89
121
|
```bash
|
|
90
122
|
cgraphx docs concepts # 跨文档去重的 concept + 各自关联文档数 + 所属 domain
|
|
@@ -94,9 +126,19 @@ cgraphx docs tags
|
|
|
94
126
|
|
|
95
127
|
`find` 输出每条结果包含 `title` / `document_type` / `status` / `updated` / `summary`(Summary 章节文本) / `path`(项目根相对,供 Read)。
|
|
96
128
|
|
|
97
|
-
###
|
|
129
|
+
### 第三步:读取 feature 目录下的 spec 和 plan
|
|
130
|
+
|
|
131
|
+
Read 以下文件(若存在):
|
|
132
|
+
|
|
133
|
+
- `docs/features/<feature-id>/<文件前缀>-spec.md` — 拿到目标、范围、业务规则、技术约束、不可留实现期决策
|
|
134
|
+
- `docs/features/<feature-id>/plan/<文件前缀>-index.md` — 拿到任务拆分、依赖图、改动范围
|
|
135
|
+
- `docs/features/<feature-id>/plan/<文件前缀>-01-schema.md` 等按需子文件 — 拿到具体 schema/接口/前端任务细节
|
|
98
136
|
|
|
99
|
-
|
|
137
|
+
如果 feature 目录下还没有 spec/plan(比如 plan 不存在),如实标注"无 plan 文件,任务拆分章节缺失",不要凭空补。
|
|
138
|
+
|
|
139
|
+
### 第四步:读取 knowledge 详情
|
|
140
|
+
|
|
141
|
+
`find` 返回的 `summary` 是 `## Summary` 章节内容,通常是文档的核心结论。**如果 Summary 不够**,用 `path` 字段直接 Read 原文件:
|
|
100
142
|
|
|
101
143
|
```bash
|
|
102
144
|
cgraphx docs show <doc-id-or-path> # 输出 frontmatter 元数据 + Summary
|
|
@@ -106,9 +148,9 @@ Read <path> # 拿到完整原文(含 Context / Deci
|
|
|
106
148
|
|
|
107
149
|
**重要**:**只有 `## Summary` 进 cgraphx 索引**,其他章节(Context / Decisions / Findings / Steps / ...)留在文件里。生成文档时,这些章节的内容来源是 **Read 文件原文**,不是图谱字段。
|
|
108
150
|
|
|
109
|
-
###
|
|
151
|
+
### 第五步:探索关联知识(可选,按需)
|
|
110
152
|
|
|
111
|
-
|
|
153
|
+
如果需要更全面的背景(文档间引用关系):
|
|
112
154
|
|
|
113
155
|
```bash
|
|
114
156
|
cgraphx docs refs <doc-id-or-path>
|
|
@@ -119,127 +161,94 @@ cgraphx docs refs <doc-id-or-path>
|
|
|
119
161
|
|
|
120
162
|
适合"这个决策被哪些文档引用了"、"还有哪些相关文档"的扩展召回。
|
|
121
163
|
|
|
122
|
-
###
|
|
164
|
+
### 第六步:合成设计文档
|
|
123
165
|
|
|
124
|
-
|
|
166
|
+
基于 knowledge + spec/plan 两类来源,按章节菜单重组内容,生成设计文档。见后续章节。
|
|
125
167
|
|
|
126
|
-
##
|
|
168
|
+
## 设计文档定位
|
|
127
169
|
|
|
128
|
-
|
|
170
|
+
- **读者**:研发工程师、架构师、技术负责人、后续维护者
|
|
171
|
+
- **语气**:精确、专业,包含技术细节
|
|
172
|
+
- **结构重点**:架构设计、核心模块、数据流、技术决策、已知限制、扩展方向
|
|
173
|
+
- **典型场景**:feature 实现自测通过后,作为事后技术沉淀归档
|
|
174
|
+
- **与 spec 的区别**:spec 是事前契约,设计文档是事后沉淀;设计文档不得重新定义 spec 的契约
|
|
129
175
|
|
|
130
|
-
|
|
176
|
+
## 章节菜单
|
|
131
177
|
|
|
132
|
-
|
|
133
|
-
- **语气**:非技术性,侧重价值、流程、决策理由
|
|
134
|
-
- **结构重点**:背景与目标、业务流程、关键决策、影响与价值
|
|
135
|
-
- **技术细节处理**:将技术概念转化为业务可理解的描述,必要时放在附录中
|
|
136
|
-
- **默认章节**:背景与目标、核心能力、业务流程、关键决策、现状与展望
|
|
178
|
+
用户可以选择包含哪些章节。以下为完整章节库。
|
|
137
179
|
|
|
138
|
-
###
|
|
180
|
+
### 默认章节(用户未指定时全部包含)
|
|
139
181
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
182
|
+
| 章节名 | 用途 | 主来源 |
|
|
183
|
+
|--------|------|--------|
|
|
184
|
+
| 概述 / Overview | 设计文档覆盖的主题、目标和定位 | spec 目标与范围 + knowledge Summary |
|
|
185
|
+
| 架构设计 / Architecture | 系统架构和数据流 | spec 系统行为 + knowledge Summary + Read 原文 |
|
|
186
|
+
| 核心模块 / Core Modules | 各模块职责和交互 | plan 任务拆分 + knowledge Summary |
|
|
187
|
+
| 技术决策 / Key Decisions | 重要技术决策及理由 | spec 不可留实现期决策 + knowledge Decisions |
|
|
188
|
+
| 已知限制 / Known Limits | 技术约束和已知问题 | spec 待确认项 + knowledge Findings/Risks |
|
|
189
|
+
| 扩展方向 / Extension Points | 可扩展点和改进方向 | knowledge Outlook |
|
|
144
190
|
|
|
145
|
-
|
|
191
|
+
### 可选章节(按需添加)
|
|
146
192
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
|
152
|
-
|
|
153
|
-
|
|
|
154
|
-
|
|
|
155
|
-
| 关键决策 / Key Decisions | 重要技术或业务决策及理由 | 默认 | 默认 |
|
|
156
|
-
| 现状与展望 / Status & Outlook | 当前状态、已知限制、未来方向 | 默认 | 默认 |
|
|
157
|
-
| 术语表 / Glossary | 关键术语和定义 | 可选 | 可选 |
|
|
158
|
-
| 相关资源 / References | 相关文档和代码链接 | 可选 | 可选 |
|
|
159
|
-
|
|
160
|
-
### business 专属章节
|
|
161
|
-
|
|
162
|
-
| 章节名 | 用途 |
|
|
163
|
-
|--------|------|
|
|
164
|
-
| 业务流程 / Business Flow | 业务操作流程和规则 |
|
|
165
|
-
| 用户场景 / Use Cases | 典型使用场景描述 |
|
|
166
|
-
| 价值与影响 / Value & Impact | 对业务的价值和影响 |
|
|
167
|
-
| 风险与注意事项 / Risks | 已知风险和注意事项 |
|
|
168
|
-
| 常见问题 / FAQ | 业务层面的常见问题 |
|
|
169
|
-
|
|
170
|
-
### technical 专属章节
|
|
171
|
-
|
|
172
|
-
| 章节名 | 用途 |
|
|
173
|
-
|--------|------|
|
|
174
|
-
| 架构设计 / Architecture | 系统架构和数据流 |
|
|
175
|
-
| 核心模块 / Core Modules | 各模块职责和交互 |
|
|
176
|
-
| 数据模型 / Data Model | 数据结构和存储方案 |
|
|
177
|
-
| API 参考 / API Reference | 接口和端点说明 |
|
|
178
|
-
| 性能特征 / Performance | 性能瓶颈和优化方向 |
|
|
179
|
-
| 已知限制 / Known Limits | 技术约束和已知问题 |
|
|
180
|
-
| 扩展方向 / Extension Points | 可扩展点和改进方向 |
|
|
181
|
-
| 运维指南 / Operations | 部署、监控、故障排除 |
|
|
193
|
+
| 章节名 | 用途 | 主来源 |
|
|
194
|
+
|--------|------|--------|
|
|
195
|
+
| 数据模型 / Data Model | 数据结构和存储方案 | plan schema 任务 + spec 数据口径 |
|
|
196
|
+
| API 参考 / API Reference | 接口和端点说明 | spec 接口边界 + plan backend 任务 |
|
|
197
|
+
| 性能特征 / Performance | 性能瓶颈和优化方向 | knowledge Findings |
|
|
198
|
+
| 运维指南 / Operations | 部署、监控、故障排除 | knowledge Operations |
|
|
199
|
+
| 术语表 / Glossary | 关键术语和定义 | spec 术语章节 + knowledge 各字段术语 |
|
|
200
|
+
| 相关资源 / References | 相关文档和代码链接 | spec / plan / knowledge 引用 |
|
|
182
201
|
|
|
183
202
|
### 章节选择规则
|
|
184
203
|
|
|
185
204
|
- 用户可以明确指定要包含的章节
|
|
186
205
|
- 用户可以从默认章节中排除不需要的章节
|
|
187
|
-
-
|
|
206
|
+
- 如果用户未指定,使用上述全部默认章节
|
|
188
207
|
- 按照上述表格顺序排列章节
|
|
189
208
|
|
|
190
209
|
## 输出格式
|
|
191
210
|
|
|
192
211
|
### HTML 格式
|
|
193
212
|
|
|
194
|
-
生成单文件独立 HTML
|
|
195
|
-
|
|
196
|
-
- **内联 CSS**:不依赖外部样式表,所有样式写在 `<style>` 标签内
|
|
197
|
-
- **响应式布局**:使用 CSS 变量控制主题,支持不同屏幕宽度
|
|
198
|
-
- **打印友好**:包含 `@media print` 样式
|
|
199
|
-
- **浅色阅读主题**:白色背景,高对比度,适合长时间阅读
|
|
200
|
-
- **字体**:`-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif`
|
|
201
|
-
- **代码块**:等宽字体,浅灰背景,圆角边框
|
|
202
|
-
- **表格**:斑马纹行,边框分隔
|
|
203
|
-
- **目录**:文档开头自动生成可点击目录(锚点链接)
|
|
213
|
+
生成单文件独立 HTML 文档,特点:
|
|
204
214
|
|
|
205
|
-
|
|
215
|
+
- **内联 CSS**:不依赖外部样式表,所有样式写在 `<style>` 标签内
|
|
216
|
+
- **响应式布局**:使用 CSS 变量控制主题,支持不同屏幕宽度
|
|
217
|
+
- **打印友好**:包含 `@media print` 样式
|
|
218
|
+
- **浅色阅读主题**:白色背景,高对比度,适合长时间阅读
|
|
219
|
+
- **字体**:`-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif`
|
|
220
|
+
- **代码块**:等宽字体,浅灰背景,圆角边框
|
|
221
|
+
- **表格**:斑马纹行,边框分隔
|
|
222
|
+
- **目录**:文档开头自动生成可点击目录(锚点链接)
|
|
206
223
|
|
|
207
|
-
|
|
208
|
-
|----------|----------|
|
|
209
|
-
| business | [template-business-html.md](template-business-html.md) |
|
|
210
|
-
| technical | [template-technical-html.md](template-technical-html.md) |
|
|
224
|
+
生成前阅读对应模板文件获取完整 CSS 和结构参考:[template-design-html.md](template-design-html.md)
|
|
211
225
|
|
|
212
226
|
### Markdown 格式
|
|
213
227
|
|
|
214
|
-
生成干净的 Markdown
|
|
215
|
-
|
|
216
|
-
- **无 YAML frontmatter**:与 `docs/knowledge/` 中的 AI 导向文档不同
|
|
217
|
-
- **层级标题**:`#`(文档标题)、`##`(章节)、`###`(子章节)
|
|
218
|
-
- **代码块**:三个反引号围栏代码块,标注语言
|
|
219
|
-
- **表格**:标准 Markdown 表格
|
|
220
|
-
- **链接**:`[文本](url)` 格式,优先使用相对路径
|
|
221
|
-
- **目录**:文档开头用标题列表作为目录
|
|
222
|
-
- **元信息**:文档开头用引用块注明生成日期和主题范围
|
|
228
|
+
生成干净的 Markdown 文档,特点:
|
|
223
229
|
|
|
224
|
-
|
|
230
|
+
- **无 YAML frontmatter**:与 `docs/knowledge/` 中的 AI 导向文档不同
|
|
231
|
+
- **层级标题**:`#`(文档标题)、`##`(章节)、`###`(子章节)
|
|
232
|
+
- **代码块**:三个反引号围栏代码块,标注语言
|
|
233
|
+
- **表格**:标准 Markdown 表格
|
|
234
|
+
- **链接**:`[文本](url)` 格式,优先使用相对路径
|
|
235
|
+
- **目录**:文档开头用标题列表作为目录
|
|
236
|
+
- **元信息**:文档开头用引用块注明生成日期、主题范围、feature-id
|
|
225
237
|
|
|
226
|
-
|
|
227
|
-
|----------|----------|
|
|
228
|
-
| business | [template-business-md.md](template-business-md.md) |
|
|
229
|
-
| technical | [template-technical-md.md](template-technical-md.md) |
|
|
238
|
+
生成前阅读对应模板文件:[template-design-md.md](template-design-md.md)
|
|
230
239
|
|
|
231
240
|
## 图表绘制
|
|
232
241
|
|
|
233
|
-
|
|
242
|
+
当文档中需要使用图表(流程图、时序图、架构图、状态图等)来辅助说明时,遵循以下规则:
|
|
234
243
|
|
|
235
|
-
- **优先使用 Mermaid
|
|
236
|
-
-
|
|
237
|
-
-
|
|
244
|
+
- **优先使用 Mermaid**:在保证表达效果的前提下,优先使用 Mermaid 语法绘制图表,以确保文档的纯文本可维护性和跨平台渲染一致性
|
|
245
|
+
- 适用的图表类型包括但不限于:`flowchart`(流程图)、`sequenceDiagram`(时序图)、`classDiagram`(类图)、`stateDiagram`(状态图)、`erDiagram`(ER 图)、`gantt`(甘特图)
|
|
246
|
+
- 图表应放在相关的章节中,紧跟在解释性文字之后
|
|
238
247
|
- 每张图表前应有简短的文字说明其用途
|
|
239
|
-
-
|
|
240
|
-
- 仅当 Mermaid
|
|
248
|
+
- 图表内容应精简,避免过于复杂;如果信息量过大,拆分为多张图表
|
|
249
|
+
- 仅当 Mermaid 无法表达所需的视觉效果时(如复杂的手绘风格、特殊布局),才使用外部图片或 SVG
|
|
241
250
|
|
|
242
|
-
Markdown 格式中使用 Mermaid
|
|
251
|
+
Markdown 格式中使用 Mermaid 代码块:
|
|
243
252
|
|
|
244
253
|
````markdown
|
|
245
254
|
```mermaid
|
|
@@ -250,7 +259,7 @@ flowchart TD
|
|
|
250
259
|
```
|
|
251
260
|
````
|
|
252
261
|
|
|
253
|
-
HTML 格式中使用 Mermaid
|
|
262
|
+
HTML 格式中使用 Mermaid 代码块(依赖 Mermaid.js CDN 渲染),模板中需引入 Mermaid 脚本:
|
|
254
263
|
|
|
255
264
|
```html
|
|
256
265
|
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
|
|
@@ -263,35 +272,39 @@ flowchart TD
|
|
|
263
272
|
|
|
264
273
|
## 合成规则
|
|
265
274
|
|
|
266
|
-
|
|
275
|
+
生成设计文档时遵循以下规则,确保从 knowledge + spec/plan 合成出连贯的人类文档。
|
|
267
276
|
|
|
268
277
|
### 内容来源
|
|
269
278
|
|
|
270
|
-
-
|
|
279
|
+
- 所有事实性内容必须来自 knowledge 文档或 feature 目录下的 spec/plan
|
|
271
280
|
- 不要编造不存在的细节、数据或结论
|
|
272
|
-
-
|
|
273
|
-
-
|
|
281
|
+
- 如果某个方面的知识缺失,在文档中如实标注"待补充"或省略该部分
|
|
282
|
+
- 可以基于多个来源进行归纳和总结,但归纳必须忠实于原文
|
|
283
|
+
- 设计文档**不得**重新定义 spec 已锁定的契约;若发现 spec 与代码现实不符,标注【待确认】而不是自行解释
|
|
274
284
|
|
|
275
285
|
### 结构重组
|
|
276
286
|
|
|
277
|
-
-
|
|
278
|
-
-
|
|
279
|
-
-
|
|
280
|
-
-
|
|
281
|
-
-
|
|
287
|
+
- knowledge 用稳定英文标题(Summary、Findings、Decisions 等)按分析目的组织
|
|
288
|
+
- spec/plan 用研发视角章节(目标、范围、任务、约束等)按交付目的组织
|
|
289
|
+
- 设计文档按"知识传递"目的组织(概述、架构、模块、决策、限制、扩展)
|
|
290
|
+
- **必须重新组织内容结构**,不要照搬 knowledge 的标题或 spec/plan 的章节
|
|
291
|
+
- 相关信息应合并到同一章节,避免内容分散
|
|
292
|
+
- 去除重复信息:knowledge 和 spec/plan 可能包含相同的背景信息,只需出现一次
|
|
282
293
|
|
|
283
294
|
### 语气转换
|
|
284
295
|
|
|
285
|
-
-
|
|
286
|
-
-
|
|
296
|
+
- knowledge 的语气是"分析记录"(记录观察、证据、影响)
|
|
297
|
+
- spec/plan 的语气是"契约 / 任务清单"(规则、约束、步骤)
|
|
298
|
+
- 设计文档的语气是"知识传递"(解释、说明、指导)
|
|
287
299
|
- 将被动描述转为主动解释
|
|
288
|
-
-
|
|
300
|
+
- 将技术分析转为可操作的指导
|
|
289
301
|
|
|
290
302
|
### 引用和溯源
|
|
291
303
|
|
|
292
|
-
-
|
|
293
|
-
-
|
|
294
|
-
-
|
|
304
|
+
- 不要在设计文档中引用 knowledge 文档的路径或文件名
|
|
305
|
+
- 不要在文档中引用 spec/plan 的文件路径(读者已经在 feature 目录里)
|
|
306
|
+
- 如需引用代码文件,使用相对路径
|
|
307
|
+
- 如需引用外部文档,使用 URL 或文档标题
|
|
295
308
|
|
|
296
309
|
## 语言和风格规则
|
|
297
310
|
|
|
@@ -299,9 +312,9 @@ flowchart TD
|
|
|
299
312
|
|
|
300
313
|
- 文档正文用**中文**编写
|
|
301
314
|
- 技术术语、代码标识符、文件路径、函数名、类名保留原始英文
|
|
302
|
-
-
|
|
315
|
+
- 章节标题可使用中英双语格式:"架构设计 / Architecture"(英文部分用于 HTML 锚点兼容性)
|
|
303
316
|
- 代码示例中的注释使用中文
|
|
304
|
-
-
|
|
317
|
+
- 专有名词(如 Neo4j、pgvector、BM25、RRF)保留英文原名
|
|
305
318
|
|
|
306
319
|
### 排版
|
|
307
320
|
|
|
@@ -310,57 +323,54 @@ flowchart TD
|
|
|
310
323
|
- 重要概念第一次出现时加粗
|
|
311
324
|
- 代码块标注语言类型
|
|
312
325
|
- 表格使用标准格式
|
|
313
|
-
-
|
|
314
|
-
-
|
|
326
|
+
- 列表项以动词或名词开头,保持一致
|
|
327
|
+
- 避免过长的段落(超过 5 行应考虑拆分)
|
|
315
328
|
|
|
316
329
|
### 风格
|
|
317
330
|
|
|
318
331
|
- 精炼、直接、避免冗余
|
|
319
|
-
-
|
|
332
|
+
- 每句话传递信息,不写废话
|
|
320
333
|
- 使用主动语态
|
|
321
|
-
-
|
|
322
|
-
-
|
|
334
|
+
- 避免模糊措辞(如"可能"、"也许"),除非表达不确定性
|
|
335
|
+
- 不确定性用明确标注:"当前不确定"、"待验证"
|
|
323
336
|
|
|
324
337
|
## 保存位置
|
|
325
338
|
|
|
326
|
-
|
|
339
|
+
**默认保存路径**:`docs/features/<feature-id>/<文件前缀>-设计文档.md`(或 `.html`)
|
|
327
340
|
|
|
328
|
-
|
|
341
|
+
feature-id 和文件前缀规则见上方"feature-id 与文件前缀规则"章节。用户可显式参数覆盖默认路径。
|
|
329
342
|
|
|
330
343
|
### 文件命名
|
|
331
344
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
- 使用英文短横线分隔
|
|
340
|
-
- 文件名使用英文(便于 URL 兼容和跨平台)
|
|
341
|
-
- 文件名应反映文档内容而非日期
|
|
345
|
+
- 使用 `<文件前缀>-设计文档.md` 或 `<文件前缀>-设计文档.html` 命名
|
|
346
|
+
- 文件前缀算法:有业务ID 时为 `<业务ID>-<标题>`,无业务ID 时为 `<标题>`
|
|
347
|
+
- 文件前缀允许中文(如 `features目录结构调整-设计文档.md`)
|
|
348
|
+
- 不做中文 → 英文 slug 转换
|
|
349
|
+
- 文件名不得包含敏感字符 `/`、`:`、`*`、`?`、`"`、`<`、`>`、`|`
|
|
342
350
|
|
|
343
351
|
### 生成后
|
|
344
352
|
|
|
345
|
-
|
|
353
|
+
保存文件后:
|
|
346
354
|
|
|
347
|
-
1. 告知用户文件保存位置
|
|
355
|
+
1. 告知用户文件保存位置(默认 feature 目录路径)
|
|
348
356
|
2. 简要说明文档覆盖的内容范围
|
|
349
|
-
3.
|
|
350
|
-
4.
|
|
357
|
+
3. 如有知识缺失(knowledge 和 spec/plan 都未覆盖的重要方面),列出"可能需要补充的知识"
|
|
358
|
+
4. 不触发分析(本 skill 只读取 knowledge + spec/plan,不写入 `docs/knowledge/`)
|
|
351
359
|
|
|
352
360
|
## 完整生成流程
|
|
353
361
|
|
|
354
|
-
1.
|
|
355
|
-
2.
|
|
356
|
-
3.
|
|
357
|
-
4.
|
|
358
|
-
5.
|
|
359
|
-
6.
|
|
360
|
-
7.
|
|
361
|
-
|
|
362
|
+
1. **确认需求与识别 feature-id** — 与用户确认输出格式、章节选择;按规则识别 feature-id 和文件前缀
|
|
363
|
+
2. **召回 knowledge** — 用 `cgraphx docs find` 按概念/领域/关键词过滤,收集相关文档(Summary + path)
|
|
364
|
+
3. **读取 feature 目录** — Read spec、plan/index、plan/子文件,拿到本 feature 的契约和任务
|
|
365
|
+
4. **读取 knowledge 详情** — Summary 不够时,用 `cgraphx docs show` 或直接 `Read <path>` 拿完整原文
|
|
366
|
+
5. **评估覆盖度** — 检查 knowledge + spec/plan 是否足够覆盖设计文档的章节;如果不足告知用户
|
|
367
|
+
6. **合成内容** — 按照章节菜单,从 knowledge 和 spec/plan 重组、改写、整合内容
|
|
368
|
+
7. **格式化输出** — 按照 HTML 或 Markdown 的格式规则生成完整文档
|
|
369
|
+
8. **质量检查** — 检查文档是否满足以下条件:
|
|
370
|
+
- 所有事实性内容有 knowledge 或 spec/plan 来源
|
|
362
371
|
- 章节结构完整、逻辑连贯
|
|
363
|
-
-
|
|
372
|
+
- 语言风格符合设计文档定位
|
|
364
373
|
- 格式正确、排版整洁
|
|
365
|
-
|
|
366
|
-
9.
|
|
374
|
+
- 没有重新定义 spec 已锁定的契约
|
|
375
|
+
9. **保存文件** — 写入 `docs/features/<feature-id>/<文件前缀>-设计文档.md`(或 `.html`)
|
|
376
|
+
10. **反馈** — 告知用户保存位置和内容范围,列出知识缺失(如有)
|