@mycodemap/mycodemap 0.1.1 → 0.3.4

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 (328) hide show
  1. package/CHANGELOG.md +163 -0
  2. package/README.md +241 -67
  3. package/dist/cli/commands/ci.d.ts +7 -1
  4. package/dist/cli/commands/ci.d.ts.map +1 -1
  5. package/dist/cli/commands/ci.js +38 -0
  6. package/dist/cli/commands/ci.js.map +1 -1
  7. package/dist/cli/commands/export.d.ts +6 -0
  8. package/dist/cli/commands/export.d.ts.map +1 -0
  9. package/dist/cli/commands/export.js +108 -0
  10. package/dist/cli/commands/export.js.map +1 -0
  11. package/dist/cli/commands/generate.d.ts.map +1 -1
  12. package/dist/cli/commands/generate.js +96 -0
  13. package/dist/cli/commands/generate.js.map +1 -1
  14. package/dist/cli/commands/server.d.ts +9 -0
  15. package/dist/cli/commands/server.d.ts.map +1 -0
  16. package/dist/cli/commands/server.js +68 -0
  17. package/dist/cli/commands/server.js.map +1 -0
  18. package/dist/cli/commands/ship/analyzer.d.ts +26 -0
  19. package/dist/cli/commands/ship/analyzer.d.ts.map +1 -0
  20. package/dist/cli/commands/ship/analyzer.js +143 -0
  21. package/dist/cli/commands/ship/analyzer.js.map +1 -0
  22. package/dist/cli/commands/ship/checker.d.ts +20 -0
  23. package/dist/cli/commands/ship/checker.d.ts.map +1 -0
  24. package/dist/cli/commands/ship/checker.js +86 -0
  25. package/dist/cli/commands/ship/checker.js.map +1 -0
  26. package/dist/cli/commands/ship/index.d.ts +17 -0
  27. package/dist/cli/commands/ship/index.d.ts.map +1 -0
  28. package/dist/cli/commands/ship/index.js +51 -0
  29. package/dist/cli/commands/ship/index.js.map +1 -0
  30. package/dist/cli/commands/ship/monitor.d.ts +19 -0
  31. package/dist/cli/commands/ship/monitor.d.ts.map +1 -0
  32. package/dist/cli/commands/ship/monitor.js +105 -0
  33. package/dist/cli/commands/ship/monitor.js.map +1 -0
  34. package/dist/cli/commands/ship/pipeline.d.ts +23 -0
  35. package/dist/cli/commands/ship/pipeline.d.ts.map +1 -0
  36. package/dist/cli/commands/ship/pipeline.js +146 -0
  37. package/dist/cli/commands/ship/pipeline.js.map +1 -0
  38. package/dist/cli/commands/ship/publisher.d.ts +11 -0
  39. package/dist/cli/commands/ship/publisher.d.ts.map +1 -0
  40. package/dist/cli/commands/ship/publisher.js +75 -0
  41. package/dist/cli/commands/ship/publisher.js.map +1 -0
  42. package/dist/cli/commands/ship/rules/confidence-rules.d.ts +48 -0
  43. package/dist/cli/commands/ship/rules/confidence-rules.d.ts.map +1 -0
  44. package/dist/cli/commands/ship/rules/confidence-rules.js +122 -0
  45. package/dist/cli/commands/ship/rules/confidence-rules.js.map +1 -0
  46. package/dist/cli/commands/ship/rules/quality-rules.d.ts +25 -0
  47. package/dist/cli/commands/ship/rules/quality-rules.d.ts.map +1 -0
  48. package/dist/cli/commands/ship/rules/quality-rules.js +134 -0
  49. package/dist/cli/commands/ship/rules/quality-rules.js.map +1 -0
  50. package/dist/cli/commands/ship/rules/version-rules.d.ts +24 -0
  51. package/dist/cli/commands/ship/rules/version-rules.d.ts.map +1 -0
  52. package/dist/cli/commands/ship/rules/version-rules.js +75 -0
  53. package/dist/cli/commands/ship/rules/version-rules.js.map +1 -0
  54. package/dist/cli/commands/ship/versioner.d.ts +12 -0
  55. package/dist/cli/commands/ship/versioner.d.ts.map +1 -0
  56. package/dist/cli/commands/ship/versioner.js +92 -0
  57. package/dist/cli/commands/ship/versioner.js.map +1 -0
  58. package/dist/cli/index.js +31 -1
  59. package/dist/cli/index.js.map +1 -1
  60. package/dist/cli-new/commands/export.d.ts +15 -0
  61. package/dist/cli-new/commands/export.d.ts.map +1 -0
  62. package/dist/cli-new/commands/export.js +107 -0
  63. package/dist/cli-new/commands/export.js.map +1 -0
  64. package/dist/cli-new/commands/query.d.ts +14 -0
  65. package/dist/cli-new/commands/query.d.ts.map +1 -0
  66. package/dist/cli-new/commands/query.js +120 -0
  67. package/dist/cli-new/commands/query.js.map +1 -0
  68. package/dist/cli-new/commands/server.d.ts +13 -0
  69. package/dist/cli-new/commands/server.d.ts.map +1 -0
  70. package/dist/cli-new/commands/server.js +94 -0
  71. package/dist/cli-new/commands/server.js.map +1 -0
  72. package/dist/cli-new/index.d.ts +11 -0
  73. package/dist/cli-new/index.d.ts.map +1 -0
  74. package/dist/cli-new/index.js +63 -0
  75. package/dist/cli-new/index.js.map +1 -0
  76. package/dist/cli-new/types/index.d.ts +88 -0
  77. package/dist/cli-new/types/index.d.ts.map +1 -0
  78. package/dist/cli-new/types/index.js +7 -0
  79. package/dist/cli-new/types/index.js.map +1 -0
  80. package/dist/domain/entities/CodeGraph.d.ts +134 -0
  81. package/dist/domain/entities/CodeGraph.d.ts.map +1 -0
  82. package/dist/domain/entities/CodeGraph.js +316 -0
  83. package/dist/domain/entities/CodeGraph.js.map +1 -0
  84. package/dist/domain/entities/Dependency.d.ts +78 -0
  85. package/dist/domain/entities/Dependency.d.ts.map +1 -0
  86. package/dist/domain/entities/Dependency.js +132 -0
  87. package/dist/domain/entities/Dependency.js.map +1 -0
  88. package/dist/domain/entities/Module.d.ts +75 -0
  89. package/dist/domain/entities/Module.d.ts.map +1 -0
  90. package/dist/domain/entities/Module.js +151 -0
  91. package/dist/domain/entities/Module.js.map +1 -0
  92. package/dist/domain/entities/Project.d.ts +50 -0
  93. package/dist/domain/entities/Project.d.ts.map +1 -0
  94. package/dist/domain/entities/Project.js +99 -0
  95. package/dist/domain/entities/Project.js.map +1 -0
  96. package/dist/domain/entities/Symbol.d.ts +75 -0
  97. package/dist/domain/entities/Symbol.d.ts.map +1 -0
  98. package/dist/domain/entities/Symbol.js +130 -0
  99. package/dist/domain/entities/Symbol.js.map +1 -0
  100. package/dist/domain/events/DomainEvent.d.ts +76 -0
  101. package/dist/domain/events/DomainEvent.d.ts.map +1 -0
  102. package/dist/domain/events/DomainEvent.js +153 -0
  103. package/dist/domain/events/DomainEvent.js.map +1 -0
  104. package/dist/domain/index.d.ts +10 -0
  105. package/dist/domain/index.d.ts.map +1 -0
  106. package/dist/domain/index.js +18 -0
  107. package/dist/domain/index.js.map +1 -0
  108. package/dist/domain/repositories/CodeGraphRepository.d.ts +58 -0
  109. package/dist/domain/repositories/CodeGraphRepository.d.ts.map +1 -0
  110. package/dist/domain/repositories/CodeGraphRepository.js +37 -0
  111. package/dist/domain/repositories/CodeGraphRepository.js.map +1 -0
  112. package/dist/domain/services/CodeGraphBuilder.d.ts +50 -0
  113. package/dist/domain/services/CodeGraphBuilder.d.ts.map +1 -0
  114. package/dist/domain/services/CodeGraphBuilder.js +121 -0
  115. package/dist/domain/services/CodeGraphBuilder.js.map +1 -0
  116. package/dist/infrastructure/parser/implementations/GoParser.d.ts +25 -0
  117. package/dist/infrastructure/parser/implementations/GoParser.d.ts.map +1 -0
  118. package/dist/infrastructure/parser/implementations/GoParser.js +158 -0
  119. package/dist/infrastructure/parser/implementations/GoParser.js.map +1 -0
  120. package/dist/infrastructure/parser/implementations/PythonParser.d.ts +30 -0
  121. package/dist/infrastructure/parser/implementations/PythonParser.d.ts.map +1 -0
  122. package/dist/infrastructure/parser/implementations/PythonParser.js +201 -0
  123. package/dist/infrastructure/parser/implementations/PythonParser.js.map +1 -0
  124. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts +63 -0
  125. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts.map +1 -0
  126. package/dist/infrastructure/parser/implementations/TypeScriptParser.js +420 -0
  127. package/dist/infrastructure/parser/implementations/TypeScriptParser.js.map +1 -0
  128. package/dist/infrastructure/parser/index.d.ts +13 -0
  129. package/dist/infrastructure/parser/index.d.ts.map +1 -0
  130. package/dist/infrastructure/parser/index.js +32 -0
  131. package/dist/infrastructure/parser/index.js.map +1 -0
  132. package/dist/infrastructure/parser/interfaces/ParserBase.d.ts +124 -0
  133. package/dist/infrastructure/parser/interfaces/ParserBase.d.ts.map +1 -0
  134. package/dist/infrastructure/parser/interfaces/ParserBase.js +200 -0
  135. package/dist/infrastructure/parser/interfaces/ParserBase.js.map +1 -0
  136. package/dist/infrastructure/parser/registry/ParserRegistry.d.ts +68 -0
  137. package/dist/infrastructure/parser/registry/ParserRegistry.d.ts.map +1 -0
  138. package/dist/infrastructure/parser/registry/ParserRegistry.js +116 -0
  139. package/dist/infrastructure/parser/registry/ParserRegistry.js.map +1 -0
  140. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts +44 -0
  141. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts.map +1 -0
  142. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js +129 -0
  143. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js.map +1 -0
  144. package/dist/infrastructure/repositories/index.d.ts +3 -0
  145. package/dist/infrastructure/repositories/index.d.ts.map +1 -0
  146. package/dist/infrastructure/repositories/index.js +7 -0
  147. package/dist/infrastructure/repositories/index.js.map +1 -0
  148. package/dist/infrastructure/storage/StorageFactory.d.ts +53 -0
  149. package/dist/infrastructure/storage/StorageFactory.d.ts.map +1 -0
  150. package/dist/infrastructure/storage/StorageFactory.js +150 -0
  151. package/dist/infrastructure/storage/StorageFactory.js.map +1 -0
  152. package/dist/infrastructure/storage/adapters/FileSystemStorage.d.ts +52 -0
  153. package/dist/infrastructure/storage/adapters/FileSystemStorage.d.ts.map +1 -0
  154. package/dist/infrastructure/storage/adapters/FileSystemStorage.js +315 -0
  155. package/dist/infrastructure/storage/adapters/FileSystemStorage.js.map +1 -0
  156. package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts +52 -0
  157. package/dist/infrastructure/storage/adapters/KuzuDBStorage.d.ts.map +1 -0
  158. package/dist/infrastructure/storage/adapters/KuzuDBStorage.js +235 -0
  159. package/dist/infrastructure/storage/adapters/KuzuDBStorage.js.map +1 -0
  160. package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts +37 -0
  161. package/dist/infrastructure/storage/adapters/MemoryStorage.d.ts.map +1 -0
  162. package/dist/infrastructure/storage/adapters/MemoryStorage.js +229 -0
  163. package/dist/infrastructure/storage/adapters/MemoryStorage.js.map +1 -0
  164. package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts +49 -0
  165. package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts.map +1 -0
  166. package/dist/infrastructure/storage/adapters/Neo4jStorage.js +222 -0
  167. package/dist/infrastructure/storage/adapters/Neo4jStorage.js.map +1 -0
  168. package/dist/infrastructure/storage/index.d.ts +6 -0
  169. package/dist/infrastructure/storage/index.d.ts.map +1 -0
  170. package/dist/infrastructure/storage/index.js +13 -0
  171. package/dist/infrastructure/storage/index.js.map +1 -0
  172. package/dist/infrastructure/storage/interfaces/StorageBase.d.ts +76 -0
  173. package/dist/infrastructure/storage/interfaces/StorageBase.d.ts.map +1 -0
  174. package/dist/infrastructure/storage/interfaces/StorageBase.js +116 -0
  175. package/dist/infrastructure/storage/interfaces/StorageBase.js.map +1 -0
  176. package/dist/interface/config/index.d.ts +102 -0
  177. package/dist/interface/config/index.d.ts.map +1 -0
  178. package/dist/interface/config/index.js +7 -0
  179. package/dist/interface/config/index.js.map +1 -0
  180. package/dist/interface/types/index.d.ts +425 -0
  181. package/dist/interface/types/index.d.ts.map +1 -0
  182. package/dist/interface/types/index.js +8 -0
  183. package/dist/interface/types/index.js.map +1 -0
  184. package/dist/interface/types/parser.d.ts +103 -0
  185. package/dist/interface/types/parser.d.ts.map +1 -0
  186. package/dist/interface/types/parser.js +7 -0
  187. package/dist/interface/types/parser.js.map +1 -0
  188. package/dist/interface/types/storage.d.ts +98 -0
  189. package/dist/interface/types/storage.d.ts.map +1 -0
  190. package/dist/interface/types/storage.js +7 -0
  191. package/dist/interface/types/storage.js.map +1 -0
  192. package/dist/orchestrator/test-linker.js +1 -1
  193. package/dist/orchestrator/test-linker.js.map +1 -1
  194. package/dist/server/CodeMapServer.d.ts +51 -0
  195. package/dist/server/CodeMapServer.d.ts.map +1 -0
  196. package/dist/server/CodeMapServer.js +146 -0
  197. package/dist/server/CodeMapServer.js.map +1 -0
  198. package/dist/server/handlers/AnalysisHandler.d.ts +82 -0
  199. package/dist/server/handlers/AnalysisHandler.d.ts.map +1 -0
  200. package/dist/server/handlers/AnalysisHandler.js +196 -0
  201. package/dist/server/handlers/AnalysisHandler.js.map +1 -0
  202. package/dist/server/handlers/QueryHandler.d.ts +57 -0
  203. package/dist/server/handlers/QueryHandler.d.ts.map +1 -0
  204. package/dist/server/handlers/QueryHandler.js +260 -0
  205. package/dist/server/handlers/QueryHandler.js.map +1 -0
  206. package/dist/server/index.d.ts +7 -0
  207. package/dist/server/index.d.ts.map +1 -0
  208. package/dist/server/index.js +13 -0
  209. package/dist/server/index.js.map +1 -0
  210. package/dist/server/routes/api.d.ts +8 -0
  211. package/dist/server/routes/api.d.ts.map +1 -0
  212. package/dist/server/routes/api.js +372 -0
  213. package/dist/server/routes/api.js.map +1 -0
  214. package/dist/server/types/index.d.ts +171 -0
  215. package/dist/server/types/index.d.ts.map +1 -0
  216. package/dist/server/types/index.js +7 -0
  217. package/dist/server/types/index.js.map +1 -0
  218. package/dist/types/index.d.ts +6 -372
  219. package/dist/types/index.d.ts.map +1 -1
  220. package/dist/types/index.js +9 -3
  221. package/dist/types/index.js.map +1 -1
  222. package/docs/AI_ASSISTANT_SETUP.md +68 -0
  223. package/docs/PUBLISHING.md +472 -0
  224. package/docs/README.md +37 -0
  225. package/docs/SETUP_GUIDE.md +91 -5
  226. package/docs/ai-guide/COMMANDS.md +403 -0
  227. package/docs/ai-guide/INTEGRATION.md +513 -0
  228. package/docs/ai-guide/OUTPUT.md +465 -0
  229. package/docs/ai-guide/PATTERNS.md +409 -0
  230. package/docs/ai-guide/PROMPTS.md +414 -0
  231. package/docs/ai-guide/QUICKSTART.md +114 -0
  232. package/docs/ai-guide/README.md +66 -0
  233. package/docs/archive/AI_INTEGRATION_GUIDE_ARCHIVED.md +7 -1
  234. package/docs/archive/ARCHIVE.md +39 -0
  235. package/docs/archive/MYCLAUDE_GUIDE.md +305 -0
  236. package/docs/archive/PUBLISH_NPM_DESIGN_V1.md +6 -0
  237. package/docs/archive/PUBLISH_NPM_DESIGN_V2.md +6 -0
  238. package/docs/archive/README.md +29 -0
  239. package/docs/archive/TASK_DESIGN_COVERAGE_REPORT.md +6 -0
  240. package/docs/archive/TEST_SUMMARY.md +140 -0
  241. package/docs/archive/comprehensive_test_report.md +337 -0
  242. package/docs/{CI_GATEWAY_DESIGN.md → archive/design-docs/CI_GATEWAY_DESIGN.md} +6 -0
  243. package/docs/{PUBLISH_NPM_DESIGN_FINAL.md → archive/design-docs/PUBLISH_NPM_DESIGN_FINAL.md} +7 -1
  244. package/docs/{REFACTOR_ARCHITECTURE_OVERVIEW.md → archive/design-docs/REFACTOR_ARCHITECTURE_OVERVIEW.md} +8 -2
  245. package/docs/{REFACTOR_CONFIDENCE_DESIGN.md → archive/design-docs/REFACTOR_CONFIDENCE_DESIGN.md} +6 -0
  246. package/docs/{REFACTOR_GIT_ANALYZER_DESIGN.md → archive/design-docs/REFACTOR_GIT_ANALYZER_DESIGN.md} +8 -2
  247. package/docs/{REFACTOR_ORCHESTRATOR_DESIGN.md → archive/design-docs/REFACTOR_ORCHESTRATOR_DESIGN.md} +6 -0
  248. package/docs/{REFACTOR_RESULT_FUSION_DESIGN.md → archive/design-docs/REFACTOR_RESULT_FUSION_DESIGN.md} +6 -0
  249. package/docs/{REFACTOR_TEST_LINKER_DESIGN.md → archive/design-docs/REFACTOR_TEST_LINKER_DESIGN.md} +6 -0
  250. package/docs/archive/myclaude.md +1084 -0
  251. package/docs/archive/plans/2026-03-14-go-language-support-design.md +92 -0
  252. package/docs/{REFACTOR_REQUIREMENTS.md → archive/product-specs/REFACTOR_REQUIREMENTS.md} +11 -5
  253. package/docs/archive/scenario-2-deps-analysis.md +353 -0
  254. package/docs/design-docs/README.md +26 -0
  255. package/docs/exec-plans/MVP3-IMPLEMENTATION-ROADMAP.md +524 -0
  256. package/docs/exec-plans/README.md +29 -0
  257. package/docs/exec-plans/active/.gitkeep +0 -0
  258. package/docs/exec-plans/completed/.gitkeep +0 -0
  259. package/docs/{plans/POST_TASK_PLAN.md → exec-plans/completed/2026-03-03-post-task-plan.md} +9 -3
  260. package/docs/exec-plans/completed/harness-engineering-rollout.md +184 -0
  261. package/docs/exec-plans/tech-debt/.gitkeep +0 -0
  262. package/docs/exec-plans/tech-debt/2026-03-15-lint-guardrail-gap.md +30 -0
  263. package/docs/generated/README.md +19 -0
  264. package/docs/product-specs/MVP3-ARCHITECTURE-COMPARISON.md +504 -0
  265. package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-PRD.md +322 -0
  266. package/docs/product-specs/MVP3-ARCHITECTURE-REDESIGN-TECH-PRD.md +1374 -0
  267. package/docs/product-specs/README.md +22 -0
  268. package/docs/references/README.md +15 -0
  269. package/docs/references/tmp.md +527 -0
  270. package/docs/rules/README.md +16 -0
  271. package/docs/rules/architecture-guardrails.md +349 -0
  272. package/docs/rules/code-quality-redlines.md +321 -0
  273. package/docs/rules/deployment.md +23 -0
  274. package/docs/rules/engineering-with-codex-openai.md +202 -0
  275. package/docs/rules/pre-release-checklist.md +426 -0
  276. package/docs/rules/testing.md +73 -0
  277. package/docs/rules/validation.md +39 -0
  278. package/package.json +26 -7
  279. package/scripts/.githooks/commit-msg +31 -0
  280. package/scripts/.githooks/pre-commit +55 -0
  281. package/scripts/benchmark.ts +209 -0
  282. package/scripts/hooks/commit-msg +24 -0
  283. package/scripts/hooks/install-hooks.sh +29 -0
  284. package/scripts/hooks/pre-commit +60 -0
  285. package/scripts/pre-release-check.js +717 -0
  286. package/scripts/release.sh +142 -0
  287. package/scripts/run-benchmark.sh +29 -0
  288. package/scripts/validate-ai-docs.js +294 -0
  289. package/scripts/validate-docs.js +238 -0
  290. package/scripts/validate-pack.js +86 -0
  291. package/dist/ai/claude.d.ts +0 -38
  292. package/dist/ai/claude.d.ts.map +0 -1
  293. package/dist/ai/claude.js +0 -169
  294. package/dist/ai/claude.js.map +0 -1
  295. package/dist/ai/codex.d.ts +0 -38
  296. package/dist/ai/codex.d.ts.map +0 -1
  297. package/dist/ai/codex.js +0 -169
  298. package/dist/ai/codex.js.map +0 -1
  299. package/dist/ai/factory.d.ts +0 -48
  300. package/dist/ai/factory.d.ts.map +0 -1
  301. package/dist/ai/factory.js +0 -95
  302. package/dist/ai/factory.js.map +0 -1
  303. package/dist/ai/index.d.ts +0 -12
  304. package/dist/ai/index.d.ts.map +0 -1
  305. package/dist/ai/index.js +0 -29
  306. package/dist/ai/index.js.map +0 -1
  307. package/dist/ai/provider.d.ts +0 -70
  308. package/dist/ai/provider.d.ts.map +0 -1
  309. package/dist/ai/provider.js +0 -31
  310. package/dist/ai/provider.js.map +0 -1
  311. package/dist/ai/subagent-caller.d.ts +0 -90
  312. package/dist/ai/subagent-caller.d.ts.map +0 -1
  313. package/dist/ai/subagent-caller.js +0 -280
  314. package/dist/ai/subagent-caller.js.map +0 -1
  315. package/dist/ai/types.d.ts +0 -70
  316. package/dist/ai/types.d.ts.map +0 -1
  317. package/dist/ai/types.js +0 -5
  318. package/dist/ai/types.js.map +0 -1
  319. package/dist/generator/ai-overview.d.ts +0 -51
  320. package/dist/generator/ai-overview.d.ts.map +0 -1
  321. package/dist/generator/ai-overview.js +0 -160
  322. package/dist/generator/ai-overview.js.map +0 -1
  323. package/dist/orchestrator/ai-feed-generator.d.ts +0 -210
  324. package/dist/orchestrator/ai-feed-generator.d.ts.map +0 -1
  325. package/dist/orchestrator/ai-feed-generator.js +0 -377
  326. package/dist/orchestrator/ai-feed-generator.js.map +0 -1
  327. package/docs/OMC_TEAM_DEBUG_REPORT.md +0 -285
  328. /package/docs/{plans/archive → exec-plans/completed}/2026-03-03-deps-path-extension-fix.md +0 -0
