source-kb 0.2.2__py3-none-any.whl

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 (228) hide show
  1. cli/__init__.py +50 -0
  2. cli/__main__.py +5 -0
  3. cli/commands/__init__.py +1 -0
  4. cli/commands/anchor_fix.py +47 -0
  5. cli/commands/diff_doc.py +52 -0
  6. cli/commands/dispatch.py +77 -0
  7. cli/commands/extract.py +72 -0
  8. cli/commands/file_list.py +74 -0
  9. cli/commands/index.py +84 -0
  10. cli/commands/lock.py +89 -0
  11. cli/commands/merge.py +60 -0
  12. cli/commands/merge_delta.py +19 -0
  13. cli/commands/metadata.py +24 -0
  14. cli/commands/pipeline.py +45 -0
  15. cli/commands/post_merge.py +43 -0
  16. cli/commands/query.py +52 -0
  17. cli/commands/render.py +101 -0
  18. cli/commands/scan_repos.py +46 -0
  19. cli/commands/setup.py +94 -0
  20. cli/commands/split.py +196 -0
  21. cli/commands/stale_files.py +98 -0
  22. cli/commands/validate.py +191 -0
  23. core/__init__.py +32 -0
  24. core/config.py +261 -0
  25. core/docs/__init__.py +7 -0
  26. core/docs/section_updater.py +286 -0
  27. core/docs/shared.py +149 -0
  28. core/git.py +294 -0
  29. core/interfaces.py +249 -0
  30. core/monitor/__init__.py +5 -0
  31. core/monitor/progress.py +83 -0
  32. core/monitor/prompt_store.py +49 -0
  33. core/paths.py +141 -0
  34. core/preset.py +237 -0
  35. core/preset_accessors.py +202 -0
  36. core/preset_classify.py +132 -0
  37. core/preset_hooks.py +129 -0
  38. core/preset_profile.py +89 -0
  39. core/prompt/__init__.py +7 -0
  40. core/prompt/__main__.py +147 -0
  41. core/prompt/content.py +320 -0
  42. core/prompt/context_manager.py +164 -0
  43. core/prompt/renderer.py +236 -0
  44. core/prompt/response_parser.py +274 -0
  45. core/prompt/templates.py +357 -0
  46. core/prompt/validate_parity.py +162 -0
  47. core/prompt/variables.py +339 -0
  48. core/rag/__init__.py +22 -0
  49. core/rag/__main__.py +136 -0
  50. core/rag/bm25_index.py +268 -0
  51. core/rag/chunker.py +273 -0
  52. core/rag/embedder.py +151 -0
  53. core/rag/indexer.py +292 -0
  54. core/rag/loader.py +89 -0
  55. core/rag/retriever.py +82 -0
  56. core/skeleton/__init__.py +11 -0
  57. core/skeleton/__main__.py +934 -0
  58. core/skeleton/anchor_fix.py +250 -0
  59. core/skeleton/classify.py +331 -0
  60. core/skeleton/cmd_anchor_fix.py +43 -0
  61. core/skeleton/cmd_diff_doc.py +44 -0
  62. core/skeleton/cmd_lock.py +87 -0
  63. core/skeleton/cmd_merge_delta.py +41 -0
  64. core/skeleton/community.py +233 -0
  65. core/skeleton/dependency_graph.py +306 -0
  66. core/skeleton/diff_doc.py +248 -0
  67. core/skeleton/dispatch.py +273 -0
  68. core/skeleton/dispatch_render.py +319 -0
  69. core/skeleton/dispatch_source.py +111 -0
  70. core/skeleton/extract.py +218 -0
  71. core/skeleton/extract_methods.py +298 -0
  72. core/skeleton/file_list.py +239 -0
  73. core/skeleton/impact.py +278 -0
  74. core/skeleton/jar_download.py +177 -0
  75. core/skeleton/jar_resolver.py +186 -0
  76. core/skeleton/loader.py +162 -0
  77. core/skeleton/merge.py +278 -0
  78. core/skeleton/merge_delta.py +229 -0
  79. core/skeleton/metadata.py +96 -0
  80. core/skeleton/metadata_builders.py +264 -0
  81. core/skeleton/module_dag.py +330 -0
  82. core/skeleton/parsers/__init__.py +71 -0
  83. core/skeleton/parsers/jqassistant.py +300 -0
  84. core/skeleton/parsers/jqassistant_cypher.py +225 -0
  85. core/skeleton/parsers/regex.py +171 -0
  86. core/skeleton/parsers/treesitter.py +324 -0
  87. core/skeleton/parsers/treesitter_java.py +284 -0
  88. core/skeleton/parsers/treesitter_multi.py +289 -0
  89. core/skeleton/pom_parser.py +299 -0
  90. core/skeleton/post_merge.py +295 -0
  91. core/skeleton/post_merge_llm.py +82 -0
  92. core/skeleton/query.py +195 -0
  93. core/skeleton/shard_context.py +177 -0
  94. core/skeleton/split.py +180 -0
  95. core/skeleton/split_cache.py +107 -0
  96. core/skeleton/split_feedback.py +174 -0
  97. core/skeleton/split_plan.py +219 -0
  98. core/skeleton/split_plan_helpers.py +305 -0
  99. core/skeleton/split_plan_llm.py +274 -0
  100. core/utils.py +135 -0
  101. core/validators/__init__.py +65 -0
  102. core/validators/__main__.py +215 -0
  103. core/validators/consistency.py +203 -0
  104. core/validators/coverage.py +171 -0
  105. core/validators/duplicates.py +76 -0
  106. core/validators/engine.py +224 -0
  107. core/validators/links.py +76 -0
  108. core/validators/sampling.py +169 -0
  109. core/validators/structure.py +144 -0
  110. engine/__init__.py +7 -0
  111. engine/assembler.py +231 -0
  112. engine/confirm.py +65 -0
  113. engine/dedup.py +106 -0
  114. engine/main.py +211 -0
  115. engine/pipeline/__init__.py +163 -0
  116. engine/pipeline/recovery.py +250 -0
  117. engine/pipeline/steps/__init__.py +23 -0
  118. engine/pipeline/steps/audit.py +220 -0
  119. engine/pipeline/steps/audit_apply.py +195 -0
  120. engine/pipeline/steps/audit_helpers.py +155 -0
  121. engine/pipeline/steps/classify_llm.py +236 -0
  122. engine/pipeline/steps/classify_prompt.py +223 -0
  123. engine/pipeline/steps/finalize.py +160 -0
  124. engine/pipeline/steps/generate.py +169 -0
  125. engine/pipeline/steps/generate_batch.py +197 -0
  126. engine/pipeline/steps/generate_recovery.py +170 -0
  127. engine/pipeline/steps/llm_plan_split.py +253 -0
  128. engine/pipeline/steps/lock.py +64 -0
  129. engine/pipeline/steps/preflight.py +237 -0
  130. engine/pipeline/steps/preflight_adjust.py +147 -0
  131. engine/pipeline/steps/pregenerate.py +130 -0
  132. engine/pipeline/steps/quality.py +81 -0
  133. engine/pipeline/steps/skeleton.py +149 -0
  134. engine/pipeline/steps/source.py +163 -0
  135. engine/pipeline/steps/sync.py +117 -0
  136. engine/pipeline/steps/sync_finalize.py +237 -0
  137. engine/pipeline/steps/sync_update.py +341 -0
  138. engine/pipelines.py +91 -0
  139. engine/runner.py +335 -0
  140. engine/strategies/__init__.py +86 -0
  141. engine/strategies/api.py +128 -0
  142. engine/strategies/delegated.py +50 -0
  143. engine/strategies/dryrun.py +25 -0
  144. engine/two_phase.py +143 -0
  145. mcp_server/__init__.py +73 -0
  146. mcp_server/__main__.py +5 -0
  147. mcp_server/tools/__init__.py +1 -0
  148. mcp_server/tools/config.py +63 -0
  149. mcp_server/tools/discovery.py +276 -0
  150. mcp_server/tools/generation.py +184 -0
  151. mcp_server/tools/planning.py +144 -0
  152. mcp_server/tools/source.py +175 -0
  153. mcp_server/tools/validation.py +140 -0
  154. mcp_server/tools/workflow.py +166 -0
  155. mcp_server/workflow_loader.py +204 -0
  156. presets/generic/audit_dimensions.md +132 -0
  157. presets/generic/doc_types.yaml +152 -0
  158. presets/generic/preset.yaml +115 -0
  159. presets/java-spring/audit_dimensions.md +228 -0
  160. presets/java-spring/audit_dimensions.yaml +203 -0
  161. presets/java-spring/doc_types.yaml +269 -0
  162. presets/java-spring/hooks.py +122 -0
  163. presets/java-spring/preset.yaml +341 -0
  164. presets/java-spring/templates/README.md +34 -0
  165. presets/java-spring/templates/audit-system.md +15 -0
  166. presets/java-spring/templates/subagent-aop.md +105 -0
  167. presets/java-spring/templates/subagent-api.md +63 -0
  168. presets/java-spring/templates/subagent-architecture.md +111 -0
  169. presets/java-spring/templates/subagent-async-events.md +107 -0
  170. presets/java-spring/templates/subagent-audit-api-contracts.md +40 -0
  171. presets/java-spring/templates/subagent-audit-architecture.md +38 -0
  172. presets/java-spring/templates/subagent-audit-business.md +40 -0
  173. presets/java-spring/templates/subagent-audit-data-models.md +40 -0
  174. presets/java-spring/templates/subagent-business.md +129 -0
  175. presets/java-spring/templates/subagent-caching.md +75 -0
  176. presets/java-spring/templates/subagent-database-access.md +114 -0
  177. presets/java-spring/templates/subagent-enum.md +75 -0
  178. presets/java-spring/templates/subagent-error-handling.md +91 -0
  179. presets/java-spring/templates/subagent-external-integrations.md +80 -0
  180. presets/java-spring/templates/subagent-index.md +122 -0
  181. presets/java-spring/templates/subagent-messaging.md +97 -0
  182. presets/java-spring/templates/subagent-model.md +88 -0
  183. presets/java-spring/templates/subagent-observability.md +91 -0
  184. presets/java-spring/templates/subagent-scheduled.md +81 -0
  185. presets/java-spring/templates/subagent-security.md +102 -0
  186. presets/java-spring/templates/subagent-structure.md +101 -0
  187. presets/java-spring/templates/subagent-sync-section.md +34 -0
  188. presets/java-spring/templates/subagent-utils.md +73 -0
  189. presets/java-spring/templates/sync-system.md +8 -0
  190. presets/java-spring/workflow-extensions.md +112 -0
  191. skills/__init__.py +1 -0
  192. skills/_shared/README.md +30 -0
  193. skills/_shared/doc-coverage-shared.md +134 -0
  194. skills/_shared/doc-quality-standard.md +1058 -0
  195. skills/_shared/doc-subagent-rules.md +762 -0
  196. skills/_shared/windows-compat.md +89 -0
  197. skills/kb-audit/SKILL.md +52 -0
  198. skills/kb-audit/rules.md +88 -0
  199. skills/kb-audit/steps/step-01-prepare.md +75 -0
  200. skills/kb-audit/steps/step-02-audit.md +96 -0
  201. skills/kb-audit/steps/step-03-verify.md +65 -0
  202. skills/kb-audit/steps/step-04-report.md +64 -0
  203. skills/kb-init/SKILL.md +146 -0
  204. skills/kb-init/rules.md +187 -0
  205. skills/kb-init/steps/step-01-scope.md +62 -0
  206. skills/kb-init/steps/step-02-source.md +410 -0
  207. skills/kb-init/steps/step-03-generate.md +307 -0
  208. skills/kb-init/steps/step-04-quality.md +92 -0
  209. skills/kb-init/steps/step-05-finalize.md +132 -0
  210. skills/kb-init/templates/core/execution-modes.md +29 -0
  211. skills/kb-init/templates/core/output-only.md +4 -0
  212. skills/kb-init/templates/core/readwrite.md +33 -0
  213. skills/kb-search/SKILL.md +138 -0
  214. skills/kb-search/rules.md +64 -0
  215. skills/kb-sync/SKILL.md +43 -0
  216. skills/kb-sync/rules.md +70 -0
  217. skills/kb-sync/scripts/rebuild_module.py +91 -0
  218. skills/kb-sync/scripts/scan_repos.py +687 -0
  219. skills/kb-sync/steps/step-01-detect.md +72 -0
  220. skills/kb-sync/steps/step-02-update.md +71 -0
  221. skills/kb-sync/steps/step-03-verify.md +47 -0
  222. skills/kb-sync/steps/step-04-finalize.md +52 -0
  223. source_kb-0.2.2.dist-info/METADATA +194 -0
  224. source_kb-0.2.2.dist-info/RECORD +228 -0
  225. source_kb-0.2.2.dist-info/WHEEL +5 -0
  226. source_kb-0.2.2.dist-info/entry_points.txt +3 -0
  227. source_kb-0.2.2.dist-info/licenses/LICENSE +21 -0
  228. source_kb-0.2.2.dist-info/top_level.txt +6 -0
