kibi-cli 1.0.1 → 2.0.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 (450) 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 +103 -0
  17. package/dist/cli-register-reporting.d.ts.map +1 -1
  18. package/dist/cli-register-reporting.js +1 -0
  19. package/dist/cli.d.ts +4 -0
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +17 -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.d.ts +14 -0
  26. package/dist/commands/check.d.ts.map +1 -1
  27. package/dist/commands/check.js +190 -44
  28. package/dist/commands/coverage.d.ts +1 -0
  29. package/dist/commands/coverage.d.ts.map +1 -1
  30. package/dist/commands/coverage.js +6 -0
  31. package/dist/commands/doctor.d.ts +22 -0
  32. package/dist/commands/doctor.d.ts.map +1 -1
  33. package/dist/commands/doctor.js +48 -22
  34. package/dist/commands/engine.d.ts +12 -0
  35. package/dist/commands/engine.d.ts.map +1 -1
  36. package/dist/commands/engine.js +40 -0
  37. package/dist/commands/github-init.d.ts +1 -0
  38. package/dist/commands/github-init.d.ts.map +1 -1
  39. package/dist/commands/github-init.js +9 -5
  40. package/dist/commands/init-helpers.d.ts.map +1 -1
  41. package/dist/commands/init-helpers.js +38 -5
  42. package/dist/commands/migrate.d.ts +4 -0
  43. package/dist/commands/migrate.d.ts.map +1 -1
  44. package/dist/commands/migrate.js +7 -7
  45. package/dist/commands/proof-migrate-legacy.d.ts +7 -0
  46. package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
  47. package/dist/commands/proof-migrate-legacy.js +45 -0
  48. package/dist/commands/proof-prune.d.ts +8 -0
  49. package/dist/commands/proof-prune.d.ts.map +1 -0
  50. package/dist/commands/proof-prune.js +53 -0
  51. package/dist/commands/prove.d.ts +37 -0
  52. package/dist/commands/prove.d.ts.map +1 -0
  53. package/dist/commands/prove.js +470 -0
  54. package/dist/commands/report.js +1 -1
  55. package/dist/commands/sync/discovery.d.ts +3 -0
  56. package/dist/commands/sync/discovery.d.ts.map +1 -1
  57. package/dist/commands/sync/discovery.js +36 -28
  58. package/dist/commands/sync/manifest.d.ts +1 -1
  59. package/dist/commands/sync/manifest.d.ts.map +1 -1
  60. package/dist/commands/sync/manifest.js +53 -21
  61. package/dist/commands/sync/persistence.d.ts +4 -1
  62. package/dist/commands/sync/persistence.d.ts.map +1 -1
  63. package/dist/commands/sync/persistence.js +25 -14
  64. package/dist/commands/sync/staging.d.ts +1 -0
  65. package/dist/commands/sync/staging.d.ts.map +1 -1
  66. package/dist/commands/sync/staging.js +5 -2
  67. package/dist/commands/sync/untracked-targets.d.ts +24 -0
  68. package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
  69. package/dist/commands/sync/untracked-targets.js +108 -0
  70. package/dist/commands/sync.d.ts +11 -1
  71. package/dist/commands/sync.d.ts.map +1 -1
  72. package/dist/commands/sync.js +74 -30
  73. package/dist/engine-daemon.d.ts +3 -1
  74. package/dist/engine-daemon.d.ts.map +1 -1
  75. package/dist/engine-daemon.js +49 -20
  76. package/dist/engine.d.ts +14 -76
  77. package/dist/engine.d.ts.map +1 -1
  78. package/dist/engine.js +197 -30
  79. package/dist/extractors/manifest.d.ts +5 -0
  80. package/dist/extractors/manifest.d.ts.map +1 -1
  81. package/dist/extractors/manifest.js +46 -1
  82. package/dist/extractors/markdown.d.ts +5 -3
  83. package/dist/extractors/markdown.d.ts.map +1 -1
  84. package/dist/extractors/markdown.js +41 -24
  85. package/dist/extractors/playwright-cases.js +1 -1
  86. package/dist/extractors/relationships.d.ts +6 -0
  87. package/dist/extractors/relationships.d.ts.map +1 -1
  88. package/dist/extractors/relationships.js +1 -1
  89. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  90. package/dist/extractors/symbols-ts.d.ts +1 -0
  91. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  92. package/dist/extractors/symbols-ts.js +142 -67
  93. package/dist/intent-search.d.ts +1 -0
  94. package/dist/intent-search.d.ts.map +1 -1
  95. package/dist/intent-search.js +7 -3
  96. package/dist/logic/ir.d.ts +1 -0
  97. package/dist/logic/ir.d.ts.map +1 -1
  98. package/dist/logic/ir.js +1 -1
  99. package/dist/operations/bootstrap/activation.d.ts +2 -1
  100. package/dist/operations/bootstrap/activation.d.ts.map +1 -1
  101. package/dist/operations/bootstrap/activation.js +11 -3
  102. package/dist/operations/bootstrap/generate.d.ts +2 -1
  103. package/dist/operations/bootstrap/generate.d.ts.map +1 -1
  104. package/dist/operations/bootstrap/generate.js +6 -3
  105. package/dist/operations/bootstrap/guidance.d.ts +1 -0
  106. package/dist/operations/bootstrap/guidance.d.ts.map +1 -1
  107. package/dist/operations/bootstrap/guidance.js +1 -1
  108. package/dist/operations/modeling/model-requirement.d.ts +5 -0
  109. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  110. package/dist/operations/modeling/model-requirement.js +53 -46
  111. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -1
  112. package/dist/operations/modeling/predicate-applicability.js +103 -4
  113. package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -1
  114. package/dist/operations/modeling/predicate-catalog-2.js +18 -2
  115. package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
  116. package/dist/operations/modeling/predicate-catalog-3.js +17 -1
  117. package/dist/operations/modeling/predicate-catalog-5.d.ts +10 -0
  118. package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
  119. package/dist/operations/modeling/predicate-catalog-5.js +291 -0
  120. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
  121. package/dist/operations/modeling/predicate-catalog.js +4 -0
  122. package/dist/operations/modeling/predicate-loader.d.ts +1 -0
  123. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  124. package/dist/operations/modeling/predicate-loader.js +4 -3
  125. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  126. package/dist/operations/modeling/predicate-ranker.js +4 -1
  127. package/dist/operations/modeling/predicate-types.d.ts +1 -1
  128. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  129. package/dist/operations/modeling/predicate-usage-hints-4.d.ts +3 -0
  130. package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
  131. package/dist/operations/modeling/predicate-usage-hints-4.js +84 -0
  132. package/dist/operations/modeling/suggest-predicates.d.ts +3 -1
  133. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  134. package/dist/operations/modeling/suggest-predicates.js +52 -19
  135. package/dist/operations/mutation/contradictions.d.ts +2 -1
  136. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  137. package/dist/operations/mutation/contradictions.js +26 -5
  138. package/dist/operations/mutation/delete.d.ts +3 -0
  139. package/dist/operations/mutation/delete.d.ts.map +1 -1
  140. package/dist/operations/mutation/delete.js +100 -32
  141. package/dist/operations/mutation/relationships.d.ts +1 -0
  142. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  143. package/dist/operations/mutation/relationships.js +6 -4
  144. package/dist/operations/mutation/saga.d.ts +51 -0
  145. package/dist/operations/mutation/saga.d.ts.map +1 -0
  146. package/dist/operations/mutation/saga.js +67 -0
  147. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  148. package/dist/operations/mutation/serialization.js +3 -2
  149. package/dist/operations/mutation/source-authoring.d.ts +5 -1
  150. package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
  151. package/dist/operations/mutation/source-authoring.js +79 -46
  152. package/dist/operations/mutation/strict-fact.d.ts +1 -0
  153. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  154. package/dist/operations/mutation/strict-fact.js +8 -5
  155. package/dist/operations/mutation/symbol-compiler-lock.d.ts +5 -2
  156. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -1
  157. package/dist/operations/mutation/symbol-compiler-lock.js +65 -2
  158. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  159. package/dist/operations/mutation/symbol-granularity.js +2 -2
  160. package/dist/operations/mutation/symbol-refresh.d.ts +1 -0
  161. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  162. package/dist/operations/mutation/symbol-refresh.js +10 -8
  163. package/dist/operations/mutation/upsert.d.ts +18 -2
  164. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  165. package/dist/operations/mutation/upsert.js +86 -54
  166. package/dist/operations/mutation/validate-upsert.js +2 -2
  167. package/dist/operations/mutation/validation.d.ts.map +1 -1
  168. package/dist/operations/mutation/validation.js +46 -4
  169. package/dist/operations/mutation/warnings.d.ts +1 -0
  170. package/dist/operations/mutation/warnings.d.ts.map +1 -1
  171. package/dist/operations/mutation/warnings.js +7 -5
  172. package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
  173. package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
  174. package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
  175. package/dist/operations/planning/apply-plan.d.ts +8 -106
  176. package/dist/operations/planning/apply-plan.d.ts.map +1 -1
  177. package/dist/operations/planning/apply-plan.js +113 -36
  178. package/dist/operations/planning/compile-intent.d.ts +2 -0
  179. package/dist/operations/planning/compile-intent.d.ts.map +1 -1
  180. package/dist/operations/planning/compile-intent.js +70 -14
  181. package/dist/operations/proof/ingest-proof.d.ts +34 -0
  182. package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
  183. package/dist/operations/proof/ingest-proof.js +307 -0
  184. package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
  185. package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
  186. package/dist/operations/proof/migrate-legacy-receipts.js +88 -0
  187. package/dist/operations/proof/prune-receipts.d.ts +35 -0
  188. package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
  189. package/dist/operations/proof/prune-receipts.js +91 -0
  190. package/dist/operations/proof/receipt-document.d.ts +29 -0
  191. package/dist/operations/proof/receipt-document.d.ts.map +1 -0
  192. package/dist/operations/proof/receipt-document.js +117 -0
  193. package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
  194. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  195. package/dist/operations/semantic-advisor/analyze-prose.js +46 -26
  196. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  197. package/dist/operations/semantic-advisor/clauses.js +20 -7
  198. package/dist/operations/semantic-advisor/strict-count-rules.d.ts +2 -0
  199. package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
  200. package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
  201. package/dist/prolog/codec.d.ts +13 -1
  202. package/dist/prolog/codec.d.ts.map +1 -1
  203. package/dist/prolog/codec.js +269 -154
  204. package/dist/prolog/error-terms.d.ts +47 -0
  205. package/dist/prolog/error-terms.d.ts.map +1 -0
  206. package/dist/prolog/error-terms.js +334 -0
  207. package/dist/prolog/janitor.d.ts +50 -0
  208. package/dist/prolog/janitor.d.ts.map +1 -0
  209. package/dist/prolog/janitor.js +154 -0
  210. package/dist/prolog/store-lock.d.ts +45 -0
  211. package/dist/prolog/store-lock.d.ts.map +1 -0
  212. package/dist/prolog/store-lock.js +195 -0
  213. package/dist/prolog.d.ts +7 -0
  214. package/dist/prolog.d.ts.map +1 -1
  215. package/dist/prolog.js +55 -17
  216. package/dist/proof/evaluate.d.ts +27 -0
  217. package/dist/proof/evaluate.d.ts.map +1 -0
  218. package/dist/proof/evaluate.js +151 -0
  219. package/dist/proof/inspect.d.ts +12 -0
  220. package/dist/proof/inspect.d.ts.map +1 -0
  221. package/dist/proof/inspect.js +236 -0
  222. package/dist/proof/integrations.d.ts +35 -0
  223. package/dist/proof/integrations.d.ts.map +1 -0
  224. package/dist/proof/integrations.js +123 -0
  225. package/dist/proof/producers/junit-adapter.d.ts +26 -0
  226. package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
  227. package/dist/proof/producers/junit-adapter.js +186 -0
  228. package/dist/{public → proof/producers}/playwright-case-id.d.ts +1 -1
  229. package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
  230. package/dist/{public → proof/producers}/playwright-case-id.js +3 -3
  231. package/dist/proof/producers/playwright-reporter.d.ts +27 -0
  232. package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
  233. package/dist/proof/producers/playwright-reporter.js +138 -0
  234. package/dist/proof/producers/tap-adapter.d.ts +10 -0
  235. package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
  236. package/dist/proof/producers/tap-adapter.js +200 -0
  237. package/dist/proof/receipt-outcome.d.ts +2 -0
  238. package/dist/proof/receipt-outcome.d.ts.map +1 -0
  239. package/dist/proof/receipt-outcome.js +1 -0
  240. package/dist/public/diagnostic-usage.js +6 -6
  241. package/dist/public/distribution-parity.d.ts +7 -1
  242. package/dist/public/distribution-parity.d.ts.map +1 -1
  243. package/dist/public/distribution-parity.js +15 -10
  244. package/dist/public/impact/coverage-depth-quality.d.ts +1 -0
  245. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  246. package/dist/public/impact/coverage-depth-quality.js +1 -1
  247. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  248. package/dist/public/impact/diagnostics.js +2 -2
  249. package/dist/public/impact/diff-meaning.d.ts +1 -0
  250. package/dist/public/impact/diff-meaning.d.ts.map +1 -1
  251. package/dist/public/impact/diff-meaning.js +5 -2
  252. package/dist/public/impact/full-kb-quality.d.ts +5 -2
  253. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  254. package/dist/public/impact/full-kb-quality.js +329 -64
  255. package/dist/public/operations/catalog.d.ts +447 -196
  256. package/dist/public/operations/catalog.d.ts.map +1 -1
  257. package/dist/public/operations/catalog.js +6 -4
  258. package/dist/public/operations/check-executor.d.ts.map +1 -1
  259. package/dist/public/operations/check-executor.js +3 -7
  260. package/dist/public/operations/contracts.d.ts +7 -0
  261. package/dist/public/operations/contracts.d.ts.map +1 -1
  262. package/dist/public/operations/contracts.js +31 -22
  263. package/dist/public/operations/discovery-entities.d.ts +3 -0
  264. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  265. package/dist/public/operations/discovery-entities.js +4 -0
  266. package/dist/public/operations/discovery-executors.d.ts +9 -9
  267. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  268. package/dist/public/operations/discovery-executors.js +17 -14
  269. package/dist/public/operations/index.d.ts +1 -1
  270. package/dist/public/operations/index.d.ts.map +1 -1
  271. package/dist/public/operations/index.js +1 -1
  272. package/dist/public/operations/migration-plan.d.ts +4 -3
  273. package/dist/public/operations/migration-plan.d.ts.map +1 -1
  274. package/dist/public/operations/migration-plan.js +23 -21
  275. package/dist/public/operations/node-ports.js +6 -6
  276. package/dist/public/operations/repair-plan.d.ts +3 -3
  277. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  278. package/dist/public/operations/repair-plan.js +49 -19
  279. package/dist/public/operations/result-envelope.d.ts +1 -0
  280. package/dist/public/operations/result-envelope.d.ts.map +1 -1
  281. package/dist/public/operations/result-envelope.js +12 -10
  282. package/dist/public/operations/runtime-types.d.ts +5 -0
  283. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  284. package/dist/public/operations/specs/check-rules.generated.d.ts +5 -0
  285. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
  286. package/dist/public/operations/specs/check-rules.generated.js +34 -0
  287. package/dist/public/operations/specs/check.d.ts +7 -2
  288. package/dist/public/operations/specs/check.d.ts.map +1 -1
  289. package/dist/public/operations/specs/check.js +8 -20
  290. package/dist/public/operations/specs/mutation-schemas.d.ts +257 -163
  291. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  292. package/dist/public/operations/specs/mutation-schemas.js +15 -7
  293. package/dist/public/operations/specs/planning.d.ts +9 -0
  294. package/dist/public/operations/specs/planning.d.ts.map +1 -1
  295. package/dist/public/operations/specs/planning.js +6 -0
  296. package/dist/public/operations/specs/proof.d.ts +212 -0
  297. package/dist/public/operations/specs/proof.d.ts.map +1 -0
  298. package/dist/public/operations/specs/proof.js +30 -0
  299. package/dist/public/operations/specs/reporting.d.ts +19 -0
  300. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  301. package/dist/public/operations/specs/reporting.js +112 -12
  302. package/dist/public/operations/specs/upsert.d.ts +257 -163
  303. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  304. package/dist/public/operations/symbol-repair-plan.d.ts +11 -0
  305. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -1
  306. package/dist/public/operations/symbol-repair-plan.js +118 -3
  307. package/dist/public/operations/types.d.ts +1 -1
  308. package/dist/public/operations/types.d.ts.map +1 -1
  309. package/dist/public/proof-fingerprint.d.ts +54 -0
  310. package/dist/public/proof-fingerprint.d.ts.map +1 -0
  311. package/dist/public/proof-fingerprint.js +141 -0
  312. package/dist/public/proof-protocol.d.ts +354 -0
  313. package/dist/public/proof-protocol.d.ts.map +1 -0
  314. package/dist/public/proof-protocol.js +454 -0
  315. package/dist/public/proof-receipt.d.ts +279 -0
  316. package/dist/public/proof-receipt.d.ts.map +1 -0
  317. package/dist/public/proof-receipt.js +377 -0
  318. package/dist/public/schemas/entity.d.ts.map +1 -1
  319. package/dist/public/schemas/entity.js +21 -7
  320. package/dist/public/skills/kibi-freshness/SKILL.md +1 -1
  321. package/dist/public/skills/kibi-usage/SKILL.md +41 -12
  322. package/dist/public/skills/kibi-usage/resources/operation-access.md +1 -1
  323. package/dist/public/skills/kibi-usage/resources/proof.md +105 -0
  324. package/dist/public/skills/kibi-usage/resources/workflows.md +6 -6
  325. package/dist/public/symbol-granularity.d.ts +3 -14
  326. package/dist/public/symbol-granularity.d.ts.map +1 -1
  327. package/dist/public/symbol-granularity.generated.d.ts +16 -0
  328. package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
  329. package/dist/public/symbol-granularity.generated.js +20 -0
  330. package/dist/public/symbol-granularity.js +6 -47
  331. package/dist/public/telemetry-acceptance.d.ts +3 -77
  332. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  333. package/dist/public/telemetry-acceptance.js +4 -2
  334. package/dist/public/telemetry-remediation.js +1 -1
  335. package/dist/report/html-report.css +282 -0
  336. package/dist/report/html-report.d.ts +4 -2
  337. package/dist/report/html-report.d.ts.map +1 -1
  338. package/dist/report/html-report.js +37 -300
  339. package/dist/runtime/cli-runtime.d.ts +2 -0
  340. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  341. package/dist/runtime/cli-runtime.js +14 -7
  342. package/dist/schemas/entity.schema.json +355 -215
  343. package/dist/search-ranking.d.ts +1 -0
  344. package/dist/search-ranking.d.ts.map +1 -1
  345. package/dist/search-ranking.js +3 -0
  346. package/dist/traceability/evidence-model.d.ts +28 -0
  347. package/dist/traceability/evidence-model.d.ts.map +1 -1
  348. package/dist/traceability/git-staged.d.ts +20 -0
  349. package/dist/traceability/git-staged.d.ts.map +1 -1
  350. package/dist/traceability/git-staged.js +145 -1
  351. package/dist/traceability/staged-diagnostics.d.ts +7 -0
  352. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  353. package/dist/traceability/staged-diagnostics.js +78 -7
  354. package/dist/traceability/staged-file-coverage.d.ts +33 -0
  355. package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
  356. package/dist/traceability/staged-file-coverage.js +284 -0
  357. package/dist/traceability/staged-impact-contract.js +4 -4
  358. package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
  359. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  360. package/dist/traceability/staged-symbols-manifest.js +138 -27
  361. package/dist/traceability/symbol-extract.d.ts +5 -0
  362. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  363. package/dist/traceability/symbol-extract.js +1 -1
  364. package/dist/traceability/temp-kb.d.ts +2 -0
  365. package/dist/traceability/temp-kb.d.ts.map +1 -1
  366. package/dist/traceability/temp-kb.js +13 -4
  367. package/dist/types/entities.d.ts +5 -3
  368. package/dist/types/entities.d.ts.map +1 -1
  369. package/dist/utils/branch-resolver.d.ts +1 -0
  370. package/dist/utils/branch-resolver.d.ts.map +1 -1
  371. package/dist/utils/branch-resolver.js +7 -4
  372. package/dist/utils/branch-store.d.ts +6 -0
  373. package/dist/utils/branch-store.d.ts.map +1 -1
  374. package/dist/utils/branch-store.js +27 -0
  375. package/dist/utils/kb-paths.d.ts +1 -1
  376. package/dist/utils/kb-paths.d.ts.map +1 -1
  377. package/dist/utils/kb-paths.js +1 -1
  378. package/dist/utils/rule-registry.d.ts +1 -11
  379. package/dist/utils/rule-registry.d.ts.map +1 -1
  380. package/dist/utils/rule-registry.generated.d.ts +97 -0
  381. package/dist/utils/rule-registry.generated.d.ts.map +1 -0
  382. package/dist/utils/rule-registry.generated.js +125 -0
  383. package/dist/utils/rule-registry.js +12 -113
  384. package/dist/utils/strict-modeling.d.ts +1 -0
  385. package/dist/utils/strict-modeling.d.ts.map +1 -1
  386. package/dist/utils/strict-modeling.js +1 -1
  387. package/package.json +8 -11
  388. package/src/public/diagnostic-usage.ts +6 -6
  389. package/src/public/distribution-parity.ts +17 -10
  390. package/src/public/impact/coverage-depth-quality.ts +1 -1
  391. package/src/public/impact/diagnostics.ts +2 -1
  392. package/src/public/impact/diff-meaning.ts +11 -4
  393. package/src/public/impact/full-kb-quality.ts +463 -72
  394. package/src/public/operations/catalog.ts +10 -4
  395. package/src/public/operations/check-executor.ts +3 -7
  396. package/src/public/operations/contracts.ts +38 -22
  397. package/src/public/operations/discovery-entities.ts +7 -0
  398. package/src/public/operations/discovery-executors.ts +26 -23
  399. package/src/public/operations/index.ts +1 -1
  400. package/src/public/operations/migration-plan.ts +32 -25
  401. package/src/public/operations/node-ports.ts +6 -6
  402. package/src/public/operations/repair-plan.ts +60 -23
  403. package/src/public/operations/result-envelope.ts +15 -10
  404. package/src/public/operations/runtime-types.ts +5 -0
  405. package/src/public/operations/specs/check-rules.generated.ts +37 -0
  406. package/src/public/operations/specs/check.ts +12 -21
  407. package/src/public/operations/specs/mutation-schemas.ts +22 -9
  408. package/src/public/operations/specs/planning.ts +7 -0
  409. package/src/public/operations/specs/proof.ts +43 -0
  410. package/src/public/operations/specs/reporting.ts +140 -13
  411. package/src/public/operations/symbol-repair-plan.ts +163 -3
  412. package/src/public/operations/types.ts +1 -1
  413. package/src/public/proof-fingerprint.ts +216 -0
  414. package/src/public/proof-protocol-types.d.ts +96 -0
  415. package/src/public/proof-protocol.ts +589 -0
  416. package/src/public/proof-receipt.ts +499 -0
  417. package/src/public/schemas/entity.ts +26 -10
  418. package/src/public/skills/kibi-freshness/SKILL.md +1 -1
  419. package/src/public/skills/kibi-usage/SKILL.md +41 -12
  420. package/src/public/skills/kibi-usage/resources/operation-access.md +1 -1
  421. package/src/public/skills/kibi-usage/resources/proof.md +105 -0
  422. package/src/public/skills/kibi-usage/resources/workflows.md +6 -6
  423. package/src/public/symbol-granularity.generated.ts +41 -0
  424. package/src/public/symbol-granularity.ts +35 -60
  425. package/src/public/telemetry-acceptance-types.d.ts +98 -0
  426. package/src/public/telemetry-acceptance.ts +22 -100
  427. package/src/public/telemetry-remediation.ts +1 -1
  428. package/src/schemas/entity.schema.json +355 -215
  429. package/dist/cli-register-verification.d.ts +0 -3
  430. package/dist/cli-register-verification.d.ts.map +0 -1
  431. package/dist/cli-register-verification.js +0 -16
  432. package/dist/commands/verify.d.ts +0 -10
  433. package/dist/commands/verify.d.ts.map +0 -1
  434. package/dist/commands/verify.js +0 -126
  435. package/dist/operations/verification/ingest-verification.d.ts +0 -29
  436. package/dist/operations/verification/ingest-verification.d.ts.map +0 -1
  437. package/dist/operations/verification/ingest-verification.js +0 -192
  438. package/dist/public/operations/specs/verification.d.ts +0 -78
  439. package/dist/public/operations/specs/verification.d.ts.map +0 -1
  440. package/dist/public/operations/specs/verification.js +0 -62
  441. package/dist/public/playwright-case-id.d.ts.map +0 -1
  442. package/dist/public/verification-receipt.d.ts +0 -242
  443. package/dist/public/verification-receipt.d.ts.map +0 -1
  444. package/dist/public/verification-receipt.js +0 -296
  445. package/dist/verification/playwright-reporter.d.ts +0 -21
  446. package/dist/verification/playwright-reporter.d.ts.map +0 -1
  447. package/dist/verification/playwright-reporter.js +0 -114
  448. package/src/public/operations/specs/verification.ts +0 -78
  449. package/src/public/playwright-case-id.ts +0 -35
  450. package/src/public/verification-receipt.ts +0 -412
