kibi-cli 1.0.1 → 2.1.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 (548) hide show
  1. package/dist/cli-errors.d.ts +3 -1
  2. package/dist/cli-errors.d.ts.map +1 -1
  3. package/dist/cli-errors.js +4 -1
  4. package/dist/cli-json-command.d.ts +1 -0
  5. package/dist/cli-json-command.d.ts.map +1 -1
  6. package/dist/cli-json-command.js +13 -4
  7. package/dist/cli-operation-loader.js +3 -3
  8. package/dist/cli-operation-metadata.d.ts +4 -3
  9. package/dist/cli-operation-metadata.d.ts.map +1 -1
  10. package/dist/cli-operation-metadata.js +7 -5
  11. package/dist/cli-protocol.js +1 -1
  12. package/dist/cli-register-maintenance.d.ts.map +1 -1
  13. package/dist/cli-register-maintenance.js +7 -0
  14. package/dist/cli-register-proof.d.ts +3 -0
  15. package/dist/cli-register-proof.d.ts.map +1 -0
  16. package/dist/cli-register-proof.js +127 -0
  17. package/dist/cli-register-reporting.d.ts.map +1 -1
  18. package/dist/cli-register-reporting.js +7 -0
  19. package/dist/cli.d.ts +4 -0
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +19 -10
  22. package/dist/commands/branch.d.ts +1 -0
  23. package/dist/commands/branch.d.ts.map +1 -1
  24. package/dist/commands/branch.js +8 -4
  25. package/dist/commands/check-generated.d.ts +7 -0
  26. package/dist/commands/check-generated.d.ts.map +1 -0
  27. package/dist/commands/check-generated.js +192 -0
  28. package/dist/commands/check.d.ts +14 -0
  29. package/dist/commands/check.d.ts.map +1 -1
  30. package/dist/commands/check.js +193 -46
  31. package/dist/commands/coverage.d.ts +1 -0
  32. package/dist/commands/coverage.d.ts.map +1 -1
  33. package/dist/commands/coverage.js +6 -0
  34. package/dist/commands/doctor.d.ts +22 -0
  35. package/dist/commands/doctor.d.ts.map +1 -1
  36. package/dist/commands/doctor.js +170 -23
  37. package/dist/commands/engine.d.ts +12 -0
  38. package/dist/commands/engine.d.ts.map +1 -1
  39. package/dist/commands/engine.js +42 -0
  40. package/dist/commands/github-init.d.ts +1 -0
  41. package/dist/commands/github-init.d.ts.map +1 -1
  42. package/dist/commands/github-init.js +9 -5
  43. package/dist/commands/init-helpers.d.ts.map +1 -1
  44. package/dist/commands/init-helpers.js +49 -10
  45. package/dist/commands/migrate.d.ts +4 -0
  46. package/dist/commands/migrate.d.ts.map +1 -1
  47. package/dist/commands/migrate.js +7 -7
  48. package/dist/commands/proof-explain.d.ts +10 -0
  49. package/dist/commands/proof-explain.d.ts.map +1 -0
  50. package/dist/commands/proof-explain.js +45 -0
  51. package/dist/commands/proof-impact.d.ts +7 -0
  52. package/dist/commands/proof-impact.d.ts.map +1 -0
  53. package/dist/commands/proof-impact.js +39 -0
  54. package/dist/commands/proof-migrate-legacy.d.ts +7 -0
  55. package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
  56. package/dist/commands/proof-migrate-legacy.js +45 -0
  57. package/dist/commands/proof-prune.d.ts +8 -0
  58. package/dist/commands/proof-prune.d.ts.map +1 -0
  59. package/dist/commands/proof-prune.js +53 -0
  60. package/dist/commands/prove.d.ts +37 -0
  61. package/dist/commands/prove.d.ts.map +1 -0
  62. package/dist/commands/prove.js +470 -0
  63. package/dist/commands/report.d.ts.map +1 -1
  64. package/dist/commands/report.js +18 -3
  65. package/dist/commands/sync/discovery.d.ts +3 -0
  66. package/dist/commands/sync/discovery.d.ts.map +1 -1
  67. package/dist/commands/sync/discovery.js +36 -28
  68. package/dist/commands/sync/manifest.d.ts +2 -1
  69. package/dist/commands/sync/manifest.d.ts.map +1 -1
  70. package/dist/commands/sync/manifest.js +55 -21
  71. package/dist/commands/sync/persistence.d.ts +4 -1
  72. package/dist/commands/sync/persistence.d.ts.map +1 -1
  73. package/dist/commands/sync/persistence.js +31 -14
  74. package/dist/commands/sync/staging.d.ts +1 -0
  75. package/dist/commands/sync/staging.d.ts.map +1 -1
  76. package/dist/commands/sync/staging.js +5 -2
  77. package/dist/commands/sync/untracked-targets.d.ts +24 -0
  78. package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
  79. package/dist/commands/sync/untracked-targets.js +108 -0
  80. package/dist/commands/sync.d.ts +11 -1
  81. package/dist/commands/sync.d.ts.map +1 -1
  82. package/dist/commands/sync.js +74 -30
  83. package/dist/engine-daemon.d.ts +3 -1
  84. package/dist/engine-daemon.d.ts.map +1 -1
  85. package/dist/engine-daemon.js +49 -20
  86. package/dist/engine.d.ts +17 -77
  87. package/dist/engine.d.ts.map +1 -1
  88. package/dist/engine.js +331 -91
  89. package/dist/env/bootstrap.d.ts +84 -0
  90. package/dist/env/bootstrap.d.ts.map +1 -0
  91. package/dist/env/bootstrap.js +310 -0
  92. package/dist/extractors/manifest.d.ts +5 -0
  93. package/dist/extractors/manifest.d.ts.map +1 -1
  94. package/dist/extractors/manifest.js +46 -1
  95. package/dist/extractors/markdown.d.ts +7 -3
  96. package/dist/extractors/markdown.d.ts.map +1 -1
  97. package/dist/extractors/markdown.js +60 -24
  98. package/dist/extractors/playwright-cases.js +1 -1
  99. package/dist/extractors/relationships.d.ts +6 -0
  100. package/dist/extractors/relationships.d.ts.map +1 -1
  101. package/dist/extractors/relationships.js +1 -1
  102. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  103. package/dist/extractors/symbols-coordinator.d.ts +8 -0
  104. package/dist/extractors/symbols-coordinator.d.ts.map +1 -1
  105. package/dist/extractors/symbols-coordinator.js +40 -0
  106. package/dist/extractors/symbols-ts.d.ts +9 -19
  107. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  108. package/dist/extractors/symbols-ts.js +34 -429
  109. package/dist/intent-search.d.ts +1 -0
  110. package/dist/intent-search.d.ts.map +1 -1
  111. package/dist/intent-search.js +11 -8
  112. package/dist/logic/ir.d.ts +1 -0
  113. package/dist/logic/ir.d.ts.map +1 -1
  114. package/dist/logic/ir.js +1 -1
  115. package/dist/operations/bootstrap/activation.d.ts +2 -1
  116. package/dist/operations/bootstrap/activation.d.ts.map +1 -1
  117. package/dist/operations/bootstrap/activation.js +11 -3
  118. package/dist/operations/bootstrap/generate.d.ts +2 -1
  119. package/dist/operations/bootstrap/generate.d.ts.map +1 -1
  120. package/dist/operations/bootstrap/generate.js +6 -3
  121. package/dist/operations/bootstrap/guidance.d.ts +1 -0
  122. package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
  123. package/dist/operations/bootstrap/guidance.js +1 -1
  124. package/dist/operations/modeling/model-requirement.d.ts +5 -0
  125. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  126. package/dist/operations/modeling/model-requirement.js +57 -46
  127. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -1
  128. package/dist/operations/modeling/predicate-applicability.js +103 -4
  129. package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -1
  130. package/dist/operations/modeling/predicate-catalog-2.js +18 -2
  131. package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
  132. package/dist/operations/modeling/predicate-catalog-3.js +17 -1
  133. package/dist/operations/modeling/predicate-catalog-5.d.ts +10 -0
  134. package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
  135. package/dist/operations/modeling/predicate-catalog-5.js +291 -0
  136. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
  137. package/dist/operations/modeling/predicate-catalog.js +4 -0
  138. package/dist/operations/modeling/predicate-loader.d.ts +1 -0
  139. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  140. package/dist/operations/modeling/predicate-loader.js +4 -3
  141. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  142. package/dist/operations/modeling/predicate-ranker.js +4 -1
  143. package/dist/operations/modeling/predicate-types.d.ts +1 -1
  144. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  145. package/dist/operations/modeling/predicate-usage-hints-4.d.ts +3 -0
  146. package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
  147. package/dist/operations/modeling/predicate-usage-hints-4.js +84 -0
  148. package/dist/operations/modeling/suggest-predicates.d.ts +4 -2
  149. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  150. package/dist/operations/modeling/suggest-predicates.js +82 -22
  151. package/dist/operations/mutation/contradictions.d.ts +2 -1
  152. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  153. package/dist/operations/mutation/contradictions.js +26 -5
  154. package/dist/operations/mutation/delete.d.ts +3 -0
  155. package/dist/operations/mutation/delete.d.ts.map +1 -1
  156. package/dist/operations/mutation/delete.js +100 -32
  157. package/dist/operations/mutation/relationships.d.ts +1 -0
  158. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  159. package/dist/operations/mutation/relationships.js +6 -4
  160. package/dist/operations/mutation/saga.d.ts +51 -0
  161. package/dist/operations/mutation/saga.d.ts.map +1 -0
  162. package/dist/operations/mutation/saga.js +67 -0
  163. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  164. package/dist/operations/mutation/serialization.js +3 -2
  165. package/dist/operations/mutation/source-authoring.d.ts +5 -1
  166. package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
  167. package/dist/operations/mutation/source-authoring.js +79 -46
  168. package/dist/operations/mutation/strict-fact.d.ts +1 -0
  169. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  170. package/dist/operations/mutation/strict-fact.js +8 -5
  171. package/dist/operations/mutation/symbol-compiler-lock.d.ts +5 -2
  172. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -1
  173. package/dist/operations/mutation/symbol-compiler-lock.js +65 -2
  174. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  175. package/dist/operations/mutation/symbol-granularity.js +11 -89
  176. package/dist/operations/mutation/symbol-refresh.d.ts +1 -0
  177. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  178. package/dist/operations/mutation/symbol-refresh.js +10 -8
  179. package/dist/operations/mutation/upsert.d.ts +18 -2
  180. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  181. package/dist/operations/mutation/upsert.js +86 -54
  182. package/dist/operations/mutation/validate-upsert.js +2 -2
  183. package/dist/operations/mutation/validation.d.ts.map +1 -1
  184. package/dist/operations/mutation/validation.js +46 -4
  185. package/dist/operations/mutation/warnings.d.ts +1 -0
  186. package/dist/operations/mutation/warnings.d.ts.map +1 -1
  187. package/dist/operations/mutation/warnings.js +7 -5
  188. package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
  189. package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
  190. package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
  191. package/dist/operations/planning/apply-plan.d.ts +8 -106
  192. package/dist/operations/planning/apply-plan.d.ts.map +1 -1
  193. package/dist/operations/planning/apply-plan.js +113 -36
  194. package/dist/operations/planning/compile-intent.d.ts +51 -0
  195. package/dist/operations/planning/compile-intent.d.ts.map +1 -1
  196. package/dist/operations/planning/compile-intent.js +133 -17
  197. package/dist/operations/proof/baseline-diff.d.ts +41 -0
  198. package/dist/operations/proof/baseline-diff.d.ts.map +1 -0
  199. package/dist/operations/proof/baseline-diff.js +153 -0
  200. package/dist/operations/proof/explain.d.ts +75 -0
  201. package/dist/operations/proof/explain.d.ts.map +1 -0
  202. package/dist/operations/proof/explain.js +294 -0
  203. package/dist/operations/proof/impact.d.ts +45 -0
  204. package/dist/operations/proof/impact.d.ts.map +1 -0
  205. package/dist/operations/proof/impact.js +118 -0
  206. package/dist/operations/proof/ingest-proof.d.ts +34 -0
  207. package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
  208. package/dist/operations/proof/ingest-proof.js +348 -0
  209. package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
  210. package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
  211. package/dist/operations/proof/migrate-legacy-receipts.js +92 -0
  212. package/dist/operations/proof/prune-receipts.d.ts +35 -0
  213. package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
  214. package/dist/operations/proof/prune-receipts.js +91 -0
  215. package/dist/operations/proof/receipt-document.d.ts +29 -0
  216. package/dist/operations/proof/receipt-document.d.ts.map +1 -0
  217. package/dist/operations/proof/receipt-document.js +117 -0
  218. package/dist/operations/semantic-advisor/analysis-receipt.d.ts.map +1 -1
  219. package/dist/operations/semantic-advisor/analysis-receipt.js +3 -9
  220. package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
  221. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  222. package/dist/operations/semantic-advisor/analyze-prose.js +64 -93
  223. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  224. package/dist/operations/semantic-advisor/clauses.js +20 -7
  225. package/dist/operations/semantic-advisor/plugin-orchestration.d.ts +63 -0
  226. package/dist/operations/semantic-advisor/plugin-orchestration.d.ts.map +1 -0
  227. package/dist/operations/semantic-advisor/plugin-orchestration.js +489 -0
  228. package/dist/operations/semantic-advisor/predicate-rules-core.d.ts +15 -2
  229. package/dist/operations/semantic-advisor/predicate-rules-core.d.ts.map +1 -1
  230. package/dist/operations/semantic-advisor/predicate-rules-core.js +7 -140
  231. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +11 -12
  232. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -1
  233. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +6 -94
  234. package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts +16 -0
  235. package/dist/operations/semantic-advisor/predicate-rules-policy.d.ts.map +1 -1
  236. package/dist/operations/semantic-advisor/predicate-rules-policy.js +7 -150
  237. package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts +9 -0
  238. package/dist/operations/semantic-advisor/predicate-rules-product-tail.d.ts.map +1 -1
  239. package/dist/operations/semantic-advisor/predicate-rules-product-tail.js +7 -102
  240. package/dist/operations/semantic-advisor/predicate-rules-product.d.ts +13 -0
  241. package/dist/operations/semantic-advisor/predicate-rules-product.d.ts.map +1 -1
  242. package/dist/operations/semantic-advisor/predicate-rules-product.js +7 -133
  243. package/dist/operations/semantic-advisor/strict-count-rules.d.ts +2 -0
  244. package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
  245. package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
  246. package/dist/operations/semantic-advisor/types.d.ts +1 -0
  247. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  248. package/dist/plugins/compose-ontology-packs.d.ts +51 -0
  249. package/dist/plugins/compose-ontology-packs.d.ts.map +1 -0
  250. package/dist/plugins/compose-ontology-packs.js +257 -0
  251. package/dist/plugins/compose-semantic-classifier.d.ts +42 -0
  252. package/dist/plugins/compose-semantic-classifier.d.ts.map +1 -0
  253. package/dist/plugins/compose-semantic-classifier.js +211 -0
  254. package/dist/plugins/external-allowlist.d.ts +10 -0
  255. package/dist/plugins/external-allowlist.d.ts.map +1 -0
  256. package/dist/plugins/external-allowlist.js +16 -0
  257. package/dist/plugins/index.d.ts +9 -0
  258. package/dist/plugins/index.d.ts.map +1 -0
  259. package/dist/plugins/index.js +33 -0
  260. package/dist/plugins/load-plugin.d.ts +19 -0
  261. package/dist/plugins/load-plugin.d.ts.map +1 -0
  262. package/dist/plugins/load-plugin.js +59 -0
  263. package/dist/plugins/project-config.d.ts +28 -0
  264. package/dist/plugins/project-config.d.ts.map +1 -0
  265. package/dist/plugins/project-config.js +90 -0
  266. package/dist/plugins/registry.d.ts +93 -0
  267. package/dist/plugins/registry.d.ts.map +1 -0
  268. package/dist/plugins/registry.js +338 -0
  269. package/dist/plugins/resolve-package.d.ts +47 -0
  270. package/dist/plugins/resolve-package.d.ts.map +1 -0
  271. package/dist/plugins/resolve-package.js +262 -0
  272. package/dist/plugins/source-analysis-service.d.ts +44 -0
  273. package/dist/plugins/source-analysis-service.d.ts.map +1 -0
  274. package/dist/plugins/source-analysis-service.js +232 -0
  275. package/dist/prolog/codec.d.ts +13 -1
  276. package/dist/prolog/codec.d.ts.map +1 -1
  277. package/dist/prolog/codec.js +269 -154
  278. package/dist/prolog/error-terms.d.ts +47 -0
  279. package/dist/prolog/error-terms.d.ts.map +1 -0
  280. package/dist/prolog/error-terms.js +334 -0
  281. package/dist/prolog/janitor.d.ts +50 -0
  282. package/dist/prolog/janitor.d.ts.map +1 -0
  283. package/dist/prolog/janitor.js +154 -0
  284. package/dist/prolog/store-lock.d.ts +45 -0
  285. package/dist/prolog/store-lock.d.ts.map +1 -0
  286. package/dist/prolog/store-lock.js +195 -0
  287. package/dist/prolog.d.ts +7 -0
  288. package/dist/prolog.d.ts.map +1 -1
  289. package/dist/prolog.js +55 -17
  290. package/dist/proof/evaluate.d.ts +27 -0
  291. package/dist/proof/evaluate.d.ts.map +1 -0
  292. package/dist/proof/evaluate.js +151 -0
  293. package/dist/proof/inspect.d.ts +12 -0
  294. package/dist/proof/inspect.d.ts.map +1 -0
  295. package/dist/proof/inspect.js +236 -0
  296. package/dist/proof/integrations.d.ts +35 -0
  297. package/dist/proof/integrations.d.ts.map +1 -0
  298. package/dist/proof/integrations.js +123 -0
  299. package/dist/proof/producers/junit-adapter.d.ts +26 -0
  300. package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
  301. package/dist/proof/producers/junit-adapter.js +186 -0
  302. package/dist/{public → proof/producers}/playwright-case-id.d.ts +1 -1
  303. package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
  304. package/dist/{public → proof/producers}/playwright-case-id.js +1 -1
  305. package/dist/proof/producers/playwright-reporter.d.ts +27 -0
  306. package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
  307. package/dist/proof/producers/playwright-reporter.js +138 -0
  308. package/dist/proof/producers/tap-adapter.d.ts +10 -0
  309. package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
  310. package/dist/proof/producers/tap-adapter.js +200 -0
  311. package/dist/proof/receipt-outcome.d.ts +2 -0
  312. package/dist/proof/receipt-outcome.d.ts.map +1 -0
  313. package/dist/proof/receipt-outcome.js +1 -0
  314. package/dist/public/diagnostic-usage.js +6 -6
  315. package/dist/public/distribution-parity.d.ts +7 -1
  316. package/dist/public/distribution-parity.d.ts.map +1 -1
  317. package/dist/public/distribution-parity.js +15 -10
  318. package/dist/public/extractors/symbols-coordinator.d.ts +1 -1
  319. package/dist/public/extractors/symbols-coordinator.d.ts.map +1 -1
  320. package/dist/public/extractors/symbols-coordinator.js +1 -1
  321. package/dist/public/impact/analyzer.d.ts +1 -1
  322. package/dist/public/impact/analyzer.d.ts.map +1 -1
  323. package/dist/public/impact/analyzer.js +6 -4
  324. package/dist/public/impact/coverage-depth-quality.d.ts +1 -0
  325. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  326. package/dist/public/impact/coverage-depth-quality.js +1 -1
  327. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  328. package/dist/public/impact/diagnostics.js +2 -2
  329. package/dist/public/impact/diff-meaning.d.ts +1 -0
  330. package/dist/public/impact/diff-meaning.d.ts.map +1 -1
  331. package/dist/public/impact/diff-meaning.js +5 -2
  332. package/dist/public/impact/full-kb-quality.d.ts +5 -2
  333. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  334. package/dist/public/impact/full-kb-quality.js +329 -64
  335. package/dist/public/operations/catalog.d.ts +450 -196
  336. package/dist/public/operations/catalog.d.ts.map +1 -1
  337. package/dist/public/operations/catalog.js +6 -4
  338. package/dist/public/operations/check-executor.d.ts.map +1 -1
  339. package/dist/public/operations/check-executor.js +4 -8
  340. package/dist/public/operations/check-helpers.d.ts +1 -1
  341. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  342. package/dist/public/operations/check-helpers.js +1 -1
  343. package/dist/public/operations/contracts.d.ts +7 -0
  344. package/dist/public/operations/contracts.d.ts.map +1 -1
  345. package/dist/public/operations/contracts.js +66 -34
  346. package/dist/public/operations/discovery-entities.d.ts +15 -0
  347. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  348. package/dist/public/operations/discovery-entities.js +38 -0
  349. package/dist/public/operations/discovery-executors.d.ts +9 -9
  350. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  351. package/dist/public/operations/discovery-executors.js +39 -31
  352. package/dist/public/operations/index.d.ts +1 -1
  353. package/dist/public/operations/index.d.ts.map +1 -1
  354. package/dist/public/operations/index.js +1 -1
  355. package/dist/public/operations/migration-plan.d.ts +4 -3
  356. package/dist/public/operations/migration-plan.d.ts.map +1 -1
  357. package/dist/public/operations/migration-plan.js +23 -21
  358. package/dist/public/operations/node-ports.js +6 -6
  359. package/dist/public/operations/prolog-json.d.ts +1 -1
  360. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  361. package/dist/public/operations/prolog-json.js +7 -7
  362. package/dist/public/operations/repair-plan.d.ts +3 -3
  363. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  364. package/dist/public/operations/repair-plan.js +49 -19
  365. package/dist/public/operations/result-envelope.d.ts +1 -0
  366. package/dist/public/operations/result-envelope.d.ts.map +1 -1
  367. package/dist/public/operations/result-envelope.js +12 -10
  368. package/dist/public/operations/runtime-types.d.ts +21 -1
  369. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  370. package/dist/public/operations/specs/check-rules.generated.d.ts +5 -0
  371. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
  372. package/dist/public/operations/specs/check-rules.generated.js +35 -0
  373. package/dist/public/operations/specs/check.d.ts +7 -2
  374. package/dist/public/operations/specs/check.d.ts.map +1 -1
  375. package/dist/public/operations/specs/check.js +8 -20
  376. package/dist/public/operations/specs/discovery.d.ts +3 -0
  377. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  378. package/dist/public/operations/specs/discovery.js +3 -0
  379. package/dist/public/operations/specs/mutation-schemas.d.ts +257 -163
  380. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  381. package/dist/public/operations/specs/mutation-schemas.js +15 -7
  382. package/dist/public/operations/specs/planning.d.ts +9 -0
  383. package/dist/public/operations/specs/planning.d.ts.map +1 -1
  384. package/dist/public/operations/specs/planning.js +6 -0
  385. package/dist/public/operations/specs/proof.d.ts +212 -0
  386. package/dist/public/operations/specs/proof.d.ts.map +1 -0
  387. package/dist/public/operations/specs/proof.js +30 -0
  388. package/dist/public/operations/specs/reporting.d.ts +20 -0
  389. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  390. package/dist/public/operations/specs/reporting.js +112 -12
  391. package/dist/public/operations/specs/semantic.d.ts +1 -1
  392. package/dist/public/operations/specs/semantic.d.ts.map +1 -1
  393. package/dist/public/operations/specs/semantic.js +54 -4
  394. package/dist/public/operations/specs/upsert.d.ts +257 -163
  395. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  396. package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
  397. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
  398. package/dist/public/operations/symbol-repair-plan.js +121 -4
  399. package/dist/public/operations/types.d.ts +6 -1
  400. package/dist/public/operations/types.d.ts.map +1 -1
  401. package/dist/public/proof-fingerprint.d.ts +54 -0
  402. package/dist/public/proof-fingerprint.d.ts.map +1 -0
  403. package/dist/public/proof-fingerprint.js +141 -0
  404. package/dist/public/proof-protocol.d.ts +354 -0
  405. package/dist/public/proof-protocol.d.ts.map +1 -0
  406. package/dist/public/proof-protocol.js +454 -0
  407. package/dist/public/proof-receipt.d.ts +279 -0
  408. package/dist/public/proof-receipt.d.ts.map +1 -0
  409. package/dist/public/proof-receipt.js +377 -0
  410. package/dist/public/schemas/entity.d.ts.map +1 -1
  411. package/dist/public/schemas/entity.js +21 -7
  412. package/dist/public/skills/kibi-freshness/SKILL.md +1 -1
  413. package/dist/public/skills/kibi-usage/SKILL.md +44 -12
  414. package/dist/public/skills/kibi-usage/resources/operation-access.md +1 -1
  415. package/dist/public/skills/kibi-usage/resources/proof.md +150 -0
  416. package/dist/public/skills/kibi-usage/resources/workflows.md +6 -6
  417. package/dist/public/symbol-granularity.d.ts +3 -14
  418. package/dist/public/symbol-granularity.d.ts.map +1 -1
  419. package/dist/public/symbol-granularity.generated.d.ts +16 -0
  420. package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
  421. package/dist/public/symbol-granularity.generated.js +53 -0
  422. package/dist/public/symbol-granularity.js +6 -47
  423. package/dist/public/telemetry-acceptance.d.ts +3 -77
  424. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  425. package/dist/public/telemetry-acceptance.js +4 -2
  426. package/dist/public/telemetry-remediation.js +1 -1
  427. package/dist/report/html-report.css +1240 -0
  428. package/dist/report/html-report.d.ts +4 -2
  429. package/dist/report/html-report.d.ts.map +1 -1
  430. package/dist/report/html-report.js +37 -300
  431. package/dist/runtime/cli-runtime.d.ts +2 -0
  432. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  433. package/dist/runtime/cli-runtime.js +32 -7
  434. package/dist/schemas/entity.schema.json +355 -215
  435. package/dist/search-ranking.d.ts +1 -0
  436. package/dist/search-ranking.d.ts.map +1 -1
  437. package/dist/search-ranking.js +3 -0
  438. package/dist/traceability/evidence-model.d.ts +28 -0
  439. package/dist/traceability/evidence-model.d.ts.map +1 -1
  440. package/dist/traceability/git-staged.d.ts +20 -0
  441. package/dist/traceability/git-staged.d.ts.map +1 -1
  442. package/dist/traceability/git-staged.js +145 -1
  443. package/dist/traceability/staged-diagnostics.d.ts +7 -0
  444. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  445. package/dist/traceability/staged-diagnostics.js +78 -7
  446. package/dist/traceability/staged-file-coverage.d.ts +33 -0
  447. package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
  448. package/dist/traceability/staged-file-coverage.js +284 -0
  449. package/dist/traceability/staged-impact-contract.js +4 -4
  450. package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
  451. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  452. package/dist/traceability/staged-symbols-manifest.js +138 -27
  453. package/dist/traceability/symbol-extract.d.ts +24 -2
  454. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  455. package/dist/traceability/symbol-extract.js +64 -208
  456. package/dist/traceability/temp-kb.d.ts +2 -0
  457. package/dist/traceability/temp-kb.d.ts.map +1 -1
  458. package/dist/traceability/temp-kb.js +13 -4
  459. package/dist/types/entities.d.ts +5 -3
  460. package/dist/types/entities.d.ts.map +1 -1
  461. package/dist/utils/branch-resolver.d.ts +1 -0
  462. package/dist/utils/branch-resolver.d.ts.map +1 -1
  463. package/dist/utils/branch-resolver.js +7 -4
  464. package/dist/utils/branch-store.d.ts +6 -0
  465. package/dist/utils/branch-store.d.ts.map +1 -1
  466. package/dist/utils/branch-store.js +27 -0
  467. package/dist/utils/kb-paths.d.ts +1 -1
  468. package/dist/utils/kb-paths.d.ts.map +1 -1
  469. package/dist/utils/kb-paths.js +1 -1
  470. package/dist/utils/rule-registry.d.ts +1 -11
  471. package/dist/utils/rule-registry.d.ts.map +1 -1
  472. package/dist/utils/rule-registry.generated.d.ts +102 -0
  473. package/dist/utils/rule-registry.generated.d.ts.map +1 -0
  474. package/dist/utils/rule-registry.generated.js +131 -0
  475. package/dist/utils/rule-registry.js +12 -113
  476. package/dist/utils/strict-modeling.d.ts +1 -0
  477. package/dist/utils/strict-modeling.d.ts.map +1 -1
  478. package/dist/utils/strict-modeling.js +1 -1
  479. package/package.json +20 -20
  480. package/src/public/diagnostic-usage.ts +6 -6
  481. package/src/public/distribution-parity.ts +17 -10
  482. package/src/public/extractors/symbols-coordinator.ts +1 -0
  483. package/src/public/impact/analyzer.ts +15 -12
  484. package/src/public/impact/coverage-depth-quality.ts +1 -1
  485. package/src/public/impact/diagnostics.ts +2 -1
  486. package/src/public/impact/diff-meaning.ts +11 -4
  487. package/src/public/impact/full-kb-quality.ts +463 -72
  488. package/src/public/operations/catalog.ts +10 -4
  489. package/src/public/operations/check-executor.ts +4 -8
  490. package/src/public/operations/check-helpers.ts +2 -2
  491. package/src/public/operations/contracts.ts +78 -34
  492. package/src/public/operations/discovery-entities.ts +53 -0
  493. package/src/public/operations/discovery-executors.ts +64 -48
  494. package/src/public/operations/index.ts +1 -1
  495. package/src/public/operations/migration-plan.ts +32 -25
  496. package/src/public/operations/node-ports.ts +6 -6
  497. package/src/public/operations/prolog-json.ts +13 -5
  498. package/src/public/operations/repair-plan.ts +60 -23
  499. package/src/public/operations/result-envelope.ts +15 -10
  500. package/src/public/operations/runtime-types.ts +26 -2
  501. package/src/public/operations/specs/check-rules.generated.ts +38 -0
  502. package/src/public/operations/specs/check.ts +12 -21
  503. package/src/public/operations/specs/discovery.ts +3 -0
  504. package/src/public/operations/specs/mutation-schemas.ts +22 -9
  505. package/src/public/operations/specs/planning.ts +7 -0
  506. package/src/public/operations/specs/proof.ts +43 -0
  507. package/src/public/operations/specs/reporting.ts +140 -13
  508. package/src/public/operations/specs/semantic.ts +79 -17
  509. package/src/public/operations/symbol-repair-plan.ts +166 -7
  510. package/src/public/operations/types.ts +6 -1
  511. package/src/public/proof-fingerprint.ts +216 -0
  512. package/src/public/proof-protocol-types.d.ts +96 -0
  513. package/src/public/proof-protocol.ts +589 -0
  514. package/src/public/proof-receipt.ts +499 -0
  515. package/src/public/schemas/entity.ts +26 -10
  516. package/src/public/skills/kibi-freshness/SKILL.md +1 -1
  517. package/src/public/skills/kibi-usage/SKILL.md +44 -12
  518. package/src/public/skills/kibi-usage/resources/operation-access.md +1 -1
  519. package/src/public/skills/kibi-usage/resources/proof.md +150 -0
  520. package/src/public/skills/kibi-usage/resources/workflows.md +6 -6
  521. package/src/public/symbol-granularity.generated.ts +74 -0
  522. package/src/public/symbol-granularity.ts +34 -59
  523. package/src/public/telemetry-acceptance-types.d.ts +98 -0
  524. package/src/public/telemetry-acceptance.ts +22 -100
  525. package/src/public/telemetry-remediation.ts +1 -1
  526. package/src/schemas/entity.schema.json +355 -215
  527. package/dist/cli-register-verification.d.ts +0 -3
  528. package/dist/cli-register-verification.d.ts.map +0 -1
  529. package/dist/cli-register-verification.js +0 -16
  530. package/dist/commands/verify.d.ts +0 -10
  531. package/dist/commands/verify.d.ts.map +0 -1
  532. package/dist/commands/verify.js +0 -126
  533. package/dist/operations/verification/ingest-verification.d.ts +0 -29
  534. package/dist/operations/verification/ingest-verification.d.ts.map +0 -1
  535. package/dist/operations/verification/ingest-verification.js +0 -192
  536. package/dist/public/operations/specs/verification.d.ts +0 -78
  537. package/dist/public/operations/specs/verification.d.ts.map +0 -1
  538. package/dist/public/operations/specs/verification.js +0 -62
  539. package/dist/public/playwright-case-id.d.ts.map +0 -1
  540. package/dist/public/verification-receipt.d.ts +0 -242
  541. package/dist/public/verification-receipt.d.ts.map +0 -1
  542. package/dist/public/verification-receipt.js +0 -296
  543. package/dist/verification/playwright-reporter.d.ts +0 -21
  544. package/dist/verification/playwright-reporter.d.ts.map +0 -1
  545. package/dist/verification/playwright-reporter.js +0 -114
  546. package/src/public/operations/specs/verification.ts +0 -78
  547. package/src/public/playwright-case-id.ts +0 -35
  548. package/src/public/verification-receipt.ts +0 -412