@@ -0,0 +1,91 @@
1
+ # 任务:生成 {module_name} 模块的 error-handling.md
2
+
3
+ {module_description}
4
+
5
+ {execution_guidance}
6
+
7
+ ## 你必须遵守的规则(违反任何一条即为失败)
8
+
9
+ 1. **禁止编造** — 异常类名、错误码、HTTP 状态码必须从源码验证
10
+ 2. **异常层次必须完整** — 从基类到具体异常的继承链,不能只列叶子节点
11
+ 3. **错误码必须有映射** — 每个错误码对应的异常类、HTTP 状态码、用户提示信息
12
+ 4. **全局处理器必须写完整逻辑** — @ExceptionHandler 的匹配规则、处理步骤、返回格式
13
+
14
+ ## 输出约束
15
+
16
+ - 信息密度优先,避免冗余
17
+ - 确保中文内容完整无截断
18
+
19
+ ## 输入
20
+
21
+ - 骨架 JSON:`{skeleton_path}`({skeleton_size}KB,{skeleton_read_instruction})
22
+ - 源码缓存:`{source_cache_path}`
23
+ - 输出文件:`{output_path}/error-handling.md`
24
+
25
+ ## 需要读取的源码文件
26
+
27
+ 根据以下文件清单读取源码文件进行分析:
28
+
29
+ {file_list}
30
+
31
+ ## 文件读取说明
32
+
33
+ 你需要:
34
+ 1. 逐个读取上述文件清单中的源码文件
35
+ 2. 分析文件内容,提取所需信息
36
+ 3. 基于原始源码生成文档,禁止编造
37
+ 4. 验证所有配置参数和数值
38
+
39
+ ## 内容组织
40
+
41
+ ### 1. 异常体系总览
42
+
43
+ ```markdown
44
+ | 异常类 | 继承自 | 错误码 | HTTP 状态码 | 使用场景 |
45
+ |--------|--------|--------|------------|---------|
46
+ | BusinessException | RuntimeException | 动态 | 500 | 业务逻辑异常 |
47
+ ```
48
+
49
+ ### 2. 异常继承层次图
50
+
51
+ ASCII 树形图展示异常类的继承关系:
52
+ ```
53
+ RuntimeException
54
+ ├── BaseException
55
+ │ ├── BusinessException
56
+ │ ├── ValidationException
57
+ │ └── AuthorizationException
58
+ └── ...
59
+ ```
60
+
61
+ ### 3. 错误码体系
62
+
63
+ - **错误码格式**:编码规则(如 模块前缀 + 4位数字)
64
+ - **错误码清单**:
65
+
66
+ ```markdown
67
+ | 错误码 | 含义 | 对应异常 | HTTP 状态码 | 用户提示 |
68
+ |--------|------|---------|------------|---------|
69
+ ```
70
+
71
+ ### 4. 全局异常处理器(@ControllerAdvice)
72
+
73
+ 每个处理器方法必须包含:
74
+ - **匹配异常类型**:@ExceptionHandler 捕获的异常类
75
+ - **处理逻辑**:编号步骤(日志记录、错误码提取、响应构建)
76
+ - **返回格式**:统一响应体结构(含示例 JSON)
77
+ - **特殊处理**:参数校验异常、绑定异常、404 等框架异常的处理方式
78
+
79
+ ### 5. 异常使用规范
80
+
81
+ - 何时抛 checked vs unchecked
82
+ - 异常信息国际化策略(如有)
83
+ - 异常与日志级别的对应关系
84
+ - 敏感信息脱敏规则
85
+
86
+ ## 完成后自检清单
87
+
88
+ - [ ] 异常继承层次图已画
89
+ - [ ] 每个错误码有对应的异常类和 HTTP 状态码
90
+ - [ ] 全局处理器有完整处理逻辑
91
+ - [ ] 统一响应体格式有 JSON 示例
@@ -0,0 +1,80 @@
1
+ # 任务:生成 {module_name} 模块的 external-integrations.md
2
+
3
+ {module_description}
4
+
5
+ {execution_guidance}
6
+
7
+ ## 你必须遵守的规则(违反任何一条即为失败)
8
+
9
+ 1. **禁止编造** — URL、配置项、认证方式、超时值必须从源码验证
10
+ 2. **每个集成必须完整** — 调用方式、目标地址、认证方式、超时配置、重试策略、异常处理
11
+ 3. **区分外部调用与内部 RPC** — 本模块通过 `@FeignClient` 字段注入调用外部服务归本文档;本模块自身定义的 `@FeignClient` 接口归 api-contracts.md
12
+ 4. **数值验证铁律** — 超时时间、重试次数、连接池参数 → 必须 Read 源码确认
13
+
14
+ ## 输出约束
15
+
16
+ - 信息密度优先,避免冗余
17
+ - 确保中文内容完整无截断
18
+
19
+ ## 输入
20
+
21
+ - 骨架 JSON:`{skeleton_path}`({skeleton_size}KB,{skeleton_read_instruction})
22
+ - 源码缓存:`{source_cache_path}`
23
+ - 输出文件:`{output_path}/external-integrations.md`
24
+
25
+ ## 需要读取的源码文件
26
+
27
+ 根据以下文件清单读取源码文件进行分析:
28
+
29
+ {file_list}
30
+
31
+ ## 文件读取说明
32
+
33
+ 你需要:
34
+ 1. 逐个读取上述文件清单中的源码文件
35
+ 2. 分析文件内容,提取所需信息
36
+ 3. 基于原始源码生成文档,禁止编造
37
+ 4. 验证所有配置参数和数值
38
+
39
+ ## 内容组织
40
+
41
+ ### 1. 外部集成总览表
42
+
43
+ ```markdown
44
+ | 序号 | 集成方 | 调用方式 | 目标地址/配置项 | 调用类 |
45
+ |------|--------|---------|----------------|--------|
46
+ | 1 | 支付网关 | RestTemplate | ${payment.gateway.url} | PaymentClient |
47
+ ```
48
+
49
+ ### 2. 逐集成详解(每个外部集成独立小节)
50
+
51
+ 每个外部集成必须包含:
52
+
53
+ - **集成方**:外部服务名称
54
+ - **调用方式**:RestTemplate / WebClient / OkHttpClient / FeignClient 注入 / HttpUtil / SDK
55
+ - **目标地址**:URL 或配置项名(如 `${xxx.url}`)+ 默认值
56
+ - **HTTP 方法**:GET / POST / PUT / DELETE
57
+ - **请求格式**:Content-Type、请求体类名 + 关键字段
58
+ - **响应格式**:响应体类名 + 关键字段、反序列化方式
59
+ - **认证方式**:Token / 签名 / OAuth / 无认证,含 Token 获取逻辑
60
+ - **超时配置**:连接超时 + 读取超时,来源(硬编码 / 配置项名及默认值)
61
+ - **重试策略**(如有):重试次数、重试条件、退避策略
62
+ - **异常处理**:捕获哪些异常、失败后的降级/补偿逻辑
63
+ - **调用位置**:哪些类的哪些方法发起调用
64
+
65
+ ### 3. HTTP 客户端配置
66
+
67
+ - 连接池参数(maxTotal / maxPerRoute / keepAlive)
68
+ - 全局超时配置
69
+ - 拦截器 / 过滤器(日志、签名、Token 注入)
70
+
71
+ ### 4. 调用链路图
72
+
73
+ ASCII 图展示本模块到各外部服务的调用关系,标注调用方式和关键路径。
74
+
75
+ ## 完成后自检清单
76
+
77
+ - [ ] 每个外部集成有完整的调用方式、地址、认证、超时、异常处理
78
+ - [ ] 已区分外部调用与本模块自身定义的 FeignClient 接口
79
+ - [ ] 超时值、重试次数等数值从源码验证
80
+ - [ ] 调用链路图已画
@@ -0,0 +1,122 @@
1
+ # 任务:生成 {module_name} 模块的 index.md
2
+
3
+ 注意:本模块的所有其他文档已生成完毕。
4
+
5
+ {module_description}
6
+
7
+ {execution_guidance}
8
+
9
+ ## 你必须遵守的规则(违反任何一条即为失败)
10
+
11
+ 1. **禁止编造** — 版本号、端口、JVM 参数必须从 pom.xml/yaml/Dockerfile 提取
12
+ 2. **index 是导航页,不是内容页** — 只写摘要和统计数字,详细内容通过链接指向其他文档
13
+ 3. **文档导航只链接实际存在的文件** — 禁止链接未生成的文档
14
+ 4. **源码规模精确计算** — 从骨架 JSON 计算,禁止估算
15
+
16
+ ## 本文档的定位
17
+
18
+ index.md 是模块的"首页",帮助读者快速了解模块全貌并找到详细文档。它不应该重复其他文档的内容。
19
+
20
+ ## 输出约束
21
+
22
+ - 确保中文内容完整无截断
23
+
24
+ ## 前序文档摘要(自动注入,用于生成导航和摘要)
25
+
26
+ {prior_docs_context}
27
+
28
+ ## 输入
29
+
30
+ - 骨架 JSON:`{skeleton_path}`({skeleton_size}KB,{skeleton_read_instruction})
31
+ - 源码缓存:`{source_cache_path}`
32
+ - 输出文件:`{output_path}/index.md`
33
+
34
+ ## 已生成的文档文件
35
+
36
+ {generated_docs_files}
37
+
38
+ ## 必须包含的章节
39
+
40
+ ### 0. Front-matter 元数据(必须)
41
+
42
+ 文档开头用 YAML front-matter 标注模块元数据,为后续知识图谱和自动化检索做准备:
43
+
44
+ ```yaml
45
+ ---
46
+ module_id: "{module_name}"
47
+ module_type: "service | base-lib | api-contract"
48
+ knowledge_graph:
49
+ belongs_to: "@system:{parent_system}"
50
+ depends_on:
51
+ - "@module:{dep1}"
52
+ - "@module:{dep2}"
53
+ provides:
54
+ - "@api:{api_path}"
55
+ last_source_commit: ""
56
+ ---
57
+ ```
58
+
59
+ - `module_type`:从 pom.xml 的 artifactId 后缀推断(-service/-common/-api)
60
+ - `depends_on`:从 pom.xml 的内部依赖提取(同组织的 artifactId)
61
+ - `provides`:从 Controller 的 @RequestMapping 基础路径提取(最多 5 个)
62
+ - `last_source_commit`:留空(由增量更新流程填充)
63
+
64
+ ### 1. 基本信息表
65
+
66
+ | 属性 | 值 |
67
+ |------|-----|
68
+ | artifactId | ... |
69
+ | 当前版本 | ... |
70
+ | 上下文路径 | ... |
71
+ | 服务端口 | ... |
72
+ | 基础包路径 | ... |
73
+ | 数据库 | ... |
74
+ | 核心中间件 | Redis / Kafka / ES(列出使用的) |
75
+
76
+ 从 pom.xml、application.yaml、Dockerfile 提取。找不到的省略,禁止编造。
77
+
78
+ ### 2. 模块定位(2-3 句话)
79
+
80
+ 模块在系统中的角色、核心能力。
81
+
82
+ ### 3. 源码规模
83
+
84
+ | 指标 | 数值 |
85
+ |------|------|
86
+ | 源码文件数 | X |
87
+ | 方法总数 | X |
88
+ | Controller 数 | X |
89
+ | 外部接口数 | X |
90
+ | 内部接口数 | X |
91
+ | Feign Client 数 | X |
92
+
93
+ ### 4. 核心业务流程速览
94
+
95
+ 表格:流程名 + 一句话描述 + 入口。不超过 10 行。
96
+
97
+ ### 5. 文档导航
98
+
99
+ ```markdown
100
+ | 文档 | 说明 |
101
+ |------|------|
102
+ | [源码树分析](./source-tree-analysis.md) | 文件结构与分级描述 |
103
+ | [架构设计](./architecture.md) | 分层架构与设计决策 |
104
+ | ... | ... |
105
+ ```
106
+
107
+ 只链接「已生成的文档文件」中列出的文件。每个文档一句话说明。
108
+
109
+ ### 6. 快速检索指引
110
+
111
+ 告诉读者常见问题应该去哪个文档找答案:
112
+ - "某个接口的参数是什么" → api-contracts.md
113
+ - "某个缓存 Key 的 TTL" → caching.md
114
+ - "某个业务流程的完整逻辑" → business-logic.md
115
+
116
+ ## 完成后自检清单
117
+
118
+ - [ ] 基本信息从源码提取,无编造
119
+ - [ ] 无接口完整列表(只有统计数字)
120
+ - [ ] 无枚举值列表(只引用 enums-and-constants.md)
121
+ - [ ] 无缓存策略详细表格(只引用 caching.md)
122
+ - [ ] 文档导航只链接实际存在的文件
@@ -0,0 +1,97 @@
1
+ # 任务:生成 {module_name} 模块的 messaging.md
2
+
3
+ {module_description}
4
+
5
+ {execution_guidance}
6
+
7
+ ## 你必须遵守的规则(违反任何一条即为失败)
8
+
9
+ 1. **禁止编造** — Topic 名、GroupId、并发数、消息体结构必须从源码验证
10
+ 2. **消费者必须写完整消费逻辑** — 不是 5-10 行概述就结束,必须有编号步骤列表
11
+ 3. **ACK 时机必须明确** — 先 ACK 再处理 / 处理完再 ACK,⚠️ 标注消息丢失风险
12
+ 4. **数值验证铁律** — max-poll-records、并发数、超时配置 → 必须 Read 源码确认
13
+
14
+ ## 输出约束
15
+
16
+ - 信息密度优先,避免冗余
17
+ - 确保中文内容完整无截断
18
+
19
+ ## 输入
20
+
21
+ - 骨架 JSON:`{skeleton_path}`({skeleton_size}KB,{skeleton_read_instruction})
22
+ - 源码缓存:`{source_cache_path}`
23
+ - 输出文件:`{output_path}/messaging.md`
24
+
25
+ ## 需要读取的源码文件
26
+
27
+ 根据以下文件清单读取源码文件进行分析:
28
+
29
+ {file_list}
30
+
31
+ ## 文件读取说明
32
+
33
+ 你需要:
34
+ 1. 逐个读取上述文件清单中的源码文件
35
+ 2. 分析文件内容,提取所需信息
36
+ 3. 基于原始源码生成文档,禁止编造
37
+ 4. 验证所有配置参数和数值
38
+
39
+ ## 内容组织
40
+
41
+ ### 1. 消息中间件配置总览
42
+ - 集群/实例说明(集群名、用途、认证方式)
43
+ - Producer 全局配置(acks/retries/batch-size 等)
44
+ - Consumer 全局配置(group-id 命名规则/auto-offset-reset/enable-auto-commit 等)
45
+ - 自定义 Consumer 配置组(max-poll-records/max-poll-interval-ms 等)
46
+
47
+ > 适用于 Kafka、Pulsar、RabbitMQ、RocketMQ 等消息中间件。
48
+ > 注意:不要重复 architecture.md 中的内容。本文档是消息队列的唯一详细文档。
49
+
50
+ ### 2. Topic/Queue 清单
51
+
52
+ ```markdown
53
+ | Topic/Queue 配置 Key | 默认名称 | 生产者类 | 消费者类 | 消费者组 | 并发数 |
54
+ ```
55
+
56
+ ### 3. 消费者详细说明(每个消费者独立小节)
57
+
58
+ 每个消费者必须包含:
59
+ - **Topic/Queue**:配置项名 + 默认值
60
+ - **GroupId/Subscription**:配置项名 + 默认值
61
+ - **ContainerFactory/Listener 容器**:容器名称
62
+ - **Concurrency**:并发数
63
+ - **内部线程池**(如有):线程数、队列类型、队列容量
64
+ - **消息体**:完整 JSON 示例(含所有字段)
65
+ - **消息 Key / Header / Properties**
66
+ - **完整消费逻辑**:编号步骤列表,从接收到处理完成的每一步,包含:
67
+ - ACK 时机
68
+ - 幂等校验逻辑
69
+ - 核心业务调用链
70
+ - 异常处理策略
71
+ - **自动启动**:是否默认启动,启停控制方式
72
+ - **错误处理**:消费失败后的行为(重试/死信/告警)
73
+
74
+ ### 4. 生产者详细说明(每个生产者独立小节)
75
+
76
+ 每个生产者必须包含:
77
+ - 生产位置(类.方法)
78
+ - 发送方式(同步/异步/异步带 Header)
79
+ - 消息 Key 生成规则
80
+ - 消息 Header/Properties 字段
81
+ - 消息体类名 + 关键字段
82
+ - 目标集群/实例
83
+
84
+ ### 5. 事件流转全景图
85
+ ASCII 图展示所有 Topic/Queue 的生产→消费→下游的完整链路。
86
+
87
+ ### 6. 算法详解(有复杂消费逻辑时)
88
+ - 算法步骤(编号列表)
89
+ - 新旧算法对比(如有切换开关)
90
+ - 边界条件处理
91
+
92
+ ## 完成后自检清单
93
+
94
+ - [ ] 每个消费者有完整消费逻辑(编号步骤,不是概述)
95
+ - [ ] ACK 时机已明确标注
96
+ - [ ] 事件流转全景图已画
97
+ - [ ] 数值从源码验证
@@ -0,0 +1,88 @@
1
+ # 任务:生成 {module_name} 模块的 data-models.md
2
+
3
+ {module_description}
4
+
5
+ {execution_guidance}
6
+
7
+ ## 你必须遵守的规则(违反任何一条即为失败)
8
+
9
+ 1. **禁止编造** — 所有字段必须有源码出处
10
+ 2. **核心实体完整字段表,辅助实体精简** — 核心 Domain 实体(有 @TableName 的)必须完整字段表;VO/DTO/Param 只写关键字段(5-10 个)+ 总字段数
11
+ 3. **按业务域分组,不按技术类型** — 用业务域名(如"促销申请相关模型")而非"§1. Domain 领域实体"
12
+ 4. **继承关系是高价值信息** — 必须画出继承/组合关系图
13
+
14
+ ## 本文档不覆盖的内容
15
+
16
+ - 枚举定义(归 enums-and-constants.md)
17
+ - 常量定义(归 enums-and-constants.md)
18
+ - 字段的业务含义和使用场景(归 business-logic.md)
19
+
20
+ ## 输出约束
21
+
22
+ - 信息密度优先
23
+ - 确保中文内容完整无截断
24
+
25
+ ## 输入
26
+
27
+ - 骨架 JSON:`{skeleton_path}`({skeleton_size}KB,{skeleton_read_instruction})
28
+ - 源码缓存:`{source_cache_path}`
29
+ - 输出文件:`{output_path}/data-models.md`
30
+
31
+ ## 需要读取的源码文件
32
+
33
+ {file_list}
34
+
35
+ ## 内容组织
36
+
37
+ {{#if is_shard}}
38
+ ### 分片模式说明
39
+ 你负责的业务域:{shard_info}
40
+ - 章节标题用业务域名(如"## 促销申请相关模型"),不用通用的"Domain 领域实体"
41
+ - 不需要生成总览表(由合并步骤统一生成)
42
+ {{/if}}
43
+
44
+ ### 核心 Domain 实体(有 @TableName 的)
45
+
46
+ 每个实体必须包含:
47
+ - 类名 + `@TableName` 注解值(表名)
48
+ - **完整字段表**:字段名、类型、说明、注解/约束
49
+ - 索引信息(如能从注解推断)
50
+
51
+ ### VO/DTO/Param(接口模型)
52
+
53
+ 精简格式:
54
+ ```markdown
55
+ ### XxxReqVO(促销创建请求)
56
+ 继承:BasePageParam | 字段数:18 | 校验组:SeqGroup
57
+
58
+ **关键字段**:promotionName(String, @NotBlank), promotionType(Integer, @NotNull),
59
+ startTime(Date), endTime(Date), channelList(List<Integer>)
60
+
61
+ **完整字段**:详见源码 `com.xxx.XxxReqVO`
62
+ ```
63
+
64
+ ### 模型关系图(每个业务域一个)
65
+
66
+ ASCII 图展示实体间的关系:
67
+ ```
68
+ Promotion (主表)
69
+ ├── 1:N → PromotionRule (规则)
70
+ ├── 1:N → PromotionStore (门店)
71
+ ├── 1:1 → PromotionEffectivePeriod (时段)
72
+ └── N:1 → PromotionTemplate (模板)
73
+ ```
74
+
75
+ ### 外部依赖类
76
+
77
+ {sibling_modules}
78
+
79
+ - 同知识库兄弟模块:类名 + 一句话职责 + 引用链接
80
+ - 外部 JAR:类名 + 关键字段(本模块实际使用的)+ 来源标注
81
+
82
+ ## 完成后自检清单
83
+
84
+ - [ ] 核心 Domain 实体有完整字段表
85
+ - [ ] VO/DTO 用精简格式,只列关键字段
86
+ - [ ] 有模型关系图
87
+ - [ ] 无枚举/常量定义(已归 enums-and-constants.md)
88
+ - [ ] 章节按业务域组织(分片模式下)
@@ -0,0 +1,91 @@
1
+ # 任务:生成 {module_name} 模块的 observability.md
2
+
3
+ {module_description}
4
+
5
+ {execution_guidance}
6
+
7
+ ## 你必须遵守的规则(违反任何一条即为失败)
8
+
9
+ 1. **禁止编造** — 所有监控指标、告警规则、日志配置必须从源码/配置文件提取
10
+ 2. **数值验证铁律** — 告警阈值、采集间隔、日志级别 → 必须 Read 源码确认
11
+ 3. **只写已实现的** — 不写"建议增加"的监控,只记录源码中已存在的可观测性设施
12
+ 4. **禁止越权** — 不创建其他文档文件
13
+
14
+ ## 本文档不覆盖的内容
15
+
16
+ - 业务逻辑流程(归 business-logic.md)
17
+ - 中间件连接配置(归 architecture.md)
18
+ - 错误码定义(归 enums-and-constants.md)
19
+
20
+ ## 输出约束
21
+
22
+ - 信息密度优先
23
+ - 确保中文内容完整无截断
24
+
25
+ ## 输入
26
+
27
+ - 源码缓存目录:`{source_cache_path}`
28
+ - 输出文件:`{output_path}/observability.md`
29
+
30
+ ## 需要读取的源码文件
31
+
32
+ {file_list}
33
+
34
+ ## 必须包含的章节
35
+
36
+ ### 1. 可观测性概览
37
+
38
+ | 维度 | 实现方式 | 关键组件 |
39
+ |------|---------|---------|
40
+ | Metrics | Micrometer / Prometheus / 自定义 | 采集端点 |
41
+ | Logging | Logback / Log4j2 / SLF4J | 日志框架 |
42
+ | Tracing | Sleuth / OpenTelemetry / SkyWalking | 链路追踪 |
43
+ | Health | Actuator / 自定义 | 健康检查端点 |
44
+
45
+ ### 2. 自定义监控指标(有 @Counted/@Timed/MeterRegistry 时必须)
46
+
47
+ 从源码中的 Micrometer 注解和 MeterRegistry 调用提取:
48
+
49
+ | 指标名 | 类型 | 标签 | 来源类.方法 | 业务含义 |
50
+ |--------|------|------|------------|---------|
51
+ | | Counter/Gauge/Timer/Summary | | | |
52
+
53
+ ### 3. 日志规范
54
+
55
+ 从 logback.xml / log4j2.xml / application.yaml 提取:
56
+
57
+ - **日志格式**:Pattern Layout 配置
58
+ - **日志级别**:各包的级别配置
59
+ - **日志文件**:输出目标(console/file/ELK)
60
+ - **关键业务日志**:源码中带有结构化字段的 log 调用(如 `log.info("order.created", kv("orderId", id))`)
61
+
62
+ ### 4. 健康检查(有 Actuator 或自定义 HealthIndicator 时必须)
63
+
64
+ | 端点 | 检查内容 | 超时 | 降级行为 |
65
+ |------|---------|------|---------|
66
+ | /actuator/health | | | |
67
+
68
+ ### 5. 告警规则(有 Sentinel Dashboard / Prometheus Rules / 代码中的阈值判断时写)
69
+
70
+ | 告警名 | 条件 | 阈值 | 级别 | 通知方式 |
71
+ |--------|------|------|------|---------|
72
+
73
+ ### 6. 链路追踪(有 Sleuth/OpenTelemetry/SkyWalking 时写)
74
+
75
+ - Span 命名规则
76
+ - 自定义 Tag/Baggage
77
+ - 采样率配置
78
+
79
+ ### 7. 运维端点汇总
80
+
81
+ | 端点路径 | 用途 | 认证要求 |
82
+ |---------|------|---------|
83
+ | /actuator/info | 应用信息 | |
84
+ | /actuator/metrics | 指标查询 | |
85
+
86
+ ## 完成后自检清单
87
+
88
+ - [ ] 所有指标名从源码提取,非编造
89
+ - [ ] 告警阈值有具体数值
90
+ - [ ] 日志配置从配置文件提取
91
+ - [ ] 无"建议增加"类内容
@@ -0,0 +1,81 @@
1
+ # 任务:生成 {module_name} 模块的 scheduled-tasks.md
2
+
3
+ {module_description}
4
+
5
+ {execution_guidance}
6
+
7
+ ## 你必须遵守的规则(违反任何一条即为失败)
8
+
9
+ 1. **禁止编造** — cron 表达式、线程池配置、任务参数必须从源码验证
10
+ 2. **数值验证铁律** — 执行频率、超时时间、重试次数、分片数 → 必须 Read 源码确认
11
+ 3. **幂等性必须说明** — 每个任务是否幂等、如何保证幂等(分布式锁/状态机/版本号)
12
+ 4. **异常处理必须明确** — 任务失败后的行为:重试/告警/跳过/人工介入
13
+
14
+ ## 输出约束
15
+
16
+ - 信息密度优先,避免冗余
17
+ - 确保中文内容完整无截断
18
+
19
+ ## 输入
20
+
21
+ - 骨架 JSON:`{skeleton_path}`({skeleton_size}KB,{skeleton_read_instruction})
22
+ - 源码缓存:`{source_cache_path}`
23
+ - 输出文件:`{output_path}/scheduled-tasks.md`
24
+
25
+ ## 需要读取的源码文件
26
+
27
+ 根据以下文件清单读取源码文件进行分析:
28
+
29
+ {file_list}
30
+
31
+ ## 文件读取说明
32
+
33
+ 你需要:
34
+ 1. 逐个读取上述文件清单中的源码文件
35
+ 2. 分析文件内容,提取所需信息
36
+ 3. 基于原始源码生成文档,禁止编造
37
+ 4. 验证所有配置参数和数值
38
+
39
+ ## 内容组织
40
+
41
+ ### 1. 任务总览表
42
+
43
+ ```markdown
44
+ | 序号 | 任务名 | 调度方式 | 执行频率 | 所在类 | 幂等保证 |
45
+ |------|--------|---------|---------|--------|---------|
46
+ | 1 | syncPromotion | @Scheduled | 每5分钟 | PromotionSyncJob | 分布式锁 |
47
+ ```
48
+
49
+ ### 2. 逐任务详解(每个任务独立小节)
50
+
51
+ 每个定时任务必须包含:
52
+
53
+ - **任务标识**:方法名 / XxlJob handler 名 / Quartz JobDetail 名
54
+ - **调度方式**:@Scheduled / @XxlJob / Quartz / 自定义调度器
55
+ - **执行频率**:cron 表达式 + 人类可读描述(如 `0 */5 * * * ?` = 每5分钟)
56
+ - **触发条件**(如有):是否有开关控制、环境限制
57
+ - **执行逻辑**:编号步骤列表,从触发到完成的每一步
58
+ - **数据范围**:处理哪些数据、分页/分片策略
59
+ - **幂等保证**:分布式锁(锁名/超时)/ 状态机 / 版本号 / 天然幂等
60
+ - **超时处理**:任务执行超时后的行为
61
+ - **异常处理**:失败重试策略、告警方式、降级方案
62
+ - **依赖关系**:依赖的外部服务、数据库、缓存
63
+ - **并发控制**:是否允许并行执行、分片策略
64
+
65
+ ### 3. 调度框架配置
66
+
67
+ - 线程池配置(核心线程数、最大线程数)
68
+ - XxlJob 执行器配置(如使用)
69
+ - 分布式锁实现方式
70
+
71
+ ### 4. 任务依赖关系图(如有多个任务存在先后依赖)
72
+
73
+ ASCII 图展示任务间的执行顺序和数据流转。
74
+
75
+ ## 完成后自检清单
76
+
77
+ - [ ] 每个任务有完整执行逻辑(编号步骤)
78
+ - [ ] cron 表达式已标注人类可读描述
79
+ - [ ] 幂等保证方式已说明
80
+ - [ ] 异常处理策略已明确
81
+ - [ ] 数值从源码验证