@mycodemap/mycodemap 1.9.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +63 -978
  3. package/README.zh-CN.md +1096 -0
  4. package/dist/cli/commands/agent-metrics/human.d.ts +4 -0
  5. package/dist/cli/commands/agent-metrics/human.d.ts.map +1 -0
  6. package/dist/cli/commands/agent-metrics/human.js +134 -0
  7. package/dist/cli/commands/agent-metrics/human.js.map +1 -0
  8. package/dist/cli/commands/agent-metrics/index.d.ts +15 -0
  9. package/dist/cli/commands/agent-metrics/index.d.ts.map +1 -0
  10. package/dist/cli/commands/agent-metrics/index.js +116 -0
  11. package/dist/cli/commands/agent-metrics/index.js.map +1 -0
  12. package/dist/cli/commands/analyze-options.d.ts.map +1 -1
  13. package/dist/cli/commands/analyze-options.js +8 -0
  14. package/dist/cli/commands/analyze-options.js.map +1 -1
  15. package/dist/cli/commands/analyze.d.ts +3 -196
  16. package/dist/cli/commands/analyze.d.ts.map +1 -1
  17. package/dist/cli/commands/analyze.js +27 -1162
  18. package/dist/cli/commands/analyze.js.map +1 -1
  19. package/dist/cli/commands/benchmark.d.ts +8 -0
  20. package/dist/cli/commands/benchmark.d.ts.map +1 -0
  21. package/dist/cli/commands/benchmark.js +153 -0
  22. package/dist/cli/commands/benchmark.js.map +1 -0
  23. package/dist/cli/commands/complexity.d.ts.map +1 -1
  24. package/dist/cli/commands/complexity.js +62 -95
  25. package/dist/cli/commands/complexity.js.map +1 -1
  26. package/dist/cli/commands/deps.d.ts +3 -59
  27. package/dist/cli/commands/deps.d.ts.map +1 -1
  28. package/dist/cli/commands/deps.js +25 -331
  29. package/dist/cli/commands/deps.js.map +1 -1
  30. package/dist/cli/commands/doctor.d.ts +3 -0
  31. package/dist/cli/commands/doctor.d.ts.map +1 -0
  32. package/dist/cli/commands/doctor.js +34 -0
  33. package/dist/cli/commands/doctor.js.map +1 -0
  34. package/dist/cli/commands/env-contract.d.ts +3 -0
  35. package/dist/cli/commands/env-contract.d.ts.map +1 -0
  36. package/dist/cli/commands/env-contract.js +221 -0
  37. package/dist/cli/commands/env-contract.js.map +1 -0
  38. package/dist/cli/commands/generate.d.ts +19 -1
  39. package/dist/cli/commands/generate.d.ts.map +1 -1
  40. package/dist/cli/commands/generate.js +735 -89
  41. package/dist/cli/commands/generate.js.map +1 -1
  42. package/dist/cli/commands/impact.d.ts +4 -38
  43. package/dist/cli/commands/impact.d.ts.map +1 -1
  44. package/dist/cli/commands/impact.js +133 -375
  45. package/dist/cli/commands/impact.js.map +1 -1
  46. package/dist/cli/commands/init.d.ts +1 -0
  47. package/dist/cli/commands/init.d.ts.map +1 -1
  48. package/dist/cli/commands/init.js +61 -2
  49. package/dist/cli/commands/init.js.map +1 -1
  50. package/dist/cli/commands/preview.d.ts +3 -0
  51. package/dist/cli/commands/preview.d.ts.map +1 -0
  52. package/dist/cli/commands/preview.js +216 -0
  53. package/dist/cli/commands/preview.js.map +1 -0
  54. package/dist/cli/commands/query.d.ts +2 -20
  55. package/dist/cli/commands/query.d.ts.map +1 -1
  56. package/dist/cli/commands/query.js +23 -708
  57. package/dist/cli/commands/query.js.map +1 -1
  58. package/dist/cli/commands/watch-foreground.d.ts.map +1 -1
  59. package/dist/cli/commands/watch-foreground.js +5 -1
  60. package/dist/cli/commands/watch-foreground.js.map +1 -1
  61. package/dist/cli/config-loader.d.ts.map +1 -1
  62. package/dist/cli/config-loader.js +51 -13
  63. package/dist/cli/config-loader.js.map +1 -1
  64. package/dist/cli/doctor/check-agent.d.ts +3 -0
  65. package/dist/cli/doctor/check-agent.d.ts.map +1 -0
  66. package/dist/cli/doctor/check-agent.js +60 -0
  67. package/dist/cli/doctor/check-agent.js.map +1 -0
  68. package/dist/cli/doctor/check-env-contract.d.ts +3 -0
  69. package/dist/cli/doctor/check-env-contract.d.ts.map +1 -0
  70. package/dist/cli/doctor/check-env-contract.js +96 -0
  71. package/dist/cli/doctor/check-env-contract.js.map +1 -0
  72. package/dist/cli/doctor/check-ghost-commands.d.ts +3 -0
  73. package/dist/cli/doctor/check-ghost-commands.d.ts.map +1 -0
  74. package/dist/cli/doctor/check-ghost-commands.js +86 -0
  75. package/dist/cli/doctor/check-ghost-commands.js.map +1 -0
  76. package/dist/cli/doctor/check-native-deps.d.ts +3 -0
  77. package/dist/cli/doctor/check-native-deps.d.ts.map +1 -0
  78. package/dist/cli/doctor/check-native-deps.js +70 -0
  79. package/dist/cli/doctor/check-native-deps.js.map +1 -0
  80. package/dist/cli/doctor/check-workspace-drift.d.ts +3 -0
  81. package/dist/cli/doctor/check-workspace-drift.d.ts.map +1 -0
  82. package/dist/cli/doctor/check-workspace-drift.js +83 -0
  83. package/dist/cli/doctor/check-workspace-drift.js.map +1 -0
  84. package/dist/cli/doctor/formatter.d.ts +20 -0
  85. package/dist/cli/doctor/formatter.d.ts.map +1 -0
  86. package/dist/cli/doctor/formatter.js +91 -0
  87. package/dist/cli/doctor/formatter.js.map +1 -0
  88. package/dist/cli/doctor/index.d.ts +8 -0
  89. package/dist/cli/doctor/index.d.ts.map +1 -0
  90. package/dist/cli/doctor/index.js +9 -0
  91. package/dist/cli/doctor/index.js.map +1 -0
  92. package/dist/cli/doctor/orchestrator.d.ts +3 -0
  93. package/dist/cli/doctor/orchestrator.d.ts.map +1 -0
  94. package/dist/cli/doctor/orchestrator.js +40 -0
  95. package/dist/cli/doctor/orchestrator.js.map +1 -0
  96. package/dist/cli/doctor/types.d.ts +19 -0
  97. package/dist/cli/doctor/types.d.ts.map +1 -0
  98. package/dist/cli/doctor/types.js +4 -0
  99. package/dist/cli/doctor/types.js.map +1 -0
  100. package/dist/cli/env-contract/check.d.ts +18 -0
  101. package/dist/cli/env-contract/check.d.ts.map +1 -0
  102. package/dist/cli/env-contract/check.js +118 -0
  103. package/dist/cli/env-contract/check.js.map +1 -0
  104. package/dist/cli/env-contract/discovery.d.ts +12 -0
  105. package/dist/cli/env-contract/discovery.d.ts.map +1 -0
  106. package/dist/cli/env-contract/discovery.js +249 -0
  107. package/dist/cli/env-contract/discovery.js.map +1 -0
  108. package/dist/cli/env-contract/filters.d.ts +10 -0
  109. package/dist/cli/env-contract/filters.d.ts.map +1 -0
  110. package/dist/cli/env-contract/filters.js +23 -0
  111. package/dist/cli/env-contract/filters.js.map +1 -0
  112. package/dist/cli/env-contract/index.d.ts +6 -0
  113. package/dist/cli/env-contract/index.d.ts.map +1 -0
  114. package/dist/cli/env-contract/index.js +8 -0
  115. package/dist/cli/env-contract/index.js.map +1 -0
  116. package/dist/cli/env-contract/reminder-engine.d.ts +34 -0
  117. package/dist/cli/env-contract/reminder-engine.d.ts.map +1 -0
  118. package/dist/cli/env-contract/reminder-engine.js +51 -0
  119. package/dist/cli/env-contract/reminder-engine.js.map +1 -0
  120. package/dist/cli/env-contract/reminder-hook-runner.d.ts +45 -0
  121. package/dist/cli/env-contract/reminder-hook-runner.d.ts.map +1 -0
  122. package/dist/cli/env-contract/reminder-hook-runner.js +273 -0
  123. package/dist/cli/env-contract/reminder-hook-runner.js.map +1 -0
  124. package/dist/cli/env-contract/reminder-ledger.d.ts +11 -0
  125. package/dist/cli/env-contract/reminder-ledger.d.ts.map +1 -0
  126. package/dist/cli/env-contract/reminder-ledger.js +37 -0
  127. package/dist/cli/env-contract/reminder-ledger.js.map +1 -0
  128. package/dist/cli/env-contract/types.d.ts +48 -0
  129. package/dist/cli/env-contract/types.d.ts.map +1 -0
  130. package/dist/cli/env-contract/types.js +22 -0
  131. package/dist/cli/env-contract/types.js.map +1 -0
  132. package/dist/cli/env-contract/validation.d.ts +10 -0
  133. package/dist/cli/env-contract/validation.d.ts.map +1 -0
  134. package/dist/cli/env-contract/validation.js +116 -0
  135. package/dist/cli/env-contract/validation.js.map +1 -0
  136. package/dist/cli/first-run-guide.d.ts.map +1 -1
  137. package/dist/cli/first-run-guide.js +8 -3
  138. package/dist/cli/first-run-guide.js.map +1 -1
  139. package/dist/cli/index.js +94 -22
  140. package/dist/cli/index.js.map +1 -1
  141. package/dist/cli/init/assistant-plan.d.ts +14 -0
  142. package/dist/cli/init/assistant-plan.d.ts.map +1 -0
  143. package/dist/cli/init/assistant-plan.js +208 -0
  144. package/dist/cli/init/assistant-plan.js.map +1 -0
  145. package/dist/cli/init/detect.d.ts +28 -0
  146. package/dist/cli/init/detect.d.ts.map +1 -0
  147. package/dist/cli/init/detect.js +63 -0
  148. package/dist/cli/init/detect.js.map +1 -0
  149. package/dist/cli/init/env-contract-plan.d.ts +28 -0
  150. package/dist/cli/init/env-contract-plan.d.ts.map +1 -0
  151. package/dist/cli/init/env-contract-plan.js +184 -0
  152. package/dist/cli/init/env-contract-plan.js.map +1 -0
  153. package/dist/cli/init/manifest-extractors.d.ts +22 -0
  154. package/dist/cli/init/manifest-extractors.d.ts.map +1 -0
  155. package/dist/cli/init/manifest-extractors.js +185 -0
  156. package/dist/cli/init/manifest-extractors.js.map +1 -0
  157. package/dist/cli/init/profile-loader.d.ts +49 -0
  158. package/dist/cli/init/profile-loader.d.ts.map +1 -0
  159. package/dist/cli/init/profile-loader.js +107 -0
  160. package/dist/cli/init/profile-loader.js.map +1 -0
  161. package/dist/cli/init/profile-plan.d.ts +38 -0
  162. package/dist/cli/init/profile-plan.d.ts.map +1 -0
  163. package/dist/cli/init/profile-plan.js +120 -0
  164. package/dist/cli/init/profile-plan.js.map +1 -0
  165. package/dist/cli/init/profiles/generic.json +16 -0
  166. package/dist/cli/init/profiles/go.json +12 -0
  167. package/dist/cli/init/profiles/nodejs.json +16 -0
  168. package/dist/cli/init/profiles/python.json +17 -0
  169. package/dist/cli/init/profiles/rust.json +12 -0
  170. package/dist/cli/init/receipt.d.ts.map +1 -1
  171. package/dist/cli/init/receipt.js +107 -7
  172. package/dist/cli/init/receipt.js.map +1 -1
  173. package/dist/cli/init/reconciler.d.ts +10 -1
  174. package/dist/cli/init/reconciler.d.ts.map +1 -1
  175. package/dist/cli/init/reconciler.js +85 -15
  176. package/dist/cli/init/reconciler.js.map +1 -1
  177. package/dist/cli/interface-contract/commands/agent-metrics.d.ts +3 -0
  178. package/dist/cli/interface-contract/commands/agent-metrics.d.ts.map +1 -0
  179. package/dist/cli/interface-contract/commands/agent-metrics.js +217 -0
  180. package/dist/cli/interface-contract/commands/agent-metrics.js.map +1 -0
  181. package/dist/cli/interface-contract/commands/analyze.d.ts +3 -0
  182. package/dist/cli/interface-contract/commands/analyze.d.ts.map +1 -0
  183. package/dist/cli/interface-contract/commands/analyze.js +139 -0
  184. package/dist/cli/interface-contract/commands/analyze.js.map +1 -0
  185. package/dist/cli/interface-contract/commands/benchmark.d.ts +3 -0
  186. package/dist/cli/interface-contract/commands/benchmark.d.ts.map +1 -0
  187. package/dist/cli/interface-contract/commands/benchmark.js +108 -0
  188. package/dist/cli/interface-contract/commands/benchmark.js.map +1 -0
  189. package/dist/cli/interface-contract/commands/deps.d.ts +3 -0
  190. package/dist/cli/interface-contract/commands/deps.d.ts.map +1 -0
  191. package/dist/cli/interface-contract/commands/deps.js +130 -0
  192. package/dist/cli/interface-contract/commands/deps.js.map +1 -0
  193. package/dist/cli/interface-contract/commands/doctor.d.ts +3 -0
  194. package/dist/cli/interface-contract/commands/doctor.d.ts.map +1 -0
  195. package/dist/cli/interface-contract/commands/doctor.js +60 -0
  196. package/dist/cli/interface-contract/commands/doctor.js.map +1 -0
  197. package/dist/cli/interface-contract/commands/env-contract.d.ts +3 -0
  198. package/dist/cli/interface-contract/commands/env-contract.d.ts.map +1 -0
  199. package/dist/cli/interface-contract/commands/env-contract.js +168 -0
  200. package/dist/cli/interface-contract/commands/env-contract.js.map +1 -0
  201. package/dist/cli/interface-contract/commands/index.d.ts +12 -0
  202. package/dist/cli/interface-contract/commands/index.d.ts.map +1 -0
  203. package/dist/cli/interface-contract/commands/index.js +24 -0
  204. package/dist/cli/interface-contract/commands/index.js.map +1 -0
  205. package/dist/cli/interface-contract/commands/init.d.ts +3 -0
  206. package/dist/cli/interface-contract/commands/init.d.ts.map +1 -0
  207. package/dist/cli/interface-contract/commands/init.js +96 -0
  208. package/dist/cli/interface-contract/commands/init.js.map +1 -0
  209. package/dist/cli/interface-contract/commands/preview.d.ts +3 -0
  210. package/dist/cli/interface-contract/commands/preview.d.ts.map +1 -0
  211. package/dist/cli/interface-contract/commands/preview.js +118 -0
  212. package/dist/cli/interface-contract/commands/preview.js.map +1 -0
  213. package/dist/cli/interface-contract/commands/query.d.ts +3 -0
  214. package/dist/cli/interface-contract/commands/query.d.ts.map +1 -0
  215. package/dist/cli/interface-contract/commands/query.js +186 -0
  216. package/dist/cli/interface-contract/commands/query.js.map +1 -0
  217. package/dist/cli/interface-contract/index.d.ts +22 -0
  218. package/dist/cli/interface-contract/index.d.ts.map +1 -0
  219. package/dist/cli/interface-contract/index.js +41 -0
  220. package/dist/cli/interface-contract/index.js.map +1 -0
  221. package/dist/cli/interface-contract/schema.d.ts +30 -0
  222. package/dist/cli/interface-contract/schema.d.ts.map +1 -0
  223. package/dist/cli/interface-contract/schema.js +73 -0
  224. package/dist/cli/interface-contract/schema.js.map +1 -0
  225. package/dist/cli/interface-contract/types.d.ts +77 -0
  226. package/dist/cli/interface-contract/types.d.ts.map +1 -0
  227. package/dist/cli/interface-contract/types.js +4 -0
  228. package/dist/cli/interface-contract/types.js.map +1 -0
  229. package/dist/cli/output/apply-suggestion.d.ts +12 -0
  230. package/dist/cli/output/apply-suggestion.d.ts.map +1 -0
  231. package/dist/cli/output/apply-suggestion.js +29 -0
  232. package/dist/cli/output/apply-suggestion.js.map +1 -0
  233. package/dist/cli/output/error-codes.d.ts +24 -0
  234. package/dist/cli/output/error-codes.d.ts.map +1 -0
  235. package/dist/cli/output/error-codes.js +94 -0
  236. package/dist/cli/output/error-codes.js.map +1 -0
  237. package/dist/cli/output/errors.d.ts +14 -0
  238. package/dist/cli/output/errors.d.ts.map +1 -0
  239. package/dist/cli/output/errors.js +182 -0
  240. package/dist/cli/output/errors.js.map +1 -0
  241. package/dist/cli/output/index.d.ts +13 -0
  242. package/dist/cli/output/index.d.ts.map +1 -0
  243. package/dist/cli/output/index.js +11 -0
  244. package/dist/cli/output/index.js.map +1 -0
  245. package/dist/cli/output/mode.d.ts +12 -0
  246. package/dist/cli/output/mode.d.ts.map +1 -0
  247. package/dist/cli/output/mode.js +23 -0
  248. package/dist/cli/output/mode.js.map +1 -0
  249. package/dist/cli/output/progress.d.ts +9 -0
  250. package/dist/cli/output/progress.d.ts.map +1 -0
  251. package/dist/cli/output/progress.js +65 -0
  252. package/dist/cli/output/progress.js.map +1 -0
  253. package/dist/cli/output/render.d.ts +11 -0
  254. package/dist/cli/output/render.d.ts.map +1 -0
  255. package/dist/cli/output/render.js +18 -0
  256. package/dist/cli/output/render.js.map +1 -0
  257. package/dist/cli/output/types.d.ts +53 -0
  258. package/dist/cli/output/types.d.ts.map +1 -0
  259. package/dist/cli/output/types.js +14 -0
  260. package/dist/cli/output/types.js.map +1 -0
  261. package/dist/cli/output/wasm-fallback.d.ts +14 -0
  262. package/dist/cli/output/wasm-fallback.d.ts.map +1 -0
  263. package/dist/cli/output/wasm-fallback.js +92 -0
  264. package/dist/cli/output/wasm-fallback.js.map +1 -0
  265. package/dist/cli/preview/complexity-scanner.d.ts +21 -0
  266. package/dist/cli/preview/complexity-scanner.d.ts.map +1 -0
  267. package/dist/cli/preview/complexity-scanner.js +52 -0
  268. package/dist/cli/preview/complexity-scanner.js.map +1 -0
  269. package/dist/cli/preview/dependency-extractor.d.ts +38 -0
  270. package/dist/cli/preview/dependency-extractor.d.ts.map +1 -0
  271. package/dist/cli/preview/dependency-extractor.js +140 -0
  272. package/dist/cli/preview/dependency-extractor.js.map +1 -0
  273. package/dist/cli/preview/preview-renderer.d.ts +32 -0
  274. package/dist/cli/preview/preview-renderer.d.ts.map +1 -0
  275. package/dist/cli/preview/preview-renderer.js +54 -0
  276. package/dist/cli/preview/preview-renderer.js.map +1 -0
  277. package/dist/cli/storage-runtime.d.ts +7 -0
  278. package/dist/cli/storage-runtime.d.ts.map +1 -1
  279. package/dist/cli/storage-runtime.js +22 -0
  280. package/dist/cli/storage-runtime.js.map +1 -1
  281. package/dist/cli/tree-sitter-check.d.ts +6 -1
  282. package/dist/cli/tree-sitter-check.d.ts.map +1 -1
  283. package/dist/cli/tree-sitter-check.js +23 -1
  284. package/dist/cli/tree-sitter-check.js.map +1 -1
  285. package/dist/cli-new/index.js +1 -1
  286. package/dist/cli-new/index.js.map +1 -1
  287. package/dist/composition/parser-composition.d.ts +7 -0
  288. package/dist/composition/parser-composition.d.ts.map +1 -0
  289. package/dist/composition/parser-composition.js +15 -0
  290. package/dist/composition/parser-composition.js.map +1 -0
  291. package/dist/core/analyzer.d.ts.map +1 -1
  292. package/dist/core/analyzer.js +83 -67
  293. package/dist/core/analyzer.js.map +1 -1
  294. package/dist/core/ast-complexity-analyzer.d.ts +12 -6
  295. package/dist/core/ast-complexity-analyzer.d.ts.map +1 -1
  296. package/dist/core/ast-complexity-analyzer.js +368 -209
  297. package/dist/core/ast-complexity-analyzer.js.map +1 -1
  298. package/dist/core/file-discovery.d.ts +1 -1
  299. package/dist/core/file-discovery.d.ts.map +1 -1
  300. package/dist/core/file-discovery.js +3 -0
  301. package/dist/core/file-discovery.js.map +1 -1
  302. package/dist/core/global-index.d.ts +3 -1
  303. package/dist/core/global-index.d.ts.map +1 -1
  304. package/dist/core/global-index.js +69 -4
  305. package/dist/core/global-index.js.map +1 -1
  306. package/dist/domain/entities/CodeGraph.d.ts +3 -0
  307. package/dist/domain/entities/CodeGraph.d.ts.map +1 -1
  308. package/dist/domain/entities/CodeGraph.js +19 -2
  309. package/dist/domain/entities/CodeGraph.js.map +1 -1
  310. package/dist/domain/entities/Dependency.d.ts +5 -2
  311. package/dist/domain/entities/Dependency.d.ts.map +1 -1
  312. package/dist/domain/entities/Dependency.js +49 -3
  313. package/dist/domain/entities/Dependency.js.map +1 -1
  314. package/dist/domain/repositories/CodeGraphRepository.d.ts +5 -0
  315. package/dist/domain/repositories/CodeGraphRepository.d.ts.map +1 -1
  316. package/dist/domain/repositories/CodeGraphRepository.js.map +1 -1
  317. package/dist/execution/contract-tools/analyze.d.ts +205 -0
  318. package/dist/execution/contract-tools/analyze.d.ts.map +1 -0
  319. package/dist/execution/contract-tools/analyze.js +1215 -0
  320. package/dist/execution/contract-tools/analyze.js.map +1 -0
  321. package/dist/execution/contract-tools/deps.d.ts +62 -0
  322. package/dist/execution/contract-tools/deps.d.ts.map +1 -0
  323. package/dist/execution/contract-tools/deps.js +234 -0
  324. package/dist/execution/contract-tools/deps.js.map +1 -0
  325. package/dist/execution/contract-tools/index.d.ts +5 -0
  326. package/dist/execution/contract-tools/index.d.ts.map +1 -0
  327. package/dist/execution/contract-tools/index.js +7 -0
  328. package/dist/execution/contract-tools/index.js.map +1 -0
  329. package/dist/execution/contract-tools/query.d.ts +60 -0
  330. package/dist/execution/contract-tools/query.d.ts.map +1 -0
  331. package/dist/execution/contract-tools/query.js +532 -0
  332. package/dist/execution/contract-tools/query.js.map +1 -0
  333. package/dist/execution/contract-tools/types.d.ts +26 -0
  334. package/dist/execution/contract-tools/types.d.ts.map +1 -0
  335. package/dist/execution/contract-tools/types.js +32 -0
  336. package/dist/execution/contract-tools/types.js.map +1 -0
  337. package/dist/generator/index.d.ts.map +1 -1
  338. package/dist/generator/index.js +0 -3
  339. package/dist/generator/index.js.map +1 -1
  340. package/dist/infrastructure/parser/enhancers/TypeScriptTypeEnhancer.d.ts +12 -0
  341. package/dist/infrastructure/parser/enhancers/TypeScriptTypeEnhancer.d.ts.map +1 -0
  342. package/dist/infrastructure/parser/enhancers/TypeScriptTypeEnhancer.js +55 -0
  343. package/dist/infrastructure/parser/enhancers/TypeScriptTypeEnhancer.js.map +1 -0
  344. package/dist/infrastructure/parser/implementations/GoParser.d.ts +2 -1
  345. package/dist/infrastructure/parser/implementations/GoParser.d.ts.map +1 -1
  346. package/dist/infrastructure/parser/implementations/GoParser.js +13 -1
  347. package/dist/infrastructure/parser/implementations/GoParser.js.map +1 -1
  348. package/dist/infrastructure/parser/implementations/PythonTreeSitterParser.d.ts +114 -0
  349. package/dist/infrastructure/parser/implementations/PythonTreeSitterParser.d.ts.map +1 -0
  350. package/dist/infrastructure/parser/implementations/PythonTreeSitterParser.js +1022 -0
  351. package/dist/infrastructure/parser/implementations/PythonTreeSitterParser.js.map +1 -0
  352. package/dist/infrastructure/parser/implementations/TreeSitterParser.d.ts +78 -0
  353. package/dist/infrastructure/parser/implementations/TreeSitterParser.d.ts.map +1 -0
  354. package/dist/infrastructure/parser/implementations/TreeSitterParser.js +648 -0
  355. package/dist/infrastructure/parser/implementations/TreeSitterParser.js.map +1 -0
  356. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts +3 -55
  357. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts.map +1 -1
  358. package/dist/infrastructure/parser/implementations/TypeScriptParser.js +4 -411
  359. package/dist/infrastructure/parser/implementations/TypeScriptParser.js.map +1 -1
  360. package/dist/infrastructure/parser/index.d.ts +2 -0
  361. package/dist/infrastructure/parser/index.d.ts.map +1 -1
  362. package/dist/infrastructure/parser/index.js +9 -6
  363. package/dist/infrastructure/parser/index.js.map +1 -1
  364. package/dist/infrastructure/parser/interfaces/ParserBase.d.ts.map +1 -1
  365. package/dist/infrastructure/parser/interfaces/ParserBase.js +1 -0
  366. package/dist/infrastructure/parser/interfaces/ParserBase.js.map +1 -1
  367. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts +2 -0
  368. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts.map +1 -1
  369. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js +4 -0
  370. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js.map +1 -1
  371. package/dist/infrastructure/storage/StorageFactory.d.ts +5 -18
  372. package/dist/infrastructure/storage/StorageFactory.d.ts.map +1 -1
  373. package/dist/infrastructure/storage/StorageFactory.js +30 -98
  374. package/dist/infrastructure/storage/StorageFactory.js.map +1 -1
  375. package/dist/infrastructure/storage/adapters/SQLiteStorage.d.ts +13 -1
  376. package/dist/infrastructure/storage/adapters/SQLiteStorage.d.ts.map +1 -1
  377. package/dist/infrastructure/storage/adapters/SQLiteStorage.js +322 -76
  378. package/dist/infrastructure/storage/adapters/SQLiteStorage.js.map +1 -1
  379. package/dist/infrastructure/storage/adapters/sqlite-loader.d.ts +45 -0
  380. package/dist/infrastructure/storage/adapters/sqlite-loader.d.ts.map +1 -0
  381. package/dist/infrastructure/storage/adapters/sqlite-loader.js +266 -0
  382. package/dist/infrastructure/storage/adapters/sqlite-loader.js.map +1 -0
  383. package/dist/infrastructure/storage/community-helpers.d.ts +4 -0
  384. package/dist/infrastructure/storage/community-helpers.d.ts.map +1 -0
  385. package/dist/infrastructure/storage/community-helpers.js +392 -0
  386. package/dist/infrastructure/storage/community-helpers.js.map +1 -0
  387. package/dist/infrastructure/storage/graph-helpers.d.ts +22 -5
  388. package/dist/infrastructure/storage/graph-helpers.d.ts.map +1 -1
  389. package/dist/infrastructure/storage/graph-helpers.js +496 -91
  390. package/dist/infrastructure/storage/graph-helpers.js.map +1 -1
  391. package/dist/infrastructure/storage/index.d.ts +1 -1
  392. package/dist/infrastructure/storage/index.d.ts.map +1 -1
  393. package/dist/infrastructure/storage/index.js +1 -1
  394. package/dist/infrastructure/storage/index.js.map +1 -1
  395. package/dist/infrastructure/storage/interfaces/StorageBase.d.ts +2 -2
  396. package/dist/infrastructure/storage/interfaces/StorageBase.d.ts.map +1 -1
  397. package/dist/infrastructure/storage/interfaces/StorageBase.js.map +1 -1
  398. package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.d.ts +2 -0
  399. package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.d.ts.map +1 -1
  400. package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.js +52 -12
  401. package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.js.map +1 -1
  402. package/dist/infrastructure/storage/sqlite/schema.d.ts +2 -2
  403. package/dist/infrastructure/storage/sqlite/schema.d.ts.map +1 -1
  404. package/dist/infrastructure/storage/sqlite/schema.js +49 -1
  405. package/dist/infrastructure/storage/sqlite/schema.js.map +1 -1
  406. package/dist/interface/config/index.d.ts +5 -3
  407. package/dist/interface/config/index.d.ts.map +1 -1
  408. package/dist/interface/types/index.d.ts +37 -6
  409. package/dist/interface/types/index.d.ts.map +1 -1
  410. package/dist/interface/types/parser.d.ts +85 -0
  411. package/dist/interface/types/parser.d.ts.map +1 -1
  412. package/dist/interface/types/storage.d.ts +227 -10
  413. package/dist/interface/types/storage.d.ts.map +1 -1
  414. package/dist/orchestrator/agent-metrics-service.d.ts +126 -0
  415. package/dist/orchestrator/agent-metrics-service.d.ts.map +1 -0
  416. package/dist/orchestrator/agent-metrics-service.js +444 -0
  417. package/dist/orchestrator/agent-metrics-service.js.map +1 -0
  418. package/dist/orchestrator/types.d.ts +2 -0
  419. package/dist/orchestrator/types.d.ts.map +1 -1
  420. package/dist/orchestrator/types.js.map +1 -1
  421. package/dist/parser/enhancers/PythonTypeEnhancer.d.ts +26 -0
  422. package/dist/parser/enhancers/PythonTypeEnhancer.d.ts.map +1 -0
  423. package/dist/parser/enhancers/PythonTypeEnhancer.js +440 -0
  424. package/dist/parser/enhancers/PythonTypeEnhancer.js.map +1 -0
  425. package/dist/parser/implementations/smart-parser.d.ts.map +1 -1
  426. package/dist/parser/implementations/smart-parser.js +7 -69
  427. package/dist/parser/implementations/smart-parser.js.map +1 -1
  428. package/dist/parser/implementations/tree-sitter-loader.d.ts +18 -0
  429. package/dist/parser/implementations/tree-sitter-loader.d.ts.map +1 -0
  430. package/dist/parser/implementations/tree-sitter-loader.js +136 -0
  431. package/dist/parser/implementations/tree-sitter-loader.js.map +1 -0
  432. package/dist/parser/index.d.ts +5 -3
  433. package/dist/parser/index.d.ts.map +1 -1
  434. package/dist/parser/index.js +68 -6
  435. package/dist/parser/index.js.map +1 -1
  436. package/dist/parser/interfaces/IParser.d.ts +19 -6
  437. package/dist/parser/interfaces/IParser.d.ts.map +1 -1
  438. package/dist/parser/interfaces/IParser.js +2 -3
  439. package/dist/parser/interfaces/IParser.js.map +1 -1
  440. package/dist/server/handlers/AnalysisHandler.d.ts +13 -2
  441. package/dist/server/handlers/AnalysisHandler.d.ts.map +1 -1
  442. package/dist/server/handlers/AnalysisHandler.js +24 -0
  443. package/dist/server/handlers/AnalysisHandler.js.map +1 -1
  444. package/dist/server/handlers/QueryHandler.d.ts.map +1 -1
  445. package/dist/server/handlers/QueryHandler.js +11 -30
  446. package/dist/server/handlers/QueryHandler.js.map +1 -1
  447. package/dist/server/mcp/context-tool.d.ts +9 -0
  448. package/dist/server/mcp/context-tool.d.ts.map +1 -0
  449. package/dist/server/mcp/context-tool.js +257 -0
  450. package/dist/server/mcp/context-tool.js.map +1 -0
  451. package/dist/server/mcp/schema-adapter.d.ts +55 -0
  452. package/dist/server/mcp/schema-adapter.d.ts.map +1 -0
  453. package/dist/server/mcp/schema-adapter.js +409 -0
  454. package/dist/server/mcp/schema-adapter.js.map +1 -0
  455. package/dist/server/mcp/server.d.ts +3 -3
  456. package/dist/server/mcp/server.d.ts.map +1 -1
  457. package/dist/server/mcp/server.js +134 -20
  458. package/dist/server/mcp/server.js.map +1 -1
  459. package/dist/server/mcp/service.d.ts +6 -2
  460. package/dist/server/mcp/service.d.ts.map +1 -1
  461. package/dist/server/mcp/service.js +138 -36
  462. package/dist/server/mcp/service.js.map +1 -1
  463. package/dist/server/mcp/stdio-transport.d.ts +23 -0
  464. package/dist/server/mcp/stdio-transport.d.ts.map +1 -0
  465. package/dist/server/mcp/stdio-transport.js +101 -0
  466. package/dist/server/mcp/stdio-transport.js.map +1 -0
  467. package/dist/server/mcp/types.d.ts +133 -8
  468. package/dist/server/mcp/types.d.ts.map +1 -1
  469. package/dist/server/routes/api.d.ts.map +1 -1
  470. package/dist/server/routes/api.js +11 -2
  471. package/dist/server/routes/api.js.map +1 -1
  472. package/docs/AI_ASSISTANT_SETUP.md +281 -12
  473. package/docs/API.md +170 -0
  474. package/docs/CONFIGURATION.md +141 -0
  475. package/docs/DEVELOPMENT.md +96 -0
  476. package/docs/GETTING-STARTED.md +114 -0
  477. package/docs/README.md +40 -1
  478. package/docs/SETUP_GUIDE.md +60 -14
  479. package/docs/TESTING.md +81 -0
  480. package/docs/ai-guide/COMMANDS.md +68 -10
  481. package/docs/ai-guide/INTEGRATION.md +77 -10
  482. package/docs/ai-guide/OUTPUT.md +345 -9
  483. package/docs/ai-guide/PROMPTS.md +2 -2
  484. package/docs/ai-guide/QUICKSTART.md +28 -1
  485. package/docs/ai-guide/README.md +2 -2
  486. package/docs/archive/ideation/2026-04-15-executable-architecture-constitution-ideation-archive.md +70 -0
  487. package/docs/archive/ideation/2026-04-20-mycodemap-init-enhancements-ideation-archive.md +109 -0
  488. package/docs/archive/ideation/2026-04-22-rules-entry-docs-optimization-consolidated-ideation-archive.md +54 -0
  489. package/docs/backlog.md +232 -144
  490. package/docs/brainstorms/2026-05-10-agent-effectiveness-validation-requirements.md +112 -0
  491. package/docs/generated/phase-58/subagent-evidence/claude-hook-example.json +15 -0
  492. package/docs/generated/phase-58/subagent-evidence/claude-session.md +146 -0
  493. package/docs/generated/phase-58/subagent-evidence/claude-subagent.json +28 -0
  494. package/docs/generated/phase-58/subagent-evidence/codex-agent-example.toml +19 -0
  495. package/docs/generated/phase-58/subagent-evidence/codex-session.md +150 -0
  496. package/docs/generated/phase-58/subagent-evidence/codex-subagent.json +20 -0
  497. package/docs/generated/phase-58/subagent-evidence/negative-no-retrieval.json +12 -0
  498. package/docs/generated/phase-58/subagent-evidence/verification-manifest.json +19 -0
  499. package/docs/ideation/2026-04-15-executable-architecture-constitution-ideation.md +10 -22
  500. package/docs/ideation/2026-04-20-mycodemap-init-enhancements-ideation.md +15 -60
  501. package/docs/ideation/2026-04-22-rules-entry-docs-optimization-consolidated-ideation.md +47 -52
  502. package/docs/ideation/2026-04-29-ux-install-agent-experience-ideation.md +256 -0
  503. package/docs/ideation/2026-05-02-subagent-environment-contract-injection-ideation.md +183 -0
  504. package/docs/ideation/2026-05-04-subagent-hooks-deep-dive-ideation.md +133 -0
  505. package/docs/ideation/2026-05-10-agent-effectiveness-validation-ideation.md +219 -0
  506. package/docs/plans/2026-04-30-install-guide-and-repo-analyzer-design.md +394 -0
  507. package/docs/rules/README.md +1 -0
  508. package/docs/rules/architecture-guardrails.md +2 -1
  509. package/docs/rules/engineering-with-codex-openai.md +1 -1
  510. package/docs/rules/harness.md +106 -0
  511. package/docs/rules/pre-release-checklist.md +28 -0
  512. package/docs/rules/testing.md +51 -0
  513. package/examples/claude/skills/mycodemap-repo-analyzer/SKILL.md +294 -0
  514. package/examples/claude/skills/mycodemap-repo-analyzer/references/analysis-guide.md +166 -0
  515. package/examples/claude/skills/mycodemap-repo-analyzer/references/module-analysis-guide.md +150 -0
  516. package/package.json +12 -4
  517. package/scripts/copy-build-assets.mjs +23 -0
  518. package/scripts/hooks/templates/pre-commit +33 -2
  519. package/scripts/sync-analyze-docs.js +2 -2
  520. package/scripts/tests/test_rule_control_workflow.py +15 -1
  521. package/scripts/validate-docs.js +113 -16
  522. package/scripts/verify-subagent-env-contract.mjs +279 -0
  523. package/dist/parser/implementations/tree-sitter-parser.d.ts +0 -57
  524. package/dist/parser/implementations/tree-sitter-parser.d.ts.map +0 -1
  525. package/dist/parser/implementations/tree-sitter-parser.js +0 -375
  526. package/dist/parser/implementations/tree-sitter-parser.js.map +0 -1
  527. package/docs/references/tmp.md +0 -527