@@ -0,0 +1,202 @@
1
+ # 基于 Codex 的工程落地规则
2
+
3
+ > 目标:把 OpenAI《Engineering with Codex》里的高信号原则,转成当前 CodeMap 仓库可执行的开发与交付规则。
4
+ > 适用范围:本仓库内使用 Codex / Claude / 其他 agent 进行分析、修改、验证、提交流程。
5
+
6
+ ## 1. 先说边界
7
+
8
+ - 本项目当前主要交付形态是 npm 包与 CLI,不是长期运行的 Web 服务。
9
+ - 因此这里强调的是 `CLI` / `CI` 护栏,而不是 preview 环境或部署沙箱。
10
+ - 涉及长期稳定知识时,优先写入仓库文档与生成物;不要把关键约束留在聊天记录、口头约定或临时笔记里。
11
+
12
+ ## 2. 核心原则
13
+
14
+ - 人类掌舵,agent 执行:人类负责定义目标、限制、DoD、依赖和验收;agent 负责检索、实现、验证和补文档。
15
+ - 地图优于手册:入口文档保持短小,只做路由;细节下沉到 `ARCHITECTURE.md`、`docs/rules/`、`docs/design-docs/`、`docs/exec-plans/`。
16
+ - 仓库是记录系统:规则、设计权衡、执行计划、生成产物、失败复盘都应进入版本控制。
17
+ - 检索优先于记忆:优先使用 `node dist/cli/index.js query|analyze|deps|impact` 获取事实,再回退到 `rg`、`find`、直接读文件。
18
+ - 规则优先编码:重复出现的评审意见、输出约束、结构边界,优先落为 CLI 子命令、hook、CI 检查或生成契约,而不是停留在 prose。
19
+
20
+ ## 3. 渐进式上下文披露(Harness 规范)
21
+
22
+ **原则**:不向 AI 提供超过当前任务决策所需的信息,避免注意力稀释。
23
+
24
+ **上下文层级**(AI 按优先级读取):
25
+
26
+ 1. **T0-地图层**(始终提供):架构说明、类型定义、关键约束文件
27
+ - `AGENTS.md`(仓库级强约束)
28
+ - `CLAUDE.md`(执行手册)
29
+ - `src/types/index.ts`(核心类型)
30
+
31
+ 2. **T1-任务相关层**(动态检索):通过 CodeMap CLI 或文件路径匹配提供
32
+ - 当前修改文件的依赖图谱(直接上下游)
33
+ - 相关测试文件(同名 `.test.ts` 或 `.spec.ts`)
34
+ - 接口定义(如果实现类,提供接口)
35
+
36
+ 3. **T2-按需获取层**(工具调用):AI 明确请求时才提供
37
+ - 具体业务逻辑实现细节
38
+ - 历史提交记录
39
+ - 第三方库文档
40
+
41
+ **禁止行为**:不要将整个 `node_modules` 目录或上千行无关代码粘贴给 AI。
42
+
43
+ ## 4. 当前项目的 CLI 护栏
44
+
45
+ - 仓库内调试与验证优先使用 `node dist/cli/index.js <command>`,因为当前真实 CLI 入口是 `dist/cli/index.js`。
46
+ - 需求澄清、影响分析、引用定位优先走 `query`、`analyze`、`deps`、`impact`,不要直接全仓漫游。
47
+ - 修改 `analyze`、`query`、`ci`、`workflow` 等高影响命令时,至少验证:
48
+ - `--help` 输出与文档示例一致;
49
+ - 受影响的真实子命令可以在当前仓库运行;
50
+ - 若涉及机器输出,`--output-mode machine --json` 仍保持纯 JSON 契约。
51
+ - 若改动会影响 agent 执行手册、README 示例、测试事实或入口路由,先执行 `npm run docs:check`。
52
+ - 若希望通过统一 CLI 护栏入口执行同一检查,使用 `node dist/cli/index.js ci check-docs-sync`。
53
+ - 涉及发布边界时,再补 `npm run build` 与 `npm run validate-pack`;不要把本地临时产物当成发布事实。
54
+
55
+ ## 5. 当前项目的 CI 护栏
56
+
57
+ - 本地护栏:
58
+ - `.githooks/pre-commit` 会执行变更相关测试、文件头检查,并尝试生成 AI feed。
59
+ - 当变更涉及 README、`docs/`、CLI 入口、测试配置或 CI 配置时,`.githooks/pre-commit` 还会执行 `npm run docs:check`。
60
+ - `.githooks/commit-msg` 会校验 `[TAG] scope: message` 格式与单次 commit 文件数量。
61
+ - 服务端护栏:
62
+ - `.github/workflows/ci-gateway.yml` 会执行 `npm run docs:check`、`npm run typecheck`、`npm test`、`npm run build`,然后再通过 `node dist/cli/index.js ci ...` 执行 `check-docs-sync`、`check-commits`、`check-commit-size`、`check-headers`、`assess-risk`、`check-output-contract` 与 AI feed 同步检查。
63
+ - `.github/workflows/publish.yml` 会在发布前执行 `npm test` 与 `npm run build`。
64
+ - 仓库协议仍然禁止通过 `--no-verify`、关闭 hook、放宽阈值、删除检查项来"修复"问题。
65
+
66
+ ## 6. 代码生成红线详细规范(Harness 规范)
67
+
68
+ AI 生成代码时,以下模式触发**硬性阻断**:
69
+
70
+ | 红线规则 | 检测方式 | 阻断标准 | 修复策略 |
71
+ |---------|---------|---------|---------|
72
+ | **敏感信息硬编码** | 正则检测 `"password"`, `"secret"`, `"api_key"`, `"token"` 字面量 | 生产代码中出现明文凭证 | 替换为 `process.env.XXX` 读取 + env 类型声明 |
73
+ | **`any` 类型使用** | `tsc --noImplicitAny` + ESLint `@typescript-eslint/no-explicit-any` | 非边界文件使用 `any` | 推导具体类型或使用 `unknown` + 类型守卫 |
74
+ | **函数超过 50 行** | 代码行数统计(不含空行和注释) | 单函数 >50 行 | 拆分为子函数,保持单一职责 |
75
+ | **未处理 Promise** | ESLint `@typescript-eslint/no-floating-promises` | 异步调用无 `await` 或错误处理 | 添加 `await` 或 `.catch()` 处理 |
76
+ | **`console.log` 遗留** | ESLint `no-console` | 非调试代码包含 `console.log` | 使用 `src/cli/runtime-logger.ts` 替代 |
77
+ | **未使用 import** | ESLint `@typescript-eslint/no-unused-vars` | 存在未引用 import | 自动删除或标记为使用 |
78
+ | **缺少文件头** | `.githooks/pre-commit` 检查 | TS 源文件缺少 `[META]` 或 `[WHY]` | 添加标准文件头注释 |
79
+
80
+ ## 7. 依赖流向规则(Harness 规范)
81
+
82
+ **第一性原理**:业务逻辑必须与实现细节解耦,确保可测试性和技术栈可替换性。
83
+
84
+ 当前项目采用 **MVP3 分层架构**(从上至下依赖):
85
+
86
+ ```
87
+ ┌─────────────────────────────────────────────────────────────┐
88
+ │ CLI Layer │
89
+ │ src/cli/ - 命令行接口,注册命令、参数解析、用户交互 │
90
+ ├─────────────────────────────────────────────────────────────┤
91
+ │ Server Layer │
92
+ │ src/server/ - HTTP API 服务器,RESTful 端点,Handler 处理 │
93
+ ├─────────────────────────────────────────────────────────────┤
94
+ │ Domain Layer │
95
+ │ src/domain/ - 核心业务逻辑,领域实体与服务 │
96
+ │ - entities/: Project, Module, Symbol, Dependency, CodeGraph │
97
+ │ - services/: CodeGraphBuilder │
98
+ │ - events/: DomainEvent │
99
+ │ - repositories/: 仓库接口 │
100
+ ├─────────────────────────────────────────────────────────────┤
101
+ │ Infrastructure Layer │
102
+ │ src/infrastructure/ - 技术实现细节 │
103
+ │ - storage/: FileSystemStorage, MemoryStorage, KuzuDBStorage, Neo4jStorage
104
+ │ - parser/: TypeScriptParser, GoParser, PythonParser, ParserRegistry
105
+ │ - repositories/: CodeGraphRepositoryImpl │
106
+ ├─────────────────────────────────────────────────────────────┤
107
+ │ Interface Layer │
108
+ │ src/interface/ - 类型定义与契约,跨层共享的接口 │
109
+ │ - types/: 核心类型定义 │
110
+ │ - config/: 配置接口 │
111
+ └─────────────────────────────────────────────────────────────┘
112
+ ```
113
+
114
+ **分层依赖规则**(严格自上而下):
115
+ - CLI → Server → Domain → Infrastructure → Interface
116
+ - **禁止跨层依赖**(如 Domain 层不得导入 CLI 模块)
117
+ - 同层内可以相互依赖
118
+
119
+ **Enforcement 规则**:
120
+ 1. **Domain 层禁止导入**:CLI、Server 层模块
121
+ 2. **Infrastructure 层禁止导入**:CLI、Server、Domain 中的具体实现
122
+ 3. **Server 层禁止导入**:CLI 层模块
123
+ 4. **跨层调用必须通过接口**,依赖 Interface 层契约
124
+
125
+ **历史架构说明**:
126
+ - MVP3 之前的旧架构(cli→orchestrator→core→parser→generator)已完成迁移
127
+ - 原有 `src/orchestrator/` 部分功能已整合到 Server 层和 CLI 层
128
+ - 原有 `src/core/`、`src/parser/`、`src/generator/` 已迁移到 Domain/Infrastructure 层
129
+
130
+ **违规检测**:使用 `dependency-cruiser` 或 CodeMap 自身的 `deps` 命令检查跨层依赖。
131
+
132
+ **违规示例**:
133
+ ```typescript
134
+ // ❌ 违规:Domain 层直接依赖 Infrastructure 具体实现
135
+ // src/domain/services/CodeGraphBuilder.ts
136
+ import { FileSystemStorage } from '../infrastructure/storage/FileSystemStorage'; // 错误!
137
+
138
+ // ✅ 合规:通过 Interface 层契约依赖
139
+ // src/domain/services/CodeGraphBuilder.ts
140
+ import type { IStorage } from '../interface/types/storage'; // 正确:只依赖接口
141
+ ```
142
+
143
+ ## 8. 文档与知识落点
144
+
145
+ - 规则变化:写入 `docs/rules/`
146
+ - 设计权衡:写入 `docs/design-docs/`
147
+ - 执行计划、复盘、技术债:写入 `docs/exec-plans/`
148
+ - 生成物、快照、报告:写入 `docs/generated/`
149
+ - 外部资料摘要:写入 `docs/references/`
150
+
151
+ 如果一次任务无法在 1 天内稳定完成,先拆成更小的执行单元;复杂任务的过程信息不要只留在对话里。
152
+
153
+ ## 9. 失败预演
154
+
155
+ 至少预演一个失败模式,而不是只验证 happy path。当前仓库已经出现过两类高信号风险:
156
+
157
+ - 文档漂移:例如测试规则曾与真实 `vitest.config.ts` 不一致,导致 agent 按旧规则执行错误命令。
158
+ - 文档检索盲区:当 `analyze documentation` 无法命中文档时,agent 需要立即回退到 `rg` / 直接读文件,并在适用时记录 CodeMap 缺陷,而不是假装"没问题"。
159
+
160
+ ## 10. 最小交付清单(更新版 - Harness 规范)
161
+
162
+ ### 10.1 交付内容
163
+
164
+ 每次 agent 交付至少要说明:
165
+
166
+ 1. **改了什么**:文件清单 + 变更摘要
167
+ 2. **为什么改**:需求背景 + 设计决策
168
+ 3. **按什么护栏验证**:执行的检查命令和结果
169
+ 4. **失败场景或风险模式**:至少一个预演的失败场景
170
+ 5. **可信度自评**(见 AGENTS.md 5.1 格式):确定/推测/需验证/风险
171
+ 6. **文档同步说明**:是否更新了相关文档及原因
172
+
173
+ ### 10.2 必须同步文档的触发条件
174
+
175
+ 以下情况**必须**更新对应文档:
176
+
177
+ | 你的改动 | 必须更新的文档 |
178
+ |---------|--------------|
179
+ | 新增/修改 CLI 命令或参数 | `CLAUDE.md`、`docs/rules/engineering-with-codex-openai.md` |
180
+ | 新增/修改配置项或 Schema | `README.md`、相关配置示例 |
181
+ | 修改类型定义/公共接口 | 接口注释、`docs/rules/` 中相关文档 |
182
+ | 修改 CI/CD 流程 | `docs/rules/validation.md`、`.github/workflows/` |
183
+ | 修改 Git Hooks | `docs/rules/validation.md` |
184
+ | 修改测试规则/覆盖率要求 | `docs/rules/testing.md` |
185
+ | 修改架构分层或依赖规则 | `ARCHITECTURE.md`、`docs/rules/architecture-guardrails.md` |
186
+ | 新增代码质量红线 | `docs/rules/code-quality-redlines.md` |
187
+ | 修改提交格式规范 | `AGENTS.md` |
188
+ | 发现文档与代码不符 | 立即修复对应文档 |
189
+
190
+ **原则**:若改动会影响其他开发者或 AI 的行为,就必须更新文档。
191
+
192
+ ## 11. 参考来源
193
+
194
+ - OpenAI Engineering: https://openai.com/engineering/codex/
195
+ - Harness Engineering 方法论:`docs/references/tmp.md`
196
+ - 仓库入口协议:`AGENTS.md`
197
+ - 最小执行手册:`CLAUDE.md`
198
+ - 架构地图:`ARCHITECTURE.md`
199
+ - 当前验证规则:`docs/rules/validation.md`
200
+ - 当前发布规则:`docs/rules/deployment.md`
201
+ - 代码质量红线:`docs/rules/code-quality-redlines.md`
202
+ - 架构护栏:`docs/rules/architecture-guardrails.md`
@@ -0,0 +1,426 @@
1
+ # 发布前检查清单 (Pre-Release Checklist)
2
+
3
+ > 本文档定义了每次发布前必须通过的强制护栏规则。
4
+ >
5
+ > **自动执行**: `npm run docs:check:pre-release`
6
+ > **CI 集成**: 发布工作流会自动运行此检查
7
+
8
+ ---
9
+
10
+ ## 🚨 关键原则
11
+
12
+ **任何发布都必须满足以下原则:**
13
+
14
+ 1. **AI友好文档完整性** - 所有AI文档必须存在且符合标准
15
+ 2. **版本一致性** - 所有文件中的版本号必须一致
16
+ 3. **llms.txt 标准** - 必须符合 llmstxt.org 规范
17
+ 4. **交叉引用有效性** - 所有内部链接必须有效
18
+ 5. **CHANGELOG 同步** - 必须包含当前版本的更新记录
19
+ 6. **OIDC 配置** - 使用 Trusted Publishing 方式发布
20
+
21
+ ---
22
+
23
+ ## 📋 检查项详情 (共10项)
24
+
25
+ ### 1. AI 文档完整性检查
26
+
27
+ **目标**: 确保所有必需的AI文档存在且大小在合理范围内
28
+
29
+ **检查文件**:
30
+ | 文件 | 必需 | 最小大小 | 最大大小 |
31
+ |------|------|---------|---------|
32
+ | `llms.txt` | ✅ | 100B | 10KB |
33
+ | `AI_GUIDE.md` | ✅ | 1KB | 50KB |
34
+ | `AI_DISCOVERY.md` | ✅ | 1KB | 50KB |
35
+ | `ai-document-index.yaml` | ✅ | 500B | 50KB |
36
+ | `docs/ai-guide/README.md` | ✅ | 500B | 30KB |
37
+ | `docs/ai-guide/QUICKSTART.md` | ✅ | 1KB | 50KB |
38
+ | `docs/ai-guide/COMMANDS.md` | ✅ | 2KB | 100KB |
39
+ | `docs/ai-guide/OUTPUT.md` | ✅ | 2KB | 100KB |
40
+ | `docs/ai-guide/PATTERNS.md` | ✅ | 2KB | 100KB |
41
+ | `docs/ai-guide/PROMPTS.md` | ✅ | 2KB | 100KB |
42
+ | `docs/ai-guide/INTEGRATION.md` | ✅ | 2KB | 150KB |
43
+
44
+ **限制**:
45
+ - 单个文件最大 150KB
46
+ - 所有AI文档总计最大 500KB
47
+
48
+ ### 2. llms.txt 标准格式检查
49
+
50
+ **目标**: 确保符合 [llmstxt.org](https://llmstxt.org/) 标准
51
+
52
+ **必需元素**:
53
+ - [ ] H1 标题 (`# CodeMap`)
54
+ - [ ] 摘要引用 (`> CodeMap 是...`)
55
+ - [ ] 文档章节 (`## 文档` 或 `## Docs`)
56
+ - [ ] 链接格式 (`[Title](./path.md)`)
57
+
58
+ **推荐元素**:
59
+ - [ ] 快速开始章节
60
+ - [ ] 完整文档章节
61
+ - [ ] 可选章节
62
+
63
+ **Token 效率**:
64
+ - llms.txt 估算 token 数必须 < 5,000
65
+
66
+ ### 3. 版本一致性检查
67
+
68
+ **目标**: 确保所有文件中的版本号一致
69
+
70
+ **检查文件**:
71
+ - `package.json` - `version` 字段
72
+ - `llms.txt` - 文中版本号
73
+ - `ai-document-index.yaml` - `project.version`
74
+ - `AI_GUIDE.md` - 文中版本号
75
+ - `AI_DISCOVERY.md` - 文中版本号 (可选)
76
+
77
+ **要求**:
78
+ - 所有文件版本号必须完全一致
79
+ - 必须符合语义化版本规范 (`x.x.x`)
80
+ - 预发布版本可包含后缀 (`0.2.0-beta.1`)
81
+
82
+ **版本同步清单**:
83
+
84
+ 更新版本号时必须同步以下文件:
85
+ - [ ] `package.json` - 主版本号
86
+ - [ ] `llms.txt` - 文中版本声明
87
+ - [ ] `ai-document-index.yaml` - `project.version`
88
+ - [ ] `AI_GUIDE.md` - 页眉版本信息
89
+ - [ ] `AI_DISCOVERY.md` - 页眉版本信息
90
+ - [ ] `CHANGELOG.md` - 版本条目
91
+
92
+ ### 4. 交叉引用有效性检查
93
+
94
+ **目标**: 确保文档间的引用关系完整
95
+
96
+ **必需引用**:
97
+ | 源文件 | 必须引用 |
98
+ |--------|---------|
99
+ | `llms.txt` | `AI_GUIDE.md`, `ai-document-index.yaml` |
100
+ | `AI_GUIDE.md` | `AI_DISCOVERY.md`, `ai-document-index.yaml`, `docs/ai-guide/` |
101
+ | `README.md` | `AI_GUIDE.md` |
102
+ | `AGENTS.md` | AI 友好文档规范 |
103
+ | `CLAUDE.md` | `AI_GUIDE.md`, `docs/ai-guide/` |
104
+
105
+ **链接验证**:
106
+ - 所有内部链接必须指向存在的文件
107
+ - 锚点链接 (`#section`) 会被忽略
108
+
109
+ ### 5. AI 友好性检查
110
+
111
+ **目标**: 确保 AI_GUIDE.md 符合 AI 阅读最佳实践
112
+
113
+ **检查项**:
114
+ - [ ] 层级标题 (`##`, `###`)
115
+ - [ ] 表格 (速查表)
116
+ - [ ] 代码块 (bash/typescript/json)
117
+ - [ ] TypeScript 接口定义
118
+ - [ ] 决策树/流程图
119
+ - [ ] 提示词模板
120
+
121
+ ### 6. CHANGELOG 同步检查
122
+
123
+ **目标**: 确保 CHANGELOG 包含当前版本的更新记录
124
+
125
+ **要求**:
126
+ - 必须包含当前版本号的条目
127
+ - 推荐包含 AI 文档相关更新记录
128
+
129
+ **格式示例**:
130
+ ```markdown
131
+ ## [0.2.0] - 2026-03-17 - MVP3 Architecture Release
132
+
133
+ ### 🐛 Bug Fixes
134
+ - ...
135
+
136
+ ### 📚 Documentation
137
+ - ...
138
+ ```
139
+
140
+ ### 7. 发布必需文件检查
141
+
142
+ **目标**: 确保发布到 NPM/GitHub 所需的文件都存在
143
+
144
+ **必需文件**:
145
+ | 文件 | 用途 | 状态 |
146
+ |------|------|------|
147
+ | `CHANGELOG.md` | GitHub Release 引用 | 必需 |
148
+ | `LICENSE` | NPM 包许可证 | 必需 |
149
+ | `README.md` | NPM 包主页展示 | 必需 |
150
+
151
+ ### 8. Git Tag 一致性检查
152
+
153
+ **目标**: 确保版本号与 git tag 一致
154
+
155
+ **检查项**:
156
+ - [ ] 本地 tag `v{x.x.x}` 是否存在
157
+ - [ ] Tag 是否指向当前 commit
158
+ - [ ] 远程 tag 是否已推送
159
+ - [ ] 当前分支是否为 main/master
160
+
161
+ **发布流程**:
162
+
163
+ ```bash
164
+ # 方式1: 使用发布脚本(推荐)
165
+ ./scripts/release.sh patch # patch/minor/major
166
+
167
+ # 方式2: 手动发布
168
+ # 1. 更新版本号
169
+ npm version patch # 自动创建 tag
170
+
171
+ # 2. 推送 tag
172
+ git push origin main --tags
173
+
174
+ # 3. GitHub Actions 自动完成:
175
+ # - 构建项目
176
+ # - 运行测试
177
+ # - 发布到 NPM (通过 OIDC)
178
+ # - 创建 GitHub Release
179
+ ```
180
+
181
+ **Tag 命名规范**:
182
+ - 格式: `v{x.x.x}` (例如: `v0.2.0`)
183
+ - 必须带有 `v` 前缀
184
+ - 必须符合语义化版本规范
185
+
186
+ **GitHub Release**:
187
+ - 由 GitHub Actions 自动创建
188
+ - 基于 CHANGELOG.md 生成 release notes
189
+ - 包含预发布版本检测 (版本号包含 `-`)
190
+
191
+ ### 9. OIDC 发布配置检查
192
+
193
+ **目标**: 确保使用 OIDC Trusted Publishing 方式发布
194
+
195
+ **配置要求**:
196
+
197
+ 1. **NPM 端配置**:
198
+ - 访问 `https://www.npmjs.com/package/@mycodemap/mycodemap/access`
199
+ - 添加 GitHub Actions 作为 Trusted Publisher:
200
+ - GitHub Organization: `yuanyuanyuan`
201
+ - GitHub Repository: `mycodemap`
202
+ - Workflow Name: `publish.yml`
203
+
204
+ 2. **GitHub Secrets 检查**:
205
+ - [ ] **不应设置** `NPM_TOKEN` secret
206
+ - [ ] 如果需要 Token 方式,使用 `NPM_TOKEN` 并确保是 **Automation** 类型
207
+
208
+ 3. **Workflow 权限配置**:
209
+ ```yaml
210
+ permissions:
211
+ contents: write # 用于创建 GitHub Release
212
+ id-token: write # 用于 OIDC trusted publishing (必需)
213
+ ```
214
+
215
+ 4. **发布命令**:
216
+ ```yaml
217
+ # 正确:使用 OIDC
218
+ - name: Publish to NPM
219
+ run: npm publish --access public --provenance
220
+
221
+ # 错误:设置 NODE_AUTH_TOKEN 会干扰 OIDC
222
+ # env:
223
+ # NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
224
+ ```
225
+
226
+ **验证命令**:
227
+ ```bash
228
+ # 检查是否设置了 NPM_TOKEN(OIDC 方式应该为空)
229
+ gh secret list | grep NPM_TOKEN
230
+
231
+ # 如果存在,删除它
232
+ gh secret remove NPM_TOKEN
233
+ ```
234
+
235
+ ### 10. YAML 索引有效性检查
236
+
237
+ **目标**: 确保 `ai-document-index.yaml` 结构完整
238
+
239
+ **必需字段**:
240
+ - [ ] `project` 根字段
241
+ - [ ] `project.version` 版本号
242
+ - [ ] `documentation` 文档配置
243
+ - [ ] `documentation.ai_documents` AI文档列表
244
+ - [ ] `cli_commands` 命令索引
245
+ - [ ] `navigation` 导航配置
246
+
247
+ **引用验证**:
248
+ - YAML 中引用的所有文件路径必须存在
249
+
250
+ ### 11. AGENTS.md 文档规范检查
251
+
252
+ **目标**: 确保 AGENTS.md 包含 AI 友好文档的强制要求
253
+
254
+ **必需章节**:
255
+ - [ ] AI 友好文档规范
256
+ - [ ] 结构清晰要求
257
+ - [ ] 决策树要求
258
+ - [ ] 速查表要求
259
+ - [ ] 代码可复现要求
260
+ - [ ] 类型定义要求
261
+ - [ ] 提示词模板要求
262
+
263
+ ---
264
+
265
+ ## 🔧 使用方法
266
+
267
+ ### 本地检查
268
+
269
+ ```bash
270
+ # 运行完整的发布前检查
271
+ npm run docs:check:pre-release
272
+
273
+ # 查看详细输出
274
+ npm run docs:check:pre-release 2>&1 | less
275
+ ```
276
+
277
+ ### CI/CD 集成
278
+
279
+ 发布工作流 (`.github/workflows/publish.yml`) 已自动集成此检查:
280
+
281
+ ```yaml
282
+ - name: Run pre-release AI documentation check
283
+ run: npm run docs:check:pre-release
284
+ ```
285
+
286
+ ### 发布前准备
287
+
288
+ **推荐方式: 使用发布脚本(一键完成)**
289
+
290
+ ```bash
291
+ # 使用发布脚本(自动处理版本、tag、推送)
292
+ ./scripts/release.sh patch # patch 版本 (0.2.0 -> 0.2.1)
293
+ ./scripts/release.sh minor # minor 版本 (0.2.0 -> 0.3.0)
294
+ ./scripts/release.sh major # major 版本 (0.2.0 -> 1.0.0)
295
+ ./scripts/release.sh 0.3.0 # 指定具体版本
296
+
297
+ # 脚本会自动:
298
+ # 1. 运行 npm run check:all
299
+ # 2. 更新 package.json 版本
300
+ # 3. 创建 git commit
301
+ # 4. 创建 git tag
302
+ # 5. 推送到远程仓库
303
+ # 6. 触发 GitHub Actions 发布 (OIDC)
304
+ ```
305
+
306
+ **手动方式(需要更多控制时)**
307
+
308
+ ```bash
309
+ # 1. 确保工作区干净
310
+ git status
311
+
312
+ # 2. 运行发布前检查
313
+ npm run docs:check:pre-release
314
+
315
+ # 3. 构建和测试
316
+ npm run check:all
317
+
318
+ # 4. 更新版本号(会自动创建 tag)
319
+ npm version patch|minor|major
320
+
321
+ # 5. 推送代码和 tag
322
+ git push origin main
323
+ git push origin --tags
324
+
325
+ # 6. GitHub Actions 自动完成发布
326
+ ```
327
+
328
+ ---
329
+
330
+ ## ❌ 常见问题
331
+
332
+ ### OIDC 发布失败
333
+
334
+ **问题**: GitHub Actions 发布失败,提示 403 Forbidden
335
+
336
+ **解决**:
337
+ 1. 检查 NPM 端是否配置了 Trusted Publisher:
338
+ - 访问 `https://www.npmjs.com/package/@mycodemap/mycodemap/access`
339
+ - 确认已添加 GitHub Actions 作为 Trusted Publisher
340
+ 2. 检查 workflow 权限:
341
+ - 确保有 `id-token: write`
342
+ 3. 检查是否意外设置了 `NPM_TOKEN`:
343
+ ```bash
344
+ gh secret list | grep NPM_TOKEN
345
+ # 如果存在,删除:gh secret remove NPM_TOKEN
346
+ ```
347
+ 4. 检查 workflow 中是否设置了 `NODE_AUTH_TOKEN` 环境变量(不应该设置)
348
+
349
+ ### 版本不一致
350
+
351
+ **问题**: 多个文件中的版本号不一致
352
+
353
+ **解决**:
354
+ ```bash
355
+ # 统一更新所有文件中的版本号
356
+ VERSION="0.3.0"
357
+
358
+ # 更新 package.json
359
+ npm version $VERSION --no-git-tag-version
360
+
361
+ # 手动更新其他文件中的版本号
362
+ # - llms.txt
363
+ # - AI_GUIDE.md
364
+ # - AI_DISCOVERY.md
365
+ # - ai-document-index.yaml
366
+ ```
367
+
368
+ ### llms.txt 格式错误
369
+
370
+ **问题**: llms.txt 不符合标准格式
371
+
372
+ **解决**:
373
+ 参考 [llmstxt.org](https://llmstxt.org/) 规范,确保包含:
374
+ - H1 标题
375
+ - 摘要引用 (blockquote)
376
+ - 文档章节
377
+
378
+ ### CHANGELOG 缺少条目
379
+
380
+ **问题**: CHANGELOG 缺少当前版本的条目
381
+
382
+ **解决**:
383
+ ```bash
384
+ # 在 CHANGELOG.md 顶部添加条目
385
+ ## [x.x.x] - $(date +%Y-%m-%d) - 简短描述
386
+
387
+ ### 🐛 Bug Fixes
388
+ - ...
389
+
390
+ ### ✨ Features
391
+ - ...
392
+
393
+ ### 📚 Documentation
394
+ - ...
395
+ ```
396
+
397
+ ---
398
+
399
+ ## 📊 检查脚本架构
400
+
401
+ ```
402
+ scripts/pre-release-check.js
403
+ ├── checkRequiredFiles() # 检查文件存在性和大小
404
+ ├── checkLlmsTxtStandards() # llms.txt 标准格式
405
+ ├── checkVersionConsistency() # 版本一致性
406
+ ├── checkCrossReferences() # 交叉引用有效性
407
+ ├── checkAIFriendliness() # AI 友好性
408
+ ├── checkChangelogSync() # CHANGELOG 同步
409
+ ├── checkYamlIndex() # YAML 索引有效性
410
+ ├── checkDocumentationStandards() # AGENTS.md 规范
411
+ ├── checkReleaseFiles() # 发布必需文件
412
+ └── checkGitTag() # Git Tag 一致性
413
+ ```
414
+
415
+ ---
416
+
417
+ ## 📝 变更历史
418
+
419
+ | 日期 | 版本 | 变更 |
420
+ |------|------|------|
421
+ | 2026-03-23 | 0.2.0 | 添加 OIDC Trusted Publishing 配置说明 |
422
+ | 2026-03-22 | 0.2.0 | 初始发布,基于 AI_FRIENDLINESS_AUDIT.md |
423
+
424
+ ---
425
+
426
+ *此文档是发布流程的强制要求,任何变更都需要同步更新检查脚本。*
@@ -0,0 +1,73 @@
1
+ # 测试规则
2
+
3
+ > 测试框架、覆盖率要求、基准测试
4
+
5
+ ---
6
+
7
+ ## 测试框架
8
+
9
+ | 项目 | 配置 |
10
+ |------|------|
11
+ | 框架 | Vitest |
12
+ | 覆盖率工具 | @vitest/coverage-v8 |
13
+ | 目标覆盖率 | >= 80% |
14
+
15
+ ## 测试文件位置
16
+
17
+ | 类型 | 路径 |
18
+ |------|------|
19
+ | 常规测试 | `src/**/*.test.ts` |
20
+ | 集成测试 | `tests/` 目录(如存在单独集成测试编排) |
21
+ | 基准测试 | `refer/benchmark-quality.test.ts` |
22
+
23
+ ## 测试配置
24
+
25
+ ```typescript
26
+ // vitest.config.ts
27
+ export default defineConfig({
28
+ test: {
29
+ globals: true,
30
+ environment: 'node',
31
+ include: ['src/**/*.test.ts'],
32
+ exclude: ['node_modules', 'dist', 'refer/**/*.test.ts'],
33
+ testTimeout: 10000,
34
+ hookTimeout: 10000,
35
+ pool: 'threads'
36
+ }
37
+ });
38
+ ```
39
+
40
+ ## 测试要求
41
+
42
+ - 所有新功能必须附带测试
43
+ - 测试文件命名:`* .test.ts`
44
+ - 使用 `describe` 和 `it` 组织测试用例
45
+ - 使用 `beforeEach`/`afterEach` 管理测试状态
46
+
47
+ ## 基准测试
48
+
49
+ - 基准查询集:`refer/benchmark-quality.ts`(30 条预定义查询)
50
+ - 基准测试配置:`vitest.benchmark.config.ts`
51
+ - 关键指标:
52
+ - Token 消耗降低 >= 40%
53
+ - Hit@8 >= 90%
54
+
55
+ ## 常用命令
56
+
57
+ ```bash
58
+ # 运行所有测试
59
+ npm test
60
+ npx vitest run
61
+
62
+ # 运行特定测试文件
63
+ npx vitest run src/orchestrator/__tests__/confidence.test.ts
64
+
65
+ # 运行与变更相关的测试
66
+ npx vitest run --changed
67
+
68
+ # 运行覆盖率
69
+ npx vitest run --coverage
70
+
71
+ # 监视模式
72
+ npx vitest watch
73
+ ```