@@ -0,0 +1,102 @@
1
+ export declare const GENERATED_RULES: readonly [{
2
+ readonly name: "must-priority-coverage";
3
+ readonly description: "Every must-priority requirement must have a scenario and a test";
4
+ readonly enforcementClass: "canonical";
5
+ readonly category: "coverage";
6
+ }, {
7
+ readonly name: "symbol-coverage";
8
+ readonly description: "Production symbols need qualifying coverage via covered_by plus a canonical requirement/scenario test path";
9
+ readonly enforcementClass: "canonical";
10
+ readonly category: "coverage";
11
+ }, {
12
+ readonly name: "symbol-traceability";
13
+ readonly description: "Production symbols must directly implement requirements for ownership; covered_by is coverage only and executable_for is test identity only";
14
+ readonly enforcementClass: "canonical";
15
+ readonly category: "traceability";
16
+ }, {
17
+ readonly name: "no-dangling-refs";
18
+ readonly description: "All relationship targets must exist in the KB";
19
+ readonly enforcementClass: "canonical";
20
+ readonly category: "integrity";
21
+ }, {
22
+ readonly name: "source-relationship-parity";
23
+ readonly description: "Authored Markdown and relationship-shard edges must exactly match the compiled KB";
24
+ readonly enforcementClass: "canonical";
25
+ readonly category: "integrity";
26
+ }, {
27
+ readonly name: "no-cycles";
28
+ readonly description: "No circular dependency chains in requirements";
29
+ readonly enforcementClass: "canonical";
30
+ readonly category: "integrity";
31
+ }, {
32
+ readonly name: "required-fields";
33
+ readonly description: "All entities must have required fields";
34
+ readonly enforcementClass: "canonical";
35
+ readonly category: "integrity";
36
+ }, {
37
+ readonly name: "deprecated-adr-no-successor";
38
+ readonly description: "Deprecated ADRs must have a successor ADR that supersedes them";
39
+ readonly enforcementClass: "canonical";
40
+ readonly category: "lifecycle";
41
+ }, {
42
+ readonly name: "domain-contradictions";
43
+ readonly description: "Detect contradictions between requirements constraining the same fact";
44
+ readonly enforcementClass: "canonical";
45
+ readonly category: "integrity";
46
+ }, {
47
+ readonly name: "logic-coverage";
48
+ readonly description: "Require every explicitly declared atomic requirement claim to be grounded by a linked strict-property or predicate fact";
49
+ readonly enforcementClass: "canonical";
50
+ readonly category: "integrity";
51
+ }, {
52
+ readonly name: "rule-safety";
53
+ readonly description: "Stored Logic IR rules use only the typed, bounded, stratified vocabulary";
54
+ readonly enforcementClass: "canonical";
55
+ readonly category: "integrity";
56
+ }, {
57
+ readonly name: "rule-verifiability";
58
+ readonly description: "Requirement rule links resolve to safe rules and registered rule schemas";
59
+ readonly enforcementClass: "canonical";
60
+ readonly category: "integrity";
61
+ }, {
62
+ readonly name: "query-plan-safety";
63
+ readonly description: "Detect Prolog validation clauses that place negation before generator calls";
64
+ readonly enforcementClass: "canonical";
65
+ readonly category: "integrity";
66
+ }, {
67
+ readonly name: "req-status-vocabulary";
68
+ readonly description: "Requirement statuses must use the canonical vocabulary (open, in_progress, closed; legacy: active, approved); ADR statuses such as accepted silently fall out of the proof ladder";
69
+ readonly enforcementClass: "canonical";
70
+ readonly category: "lifecycle";
71
+ }, {
72
+ readonly name: "strict-fact-shape";
73
+ readonly description: "Detect malformed strict facts (facts with fact_kind that are missing required fields)";
74
+ readonly enforcementClass: "advisory";
75
+ readonly category: "integrity";
76
+ }, {
77
+ readonly name: "strict-req-fact-pairing";
78
+ readonly description: "Detect requirements with incomplete strict subject/property fact pairing for contradiction-safe semantics";
79
+ readonly enforcementClass: "advisory";
80
+ readonly category: "integrity";
81
+ }, {
82
+ readonly name: "predicate-verifiability";
83
+ readonly description: "Detect requires_predicate links that do not target ground fact_kind: predicate facts";
84
+ readonly enforcementClass: "advisory";
85
+ readonly category: "integrity";
86
+ }, {
87
+ readonly name: "strict-readiness";
88
+ readonly description: "Report strict contradiction-readiness levels for requirements that are still prose-only or otherwise not contradiction-ready";
89
+ readonly enforcementClass: "migration";
90
+ readonly category: "integrity";
91
+ }, {
92
+ readonly name: "semantic-completeness";
93
+ readonly description: "Every inventoried assertive proposition is modeled or explicitly classified";
94
+ readonly enforcementClass: "migration";
95
+ readonly category: "integrity";
96
+ }, {
97
+ readonly name: "proof-contract-symbols";
98
+ readonly description: "Detect unresolved required_proofs.symbol_id values, type-shape required proofs, and proof_bindings.source_file disagreement with the named symbol sourceFile";
99
+ readonly enforcementClass: "advisory";
100
+ readonly category: "integrity";
101
+ }];
102
+ //# sourceMappingURL=rule-registry.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-registry.generated.d.ts","sourceRoot":"","sources":["../../src/utils/rule-registry.generated.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0IlB,CAAC"}
@@ -0,0 +1,131 @@
1
+ /*
2
+ * Kibi — repo-local, per-branch, queryable long-term memory for software projects
3
+ * Copyright (C) 2026 Piotr Franczyk
4
+ *
5
+ * This file is generated by scripts/generate-rule-registry.mjs from
6
+ * packages/core/schema/rule-registry.json. Do not edit it directly; edit the
7
+ * JSON source and regenerate.
8
+ */
9
+ // implements REQ-006
10
+ export const GENERATED_RULES = [
11
+ {
12
+ name: "must-priority-coverage",
13
+ description: "Every must-priority requirement must have a scenario and a test",
14
+ enforcementClass: "canonical",
15
+ category: "coverage",
16
+ },
17
+ {
18
+ name: "symbol-coverage",
19
+ description: "Production symbols need qualifying coverage via covered_by plus a canonical requirement/scenario test path",
20
+ enforcementClass: "canonical",
21
+ category: "coverage",
22
+ },
23
+ {
24
+ name: "symbol-traceability",
25
+ description: "Production symbols must directly implement requirements for ownership; covered_by is coverage only and executable_for is test identity only",
26
+ enforcementClass: "canonical",
27
+ category: "traceability",
28
+ },
29
+ {
30
+ name: "no-dangling-refs",
31
+ description: "All relationship targets must exist in the KB",
32
+ enforcementClass: "canonical",
33
+ category: "integrity",
34
+ },
35
+ {
36
+ name: "source-relationship-parity",
37
+ description: "Authored Markdown and relationship-shard edges must exactly match the compiled KB",
38
+ enforcementClass: "canonical",
39
+ category: "integrity",
40
+ },
41
+ {
42
+ name: "no-cycles",
43
+ description: "No circular dependency chains in requirements",
44
+ enforcementClass: "canonical",
45
+ category: "integrity",
46
+ },
47
+ {
48
+ name: "required-fields",
49
+ description: "All entities must have required fields",
50
+ enforcementClass: "canonical",
51
+ category: "integrity",
52
+ },
53
+ {
54
+ name: "deprecated-adr-no-successor",
55
+ description: "Deprecated ADRs must have a successor ADR that supersedes them",
56
+ enforcementClass: "canonical",
57
+ category: "lifecycle",
58
+ },
59
+ {
60
+ name: "domain-contradictions",
61
+ description: "Detect contradictions between requirements constraining the same fact",
62
+ enforcementClass: "canonical",
63
+ category: "integrity",
64
+ },
65
+ {
66
+ name: "logic-coverage",
67
+ description: "Require every explicitly declared atomic requirement claim to be grounded by a linked strict-property or predicate fact",
68
+ enforcementClass: "canonical",
69
+ category: "integrity",
70
+ },
71
+ {
72
+ name: "rule-safety",
73
+ description: "Stored Logic IR rules use only the typed, bounded, stratified vocabulary",
74
+ enforcementClass: "canonical",
75
+ category: "integrity",
76
+ },
77
+ {
78
+ name: "rule-verifiability",
79
+ description: "Requirement rule links resolve to safe rules and registered rule schemas",
80
+ enforcementClass: "canonical",
81
+ category: "integrity",
82
+ },
83
+ {
84
+ name: "query-plan-safety",
85
+ description: "Detect Prolog validation clauses that place negation before generator calls",
86
+ enforcementClass: "canonical",
87
+ category: "integrity",
88
+ },
89
+ {
90
+ name: "req-status-vocabulary",
91
+ description: "Requirement statuses must use the canonical vocabulary (open, in_progress, closed; legacy: active, approved); ADR statuses such as accepted silently fall out of the proof ladder",
92
+ enforcementClass: "canonical",
93
+ category: "lifecycle",
94
+ },
95
+ {
96
+ name: "strict-fact-shape",
97
+ description: "Detect malformed strict facts (facts with fact_kind that are missing required fields)",
98
+ enforcementClass: "advisory",
99
+ category: "integrity",
100
+ },
101
+ {
102
+ name: "strict-req-fact-pairing",
103
+ description: "Detect requirements with incomplete strict subject/property fact pairing for contradiction-safe semantics",
104
+ enforcementClass: "advisory",
105
+ category: "integrity",
106
+ },
107
+ {
108
+ name: "predicate-verifiability",
109
+ description: "Detect requires_predicate links that do not target ground fact_kind: predicate facts",
110
+ enforcementClass: "advisory",
111
+ category: "integrity",
112
+ },
113
+ {
114
+ name: "strict-readiness",
115
+ description: "Report strict contradiction-readiness levels for requirements that are still prose-only or otherwise not contradiction-ready",
116
+ enforcementClass: "migration",
117
+ category: "integrity",
118
+ },
119
+ {
120
+ name: "semantic-completeness",
121
+ description: "Every inventoried assertive proposition is modeled or explicitly classified",
122
+ enforcementClass: "migration",
123
+ category: "integrity",
124
+ },
125
+ {
126
+ name: "proof-contract-symbols",
127
+ description: "Detect unresolved required_proofs.symbol_id values, type-shape required proofs, and proof_bindings.source_file disagreement with the named symbol sourceFile",
128
+ enforcementClass: "advisory",
129
+ category: "integrity",
130
+ },
131
+ ];
@@ -16,120 +16,19 @@
16
16
  along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