@@ -1,527 +0,0 @@
1
- 基于你的技术背景(Next.js/Cloudflare/全栈独立开发)和Harness Engineering方法论,我为你设计了一份**可直接落地的项目级规范文档**。
2
-
3
- 这份文档采用**分层 Enforcement Surface 架构**,AI在任务各阶段必须严格执行。建议保存为项目根目录的 `HARNESS.md`(或 `CLAUDE.md` / `CODEX.md`),并在AI工具配置中强制读取。
4
-
5
- ---
6
-
7
- ```markdown
8
- # HARNESS ENGINEERING 规范文档 v1.0
9
- # 项目: [你的项目名称]
10
- # 技术栈: Next.js 16 + Cloudflare Workers + Drizzle ORM + Supabase
11
- # 生效日期: 2026-03-17
12
- # 文档状态: [MVP阶段 / 生产阶段]
13
-
14
- > **AI指令**:初始化任务前必须完整阅读此文档。执行任何代码生成、重构或调试任务时,将此文档作为最高优先级约束。任务完成前必须通过文档第5章的验收清单。
15
-
16
- ---
17
-
18
- ## 1. 元数据与任务上下文(AI初始化时必须确认)
19
-
20
- ### 1.1 任务分级与自主权边界
21
-
22
- 根据任务风险等级,AI拥有不同的自主权:
23
-
24
- | 等级 | 场景示例 | 人类审查点 | AI权限 |
25
- |------|---------|-----------|--------|
26
- | **L0-自主** | 函数重构、单元测试编写、文档更新、类型修复 | 无需审查,直接提交 | 完整读写,自动提交 |
27
- | **L1-监督** | 新API端点、组件开发、数据库迁移 | 架构合规性检查 | 可生成,需标记PR供审查 |
28
- | **L2-受控** | 支付逻辑、认证流程、跨服务通信 | 逻辑正确性+安全审查 | 生成后暂停,等待人类确认 |
29
- | **L3-禁止** | 生产环境密钥修改、数据库删除操作、架构层突破 | 完全禁止自主执行 | 仅提供方案,禁止执行 |
30
-
31
- **执行规则**:
32
- - 任务开始时,AI必须根据上述分类自评等级并声明:"当前任务评估为L[X]级"
33
- - 禁止擅自降低风险等级以绕过审查
34
- - 遇到模糊边界(如"修改用户相关代码"涉及认证时),自动上溯至更高等级
35
-
36
- ### 1.2 可信度自评要求
37
-
38
- 每次任务完成前,AI必须输出以下格式的可信度评估:
39
-
40
- ```markdown
41
- ## 可信度自评
42
- - **确定信息**(基于代码/文档验证): [如:类型检查通过,测试覆盖90%]
43
- - **推测信息**(基于模式匹配): [如:假设用户输入符合UserSchema,未验证边界情况]
44
- - **需验证信息**(未确认/无法确认): [如:未在生产环境测试数据库迁移性能]
45
- - **风险标记**: [如:使用了any类型绕过,建议人工审查第45行]
46
- ```
47
-
48
- ---
49
-
50
- ## 2. 架构约束(硬性护栏)
51
-
52
- ### 2.1 依赖流向规则(层级架构)
53
-
54
- **第一性原理**:业务逻辑必须与实现细节解耦,确保可测试性和技术栈可替换性。
55
-
56
- 强制分层(从上至下依赖):
57
- ```
58
- Presentation (UI/Component)
59
-
60
- Application (UseCase/Service)
61
-
62
- Domain (Entity/ValueObject/BusinessRule) ← 纯业务逻辑,零外部依赖
63
-
64
- Infrastructure (DB/ExternalAPI/Storage) ← 实现细节
65
- ```
66
-
67
- **Enforcement规则**:
68
- 1. **Domain层禁止导入**:`react`, `next`, `node:fs`, `postgres`, 任何外部库
69
- 2. **Application层禁止导入**:UI库、数据库驱动(必须通过接口)
70
- 3. **跨层调用必须通过依赖注入**,禁止直接实例化
71
-
72
- **违规检测示例**:
73
- ```typescript
74
- // ❌ 违规:Domain层直接依赖基础设施
75
- // src/domain/user.ts
76
- import { db } from '@/infrastructure/db'; // 错误!Domain层禁止导入infrastructure
77
-
78
- // ✅ 合规:通过接口隔离
79
- // src/domain/user.ts
80
- import type { UserRepository } from './ports'; // 仅依赖接口
81
-
82
- export class UserService {
83
- constructor(private repo: UserRepository) {} // 依赖注入
84
- }
85
- ```
86
-
87
- ### 2.2 代码生成红线(绝对禁止)
88
-
89
- AI生成代码时,以下模式触发**硬性阻断**:
90
-
91
- | 红线规则 | 检测方式 | 自动修复策略 |
92
- |---------|---------|-------------|
93
- | 原始SQL拼接 | AST检测字符串模板包含`SELECT/INSERT` | 强制使用Prisma/Drizzle ORM |
94
- | 敏感信息硬编码 | 检测`password`, `secret`, `api_key`字面量 | 替换为`process.env`读取+类型检查 |
95
- | `any`类型使用 | TypeScript编译器`noImplicitAny` | 推导具体类型或使用`unknown`+守卫 |
96
- | 函数超过50行 | 静态分析行数 | 拆分为子函数,保持单一职责 |
97
- | 未处理Promise | ESLint `no-floating-promises` | 添加`await`或`.catch()`处理 |
98
- | 直接修改DOM | React项目中检测`document.querySelector` | 改用React状态管理 |
99
-
100
- ### 2.3 文件组织规范
101
-
102
- **强制目录结构**:
103
- ```
104
- src/
105
- domain/ # 业务逻辑(纯函数,无副作用)
106
- entities/ # 实体定义
107
- value-objects/ # 值对象
108
- ports/ # 接口定义(Repository接口等)
109
- application/ # 用例/服务编排
110
- use-cases/ # 具体业务用例
111
- services/ # 跨用例服务
112
- infrastructure/ # 技术实现
113
- db/ # Drizzle schema + 迁移
114
- api/ # 外部API客户端
115
- storage/ # 文件存储实现
116
- presentation/ # UI层(Next.js App Router)
117
- app/ # 路由页面
118
- components/ # React组件
119
- lib/ # 共享工具函数(无副作用)
120
- types/ # 全局类型定义
121
- ```
122
-
123
- **命名约束**:
124
- - 文件命名:`kebab-case.ts`(小写短横线)
125
- - 函数命名:动词开头(`getUser`, `validateEmail`)
126
- - 类型命名:PascalCase,后缀明确(`UserEntity`, `CreateUserDTO`)
127
- - 常量命名:UPPER_SNAKE_CASE
128
-
129
- ---
130
-
131
- ## 3. 上下文工程规范(信息输入管理)
132
-
133
- ### 3.1 渐进式上下文披露
134
-
135
- **原则**:不向AI提供超过当前任务决策所需的信息,避免注意力稀释。
136
-
137
- **上下文层级**(AI按优先级读取):
138
-
139
- 1. **T0-地图层**(始终提供):架构说明、类型定义、关键约束文件
140
- - `HARNESS.md`(本文档)
141
- - `src/types/index.ts`(核心类型)
142
- - `CLAUDE.md`(项目特定规则,如果有)
143
-
144
- 2. **T1-任务相关层**(动态检索):通过RAG或文件路径匹配提供
145
- - 当前修改文件的依赖图谱(直接上下游)
146
- - 相关测试文件(同名`.test.ts`或`.spec.ts`)
147
- - 接口定义(如果实现类,提供接口)
148
-
149
- 3. **T2-按需获取层**(工具调用):AI明确请求时才提供
150
- - 具体业务逻辑实现细节
151
- - 历史提交记录
152
- - 第三方库文档
153
-
154
- **禁止行为**:不要将整个`node_modules`目录或上千行无关代码粘贴给AI。
155
-
156
- ### 3.2 任务初始化模板
157
-
158
- AI接受任务时,必须输出以下分析框架:
159
-
160
- ```markdown
161
- ## 任务分析
162
- **目标**:[一句话描述]
163
- **类型**:[新增功能/修复Bug/重构/性能优化]
164
- **风险等级**:[L0/L1/L2/L3]
165
- **影响范围**:[列举可能影响的文件/模块]
166
-
167
- ## 上下文清单
168
- - [x] 已读取HARNESS.md架构约束
169
- - [x] 已识别相关类型定义 [链接到类型文件]
170
- - [ ] 待确认:数据库schema是否需变更 [如需,标记为阻塞]
171
-
172
- ## 执行计划(必须包含验证步骤)
173
- 1. [Plan] 设计接口/类型
174
- 2. [Build] 实现Domain层逻辑 + 单元测试(TDD)
175
- 3. [Build] 实现Infrastructure层(如需)
176
- 4. [Verify] 运行类型检查 + 单元测试 + Lint
177
- 5. [Fix] 修复发现的问题(如适用)
178
- 6. [Verify] 最终验收(见第5章清单)
179
- ```
180
-
181
- ---
182
-
183
- ## 4. 任务执行流程(Plan-Build-Verify-Fix循环)
184
-
185
- ### 4.1 标准执行管道
186
-
187
- 每个任务必须遵循以下闭环,禁止跳过验证阶段直接提交。
188
-
189
- ```mermaid
190
- graph TD
191
- A[任务开始] --> B[Plan: 方案设计]
192
- B --> C{架构合规检查}
193
- C -->|违规| B
194
- C -->|合规| D[Build: 编码实现]
195
- D --> E[单元测试先行]
196
- E -->|失败| D
197
- E -->|通过| F[Verify: 质量关卡]
198
- F --> G{适应度函数通过?}
199
- G -->|否| H[Fix: 问题修复]
200
- H --> F
201
- G -->|是| I[垃圾回收检查]
202
- I --> J[任务完成/提交]
203
- ```
204
-
205
- ### 4.2 TDD/BDD强制流程
206
-
207
- **第一性原理**:测试先行确保需求可验证,避免实现偏差。
208
-
209
- **执行顺序**:
210
- 1. **红阶段**:编写失败的测试(定义期望行为)
211
- 2. **绿阶段**:编写最小实现使测试通过(允许丑陋代码)
212
- 3. **重构阶段**:优化实现,保持测试通过(应用Clean Code规则)
213
-
214
- **AI必须遵守**:
215
- - **Domain层代码**:必须先写单元测试(Jest/Vitest),后写实现
216
- - **API端点**:必须提供集成测试(Supertest或MSW)
217
- - **UI组件**:必须提供Storybook故事或React Testing Library测试
218
-
219
- **测试质量护栏**:
220
- - 每个public函数必须有对应测试
221
- - 分支覆盖率必须>80%(MVP阶段可放宽至60%,但需标记技术债务)
222
- - 禁止只测试"happy path",必须包含错误处理测试
223
-
224
- ### 4.3 错误处理与恢复
225
-
226
- 当遇到阻碍时,AI必须按以下决策树行动:
227
-
228
- 1. **工具不可用/环境错误** → 暂停任务,报告人类(不猜测修复)
229
- 2. **架构约束冲突** → 暂停任务,请求架构豁免(禁止私自突破)
230
- 3. **测试失败** → 进入Fix循环(最多3次迭代),若仍失败则报告人类
231
- 4. **性能不达标** → 标记为L2任务,提供优化方案供人类选择
232
-
233
- **禁止行为**:
234
- - 不要通过注释掉测试来"解决"测试失败
235
- - 不要通过`@ts-ignore`绕过类型错误(除非标记TODO并说明原因)
236
- - 不要在不了解上下文的情况下假设外部库的行为
237
-
238
- ---
239
-
240
- ## 5. 质量护栏与适应度函数(Fitness Functions)
241
-
242
- ### 5.1 硬性关卡(Hard Gates)
243
-
244
- 以下检查**全部通过**才允许标记任务完成:
245
-
246
- | 关卡 | 检查命令 | 通过标准 | 失败处理 |
247
- |------|---------|---------|---------|
248
- | **类型安全** | `tsc --noEmit` | 0 errors, 0 any类型(除明确标记的边界文件) | 阻断,必须修复 |
249
- | **Lint合规** | `eslint . --ext .ts,.tsx` | 0 errors, warnings需审查 | 阻断,必须修复 |
250
- | **单元测试** | `vitest run --coverage` | 覆盖率>80%, 所有测试通过 | 阻断,必须修复 |
251
- | **架构合规** | `dependency-cruiser src` | 无违规依赖(如Domain层导入React) | 阻断,必须重构 |
252
- | **安全扫描** | `npm audit` + 自定义规则 | 无Critical/High漏洞, 无硬编码密钥 | 阻断,必须修复 |
253
-
254
- ### 5.2 优化目标(Soft Constraints)
255
-
256
- 在硬性关卡通过后,优化以下指标(非阻断,但需提供说明):
257
-
258
- | 指标 | 测量方式 | 目标值 | 当前值记录位置 |
259
- |------|---------|--------|---------------|
260
- | 性能 | Lighthouse CI / Benchmark | 首屏<1.5s, API p95<100ms | `perf-report.md` |
261
- | 可维护性 | CodeClimate / 复杂度分析 | 平均圈复杂度<10 | 注释标记复杂函数 |
262
- | 包体积 | `next build`分析 | 首屏JS<200KB | `bundle-analyzer`报告 |
263
-
264
- ### 5.3 验收清单(Task Completion Checklist)
265
-
266
- AI完成任务前必须自检并勾选:
267
-
268
- ```markdown
269
- ## 任务完成验收清单
270
- - [ ] **代码实现**:功能完整,符合需求描述
271
- - [ ] **架构合规**:通过`npm run check:architecture`(自定义命令)
272
- - [ ] **类型安全**:`npm run typecheck`无错误
273
- - [ ] **测试覆盖**:新代码覆盖率>80%,全量测试通过
274
- - [ ] **文档同步**:如修改接口,已更新相关注释/文档
275
- - [ ] **垃圾回收**:无console.log调试代码,无未使用import
276
- - [ ] **安全审查**:无敏感信息泄露,输入已验证
277
- - [ ] **可信度自评**:已提供(见1.2节格式)
278
- ```
279
-
280
- **提交流程**:
281
- 1. L0任务:完成清单后,自动格式代码(`npm run format`),直接提交
282
- 2. L1及以上:完成清单后,生成PR描述(包含变更摘要和测试证据),暂停等待人类审查
283
-
284
- ---
285
-
286
- ## 6. 代码库健康维护(垃圾回收)
287
-
288
- ### 6.1 自动清理规则
289
-
290
- 每次任务完成后,AI必须执行以下清理(可配置为git hook):
291
-
292
- ```bash
293
- # 必须执行的清理流程
294
- npm run lint:fix # 自动修复格式
295
- npm run typecheck # 最终类型检查
296
- npm run test:run # 快速测试验证
297
- npm run check:unused # 检测未使用代码(如knip/ts-prune)
298
- ```
299
-
300
- ### 6.2 技术债务标记
301
-
302
- 若因时间压力(如MVP需求)必须暂时绕过约束,必须按以下格式标记:
303
-
304
- ```typescript
305
- // TODO-DEBT [L1] [日期:2026-03-17] [作者:AI] [原因:MVP需求]
306
- // 问题:使用了any类型绕过复杂泛型推导
307
- // 风险:可能丢失类型安全
308
- // 偿还计划:V1.1重构时引入正确的条件类型
309
- function temporaryBypass(data: any): any {
310
- // 实现...
311
- }
312
- ```
313
-
314
- **债务追踪**:项目维护一个`TECH_DEBT.md`文件,记录所有此类标记,每Sprint审查。
315
-
316
- ---
317
-
318
- ## 7. 工具配置与集成
319
-
320
- ### 7.1 必须配置的自动化工具
321
-
322
- 在项目`package.json`中必须定义以下脚本:
323
-
324
- ```json
325
- {
326
- "scripts": {
327
- "check:architecture": "dependency-cruiser src --config .dependency-cruiser.js",
328
- "check:types": "tsc --noEmit",
329
- "check:lint": "eslint src --ext .ts,.tsx",
330
- "check:test": "vitest run --coverage",
331
- "check:security": "npm audit && secretlint",
332
- "check:all": "npm run check:types && npm run check:lint && npm run check:test && npm run check:architecture",
333
-
334
- "fix:lint": "eslint src --ext .ts,.tsx --fix",
335
- "fix:format": "prettier --write \"src/**/*.{ts,tsx}\"",
336
-
337
- "ai:pre-task": "npm run check:all", // AI任务前执行
338
- "ai:post-task": "npm run fix:format && npm run check:all" // AI任务后执行
339
- }
340
- }
341
- ```
342
-
343
- ### 7.2 AI工具集成指南
344
-
345
- **对于Claude Code**:
346
- 在`.claude/settings.json`中配置:
347
- ```json
348
- {
349
- "pre_command": "cat HARNESS.md", // 每个会话前读取规范
350
- "allowed_commands": [
351
- "npm run check:*",
352
- "npm run fix:*",
353
- "git add", "git commit", "git push"
354
- ],
355
- "blocked_patterns": [
356
- "rm -rf /",
357
- "DROP TABLE",
358
- "process.env.*=.*['\"]" // 禁止硬编码env
359
- ]
360
- }
361
- ```
362
-
363
- **对于Cursor**:
364
- 在项目根目录创建`.cursor/rules/harness.mdc`:
365
- ```markdown
366
- ---
367
- description: Harness Engineering 强制约束
368
- globs: src/**/*.ts
369
- alwaysApply: true
370
- ---
371
-
372
- [粘贴本文档第2章的架构约束和第5章的红线规则]
373
-
374
- 执行任何任务前,确认:
375
- 1. 已阅读HARNESS.md文档
376
- 2. 任务等级评估(L0-L3)
377
- 3. 遵循TDD流程(测试先行)
378
- 4. 最终通过npm run check:all验证
379
- ```
380
-
381
- ---
382
-
383
- ## 8. 示例场景:完整任务执行实录
384
-
385
- ### 场景:添加"用户收藏单词"功能(L1级任务)
386
-
387
- **AI执行日志**:
388
-
389
- ```markdown
390
- ## 任务初始化
391
- **目标**:实现用户收藏单词功能(Domain+API+UI)
392
- **风险等级**:L1(涉及数据库操作和认证,需人类审查)
393
- **上下文**:已读取HARNESS.md, 已识别User类型, 已确认Word类型存在
394
-
395
- ## Plan阶段
396
- 1. **接口设计**(T0上下文):
397
- - Domain: `FavoriteWordEntity` (userId, wordId, createdAt)
398
- - UseCase: `AddFavoriteWordUseCase` (纯业务逻辑)
399
- - Repository接口: `IFavoriteWordRepository` (add, remove, getByUser)
400
-
401
- 2. **架构检查**:✅ Domain层仅依赖ports,无外部导入
402
-
403
- ## Build阶段(TDD)
404
- 1. **红阶段**:编写 `add-favorite.test.ts`
405
- - 测试:重复收藏应抛出DomainError
406
- - 测试:最多允许收藏1000个单词(业务规则)
407
-
408
- 2. **绿阶段**:实现 `AddFavoriteWordUseCase`
409
- - 使用依赖注入接收Repository
410
-
411
- 3. **重构**:提取`FavoriteLimitPolicy`作为值对象
412
-
413
- ## Verify阶段
414
- - [x] 类型检查:通过(0 errors)
415
- - [x] 测试:3/3通过,覆盖率92%
416
- - [x] 架构:Domain层零违规依赖
417
- - [x] 安全:验证userId来自AuthContext,非用户输入
418
-
419
- ## 可信度自评
420
- - **确定**:业务逻辑通过所有测试用例,类型安全
421
- - **推测**:假设Supabase连接池在高并发下不会耗尽(需生产验证)
422
- - **需验证**:数据库索引需在生产环境确认查询性能
423
- - **风险**:无显著风险
424
-
425
- ## 提交准备
426
- 生成PR: `feat: implement word favorite feature`
427
- 包含:实现代码 + 测试 + 迁移文件 + 此执行日志
428
- 状态:等待人类审查(L1级要求)
429
- ```
430
-
431
- ---
432
-
433
- ## 附录A:快速参考卡(Quick Reference)
434
-
435
- **AI任务执行口诀**:
436
- 1. **读文档**:先看HARNESS,再看代码,再动手
437
- 2. **评等级**:L0自主干,L3别碰线
438
- 3. **先测试**:红绿重构三步走
439
- 4. **验红线**:类型/架构/安全不能破
440
- 5. **清垃圾**:console.log必须删,未用import要清理
441
- 6. **填清单**:验收清单全勾选,可信度自评要诚实
442
-
443
- **常见违规速查**:
444
- | 闻到代码异味 | 可能违规 | 修复动作 |
445
- |-------------|---------|---------|
446
- | `req.body`直接使用 | 无输入验证 | 添加Zod schema验证 |
447
- | `try {..} catch (e) { console.log(e) }` | 错误处理不当 | 使用统一错误处理器,返回用户友好消息 |
448
- | `let`声明可变状态 | 可变性风险 | 优先`const`,必要时用不可变更新模式 |
449
- | 深度嵌套if/else | 圈复杂度高 | 提前返回/策略模式重构 |
450
-
451
- ---
452
-
453
- **文档维护**:此文档应与代码同步版本控制。当架构决策变更时,必须更新本文档并重新经人类审查。
454
- ```
455
-
456
- ---
457
-
458
- ## 使用建议(针对你的开发场景)
459
-
460
- ### 1. **渐进式实施路径**(考虑你作为独立开发者的时间约束)
461
-
462
- **Week 1:建立基础 Harness**
463
- - 仅实施第2章的**红线规则**(绝对禁止项)和第5章的**硬性关卡**(类型+测试)
464
- - 使用 `npm run check:all` 作为唯一验收标准
465
-
466
- **Week 2:添加上下文工程**
467
- - 完善第3章,为常用业务模块建立T0级上下文地图
468
- - 配置Claude Code的pre_command自动读取HARNESS.md
469
-
470
- **Week 3:引入Fitness Function优化**
471
- - 在第5章添加性能指标(针对你的OCR或英语学习应用)
472
- - 实施第6章的垃圾回收自动化
473
-
474
- ### 2. **针对Next.js + Cloudflare的特殊调整**
475
-
476
- ```typescript
477
- // 在你的HARNESS.md中增加Cloudflare特定约束
478
-
479
- ## 补充:Cloudflare Workers约束
480
- - **禁止**:使用Node.js原生API(fs, path, http)
481
- - **必须**:使用Web标准API(fetch, Request, Response)
482
- - **必须**:数据库操作使用Drizzle + 连接池管理
483
- - **性能**:Worker冷启动时间<50ms(通过bundle size控制)
484
-
485
- ## 补充:Next.js App Router约束
486
- - **禁止**:在Server Component中使用浏览器API(window, localStorage)
487
- - **必须**:数据获取在Server Component完成,通过props传递给Client Component
488
- - **必须**:动态路由参数必须验证(Zod)
489
- ```
490
-
491
- ### 3. **可信度自评的实际应用**
492
-
493
- 在你的代码审查流程(即使是一个人开发,也建议自我审查)中,AI生成的**可信度自评** section能帮你快速识别:
494
- - **确定信息**:可以放心合并
495
- - **推测信息**:需要快速检查确认
496
- - **需验证信息**:需要安排专门测试(如生产环境性能)
497
-
498
- ### 4. **与Claude Code的集成**
499
-
500
- 创建 `.claude/CLAUDE.md` 文件(Claude Code会自动读取),内容如下:
501
-
502
- ```markdown
503
- # CLAUDE.md - 项目特定指令
504
-
505
- 你正在协助开发一个基于Harness Engineering规范的Next.js项目。
506
-
507
- **强制执行规则**:
508
- 1. 任何任务开始前,阅读项目根目录的 `HARNESS.md` 文档
509
- 2. 严格遵守文档中的L0-L3任务分级制度
510
- 3. 所有代码生成必须经过TDD流程(测试先行)
511
- 4. 完成时输出可信度自评(确定/推测/需验证)
512
- 5. 使用 `npm run check:all` 作为最终验收
513
-
514
- **禁止行为**:
515
- - 不要生成未测试的代码
516
- - 不要在Domain层引入外部依赖
517
- - 不要提交包含console.log的代码
518
-
519
- **首选模式**:
520
- - 纯函数优先,副作用隔离
521
- - 依赖注入而非直接实例化
522
- - 显式类型而非any
523
- ```
524
-
525
- 这样配置后,每次启动Claude Code时,它会自动加载这些约束,无需你重复提示。
526
-
527
- 这份文档的核心价值在于将**抽象的Harness Engineering理论**转化为**可执行的Checklist和Enforcement规则**。你可以根据项目的实际阶段(MVP vs 生产)调整第5章的覆盖率阈值和审查严格程度。