@@ -15,9 +15,10 @@
15
15
  You should have received a copy of the GNU Affero General Public License
16
16
  along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
+ import { PROOF_BINDINGS_SCHEMA, PROOF_CONTRACT_SCHEMA, } from "../proof-protocol.js";
19
+ import { PROOF_RECEIPT_SCHEMA } from "../proof-receipt.js";
18
20
  // Typed fact field enums per proposal
19
21
  import { SYMBOL_ROLES } from "../symbol-granularity.js";
20
- import { VERIFICATION_CONTRACT_SCHEMA, VERIFICATION_RECEIPT_SCHEMA, } from "../verification-receipt.js";
21
22
  const factConditionals = JSON.parse(`[
22
23
  {
23
24
  "if": {
@@ -334,6 +335,15 @@ const entitySchema = {
334
335
  severity: { type: "string" },
335
336
  links: { type: "array", items: { type: "string" } },
336
337
  text_ref: { type: "string" },
338
+ proof_exempt: {
339
+ type: "boolean",
340
+ description: "Requirement-only. Marks a current requirement as intentionally outside E2E-proof scope; requires proof_exempt_reason.",
341
+ },
342
+ proof_exempt_reason: {
343
+ type: "string",
344
+ minLength: 1,
345
+ description: "Requirement-only. Required when proof_exempt is true; surfaces as the applicability reason in coverage rows.",
346
+ },
337
347
  semantic_text: {
338
348
  type: "string",
339
349
  description: "Requirement-only authored prose whose exact UTF-8 bytes anchor the semantic inventory without replacing text_ref evidence.",
@@ -431,10 +441,11 @@ const entitySchema = {
431
441
  type: "string",
432
442
  enum: ["internal", "consumer"],
433
443
  },
434
- verification_contract: VERIFICATION_CONTRACT_SCHEMA,
435
- verification_receipts: {
444
+ proof_contract: PROOF_CONTRACT_SCHEMA,
445
+ proof_bindings: PROOF_BINDINGS_SCHEMA,
446
+ proof_receipts: {
436
447
  type: "array",
437
- items: VERIFICATION_RECEIPT_SCHEMA,
448
+ items: PROOF_RECEIPT_SCHEMA,
438
449
  },
439
450
  type: {
440
451
  type: "string",
@@ -575,14 +586,15 @@ const entitySchema = {
575
586
  anyOf: [
576
587
  { required: ["verification_scope"] },
577
588
  { required: ["verification_perspective"] },
578
- { required: ["verification_contract"] },
579
- { required: ["verification_receipts"] },
589
+ { required: ["proof_contract"] },
590
+ { required: ["proof_bindings"] },
591
+ { required: ["proof_receipts"] },
580
592
  ],
581
593
  },
582
594
  },
583
595
  },
584
596
  {
585
- if: { required: ["verification_receipts"] },
597
+ if: { required: ["proof_receipts"] },
586
598
  // biome-ignore lint/suspicious/noThenProperty: JSON Schema conditional keyword.
587
599
  then: { required: ["verification_scope"] },
588
600
  },
@@ -599,6 +611,8 @@ const entitySchema = {
599
611
  { required: ["semantic_inventory_version"] },
600
612
  { required: ["semantic_source_field"] },
601
613
  { required: ["semantic_source_hash"] },
614
+ { required: ["proof_exempt"] },
615
+ { required: ["proof_exempt_reason"] },
602
616
  ],
603
617
  },
604
618
  },
@@ -39,7 +39,7 @@ echo '{}' | npx --no-install kibi status --input -
39
39
  matching `branch.json`; a `legacy_compat` attachment is read-only until an
40
40
  explicit old/new migration is approved.
41
41
  - Inspect bounded `staleReasons` (indexed source missing/newer or documentation
42
- source newer) and `verificationSnapshotChanges`. Kibi deliberately reports
42
+ source newer) and `proofSnapshotChanges`. Kibi deliberately reports
43
43
  editor/config paths such as editor dot-directories; do not silently ignore them.
44
44
  - Use `kb_query`, or `query --input`, with `sourceFile` and text references for source-linked discovery.
45
45
  - Re-run `kb_search`, or `search --input`, after sync gaps or stale context are detected.
@@ -2,7 +2,7 @@
2
2
  id: kibi-usage
3
3
  name: Kibi Usage
4
4
  description: Use Kibi's source-first, exact-Git, migration-aware, proof-aware operations safely across MCP or the trusted local CLI, including partial completion repair.
5
- version: 2.1.0
5
+ version: 2.1.2
6
6
  kibiCompatibility: ">=1.0.0"
7
7
  tags:
8
8
  - kibi
@@ -19,6 +19,7 @@ resources:
19
19
  - resources/relationship-directions.md
20
20
  - resources/fact-lanes.md
21
21
  - resources/workflows.md
22
+ - resources/proof.md
22
23
  - resources/ui-requirements.md
23
24
  - resources/logic-ir.md
24
25
  - resources/kb-improvement.md
@@ -67,13 +68,30 @@ mutability, and Prolog requirements of each operation.
67
68
  Kibi never Git-stages or commits those files. Do not read or edit `.kb`
68
69
  directly.
69
70
  5. Finish with targeted and final `kb_check`, then read status/coverage and
70
- state freshness, verification, proof, and limitations separately.
71
+ report the five independent closeout fields (not one inferred success flag).
71
72
 
72
73
  Run `kb_check` with specific rules during iteration and the unfiltered final
73
74
  check. Never fire `kb_upsert` calls in parallel; create or confirm endpoint
74
75
  entities before linking them. The canonical MCP names are `kb_search`,
75
76
  `kb_query`, `kb_upsert`, and `kb_check`.
76
77
 
78
+ For a task that explicitly supplies a malformed concrete mutation payload, locate and read that public request artifact before choosing an entity, preserving its exact entity ID, type, requested changes, and every intended relationship and endpoint. Do not substitute a seeded or convenient entity for the requested target. Start with kb_search, then exact-filter those targets with kb_query, and run kb_validate_upsert on that same payload; validation is not completion. Correct only diagnosed pre-commit errors and revalidate the corrected payload. Once authorized, apply the identical corrected and authorized payload with kb_upsert. If it returns committed_with_repairs, treat the mutation as committed, follow only the required repair actions, and neither retry it nor trigger unrelated semantic backfill for a schema-only repair. Exact-read every changed entity and relationship endpoint with kb_query, then finish with an unfiltered kb_check followed by a final kb_status.
79
+
80
+ ## Closeout fields
81
+
82
+ End every task with these five independent fields:
83
+
84
+ ```text
85
+ taskOutcome: complete | interim | blocked
86
+ kbState: clean_fresh | stale | dirty | legacy_compat | not_evaluated
87
+ verificationState: fresh | dirty | unavailable | not_evaluated
88
+ proofState: proven | mixed | unresolved | not_evaluated
89
+ limitationDisposition: none | accepted | unaccepted | not_applicable
90
+ ```
91
+
92
+ `taskOutcome` is whether the requested work finished. The other fields are
93
+ observed system state. A clean check can coexist with unresolved proof.
94
+
77
95
  ## Exact Git attachment
78
96
 
79
97
  The active ref is the exact KB identity. `KIBI_BRANCH` is used verbatim; Git's
@@ -114,22 +132,33 @@ safe normative claims; use `observation` or `meta` for bug/workaround notes and
114
132
  `flag` only for actual runtime/config gates. Requirements require scenarios,
115
133
  tests, symbol ownership, and fresh proof-bearing receipts before claiming proof.
116
134
  For an existing product KB that needs semantic backfill, read
117
- `resources/kb-improvement.md`.
135
+ `resources/kb-improvement.md`, and `resources/proof.md` for the proof workflow.
118
136
 
119
137
  ## Predicate Ontology Decision Tree
120
138
 
121
- Call `kb_semantic_advisor`, `kb_model_requirement`, or `kb_suggest_predicates`
122
- before encoding a normative clause. Use `fact_kind: predicate` with
123
- `requires_predicate` when a suitable schema exists; use `fact_kind: observation`
124
- for an ontology gap. Keep the `REQ -> TEST` chain and use `verified_by` for
125
- proof-bearing links. Relationship direction is fixed, and every `from` in a
126
- relationship batch must equal the upserted entity ID.
139
+ Call `kb_semantic_advisor` on the complete prose before encoding a clause.
140
+ Set requirement `logic_claims` to exactly the assertive `claim_key` values.
141
+ For each relational clause, call `kb_suggest_predicates` with that clause and
142
+ `existingLogicClaims`. If lexical rank is a false positive, retry with the
143
+ reviewed `schemaId`. If `binding_status` is `incomplete`, supply
144
+ `argumentBindings` and retry. Persist `fact_kind: predicate` with the same
145
+ `claim_key` / `claim_text`, then link `REQ -> fact` with `requires_predicate`.
146
+ Use `kb_model_requirement` for strict scalar clauses. Use
147
+ `fact_kind: observation` only for a true ontology gap. The manifest is not
148
+ grounding: run `logic-coverage` so each key binds to one ground fact.
149
+ Relationship direction is fixed, and every `from` in a relationship batch
150
+ must equal the upserted entity ID.
151
+
152
+ For conditional relational claims, after the initial `kb_suggest_predicates` and before any `kb_upsert`—including one needed for a missing schema—call read-only `kb_model_requirement` to preview suitable scalar or typed-rule modeling. Treat the preview as advisory: do not apply an irrelevant result or create unrequested facts, and retain an approved ground-predicate plan when it captures the whole claim. Preserve supplied arity, ordered argument roles, polarity, bound values, and one claim key per actual assertion; never split arguments across clauses or schemas or alter values to force uniqueness.
127
153
 
128
154
  ## Symbol-First Traceability
129
155
 
130
- Represent implementation ownership with a `symbol` entity and an `implements`
131
- relationship from the symbol to the requirement. Do not rely on legacy
132
- `// implements REQ-xxx` comments as the traceability record.
156
+ Represent implementation ownership with a `symbol` entity that has
157
+ `sourceFile`, `implements` to the requirement, and `covered_by` to the test.
158
+ Prolog `symbol-coverage` also requires the test to `validates` the requirement
159
+ (or the requirement `verified_by` the test). `covered_by` alone is not
160
+ enough. Do not rely on legacy `// implements REQ-xxx` comments as the
161
+ traceability record.
133
162
 
134
163
  ## Complete Logical Coverage
135
164
 
@@ -26,7 +26,7 @@ per operation. Effects are authoritative for mutability and adapter annotations.
26
26
  | `kb_sparql_remote` | `sparql-remote` | --input JSON | read | no | network-read | peer; capability-selected | kibi.kb_sparql_remote.v1 | no | safe | yes | yes |
27
27
  | `kb_compile_intent` | `compile-intent` | --input JSON | read | yes | kb-read, workspace-read | peer; capability-selected | kibi.kb_compile_intent.v1 | no | safe | no | yes |
28
28
  | `kb_apply_plan` | `apply-plan` | --input JSON | write | yes | kb-read, kb-write, workspace-read, workspace-write | peer; capability-selected | kibi.kb_apply_plan.v1 | yes | unsafe | no | yes |
29
- | `kb_ingest_verification` | `ingest-verification` | --input JSON | write | yes | kb-read, kb-write, workspace-read | peer; capability-selected | kibi.kb_ingest_verification.v1 | yes | unsafe | no | yes |
29
+ | `kb_ingest_proof` | `ingest-proof` | --input JSON | write | yes | kb-read, kb-write, workspace-read | peer; capability-selected | kibi.kb_ingest_proof.v1 | yes | unsafe | no | yes |
30
30
 
31
31
  ## JSON execution recipe
32
32
 
@@ -0,0 +1,105 @@
1
+ # Proof and Verification Workflow
2
+
3
+ Use this resource when a requirement must be proven before handoff, when
4
+ wiring a proof-bearing test, or when `kb_ingest_proof` or `kibi prove`
5
+ rejected evidence.
6
+
7
+ Kibi does not support test runners. Kibi supports proof evidence. Any
8
+ producer (Playwright, pytest, JUnit, TAP, shell commands, database harnesses)
9
+ reports what happened as `kibi.proof-run.v1`; Kibi evaluates proof.
10
+
11
+ ## Golden path
12
+
13
+ 1. Query the test (`kb_query`, `type: test`) and read its
14
+ `kibi.proof-contract.v1`, `proof_bindings`, and `verification_scope`.
15
+ 2. Run the configured producer through the canonical command:
16
+
17
+ ```bash
18
+ kibi prove --test TEST-<id>
19
+ # or: kibi prove --requirement REQ-<id> | --integration <id> | --all
20
+ ```
21
+
22
+ `kibi prove` captures the workspace snapshot, runs each integration's
23
+ producer once (`shell: false`), revalidates the snapshot, evaluates the
24
+ artifact against every selected contract, and appends idempotent
25
+ `kibi.proof-receipt.v1` receipts.
26
+ 3. Confirm with `kb_status` (fresh, current snapshot) and `kb_coverage`.
27
+
28
+ Never hand-write receipts. Kibi derives them from validated
29
+ `kibi.proof-run.v1` artifacts only.
30
+
31
+ ## Proof contracts
32
+
33
+ A proof-bearing test declares explicit obligations (never a Cartesian
34
+ cases-times-projects matrix):
35
+
36
+ ```yaml
37
+ verification_scope: end_to_end
38
+ verification_perspective: consumer
39
+ proof_contract:
40
+ version: kibi.proof-contract.v1
41
+ integration: web-e2e # id from .kb/proof/integrations.json
42
+ required_proofs:
43
+ - symbol_id: SYM-PW-4F2A9C61B7D03E85
44
+ target: chromium # browser, runtime, db, device, or default
45
+ success_policy: all_required_first_attempt
46
+ proof_bindings: # optional provenance metadata
47
+ - symbol_id: SYM-PW-4F2A9C61B7D03E85
48
+ target: chromium
49
+ native_id: tests/checkout.spec.ts::accepts a card
50
+ ```
51
+
52
+ Provenance lives in `proof_bindings`; the contract stays semantic.
53
+
54
+ ## Integration configuration
55
+
56
+ `.kb/proof/integrations.json` (`kibi.proof-integration.v1`) is tracked,
57
+ Kibi-managed configuration describing evidence production only:
58
+
59
+ - `producer: command` — Kibi synthesizes the envelope from the process
60
+ outcome; obligations are bound with `aggregate_run` provenance and the
61
+ single process invocation counts as the known first attempt.
62
+ - `producer: playwright` (or custom) — the child emits `kibi.proof-run.v1`
63
+ itself (bundled reporter: `kibi-cli/playwright-reporter`).
64
+ - `producer: junit` / `tap` — Kibi converts the native report at `artifact`
65
+ using each test's `proof_bindings`; standard formats carry no retry
66
+ history, so attempts are reported as `unavailable` and fail the strict
67
+ first-attempt policy closed.
68
+
69
+ Cosmetic edits (descriptions, labels) never stale proof. Execution-relevant
70
+ edits (command, artifact, targets, options, bindings, contract) change the
71
+ effective fingerprint and do.
72
+
73
+ ## Attempt semantics (factual, never optimistic)
74
+
75
+ - `attempts: {status: "complete", entries: [...]}` — known history; the
76
+ strict policy requires a passing **first** entry.
77
+ - `attempts: {status: "unavailable"}` — unknown native history; the strict
78
+ policy fails closed, except `aggregate_run` results, which are satisfied by
79
+ the Kibi-launched process attempt when the run passed with exit code 0.
80
+ - `run.outcome` is authoritative: a failed, errored, cancelled, interrupted,
81
+ or `no_results` run proves nothing, even with passing individual results.
82
+
83
+ ## Common rejections
84
+
85
+ - `No proof integration configuration` — bootstrap has not configured proof
86
+ for this repository yet; do not hand-wave, run the bootstrap proof step.
87
+ - `captured snapshot is not the live workspace snapshot` — the tree changed
88
+ between capture and ingest; re-run `kibi prove`.
89
+ - `artifact command_argv does not match the configured command` — the
90
+ artifact came from a different command than `integrations.json` configures.
91
+ - `attempt history unavailable` — the producer could not prove first-attempt
92
+ success for a native-case obligation; use a producer with complete history
93
+ or accept aggregate provenance.
94
+ - `proof_receipts is append-only` — receipts are append-only; update tests
95
+ through the engine (which appends) or include the existing history when
96
+ authoring test files directly.
97
+
98
+ ## After code changes
99
+
100
+ Receipts bind to the snapshot, contract hash, and execution fingerprint at
101
+ run time. Any code or source change moves the snapshot and stales receipts:
102
+ re-run `kibi prove` for the affected selection, then confirm `kb_status` and
103
+ `kb_coverage` before handoff.
104
+
105
+ Full reference: `docs/proving-requirements.md`.
@@ -25,7 +25,7 @@ Receipt reuse is safe only when the live verification snapshot, contract hash,
25
25
  freshness window, and every required case result still match. Otherwise rerun
26
26
  the contracted command. If the contract changed, retain every older receipt
27
27
  unchanged, append evidence for the current contract, and keep proof unresolved
28
- with `verification_contract_mismatch` until that current receipt exists.
28
+ with `proof_contract_mismatch` until that current receipt exists.
29
29
  Obsolete symbols require current extraction or Git evidence before
30
30
  remap/deletion; transfer coverage only when existing test evidence supports it,
31
31
  then sync and read back status. Same-version packages with different export
@@ -46,7 +46,7 @@ The canonical workflow for any KB operation follows this pattern:
46
46
  7. **Create endpoints**: validated `kb_upsert` for new entities, sequentially
47
47
  8. **Link**: validated `kb_upsert` with `requires_rule`, `requires_predicate`, `constrains`, or `requires_property`, sequentially
48
48
  9. **Validate coverage and consistency**: targeted `rule-safety`, `rule-verifiability`, `semantic-completeness`, `logic-coverage`, `predicate-verifiability`, and `domain-contradictions`, then final full `kb_check`
49
- 10. **Prove execution**: read `kb_status.verificationSnapshot`, run each scenario-backed E2E command exactly as declared by its `verification_contract.v1` through `kibi verify`, append the derived `kibi.verification-receipt.v2`, and re-run `kb_coverage`; never promote durable test status into fresh evidence
49
+ 10. **Prove execution**: read `kb_status.proofSnapshot`, run `kibi prove` so each configured integration executes once and its `kibi.proof-run.v1` artifact is evaluated against every selected test's `kibi.proof-contract.v1` obligations, appending idempotent `kibi.proof-receipt.v1` receipts; then re-run `kb_coverage`. Never promote durable test status into fresh evidence.
50
50
  11. **Repair incrementally**: require `kb_coverage.repairPlan.scope.complete`, apply only one `ready` dependency batch per requirement, validate before every sequential write, and rerun coverage before selecting the next batch
51
51
  12. **Gate workflow evidence**: when `.kb/usage.log` exists, run `kibi usage-metrics --format json --require-acceptance`; repair ranked telemetry diagnostics and never treat stale or insufficient evidence as a pass
52
52
 
@@ -74,7 +74,7 @@ choose package managers, ground semantic claims, resolve contradictions, rerun
74
74
  E2E tests, rewrite receipt history, remap authored symbols, or accept
75
75
  limitations. Those actions remain explicit review/operator/execution steps.
76
76
 
77
- For `e2e_receipt_freshness_low`, query each listed requirement/test gap and run its exact current contract through `kibi verify`; this appends v2 evidence and preserves older history. If `coverage_depth_review` conflicts with a coverage row whose `proofStages.passingE2e.status` is `passed`, report the diagnostic as a stale heuristic and keep any independent proof gaps unresolved.
77
+ For `e2e_receipt_freshness_low`, query each listed requirement/test gap and run `kibi prove --requirement <id>` (or the covering integration); this appends proof receipts idempotently and preserves history. If `coverage_depth_review` conflicts with a coverage row whose `proofStages.passingE2e.status` is `passed`, report the diagnostic as a stale heuristic and keep any independent proof gaps unresolved.
78
78
 
79
79
  ## Creating a New Feature
80
80
  ```
@@ -101,12 +101,12 @@ Do not create a test-fact pair. Facts describe invariants; requirements or scena
101
101
  ## Fresh E2E Receipt Workflow
102
102
 
103
103
  1. Confirm the exact `REQ -> SCEN -> TEST` path and require typed `verification_scope: end_to_end`; direct requirement-to-test links do not satisfy the conservative scenario stage.
104
- 2. Read `kb_status` and retain its available `verificationSnapshot`. Stop if the runtime reports `unknown`; proof must fail closed when the code identity cannot be computed.
104
+ 2. Read `kb_status` and retain its available `proofSnapshot`. Stop if the runtime reports `unknown`; proof must fail closed when the code identity cannot be computed.
105
105
  3. Run the exact E2E command against that snapshot. Record runner, command, start/finish timestamps, outcome, an environment SHA-256, and an artifact/output SHA-256. Do not mint a passed receipt from an authored test status or from an unexecuted assertion.
106
- 4. Preserve every existing receipt byte-for-byte and append the derived `kibi.verification-receipt.v2` object with strictly later `finished_at`. Earlier receipts may bind older contracts; they remain audit history but cannot prove the current contract. Mutation and incremental sync reject history removal, rewriting, and reordering.
106
+ 4. Preserve every existing receipt byte-for-byte and append the derived `kibi.proof-receipt.v1` object with strictly later `finished_at`. Earlier receipts may bind older contracts or fingerprints; they remain audit history but cannot prove the current contract. Mutation and incremental sync reject history removal, rewriting, and reordering.
107
107
  5. Re-read `kb_status`; if the snapshot changed during the run, discard the candidate as proof and rerun against the new snapshot. Then run `kb_coverage` and inspect `proofStages.passingE2e.receiptEvidence` plus gap codes.
108
108
 
109
- Only the newest receipt matching both the live snapshot and current contract qualifies, and it must be passed, no more than seven days old, and no more than five minutes in the future. Wrong-snapshot and older-contract history is retained but cannot prove the current test. `missing_verification_receipt`, `stale_verification_receipt`, `failed_verification_receipt`, `invalid_verification_receipt`, `verification_contract_mismatch`, and `verification_snapshot_unavailable` are repair states, not warnings to waive.
109
+ Only the newest receipt matching the live snapshot, current contract hash, and current execution fingerprint qualifies, and it must be passed, no more than seven days old, and no more than five minutes in the future. Wrong-snapshot and older-contract history is retained but cannot prove the current test. `missing_proof_receipt`, `stale_proof_receipt`, `failed_proof_receipt`, `invalid_proof_receipt`, `proof_contract_mismatch`, and `proof_snapshot_unavailable` are repair states, not warnings to waive.
110
110
 
111
111
  ## Predicate-First Requirement Modeling
112
112
 
@@ -1,17 +1,6 @@
1
- export declare const SYMBOL_ROLES: readonly ["behavioral", "structural", "type-shape", "config", "module", "unknown"];
2
- export type SymbolRole = (typeof SYMBOL_ROLES)[number];
3
- export declare const TRACEABILITY_RELATIONSHIP_TYPES: readonly ["implements", "covered_by", "executable_for"];
4
- export type TraceabilityRelationshipType = (typeof TRACEABILITY_RELATIONSHIP_TYPES)[number];
5
- export declare const ALLOWED_GRANULARITY_REASONS: readonly ["config-artifact", "module-level-behavior", "extractor-miss", "legacy-link", "test-suite"];
6
- export type GranularityReason = (typeof ALLOWED_GRANULARITY_REASONS)[number];
7
- /**
8
- * Granularity reasons that document coarse file/module-level coverage for which
9
- * generated per-symbol coordinates are not expected. These anchors legitimately
10
- * carry no coordinate artifact entries. `legacy-link` is intentionally excluded:
11
- * it is a canonical reason but still coordinates a real extractable symbol.
12
- */
13
- export declare const COARSE_GRANULARITY_REASONS: readonly ["config-artifact", "module-level-behavior", "extractor-miss", "test-suite"];
14
- export type CoarseGranularityReason = (typeof COARSE_GRANULARITY_REASONS)[number];
1
+ import { ALLOWED_GRANULARITY_REASONS, ALLOWED_GRANULARITY_REASONS_PROSE, COARSE_GRANULARITY_REASONS, COARSE_GRANULARITY_REASONS_PARENTHESIZED, COARSE_GRANULARITY_REASONS_PROSE, ROLE_INFERENCE, SYMBOL_ROLES, TRACEABILITY_RELATIONSHIP_TYPES, type CoarseGranularityReason, type GranularityReason, type SymbolRole, type TraceabilityRelationshipType } from "./symbol-granularity.generated.js";
2
+ export { ALLOWED_GRANULARITY_REASONS, ALLOWED_GRANULARITY_REASONS_PROSE, COARSE_GRANULARITY_REASONS, COARSE_GRANULARITY_REASONS_PARENTHESIZED, COARSE_GRANULARITY_REASONS_PROSE, ROLE_INFERENCE, SYMBOL_ROLES, TRACEABILITY_RELATIONSHIP_TYPES, };
3
+ export type { CoarseGranularityReason, GranularityReason, SymbolRole, TraceabilityRelationshipType, } from "./symbol-granularity.generated.js";
15
4
  export type SymbolKind = "function" | "class" | "method" | "property" | "accessor" | "interface" | "type" | "variable" | "enum" | "unknown";
16
5
  export type SourceSymbolKind = SymbolKind;
17
6
  export interface GranularSymbolCandidate {
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-granularity.d.ts","sourceRoot":"","sources":["../../src/public/symbol-granularity.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,oFAOf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,+BAA+B,yDAIlC,CAAC;AAEX,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,2BAA2B,sGAM9B,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,uFAK7B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,OAAO,GACP,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,MAAM,GACN,UAAU,GACV,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAYD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAgB5D;AAED,eAAO,MAAM,uBAAuB,wBAAkB,CAAC;AAEvD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAIhE;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,4BAA4B,CAIvC;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iBAAiB,CAE5B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,uBAAuB,CAElC;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,uBAAuB,GAAG,UAAU,CAI5E;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,uBAAuB,GACjC,OAAO,CAET;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,uBAAuB,EAAE,GACpC,MAAM,EAAE,CAMV;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,uBAAuB,EAAE,GACpC,MAAM,EAAE,CAQV"}
1
+ {"version":3,"file":"symbol-granularity.d.ts","sourceRoot":"","sources":["../../src/public/symbol-granularity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,0BAA0B,EAC1B,wCAAwC,EACxC,gCAAgC,EAChC,cAAc,EACd,YAAY,EACZ,+BAA+B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,4BAA4B,EAClC,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,0BAA0B,EAC1B,wCAAwC,EACxC,gCAAgC,EAChC,cAAc,EACd,YAAY,EACZ,+BAA+B,GAChC,CAAC;AACF,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAE3C,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,OAAO,GACP,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,MAAM,GACN,UAAU,GACV,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAYD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAE5D;AAED,eAAO,MAAM,uBAAuB,wBAAkB,CAAC;AAEvD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAIhE;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,4BAA4B,CAIvC;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iBAAiB,CAE5B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,uBAAuB,CAElC;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,uBAAuB,GAAG,UAAU,CAI5E;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,uBAAuB,GACjC,OAAO,CAET;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,uBAAuB,EAAE,GACpC,MAAM,EAAE,CAMV;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,uBAAuB,EAAE,GACpC,MAAM,EAAE,CAQV"}
@@ -0,0 +1,16 @@
1
+ export declare const ALLOWED_GRANULARITY_REASONS: readonly ["config-artifact", "module-level-behavior", "extractor-miss", "legacy-link", "test-suite"];
2
+ export type GranularityReason = (typeof ALLOWED_GRANULARITY_REASONS)[number];
3
+ export declare const COARSE_GRANULARITY_REASONS: readonly ["config-artifact", "module-level-behavior", "extractor-miss", "test-suite"];
4
+ export type CoarseGranularityReason = (typeof COARSE_GRANULARITY_REASONS)[number];
5
+ export declare const SYMBOL_ROLES: readonly ["behavioral", "structural", "type-shape", "config", "module", "unknown"];
6
+ export type SymbolRole = (typeof SYMBOL_ROLES)[number];
7
+ export declare const ROLE_INFERENCE: Readonly<Record<string, SymbolRole>>;
8
+ export declare const TRACEABILITY_RELATIONSHIP_TYPES: readonly ["implements", "covered_by", "executable_for"];
9
+ export type TraceabilityRelationshipType = (typeof TRACEABILITY_RELATIONSHIP_TYPES)[number];
10
+ /** Comma-or list of every allowed granularity reason ("a, b, or c"). */
11
+ export declare const ALLOWED_GRANULARITY_REASONS_PROSE = "config-artifact, module-level-behavior, extractor-miss, legacy-link, or test-suite";
12
+ /** Comma-or list of the coarse granularity reasons ("a, b, or c"). */
13
+ export declare const COARSE_GRANULARITY_REASONS_PROSE = "config-artifact, module-level-behavior, extractor-miss, or test-suite";
14
+ /** Parenthesized coarse list for inline suggestions ("(a, b, c, d)"). */
15
+ export declare const COARSE_GRANULARITY_REASONS_PARENTHESIZED = "(config-artifact, module-level-behavior, extractor-miss, test-suite)";
16
+ //# sourceMappingURL=symbol-granularity.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol-granularity.generated.d.ts","sourceRoot":"","sources":["../../src/public/symbol-granularity.generated.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,2BAA2B,sGAAmG,CAAC;AAE5I,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C,eAAO,MAAM,0BAA0B,uFAAqF,CAAC;AAE7H,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,eAAO,MAAM,YAAY,oFAAgF,CAAC;AAE1G,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,cAAc,EAAE,QAAQ,CACnC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CACsM,CAAC;AAEnO,eAAO,MAAM,+BAA+B,yDAAwD,CAAC;AAErG,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,wEAAwE;AACxE,eAAO,MAAM,iCAAiC,uFAAuF,CAAC;AAEtI,sEAAsE;AACtE,eAAO,MAAM,gCAAgC,0EAA0E,CAAC;AAExH,yEAAyE;AACzE,eAAO,MAAM,wCAAwC,yEAAyE,CAAC"}
@@ -0,0 +1,20 @@
1
+ /*
2
+ * This file is generated by scripts/generate-symbol-classification.mjs from
3
+ * packages/core/schema/symbol-classification.json. Do not edit directly.
4
+ *
5
+ * Single source for the symbol-classification vocabulary shared by the
6
+ * granularity validator, the staged manifest gate, the coordinate refresher,
7
+ * and proof production. Regenerate with: bun run symbols:generate
8
+ */
9
+ // implements REQ-core-extractors
10
+ export const ALLOWED_GRANULARITY_REASONS = ["config-artifact", "module-level-behavior", "extractor-miss", "legacy-link", "test-suite"];
11
+ export const COARSE_GRANULARITY_REASONS = ["config-artifact", "module-level-behavior", "extractor-miss", "test-suite"];
12
+ export const SYMBOL_ROLES = ["behavioral", "structural", "type-shape", "config", "module", "unknown"];
13
+ export const ROLE_INFERENCE = { "function": "behavioral", "class": "behavioral", "method": "behavioral", "property": "behavioral", "accessor": "behavioral", "interface": "type-shape", "type": "type-shape", "enum": "type-shape", "variable": "unknown", "unknown": "unknown" };
14
+ export const TRACEABILITY_RELATIONSHIP_TYPES = ["implements", "covered_by", "executable_for"];
15
+ /** Comma-or list of every allowed granularity reason ("a, b, or c"). */
16
+ export const ALLOWED_GRANULARITY_REASONS_PROSE = "config-artifact, module-level-behavior, extractor-miss, legacy-link, or test-suite";
17
+ /** Comma-or list of the coarse granularity reasons ("a, b, or c"). */
18
+ export const COARSE_GRANULARITY_REASONS_PROSE = "config-artifact, module-level-behavior, extractor-miss, or test-suite";
19
+ /** Parenthesized coarse list for inline suggestions ("(a, b, c, d)"). */
20
+ export const COARSE_GRANULARITY_REASONS_PARENTHESIZED = "(config-artifact, module-level-behavior, extractor-miss, test-suite)";
@@ -1,54 +1,13 @@
1
- export const SYMBOL_ROLES = [
2
- "behavioral",
3
- "structural",
4
- "type-shape",
5
- "config",
6
- "module",
7
- "unknown",
8
- ];
9
- export const TRACEABILITY_RELATIONSHIP_TYPES = [
10
- "implements",
11
- "covered_by",
12
- "executable_for",
13
- ];
14
- export const ALLOWED_GRANULARITY_REASONS = [
15
- "config-artifact",
16
- "module-level-behavior",
17
- "extractor-miss",
18
- "legacy-link",
19
- "test-suite",
20
- ];
21
- /**
22
- * Granularity reasons that document coarse file/module-level coverage for which
23
- * generated per-symbol coordinates are not expected. These anchors legitimately
24
- * carry no coordinate artifact entries. `legacy-link` is intentionally excluded:
25
- * it is a canonical reason but still coordinates a real extractable symbol.
26
- */
27
- export const COARSE_GRANULARITY_REASONS = [
28
- "config-artifact",
29
- "module-level-behavior",
30
- "extractor-miss",
31
- "test-suite",
32
- ];
1
+ import { ALLOWED_GRANULARITY_REASONS, ALLOWED_GRANULARITY_REASONS_PROSE, COARSE_GRANULARITY_REASONS, COARSE_GRANULARITY_REASONS_PARENTHESIZED, COARSE_GRANULARITY_REASONS_PROSE, ROLE_INFERENCE, SYMBOL_ROLES, TRACEABILITY_RELATIONSHIP_TYPES, } from "./symbol-granularity.generated.js";
2
+ // The vocabulary is GENERATED from packages/core/schema/symbol-classification.json
3
+ // (scripts/generate-symbol-classification.mjs) so the TS constants, the manifest
4
+ // gate copy, the sync failure suggestions, and the Prolog facts share one source.
5
+ export { ALLOWED_GRANULARITY_REASONS, ALLOWED_GRANULARITY_REASONS_PROSE, COARSE_GRANULARITY_REASONS, COARSE_GRANULARITY_REASONS_PARENTHESIZED, COARSE_GRANULARITY_REASONS_PROSE, ROLE_INFERENCE, SYMBOL_ROLES, TRACEABILITY_RELATIONSHIP_TYPES, };
33
6
  const traceabilityRelationshipTypeSet = new Set(TRACEABILITY_RELATIONSHIP_TYPES);
34
7
  const allowedGranularityReasonSet = new Set(ALLOWED_GRANULARITY_REASONS);
35
8
  const coarseGranularityReasonSet = new Set(COARSE_GRANULARITY_REASONS);
36
9
  export function inferSymbolRole(kind) {
37
- switch (kind) {
38
- case "function":
39
- case "class":
40
- case "method":
41
- case "property":
42
- case "accessor":
43
- return "behavioral";
44
- case "interface":
45
- case "type":
46
- case "enum":
47
- return "type-shape";
48
- case "variable":
49
- case "unknown":
50
- return "unknown";
51
- }
10
+ return ROLE_INFERENCE[kind] ?? "unknown";
52
11
  }
53
12
  export const inferSymbolRoleFromKind = inferSymbolRole;
54
13
  export function isSymbolRole(value) {
@@ -1,82 +1,7 @@
1
1
  import type { QualityDiagnostic } from "./impact/types.js";
2
+ import type { TelemetryAcceptancePolicy, TelemetryAcceptanceReport, TelemetryMetricStatus, TelemetryUsageEvent } from "./telemetry-acceptance-types.js";
3
+ export type { TelemetryAcceptanceMetric, TelemetryAcceptancePolicy, TelemetryAcceptanceReport, TelemetryAcceptanceStatus, TelemetryMetricId, TelemetryMetricStatus, TelemetryUsageEvent, } from "./telemetry-acceptance-types.js";
2
4
  export declare const TELEMETRY_ACCEPTANCE_VERSION: "kibi.telemetry-acceptance.v1";
3
- export type TelemetryMetricStatus = "passed" | "failed" | "insufficient_evidence" | "not_applicable";
4
- export type TelemetryAcceptanceStatus = "passed" | "failed" | "insufficient_evidence";
5
- export type TelemetryMetricId = "telemetry_completeness" | "advisor_before_requirement_write" | "validation_before_upsert" | "source_lookup_zero_result_rate" | "proof_gap_recovery" | "e2e_receipt_freshness" | "repeated_mutation_failures";
6
- export interface TelemetryUsageEvent {
7
- readonly timestamp?: string;
8
- readonly request_id?: string;
9
- readonly session_id?: string;
10
- readonly actor_id?: string;
11
- readonly tool?: string;
12
- readonly status?: string;
13
- readonly success?: boolean;
14
- readonly telemetry?: unknown;
15
- readonly telemetry_status?: string;
16
- readonly business_args?: Readonly<Record<string, unknown>>;
17
- readonly args?: Readonly<Record<string, unknown>>;
18
- readonly mutation_fingerprint?: string;
19
- readonly mutation_target?: string;
20
- readonly validation_valid?: boolean;
21
- readonly semantic_source_hash?: string;
22
- readonly coverage_by?: string;
23
- readonly coverage_scope_complete?: boolean;
24
- readonly coverage_proof_gap_count?: number;
25
- readonly coverage_receipt_gap_count?: number;
26
- readonly coverage_receipt_gaps?: readonly Readonly<{
27
- readonly requirementId: string;
28
- readonly testIds: readonly string[];
29
- readonly codes: readonly string[];
30
- }>[];
31
- readonly coverage_receipt_gap_total?: number;
32
- readonly coverage_receipt_gaps_truncated?: boolean;
33
- readonly zero_results?: boolean;
34
- readonly result_count?: number;
35
- readonly error_category?: string;
36
- }
37
- export interface TelemetryAcceptancePolicy {
38
- readonly eventLimit: number;
39
- readonly minimumEvents: number;
40
- readonly maxEvidenceAgeSeconds: number;
41
- readonly maxFutureSkewSeconds: number;
42
- readonly telemetryCompletenessMinimum: number;
43
- readonly validationBeforeUpsertMinimum: number;
44
- readonly advisorBeforeRequirementWriteMinimum: number;
45
- readonly sourceLookupZeroResultMaximum: number;
46
- readonly preflightMaxAgeSeconds: number;
47
- readonly advisorMaxAgeSeconds: number;
48
- readonly repeatedMutationFailureThreshold: number;
49
- }
50
- export interface TelemetryAcceptanceMetric {
51
- readonly id: TelemetryMetricId;
52
- readonly status: TelemetryMetricStatus;
53
- readonly numerator: number;
54
- readonly denominator: number;
55
- readonly rate?: number;
56
- readonly threshold?: Readonly<{
57
- operator: ">=" | "<=" | "<";
58
- value: number;
59
- }>;
60
- readonly message: string;
61
- readonly evidence?: Readonly<Record<string, unknown>>;
62
- }
63
- export interface TelemetryAcceptanceReport {
64
- readonly version: typeof TELEMETRY_ACCEPTANCE_VERSION;
65
- readonly status: TelemetryAcceptanceStatus;
66
- readonly evaluatedAt: string;
67
- readonly policy: TelemetryAcceptancePolicy;
68
- readonly scope: Readonly<{
69
- totalEvents: number;
70
- evaluatedEvents: number;
71
- truncated: boolean;
72
- firstTimestamp: string | null;
73
- lastTimestamp: string | null;
74
- evidenceAgeSeconds: number | null;
75
- fresh: boolean;
76
- }>;
77
- readonly metrics: readonly TelemetryAcceptanceMetric[];
78
- readonly diagnostics: readonly string[];
79
- }
80
5
  export declare const DEFAULT_TELEMETRY_ACCEPTANCE_POLICY: {
81
6
  readonly eventLimit: 200;
82
7
  readonly minimumEvents: 20;
@@ -91,6 +16,7 @@ export declare const DEFAULT_TELEMETRY_ACCEPTANCE_POLICY: {
91
16
  readonly repeatedMutationFailureThreshold: 3;
92
17
  };
93
18
  export declare function parseTelemetryUsageLog(contents: string): TelemetryUsageEvent[];
19
+ export declare function thresholdStatus(actual: number | undefined, operator: ">=" | "<=" | "<", expected: number): TelemetryMetricStatus;
94
20
  export declare function analyzeTelemetryAcceptance(events: readonly TelemetryUsageEvent[], now?: Date, policy?: TelemetryAcceptancePolicy): TelemetryAcceptanceReport;
95
21
  export declare function createTelemetryAcceptanceDiagnostics(report: TelemetryAcceptanceReport): readonly QualityDiagnostic[];
96
22
  //# sourceMappingURL=telemetry-acceptance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-acceptance.d.ts","sourceRoot":"","sources":["../../src/public/telemetry-acceptance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry-acceptance.d.ts","sourceRoot":"","sources":["../../src/public/telemetry-acceptance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAEV,yBAAyB,EACzB,yBAAyB,EAGzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EACV,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,4BAA4B,EACvC,8BAAuC,CAAC;AAE1C,eAAO,MAAM,mCAAmC;;;;;;;;;;;;CAYF,CAAC;AAgB/C,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GACf,mBAAmB,EAAE,CAsBvB;AA0DD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAC3B,QAAQ,EAAE,MAAM,GACf,qBAAqB,CAKvB;AA2bD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,mBAAmB,EAAE,EACtC,GAAG,GAAE,IAAiB,EACtB,MAAM,GAAE,yBAA+D,GACtE,yBAAyB,CA6D3B;AA+DD,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,yBAAyB,GAChC,SAAS,iBAAiB,EAAE,CA+E9B"}
@@ -83,7 +83,7 @@ function mutationTarget(event) {
83
83
  function rate(numerator, denominator) {
84
84
  return denominator === 0 ? undefined : numerator / denominator;
85
85
  }
86
- function thresholdStatus(actual, operator, expected) {
86
+ export function thresholdStatus(actual, operator, expected) {
87
87
  if (actual === undefined)
88
88
  return "not_applicable";
89
89
  if (operator === ">=")
@@ -526,7 +526,7 @@ const METRIC_DIAGNOSTICS = {
526
526
  id: "e2e_receipt_freshness_low",
527
527
  severity: "warning",
528
528
  rank: 40,
529
- suggestion: "Query the affected tests and run each exact current verification contract through kibi verify against the live snapshot; preserve history, append the generated kibi.verification-receipt.v2, and rerun complete coverage.",
529
+ suggestion: "Run the configured proof integrations with kibi prove against the live snapshot; receipts append idempotently with preserved history, then rerun complete coverage.",
530
530
  },
531
531
  repeated_mutation_failures: {
532
532
  id: "repeated_mutation_failures",
@@ -581,6 +581,8 @@ export function createTelemetryAcceptanceDiagnostics(report) {
581
581
  if (metric.status !== "failed")
582
582
  continue;
583
583
  const definition = METRIC_DIAGNOSTICS[metric.id];
584
+ if (!definition)
585
+ continue;
584
586
  diagnostics.push({
585
587
  id: definition.id,
586
588
  severity: definition.severity,
@@ -205,7 +205,7 @@ export function buildTelemetryRemediationReport(events, now = new Date(), policy
205
205
  if (isActionable(acceptance, "e2e_receipt_freshness")) {
206
206
  items.push(latestCoverage &&
207
207
  latestCoverage.event.coverage_receipt_gap_count !== undefined
208
- ? eventItem("e2e_receipt_freshness", latestCoverage, "coverage:req", `The latest complete report has ${latestCoverage.event.coverage_receipt_gap_count} receipt gaps.`, "Query the cited tests and run each exact current verification contract through kibi verify; preserve receipt history, append the generated v2 receipts, sync, and rerun coverage.")
208
+ ? eventItem("e2e_receipt_freshness", latestCoverage, "coverage:req", `The latest complete report has ${latestCoverage.event.coverage_receipt_gap_count} receipt gaps.`, "Run `kibi prove` for the cited requirements or integrations; receipts append idempotently with preserved history, then sync and rerun coverage.")
209
209
  : reportItem("e2e_receipt_freshness", "coverage:req", "No complete requirement coverage event contains receipt-freshness evidence.", "Run complete requirement coverage after attaching fresh E2E verification receipts."));
210
210
  }
211
211
  if (isActionable(acceptance, "repeated_mutation_failures")) {