18
  /**
19
- * All known check rules.
20
- * When adding a new rule, add it here.
19
+ * Central registry of KB check rules.
20
+ *
21
+ * Kibi — not the repository — owns each rule's enforcement class. Projects
22
+ * can no longer disable canonical checks. `--rules` remains an
23
+ * invocation-time diagnostic selector only and never persists policy.
24
+ *
25
+ * RULES itself is generated from packages/core/schema/rule-registry.json by
26
+ * scripts/generate-rule-registry.mjs; that JSON is the single editing point
27
+ * shared with the kb_check input enum and the Prolog rule_registry facts.
21
28
  */
22
- export const RULES = [
23
- // implements REQ-006
24
- {
25
- name: "must-priority-coverage",
26
- description: "Every must-priority requirement must have a scenario and a test",
27
- enforcementClass: "canonical",
28
- category: "coverage",
29
- },
30
- {
31
- name: "symbol-coverage",
32
- description: "Production symbols need qualifying coverage via covered_by plus a canonical requirement/scenario test path",
33
- enforcementClass: "canonical",
34
- category: "coverage",
35
- },
36
- {
37
- name: "symbol-traceability",
38
- description: "Production symbols must directly implement requirements for ownership; covered_by is coverage only and executable_for is test identity only",
39
- enforcementClass: "canonical",
40
- category: "traceability",
41
- },
42
- {
43
- name: "no-dangling-refs",
44
- description: "All relationship targets must exist in the KB",
45
- enforcementClass: "canonical",
46
- category: "integrity",
47
- },
48
- {
49
- name: "source-relationship-parity",
50
- description: "Authored Markdown and relationship-shard edges must exactly match the compiled KB",
51
- enforcementClass: "canonical",
52
- category: "integrity",
53
- },
54
- {
55
- name: "no-cycles",
56
- description: "No circular dependency chains in requirements",
57
- enforcementClass: "canonical",
58
- category: "integrity",
59
- },
60
- {
61
- name: "required-fields",
62
- description: "All entities must have required fields",
63
- enforcementClass: "canonical",
64
- category: "integrity",
65
- },
66
- {
67
- name: "deprecated-adr-no-successor",
68
- description: "Deprecated ADRs must have a successor ADR that supersedes them",
69
- enforcementClass: "canonical",
70
- category: "lifecycle",
71
- },
72
- {
73
- name: "domain-contradictions",
74
- description: "Detect contradictions between requirements constraining the same fact",
75
- enforcementClass: "canonical",
76
- category: "integrity",
77
- },
78
- {
79
- name: "logic-coverage",
80
- description: "Require every explicitly declared atomic requirement claim to be grounded by a linked strict-property or predicate fact",
81
- enforcementClass: "canonical",
82
- category: "integrity",
83
- },
84
- {
85
- name: "rule-safety",
86
- description: "Stored Logic IR rules use only the typed, bounded, stratified vocabulary",
87
- enforcementClass: "canonical",
88
- category: "integrity",
89
- },
90
- {
91
- name: "rule-verifiability",
92
- description: "Requirement rule links resolve to safe rules and registered rule schemas",
93
- enforcementClass: "canonical",
94
- category: "integrity",
95
- },
96
- {
97
- name: "query-plan-safety",
98
- description: "Detect Prolog validation clauses that place negation before generator calls",
99
- enforcementClass: "canonical",
100
- category: "integrity",
101
- },
102
- {
103
- name: "strict-fact-shape",
104
- description: "Detect malformed strict facts (facts with fact_kind that are missing required fields)",
105
- enforcementClass: "advisory",
106
- category: "integrity",
107
- },
108
- {
109
- name: "strict-req-fact-pairing",
110
- description: "Detect requirements with incomplete strict subject/property fact pairing for contradiction-safe semantics",
111
- enforcementClass: "advisory",
112
- category: "integrity",
113
- },
114
- {
115
- name: "predicate-verifiability",
116
- description: "Detect requires_predicate links that do not target ground fact_kind: predicate facts",
117
- enforcementClass: "advisory",
118
- category: "integrity",
119
- },
120
- {
121
- name: "strict-readiness",
122
- description: "Report strict contradiction-readiness levels for requirements that are still prose-only or otherwise not contradiction-ready",
123
- enforcementClass: "migration",
124
- category: "integrity",
125
- },
126
- {
127
- name: "semantic-completeness",
128
- description: "Every inventoried assertive proposition is modeled or explicitly classified",
129
- enforcementClass: "migration",
130
- category: "integrity",
131
- },
132
- ];
29
+ import { GENERATED_RULES } from "./rule-registry.generated.js";
30
+ /** All known check rules, generated from the shared registry JSON. */
31
+ export const RULES = GENERATED_RULES;
133
32
  const RULES_BY_NAME = new Map(RULES.map((rule) => [rule.name, rule]));
134
33
  /**
135
34
  * Set of all rule names for quick lookups.
@@ -56,5 +56,6 @@ export declare function normalizePropertyKey(value: string): string;
56
56
  export declare function buildStableRequirementIds(claim: SemanticClaim): StableRequirementIds;
57
57
  export declare function buildStrictWriteSet(input: StrictModelInput): StrictWriteSet;
58
58
  export declare function modelRequirementClaims(inputs: ReadonlyArray<StrictModelInput>): StrictWriteSet[];
59
+ export declare function normalizeTextRef(provenance: string | undefined, source: string): string;
59
60
  export {};
60
61
  //# sourceMappingURL=strict-modeling.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"strict-modeling.d.ts","sourceRoot":"","sources":["../../src/utils/strict-modeling.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7D,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,gBAAgB,GAAG,OAAO,CAC7B,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,YAAY,CAAC,GAAG,UAAU,CAC3D,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,UAAU,CACzB,KAAK,SAAS,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,EAC7C,WAAW,SAAS,gBAAgB,GAAG,gBAAgB;IAEvD,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,gBAAgB,EAChB,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,CACjD,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,yBAAyB;IACjC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC3B,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,yBAAyB,GAAG,mBAAmB,CAAC;AAE7E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBzD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAe1D;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,GACnB,oBAAoB,CAwBtB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,cAAc,CAsH3E;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,GACtC,cAAc,EAAE,CAkBlB"}
1
+ {"version":3,"file":"strict-modeling.d.ts","sourceRoot":"","sources":["../../src/utils/strict-modeling.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7D,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,gBAAgB,GAAG,OAAO,CAC7B,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,YAAY,CAAC,GAAG,UAAU,CAC3D,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,UAAU,CACzB,KAAK,SAAS,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,EAC7C,WAAW,SAAS,gBAAgB,GAAG,gBAAgB;IAEvD,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,gBAAgB,EAChB,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,CACjD,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,yBAAyB;IACjC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC3B,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,yBAAyB,GAAG,mBAAmB,CAAC;AAE7E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBzD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAe1D;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,GACnB,oBAAoB,CAwBtB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,cAAc,CAsH3E;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,GACtC,cAAc,EAAE,CAkBlB;AAiDD,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,GACb,MAAM,CAMR"}
@@ -232,7 +232,7 @@ function normalizeStatement(statement) {
232
232
  }
233
233
  return normalized;
234
234
  }
235
- function normalizeTextRef(provenance, source) {
235
+ export function normalizeTextRef(provenance, source) {
236
236
  const value = provenance?.trim() || source.trim();
237
237
  if (!value) {
238
238
  throw new Error("Strict modeling requires claim provenance or source");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kibi-cli",
3
- "version": "1.0.1",
3
+ "version": "2.1.0",
4
4
  "type": "module",
5
5
  "description": "Kibi CLI for knowledge base management",
6
6
  "engines": {
@@ -10,16 +10,9 @@
10
10
  "bin": {
11
11
  "kibi": "bin/kibi"
12
12
  },
13
- "files": [
14
- "dist",
15
- "bin",
16
- "schema",
17
- "src/schemas",
18
- "src/public",
19
- "templates"
20
- ],
13
+ "files": ["dist", "bin", "schema", "src/schemas", "src/public", "templates"],
21
14
  "scripts": {
22
- "build": "tsc -p tsconfig.json && rm -rf dist/public/skills && mkdir -p dist/public/skills && cp -r src/public/skills/. dist/public/skills/ && node ../../scripts/generate-entity-schema.mjs --check",
15
+ "build": "tsc -p tsconfig.json && rm -rf dist/public/skills && mkdir -p dist/public/skills dist/report && cp -r src/public/skills/. dist/public/skills/ && cp src/report/html-report.css dist/report/html-report.css && node ../../scripts/generate-entity-schema.mjs --check",
23
16
  "test": "node ../../scripts/run-owned-engine-tests.mjs -- bun test --timeout 15000 .",
24
17
  "typecheck": "tsc -p tsconfig.json --noEmit",
25
18
  "schema:generate": "tsc -p tsconfig.json && node ../../scripts/generate-entity-schema.mjs",
@@ -55,14 +48,14 @@
55
48
  "types": "./dist/runtime/cli-runtime.d.ts",
56
49
  "default": "./dist/runtime/cli-runtime.js"
57
50
  },
51
+ "./plugins": {
52
+ "types": "./dist/plugins/index.d.ts",
53
+ "default": "./dist/plugins/index.js"
54
+ },
58
55
  "./operations/node-ports": {
59
56
  "types": "./dist/public/operations/node-ports.d.ts",
60
57
  "default": "./dist/public/operations/node-ports.js"
61
58
  },
62
- "./verification-receipt": {
63
- "types": "./dist/public/verification-receipt.d.ts",
64
- "default": "./dist/public/verification-receipt.js"
65
- },
66
59
  "./operations/semantic-advisor/analyze-prose": {
67
60
  "types": "./dist/operations/semantic-advisor/analyze-prose.d.ts",
68
61
  "default": "./dist/operations/semantic-advisor/analyze-prose.js"
@@ -120,12 +113,12 @@
120
113
  "default": "./dist/intent-search.js"
121
114
  },
122
115
  "./playwright-reporter": {
123
- "types": "./dist/verification/playwright-reporter.d.ts",
124
- "default": "./dist/verification/playwright-reporter.js"
116
+ "types": "./dist/proof/producers/playwright-reporter.d.ts",
117
+ "default": "./dist/proof/producers/playwright-reporter.js"
125
118
  },
126
119
  "./playwright-case-id": {
127
- "types": "./dist/public/playwright-case-id.d.ts",
128
- "default": "./dist/public/playwright-case-id.js"
120
+ "types": "./dist/proof/producers/playwright-case-id.d.ts",
121
+ "default": "./dist/proof/producers/playwright-case-id.js"
129
122
  },
130
123
  "./public/check-types": {
131
124
  "types": "./dist/public/check-types.d.ts",
@@ -220,6 +213,10 @@
220
213
  "types": "./dist/public/ignore-policy.d.ts",
221
214
  "import": "./dist/public/ignore-policy.js",
222
215
  "default": "./dist/public/ignore-policy.js"
216
+ },
217
+ "./env-bootstrap": {
218
+ "types": "./dist/env/bootstrap.d.ts",
219
+ "default": "./dist/env/bootstrap.js"
223
220
  }
224
221
  },
225
222
  "types": "./dist/cli.d.ts",
@@ -230,14 +227,17 @@
230
227
  "fast-glob": "^3.2.12",
231
228
  "gray-matter": "^4.0.3",
232
229
  "js-yaml": "^4.1.0",
233
- "kibi-core": "^0.11.0",
234
- "ts-morph": "^23.0.0",
230
+ "kibi-core": "^0.13.0",
231
+ "kibi-plugin-builtin": "^0.2.0",
232
+ "kibi-plugin-sdk": "^0.2.0",
233
+ "saxes": "^6.0.0",
235
234
  "ignore": "^5.3.0",
236
235
  "yaml": "^2.9.0"
237
236
  },
238
237
  "devDependencies": {
239
238
  "@types/node": "latest",
240
239
  "semver": "^7.7.4",
240
+ "ts-morph": "^23.0.0",
241
241
  "typescript": "^5.7.0"
242
242
  },
243
243
  "license": "AGPL-3.0-or-later",
@@ -85,12 +85,12 @@ function appendSemanticFields(
85
85
  }
86
86
 
87
87
  const RECEIPT_GAP_CODES = new Set([
88
- "missing_verification_receipt",
89
- "stale_verification_receipt",
90
- "failed_verification_receipt",
91
- "invalid_verification_receipt",
92
- "verification_contract_mismatch",
93
- "verification_snapshot_unavailable",
88
+ "missing_proof_receipt",
89
+ "stale_proof_receipt",
90
+ "failed_proof_receipt",
91
+ "invalid_proof_receipt",
92
+ "proof_contract_mismatch",
93
+ "proof_snapshot_unavailable",
94
94
  ]);
95
95
 
96
96
  const MAX_COVERAGE_RECEIPT_GAPS = 50;
@@ -19,8 +19,8 @@ export const REQUIREMENT_COMPILER_CAPABILITIES = [
19
19
  "contradiction_witnesses",
20
20
  "conservative_proof",
21
21
  "repair_plan",
22
- "verification_receipts",
23
- "verification_contract",
22
+ "proof_receipts",
23
+ "proof_contract",
24
24
  "telemetry_acceptance",
25
25
  ] as const;
26
26
 
@@ -170,7 +170,10 @@ const DEFAULT_VOLATILE_KEYS = new Set([
170
170
  "updated_at",
171
171
  "updatedAt",
172
172
  "usageLogLineNumber",
173
- "verificationSnapshot",
173
+ "proofSnapshot",
174
+ // Per-workspace filesystem identity; CLI and MCP parity runs use two temp trees.
175
+ "attachedIno",
176
+ "attachedDev",
174
177
  ]);
175
178
 
176
179
  type PackageManifest = {
@@ -178,12 +181,17 @@ type PackageManifest = {
178
181
  readonly version?: string;
179
182
  };
180
183
 
181
- function nearestPackageInfo(entrypoint: string): {
184
+ export function nextAncestorDirectory(current: string): string | undefined {
185
+ const parent = path.dirname(current);
186
+ return parent === current ? undefined : parent;
187
+ }
188
+
189
+ export function nearestPackageInfo(entrypoint: string): {
182
190
  readonly packageRoot?: string;
183
191
  readonly version?: string;
184
192
  } {
185
- let current = path.dirname(entrypoint);
186
- while (true) {
193
+ let current: string | undefined = path.dirname(entrypoint);
194
+ while (current !== undefined) {
187
195
  const manifestPath = path.join(current, "package.json");
188
196
  if (existsSync(manifestPath)) {
189
197
  try {
@@ -200,10 +208,9 @@ function nearestPackageInfo(entrypoint: string): {
200
208
  return { packageRoot: current };
201
209
  }
202
210
  }
203
- const parent = path.dirname(current);
204
- if (parent === current) return {};
205
- current = parent;
211
+ current = nextAncestorDirectory(current);
206
212
  }
213
+ return {};
207
214
  }
208
215
 
209
216
  function declaredEntrypoint(contents: string): string | undefined {
@@ -305,7 +312,7 @@ function semanticFingerprint(value: unknown): string {
305
312
  return JSON.stringify(value);
306
313
  }
307
314
 
308
- function sortedUnique(values: readonly string[] | undefined): string[] {
315
+ export function sortedUnique(values: readonly string[] | undefined): string[] {
309
316
  return [...new Set(values ?? [])].sort((left, right) =>
310
317
  left.localeCompare(right),
311
318
  );
@@ -18,6 +18,7 @@
18
18
 
19
19
  export {
20
20
  analyzeSourceText,
21
+ analyzeSourceTextWithRegistry,
21
22
  enrichSymbolCoordinates,
22
23
  type ManifestSymbolEntry,
23
24
  type AnalyzeSourceTextOptions,
@@ -1,6 +1,6 @@
1
1
  import * as path from "node:path";
2
2
  import type { ExtractedSymbol } from "../../traceability/symbol-extract.js";
3
- import { extractSymbolsFromStagedFile } from "../../traceability/symbol-extract.js";
3
+ import { extractSymbolsFromStagedFileAsync } from "../../traceability/symbol-extract.js";
4
4
  import {
5
5
  createSemanticReviewDiagnostics,
6
6
  createSymbolGranularityDiagnostics,
@@ -21,9 +21,9 @@ import type {
21
21
  ChangedFileImpactResult,
22
22
  } from "./types.js";
23
23
 
24
- export function analyzeChangedFileImpact(
24
+ export async function analyzeChangedFileImpact(
25
25
  options: ChangedFileImpactOptions,
26
- ): ChangedFileImpactResult {
26
+ ): Promise<ChangedFileImpactResult> {
27
27
  const workspaceRoot = path.resolve(options.workspaceRoot);
28
28
  const sourceChanges = collectSourceChanges({ ...options, workspaceRoot });
29
29
  const sourceFiles = uniqueSorted(sourceChanges.map((change) => change.file));
@@ -34,17 +34,20 @@ export function analyzeChangedFileImpact(
34
34
 
35
35
  for (const change of sourceChanges) {
36
36
  sourceContentByFile.set(change.file, change.content);
37
+ // Maintenance path: builtin-only (do not pass registry / workspaceRoot).
38
+ const extracted = await extractSymbolsFromStagedFileAsync(
39
+ {
40
+ path: change.file,
41
+ status: change.status,
42
+ hunkRanges: [...change.hunkRanges],
43
+ content: change.content,
44
+ },
45
+ manifestLookup,
46
+ {},
47
+ );
37
48
  symbolsByFile.set(
38
49
  change.file,
39
- extractSymbolsFromStagedFile(
40
- {
41
- path: change.file,
42
- status: change.status,
43
- hunkRanges: [...change.hunkRanges],
44
- content: change.content,
45
- },
46
- manifestLookup,
47
- ).filter((symbol) => symbol.hunkRanges.length > 0),
50
+ extracted.filter((symbol) => symbol.hunkRanges.length > 0),
48
51
  );
49
52
  }
50
53
 
@@ -136,7 +136,7 @@ function isReviewableCoverageDepth(
136
136
  );
137
137
  }
138
138
 
139
- function uniqueStrings(values: readonly string[]): readonly string[] {
139
+ export function uniqueStrings(values: readonly string[]): readonly string[] {
140
140
  return [...new Set(values)].toSorted((left, right) =>
141
141
  left.localeCompare(right),
142
142
  );
@@ -7,6 +7,7 @@ import {
7
7
  extractSymbolsFromStagedFile,
8
8
  } from "../../traceability/symbol-extract.js";
9
9
  import {
10
+ ALLOWED_GRANULARITY_REASONS_PROSE,
10
11
  getBehavioralSymbolNames,
11
12
  getNonBehavioralSymbolNames,
12
13
  isAllowedGranularityReason,
@@ -151,7 +152,7 @@ export function createSymbolGranularityDiagnostics(
151
152
  files: [result.entity.source, result.sourceFile],
152
153
  docs: ["docs/symbol-traceability-taxonomy.md"],
153
154
  message: `Symbol ${result.entity.id} links ${result.sourceFile} coarsely while granular symbols are available (behavioral only): ${behavioralNames.join(", ")}`,
154
- suggestion: `Move ownership/coverage/test relationships to the narrow behavioral symbol, add a manifest behavioral anchor, or add granularity_reason with config-artifact, module-level-behavior, extractor-miss, or legacy-link when the coarse symbol is intentional.${ignoredSymbolsSuggestion}`,
155
+ suggestion: `Move ownership/coverage/test relationships to the narrow behavioral symbol, add a manifest behavioral anchor, or add granularity_reason with ${ALLOWED_GRANULARITY_REASONS_PROSE} when the coarse symbol is intentional.${ignoredSymbolsSuggestion}`,
155
156
  });
156
157
  }
157
158