kibi-cli 0.19.0 → 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 (672) 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.d.ts.map +1 -1
  8. package/dist/cli-operation-loader.js +53 -20
  9. package/dist/cli-operation-metadata.d.ts +21 -8
  10. package/dist/cli-operation-metadata.d.ts.map +1 -1
  11. package/dist/cli-operation-metadata.js +27 -10
  12. package/dist/cli-protocol.d.ts.map +1 -1
  13. package/dist/cli-protocol.js +38 -8
  14. package/dist/cli-register-foundation.d.ts.map +1 -1
  15. package/dist/cli-register-foundation.js +14 -2
  16. package/dist/cli-register-maintenance.d.ts.map +1 -1
  17. package/dist/cli-register-maintenance.js +33 -4
  18. package/dist/cli-register-proof.d.ts +3 -0
  19. package/dist/cli-register-proof.d.ts.map +1 -0
  20. package/dist/cli-register-proof.js +103 -0
  21. package/dist/cli-register-reporting.d.ts.map +1 -1
  22. package/dist/cli-register-reporting.js +11 -0
  23. package/dist/cli.d.ts +4 -0
  24. package/dist/cli.d.ts.map +1 -1
  25. package/dist/cli.js +17 -8
  26. package/dist/commands/aggregated-checks.d.ts +1 -2
  27. package/dist/commands/aggregated-checks.d.ts.map +1 -1
  28. package/dist/commands/aggregated-checks.js +14 -9
  29. package/dist/commands/branch.d.ts +37 -0
  30. package/dist/commands/branch.d.ts.map +1 -1
  31. package/dist/commands/branch.js +375 -40
  32. package/dist/commands/check.d.ts +14 -0
  33. package/dist/commands/check.d.ts.map +1 -1
  34. package/dist/commands/check.js +209 -110
  35. package/dist/commands/coverage.d.ts +1 -0
  36. package/dist/commands/coverage.d.ts.map +1 -1
  37. package/dist/commands/coverage.js +6 -0
  38. package/dist/commands/discovery-shared.d.ts.map +1 -1
  39. package/dist/commands/discovery-shared.js +10 -19
  40. package/dist/commands/doctor.d.ts +26 -1
  41. package/dist/commands/doctor.d.ts.map +1 -1
  42. package/dist/commands/doctor.js +291 -30
  43. package/dist/commands/engine.d.ts +12 -0
  44. package/dist/commands/engine.d.ts.map +1 -1
  45. package/dist/commands/engine.js +50 -7
  46. package/dist/commands/gc.d.ts +5 -2
  47. package/dist/commands/gc.d.ts.map +1 -1
  48. package/dist/commands/gc.js +140 -71
  49. package/dist/commands/github-init.d.ts +57 -0
  50. package/dist/commands/github-init.d.ts.map +1 -0
  51. package/dist/commands/github-init.js +314 -0
  52. package/dist/commands/init-helpers.d.ts +1 -1
  53. package/dist/commands/init-helpers.d.ts.map +1 -1
  54. package/dist/commands/init-helpers.js +109 -28
  55. package/dist/commands/init.d.ts +2 -0
  56. package/dist/commands/init.d.ts.map +1 -1
  57. package/dist/commands/init.js +79 -24
  58. package/dist/commands/legacy-storage-migration.d.ts +54 -0
  59. package/dist/commands/legacy-storage-migration.d.ts.map +1 -0
  60. package/dist/commands/legacy-storage-migration.js +277 -0
  61. package/dist/commands/migrate.d.ts +11 -0
  62. package/dist/commands/migrate.d.ts.map +1 -1
  63. package/dist/commands/migrate.js +249 -96
  64. package/dist/commands/proof-migrate-legacy.d.ts +7 -0
  65. package/dist/commands/proof-migrate-legacy.d.ts.map +1 -0
  66. package/dist/commands/proof-migrate-legacy.js +45 -0
  67. package/dist/commands/proof-prune.d.ts +8 -0
  68. package/dist/commands/proof-prune.d.ts.map +1 -0
  69. package/dist/commands/proof-prune.js +53 -0
  70. package/dist/commands/prove.d.ts +37 -0
  71. package/dist/commands/prove.d.ts.map +1 -0
  72. package/dist/commands/prove.js +470 -0
  73. package/dist/commands/report.d.ts +24 -0
  74. package/dist/commands/report.d.ts.map +1 -0
  75. package/dist/commands/report.js +191 -0
  76. package/dist/commands/sync/cache.d.ts +16 -3
  77. package/dist/commands/sync/cache.d.ts.map +1 -1
  78. package/dist/commands/sync/cache.js +111 -4
  79. package/dist/commands/sync/discovery.d.ts +26 -2
  80. package/dist/commands/sync/discovery.d.ts.map +1 -1
  81. package/dist/commands/sync/discovery.js +204 -15
  82. package/dist/commands/sync/extraction.d.ts +8 -1
  83. package/dist/commands/sync/extraction.d.ts.map +1 -1
  84. package/dist/commands/sync/extraction.js +38 -4
  85. package/dist/commands/sync/manifest.d.ts +9 -6
  86. package/dist/commands/sync/manifest.d.ts.map +1 -1
  87. package/dist/commands/sync/manifest.js +195 -60
  88. package/dist/commands/sync/persistence.d.ts +4 -1
  89. package/dist/commands/sync/persistence.d.ts.map +1 -1
  90. package/dist/commands/sync/persistence.js +26 -12
  91. package/dist/commands/sync/staging.d.ts +1 -0
  92. package/dist/commands/sync/staging.d.ts.map +1 -1
  93. package/dist/commands/sync/staging.js +5 -2
  94. package/dist/commands/sync/untracked-targets.d.ts +24 -0
  95. package/dist/commands/sync/untracked-targets.d.ts.map +1 -0
  96. package/dist/commands/sync/untracked-targets.js +108 -0
  97. package/dist/commands/sync.d.ts +17 -1
  98. package/dist/commands/sync.d.ts.map +1 -1
  99. package/dist/commands/sync.js +375 -106
  100. package/dist/diagnostics.d.ts +1 -1
  101. package/dist/diagnostics.d.ts.map +1 -1
  102. package/dist/engine-daemon.d.ts +3 -1
  103. package/dist/engine-daemon.d.ts.map +1 -1
  104. package/dist/engine-daemon.js +49 -20
  105. package/dist/engine.d.ts +34 -3
  106. package/dist/engine.d.ts.map +1 -1
  107. package/dist/engine.js +578 -42
  108. package/dist/env.d.ts.map +1 -1
  109. package/dist/env.js +5 -6
  110. package/dist/extractors/manifest.d.ts +13 -1
  111. package/dist/extractors/manifest.d.ts.map +1 -1
  112. package/dist/extractors/manifest.js +97 -10
  113. package/dist/extractors/markdown.d.ts +5 -2
  114. package/dist/extractors/markdown.d.ts.map +1 -1
  115. package/dist/extractors/markdown.js +47 -12
  116. package/dist/extractors/playwright-cases.d.ts +24 -0
  117. package/dist/extractors/playwright-cases.d.ts.map +1 -0
  118. package/dist/extractors/playwright-cases.js +126 -0
  119. package/dist/extractors/relationships.d.ts +6 -0
  120. package/dist/extractors/relationships.d.ts.map +1 -1
  121. package/dist/extractors/relationships.js +2 -1
  122. package/dist/extractors/symbol-coordinates.d.ts +81 -3
  123. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  124. package/dist/extractors/symbol-coordinates.js +389 -51
  125. package/dist/extractors/symbols-coordinator.js +11 -1
  126. package/dist/extractors/symbols-ts.d.ts +1 -0
  127. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  128. package/dist/extractors/symbols-ts.js +142 -67
  129. package/dist/intent-search.d.ts +61 -0
  130. package/dist/intent-search.d.ts.map +1 -0
  131. package/dist/intent-search.js +437 -0
  132. package/dist/logic/ir.d.ts +1 -0
  133. package/dist/logic/ir.d.ts.map +1 -1
  134. package/dist/logic/ir.js +1 -1
  135. package/dist/operations/bootstrap/activation.d.ts +5 -0
  136. package/dist/operations/bootstrap/activation.d.ts.map +1 -0
  137. package/dist/operations/{autopilot → bootstrap}/activation.js +58 -33
  138. package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts.map +1 -1
  139. package/dist/operations/bootstrap/candidates.d.ts +4 -0
  140. package/dist/operations/{autopilot → bootstrap}/candidates.d.ts.map +1 -1
  141. package/dist/operations/{autopilot → bootstrap}/candidates.js +22 -8
  142. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts +2 -2
  143. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.d.ts.map +1 -1
  144. package/dist/operations/{autopilot → bootstrap}/discovery-evidence.js +46 -6
  145. package/dist/operations/{autopilot → bootstrap}/discovery.d.ts +1 -1
  146. package/dist/operations/bootstrap/discovery.d.ts.map +1 -0
  147. package/dist/operations/{autopilot → bootstrap}/discovery.js +21 -14
  148. package/dist/operations/bootstrap/generate.d.ts +9 -0
  149. package/dist/operations/bootstrap/generate.d.ts.map +1 -0
  150. package/dist/operations/bootstrap/generate.js +207 -0
  151. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts +2 -2
  152. package/dist/operations/{autopilot → bootstrap}/guidance-actions.d.ts.map +1 -1
  153. package/dist/operations/{autopilot → bootstrap}/guidance-actions.js +4 -4
  154. package/dist/operations/{autopilot → bootstrap}/guidance.d.ts +3 -2
  155. package/dist/operations/bootstrap/guidance.d.ts.map +1 -0
  156. package/dist/operations/{autopilot → bootstrap}/guidance.js +3 -1
  157. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts +2 -2
  158. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.d.ts.map +1 -1
  159. package/dist/operations/{autopilot → bootstrap}/markdown-candidates.js +4 -3
  160. package/dist/operations/bootstrap/presentation.d.ts +15 -0
  161. package/dist/operations/bootstrap/presentation.d.ts.map +1 -0
  162. package/dist/operations/bootstrap/presentation.js +177 -0
  163. package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts.map +1 -1
  164. package/dist/operations/{autopilot → bootstrap}/types.d.ts +63 -21
  165. package/dist/operations/bootstrap/types.d.ts.map +1 -0
  166. package/dist/operations/bootstrap/types.js +25 -0
  167. package/dist/operations/modeling/model-requirement.d.ts +5 -0
  168. package/dist/operations/modeling/model-requirement.d.ts.map +1 -1
  169. package/dist/operations/modeling/model-requirement.js +57 -63
  170. package/dist/operations/modeling/predicate-applicability.d.ts +16 -0
  171. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -0
  172. package/dist/operations/modeling/predicate-applicability.js +375 -0
  173. package/dist/operations/modeling/predicate-applyplan.d.ts +13 -2
  174. package/dist/operations/modeling/predicate-applyplan.d.ts.map +1 -1
  175. package/dist/operations/modeling/predicate-applyplan.js +100 -3
  176. package/dist/operations/modeling/predicate-bindings.d.ts +6 -0
  177. package/dist/operations/modeling/predicate-bindings.d.ts.map +1 -0
  178. package/dist/operations/modeling/predicate-bindings.js +122 -0
  179. package/dist/operations/modeling/predicate-catalog-2.d.ts.map +1 -1
  180. package/dist/operations/modeling/predicate-catalog-2.js +18 -2
  181. package/dist/operations/modeling/predicate-catalog-3.d.ts.map +1 -1
  182. package/dist/operations/modeling/predicate-catalog-3.js +17 -1
  183. package/dist/operations/modeling/predicate-catalog-4.d.ts.map +1 -1
  184. package/dist/operations/modeling/predicate-catalog-4.js +155 -0
  185. package/dist/operations/modeling/predicate-catalog-5.d.ts +10 -0
  186. package/dist/operations/modeling/predicate-catalog-5.d.ts.map +1 -0
  187. package/dist/operations/modeling/predicate-catalog-5.js +291 -0
  188. package/dist/operations/modeling/predicate-catalog.d.ts.map +1 -1
  189. package/dist/operations/modeling/predicate-catalog.js +4 -0
  190. package/dist/operations/modeling/predicate-inference-1.d.ts.map +1 -1
  191. package/dist/operations/modeling/predicate-inference-1.js +8 -0
  192. package/dist/operations/modeling/predicate-inference-launcher.d.ts +10 -0
  193. package/dist/operations/modeling/predicate-inference-launcher.d.ts.map +1 -0
  194. package/dist/operations/modeling/predicate-inference-launcher.js +13 -0
  195. package/dist/operations/modeling/predicate-inference.d.ts.map +1 -1
  196. package/dist/operations/modeling/predicate-inference.js +4 -0
  197. package/dist/operations/modeling/predicate-loader.d.ts +1 -0
  198. package/dist/operations/modeling/predicate-loader.d.ts.map +1 -1
  199. package/dist/operations/modeling/predicate-loader.js +11 -3
  200. package/dist/operations/modeling/predicate-ranker.d.ts +8 -1
  201. package/dist/operations/modeling/predicate-ranker.d.ts.map +1 -1
  202. package/dist/operations/modeling/predicate-ranker.js +159 -24
  203. package/dist/operations/modeling/predicate-score-3.d.ts.map +1 -1
  204. package/dist/operations/modeling/predicate-score-3.js +6 -0
  205. package/dist/operations/modeling/predicate-types.d.ts +35 -1
  206. package/dist/operations/modeling/predicate-types.d.ts.map +1 -1
  207. package/dist/operations/modeling/predicate-usage-hints-3.d.ts.map +1 -1
  208. package/dist/operations/modeling/predicate-usage-hints-3.js +40 -0
  209. package/dist/operations/modeling/predicate-usage-hints-4.d.ts +3 -0
  210. package/dist/operations/modeling/predicate-usage-hints-4.d.ts.map +1 -0
  211. package/dist/operations/modeling/predicate-usage-hints-4.js +84 -0
  212. package/dist/operations/modeling/predicate-utils.d.ts.map +1 -1
  213. package/dist/operations/modeling/predicate-utils.js +2 -0
  214. package/dist/operations/modeling/suggest-predicates.d.ts +4 -2
  215. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  216. package/dist/operations/modeling/suggest-predicates.js +203 -32
  217. package/dist/operations/mutation/contradictions.d.ts +2 -1
  218. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  219. package/dist/operations/mutation/contradictions.js +26 -5
  220. package/dist/operations/mutation/delete.d.ts +3 -0
  221. package/dist/operations/mutation/delete.d.ts.map +1 -1
  222. package/dist/operations/mutation/delete.js +483 -19
  223. package/dist/operations/mutation/entity-projection.d.ts +11 -0
  224. package/dist/operations/mutation/entity-projection.d.ts.map +1 -0
  225. package/dist/operations/mutation/entity-projection.js +14 -0
  226. package/dist/operations/mutation/relationships.d.ts +11 -0
  227. package/dist/operations/mutation/relationships.d.ts.map +1 -1
  228. package/dist/operations/mutation/relationships.js +77 -5
  229. package/dist/operations/mutation/saga.d.ts +51 -0
  230. package/dist/operations/mutation/saga.d.ts.map +1 -0
  231. package/dist/operations/mutation/saga.js +67 -0
  232. package/dist/operations/mutation/serialization.d.ts.map +1 -1
  233. package/dist/operations/mutation/serialization.js +3 -1
  234. package/dist/operations/mutation/source-authoring.d.ts +65 -0
  235. package/dist/operations/mutation/source-authoring.d.ts.map +1 -0
  236. package/dist/operations/mutation/source-authoring.js +576 -0
  237. package/dist/operations/mutation/strict-fact.d.ts +1 -0
  238. package/dist/operations/mutation/strict-fact.d.ts.map +1 -1
  239. package/dist/operations/mutation/strict-fact.js +8 -5
  240. package/dist/operations/mutation/symbol-compiler-lock.d.ts +54 -0
  241. package/dist/operations/mutation/symbol-compiler-lock.d.ts.map +1 -0
  242. package/dist/operations/mutation/symbol-compiler-lock.js +337 -0
  243. package/dist/operations/mutation/symbol-granularity.d.ts.map +1 -1
  244. package/dist/operations/mutation/symbol-granularity.js +35 -4
  245. package/dist/operations/mutation/symbol-refresh.d.ts +19 -1
  246. package/dist/operations/mutation/symbol-refresh.d.ts.map +1 -1
  247. package/dist/operations/mutation/symbol-refresh.js +227 -63
  248. package/dist/operations/mutation/types.d.ts +57 -1
  249. package/dist/operations/mutation/types.d.ts.map +1 -1
  250. package/dist/operations/mutation/upsert.d.ts +18 -2
  251. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  252. package/dist/operations/mutation/upsert.js +403 -32
  253. package/dist/operations/mutation/validate-upsert.js +2 -2
  254. package/dist/operations/mutation/validation.d.ts.map +1 -1
  255. package/dist/operations/mutation/validation.js +47 -4
  256. package/dist/operations/mutation/warnings.d.ts +1 -0
  257. package/dist/operations/mutation/warnings.d.ts.map +1 -1
  258. package/dist/operations/mutation/warnings.js +7 -5
  259. package/dist/operations/mutation/workspace-mutation-lock.d.ts +60 -0
  260. package/dist/operations/mutation/workspace-mutation-lock.d.ts.map +1 -0
  261. package/dist/operations/mutation/workspace-mutation-lock.js +362 -0
  262. package/dist/operations/planning/apply-plan.d.ts +19 -0
  263. package/dist/operations/planning/apply-plan.d.ts.map +1 -0
  264. package/dist/operations/planning/apply-plan.js +1514 -0
  265. package/dist/operations/planning/compile-intent.d.ts +108 -0
  266. package/dist/operations/planning/compile-intent.d.ts.map +1 -0
  267. package/dist/operations/planning/compile-intent.js +618 -0
  268. package/dist/operations/proof/ingest-proof.d.ts +34 -0
  269. package/dist/operations/proof/ingest-proof.d.ts.map +1 -0
  270. package/dist/operations/proof/ingest-proof.js +307 -0
  271. package/dist/operations/proof/migrate-legacy-receipts.d.ts +30 -0
  272. package/dist/operations/proof/migrate-legacy-receipts.d.ts.map +1 -0
  273. package/dist/operations/proof/migrate-legacy-receipts.js +88 -0
  274. package/dist/operations/proof/prune-receipts.d.ts +35 -0
  275. package/dist/operations/proof/prune-receipts.d.ts.map +1 -0
  276. package/dist/operations/proof/prune-receipts.js +91 -0
  277. package/dist/operations/proof/receipt-document.d.ts +29 -0
  278. package/dist/operations/proof/receipt-document.d.ts.map +1 -0
  279. package/dist/operations/proof/receipt-document.js +117 -0
  280. package/dist/operations/semantic-advisor/analyze-prose.d.ts +1 -0
  281. package/dist/operations/semantic-advisor/analyze-prose.d.ts.map +1 -1
  282. package/dist/operations/semantic-advisor/analyze-prose.js +52 -28
  283. package/dist/operations/semantic-advisor/clauses.d.ts.map +1 -1
  284. package/dist/operations/semantic-advisor/clauses.js +35 -9
  285. package/dist/operations/semantic-advisor/ingestion-boundary.d.ts.map +1 -1
  286. package/dist/operations/semantic-advisor/ingestion-boundary.js +7 -3
  287. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts +51 -0
  288. package/dist/operations/semantic-advisor/predicate-rules-launcher.d.ts.map +1 -0
  289. package/dist/operations/semantic-advisor/predicate-rules-launcher.js +96 -0
  290. package/dist/operations/semantic-advisor/strict-count-rules.d.ts +2 -0
  291. package/dist/operations/semantic-advisor/strict-count-rules.d.ts.map +1 -1
  292. package/dist/operations/semantic-advisor/strict-count-rules.js +40 -25
  293. package/dist/operations/semantic-advisor/types.d.ts +13 -5
  294. package/dist/operations/semantic-advisor/types.d.ts.map +1 -1
  295. package/dist/prolog/codec.d.ts +13 -1
  296. package/dist/prolog/codec.d.ts.map +1 -1
  297. package/dist/prolog/codec.js +269 -153
  298. package/dist/prolog/error-terms.d.ts +47 -0
  299. package/dist/prolog/error-terms.d.ts.map +1 -0
  300. package/dist/prolog/error-terms.js +334 -0
  301. package/dist/prolog/janitor.d.ts +50 -0
  302. package/dist/prolog/janitor.d.ts.map +1 -0
  303. package/dist/prolog/janitor.js +154 -0
  304. package/dist/prolog/store-lock.d.ts +45 -0
  305. package/dist/prolog/store-lock.d.ts.map +1 -0
  306. package/dist/prolog/store-lock.js +195 -0
  307. package/dist/prolog.d.ts +7 -0
  308. package/dist/prolog.d.ts.map +1 -1
  309. package/dist/prolog.js +82 -25
  310. package/dist/proof/evaluate.d.ts +27 -0
  311. package/dist/proof/evaluate.d.ts.map +1 -0
  312. package/dist/proof/evaluate.js +151 -0
  313. package/dist/proof/inspect.d.ts +12 -0
  314. package/dist/proof/inspect.d.ts.map +1 -0
  315. package/dist/proof/inspect.js +236 -0
  316. package/dist/proof/integrations.d.ts +35 -0
  317. package/dist/proof/integrations.d.ts.map +1 -0
  318. package/dist/proof/integrations.js +123 -0
  319. package/dist/proof/producers/junit-adapter.d.ts +26 -0
  320. package/dist/proof/producers/junit-adapter.d.ts.map +1 -0
  321. package/dist/proof/producers/junit-adapter.js +186 -0
  322. package/dist/proof/producers/playwright-case-id.d.ts +8 -0
  323. package/dist/proof/producers/playwright-case-id.d.ts.map +1 -0
  324. package/dist/proof/producers/playwright-case-id.js +25 -0
  325. package/dist/proof/producers/playwright-reporter.d.ts +27 -0
  326. package/dist/proof/producers/playwright-reporter.d.ts.map +1 -0
  327. package/dist/proof/producers/playwright-reporter.js +138 -0
  328. package/dist/proof/producers/tap-adapter.d.ts +10 -0
  329. package/dist/proof/producers/tap-adapter.d.ts.map +1 -0
  330. package/dist/proof/producers/tap-adapter.js +200 -0
  331. package/dist/proof/receipt-outcome.d.ts +2 -0
  332. package/dist/proof/receipt-outcome.d.ts.map +1 -0
  333. package/dist/proof/receipt-outcome.js +1 -0
  334. package/dist/public/branch-resolver.d.ts +1 -0
  335. package/dist/public/branch-resolver.d.ts.map +1 -1
  336. package/dist/public/branch-resolver.js +1 -0
  337. package/dist/public/check-types.d.ts +2 -2
  338. package/dist/public/check-types.d.ts.map +1 -1
  339. package/dist/public/check-types.js +16 -16
  340. package/dist/public/diagnostic-usage.d.ts.map +1 -1
  341. package/dist/public/diagnostic-usage.js +74 -6
  342. package/dist/public/distribution-parity.d.ts +7 -1
  343. package/dist/public/distribution-parity.d.ts.map +1 -1
  344. package/dist/public/distribution-parity.js +15 -9
  345. package/dist/public/ignore-policy.d.ts.map +1 -1
  346. package/dist/public/ignore-policy.js +16 -4
  347. package/dist/public/impact/coverage-depth-quality.d.ts +7 -1
  348. package/dist/public/impact/coverage-depth-quality.d.ts.map +1 -1
  349. package/dist/public/impact/coverage-depth-quality.js +22 -4
  350. package/dist/public/impact/diagnostics.d.ts.map +1 -1
  351. package/dist/public/impact/diagnostics.js +2 -2
  352. package/dist/public/impact/diff-meaning.d.ts +1 -0
  353. package/dist/public/impact/diff-meaning.d.ts.map +1 -1
  354. package/dist/public/impact/diff-meaning.js +5 -2
  355. package/dist/public/impact/full-kb-quality.d.ts +7 -2
  356. package/dist/public/impact/full-kb-quality.d.ts.map +1 -1
  357. package/dist/public/impact/full-kb-quality.js +364 -39
  358. package/dist/public/impact/manifest.d.ts.map +1 -1
  359. package/dist/public/impact/manifest.js +2 -5
  360. package/dist/public/operational-artifacts.d.ts.map +1 -1
  361. package/dist/public/operational-artifacts.js +7 -1
  362. package/dist/public/operations/catalog.d.ts +900 -34
  363. package/dist/public/operations/catalog.d.ts.map +1 -1
  364. package/dist/public/operations/catalog.js +130 -6
  365. package/dist/public/operations/check-executor.d.ts +2 -2
  366. package/dist/public/operations/check-executor.d.ts.map +1 -1
  367. package/dist/public/operations/check-executor.js +68 -13
  368. package/dist/public/operations/check-format-shared.d.ts +3 -0
  369. package/dist/public/operations/check-format-shared.d.ts.map +1 -1
  370. package/dist/public/operations/check-format-shared.js +3 -0
  371. package/dist/public/operations/check-helpers.d.ts +27 -2
  372. package/dist/public/operations/check-helpers.d.ts.map +1 -1
  373. package/dist/public/operations/check-helpers.js +62 -26
  374. package/dist/public/operations/contracts.d.ts +18 -0
  375. package/dist/public/operations/contracts.d.ts.map +1 -0
  376. package/dist/public/operations/contracts.js +334 -0
  377. package/dist/public/operations/discovery-entities.d.ts +3 -0
  378. package/dist/public/operations/discovery-entities.d.ts.map +1 -1
  379. package/dist/public/operations/discovery-entities.js +4 -0
  380. package/dist/public/operations/discovery-executors.d.ts +43 -7
  381. package/dist/public/operations/discovery-executors.d.ts.map +1 -1
  382. package/dist/public/operations/discovery-executors.js +216 -13
  383. package/dist/public/operations/index.d.ts +9 -4
  384. package/dist/public/operations/index.d.ts.map +1 -1
  385. package/dist/public/operations/index.js +8 -3
  386. package/dist/public/operations/migration-plan.d.ts +102 -0
  387. package/dist/public/operations/migration-plan.d.ts.map +1 -0
  388. package/dist/public/operations/migration-plan.js +539 -0
  389. package/dist/public/operations/node-ports.d.ts.map +1 -1
  390. package/dist/public/operations/node-ports.js +71 -11
  391. package/dist/public/operations/prolog-json.d.ts +14 -0
  392. package/dist/public/operations/prolog-json.d.ts.map +1 -1
  393. package/dist/public/operations/prolog-json.js +44 -5
  394. package/dist/public/operations/repair-plan.d.ts +3 -3
  395. package/dist/public/operations/repair-plan.d.ts.map +1 -1
  396. package/dist/public/operations/repair-plan.js +49 -18
  397. package/dist/public/operations/result-envelope.d.ts +14 -0
  398. package/dist/public/operations/result-envelope.d.ts.map +1 -0
  399. package/dist/public/operations/result-envelope.js +106 -0
  400. package/dist/public/operations/runtime-types.d.ts +102 -7
  401. package/dist/public/operations/runtime-types.d.ts.map +1 -1
  402. package/dist/public/operations/source-relationship-parity.d.ts +13 -0
  403. package/dist/public/operations/source-relationship-parity.d.ts.map +1 -0
  404. package/dist/public/operations/source-relationship-parity.js +162 -0
  405. package/dist/public/operations/specs/{autopilot.d.ts → bootstrap.d.ts} +9 -9
  406. package/dist/public/operations/specs/bootstrap.d.ts.map +1 -0
  407. package/dist/public/operations/specs/{autopilot.js → bootstrap.js} +8 -7
  408. package/dist/public/operations/specs/check-rules.generated.d.ts +5 -0
  409. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -0
  410. package/dist/public/operations/specs/check-rules.generated.js +34 -0
  411. package/dist/public/operations/specs/check.d.ts +9 -4
  412. package/dist/public/operations/specs/check.d.ts.map +1 -1
  413. package/dist/public/operations/specs/check.js +10 -21
  414. package/dist/public/operations/specs/discovery.d.ts +87 -3
  415. package/dist/public/operations/specs/discovery.d.ts.map +1 -1
  416. package/dist/public/operations/specs/discovery.js +53 -3
  417. package/dist/public/operations/specs/modeling.d.ts +3 -3
  418. package/dist/public/operations/specs/modeling.js +3 -3
  419. package/dist/public/operations/specs/mutation-schemas.d.ts +251 -14
  420. package/dist/public/operations/specs/mutation-schemas.d.ts.map +1 -1
  421. package/dist/public/operations/specs/mutation-schemas.js +16 -6
  422. package/dist/public/operations/specs/mutation.d.ts +42 -2
  423. package/dist/public/operations/specs/mutation.d.ts.map +1 -1
  424. package/dist/public/operations/specs/mutation.js +26 -2
  425. package/dist/public/operations/specs/planning.d.ts +279 -0
  426. package/dist/public/operations/specs/planning.d.ts.map +1 -0
  427. package/dist/public/operations/specs/planning.js +197 -0
  428. package/dist/public/operations/specs/proof.d.ts +212 -0
  429. package/dist/public/operations/specs/proof.d.ts.map +1 -0
  430. package/dist/public/operations/specs/proof.js +30 -0
  431. package/dist/public/operations/specs/reporting.d.ts +23 -1
  432. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  433. package/dist/public/operations/specs/reporting.js +156 -11
  434. package/dist/public/operations/specs/upsert.d.ts +265 -14
  435. package/dist/public/operations/specs/upsert.d.ts.map +1 -1
  436. package/dist/public/operations/specs/upsert.js +9 -0
  437. package/dist/public/operations/symbol-repair-plan.d.ts +22 -0
  438. package/dist/public/operations/symbol-repair-plan.d.ts.map +1 -0
  439. package/dist/public/operations/symbol-repair-plan.js +238 -0
  440. package/dist/public/operations/types.d.ts +52 -1
  441. package/dist/public/operations/types.d.ts.map +1 -1
  442. package/dist/public/proof-fingerprint.d.ts +54 -0
  443. package/dist/public/proof-fingerprint.d.ts.map +1 -0
  444. package/dist/public/proof-fingerprint.js +141 -0
  445. package/dist/public/proof-protocol.d.ts +354 -0
  446. package/dist/public/proof-protocol.d.ts.map +1 -0
  447. package/dist/public/proof-protocol.js +454 -0
  448. package/dist/public/proof-receipt.d.ts +279 -0
  449. package/dist/public/proof-receipt.d.ts.map +1 -0
  450. package/dist/public/proof-receipt.js +377 -0
  451. package/dist/public/schemas/entity.d.ts.map +1 -1
  452. package/dist/public/schemas/entity.js +22 -6
  453. package/dist/public/skills/kibi-bootstrap/SKILL.md +58 -0
  454. package/dist/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  455. package/dist/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  456. package/dist/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  457. package/dist/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  458. package/dist/public/skills/kibi-freshness/SKILL.md +39 -9
  459. package/dist/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  460. package/dist/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  461. package/dist/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  462. package/dist/public/skills/kibi-traceability/SKILL.md +47 -47
  463. package/dist/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  464. package/dist/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  465. package/dist/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  466. package/dist/public/skills/kibi-traceability/resources/traceability.md +8 -0
  467. package/dist/public/skills/kibi-usage/SKILL.md +136 -231
  468. package/dist/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  469. package/dist/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  470. package/dist/public/skills/kibi-usage/resources/operation-access.md +36 -38
  471. package/dist/public/skills/kibi-usage/resources/proof.md +105 -0
  472. package/dist/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  473. package/dist/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  474. package/dist/public/skills/kibi-usage/resources/workflows.md +57 -4
  475. package/dist/public/symbol-granularity.d.ts +3 -14
  476. package/dist/public/symbol-granularity.d.ts.map +1 -1
  477. package/dist/public/symbol-granularity.generated.d.ts +16 -0
  478. package/dist/public/symbol-granularity.generated.d.ts.map +1 -0
  479. package/dist/public/symbol-granularity.generated.js +20 -0
  480. package/dist/public/symbol-granularity.js +6 -46
  481. package/dist/public/telemetry-acceptance.d.ts +3 -70
  482. package/dist/public/telemetry-acceptance.d.ts.map +1 -1
  483. package/dist/public/telemetry-acceptance.js +11 -2
  484. package/dist/public/telemetry-remediation.js +1 -1
  485. package/dist/relationships/shards.d.ts +16 -0
  486. package/dist/relationships/shards.d.ts.map +1 -1
  487. package/dist/relationships/shards.js +87 -2
  488. package/dist/report/brand.d.ts +19 -0
  489. package/dist/report/brand.d.ts.map +1 -0
  490. package/dist/report/brand.js +112 -0
  491. package/dist/report/html-report.css +282 -0
  492. package/dist/report/html-report.d.ts +21 -0
  493. package/dist/report/html-report.d.ts.map +1 -0
  494. package/dist/report/html-report.js +700 -0
  495. package/dist/report/relative-time.d.ts +4 -0
  496. package/dist/report/relative-time.d.ts.map +1 -0
  497. package/dist/report/relative-time.js +46 -0
  498. package/dist/report/report-view.d.ts +17 -0
  499. package/dist/report/report-view.d.ts.map +1 -0
  500. package/dist/report/report-view.js +33 -0
  501. package/dist/report/repository.d.ts +35 -0
  502. package/dist/report/repository.d.ts.map +1 -0
  503. package/dist/report/repository.js +151 -0
  504. package/dist/runtime/cli-runtime.d.ts +2 -0
  505. package/dist/runtime/cli-runtime.d.ts.map +1 -1
  506. package/dist/runtime/cli-runtime.js +90 -23
  507. package/dist/schemas/entity.schema.json +1254 -239
  508. package/dist/search-ranking.d.ts +1 -0
  509. package/dist/search-ranking.d.ts.map +1 -1
  510. package/dist/search-ranking.js +3 -0
  511. package/dist/traceability/evidence-model.d.ts +30 -2
  512. package/dist/traceability/evidence-model.d.ts.map +1 -1
  513. package/dist/traceability/evidence-model.js +2 -2
  514. package/dist/traceability/git-staged.d.ts +20 -0
  515. package/dist/traceability/git-staged.d.ts.map +1 -1
  516. package/dist/traceability/git-staged.js +156 -37
  517. package/dist/traceability/markdown-validate.d.ts.map +1 -1
  518. package/dist/traceability/markdown-validate.js +12 -7
  519. package/dist/traceability/staged-diagnostics.d.ts +7 -0
  520. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  521. package/dist/traceability/staged-diagnostics.js +78 -7
  522. package/dist/traceability/staged-file-coverage.d.ts +33 -0
  523. package/dist/traceability/staged-file-coverage.d.ts.map +1 -0
  524. package/dist/traceability/staged-file-coverage.js +284 -0
  525. package/dist/traceability/staged-impact-contract.d.ts +3 -3
  526. package/dist/traceability/staged-impact-contract.d.ts.map +1 -1
  527. package/dist/traceability/staged-impact-contract.js +12 -40
  528. package/dist/traceability/staged-symbols-manifest.d.ts +13 -0
  529. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  530. package/dist/traceability/staged-symbols-manifest.js +142 -26
  531. package/dist/traceability/symbol-extract.d.ts +5 -0
  532. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  533. package/dist/traceability/symbol-extract.js +1 -1
  534. package/dist/traceability/temp-kb.d.ts +2 -0
  535. package/dist/traceability/temp-kb.d.ts.map +1 -1
  536. package/dist/traceability/temp-kb.js +14 -2
  537. package/dist/types/entities.d.ts +5 -0
  538. package/dist/types/entities.d.ts.map +1 -1
  539. package/dist/utils/branch-resolver.d.ts +25 -10
  540. package/dist/utils/branch-resolver.d.ts.map +1 -1
  541. package/dist/utils/branch-resolver.js +124 -38
  542. package/dist/utils/branch-store-locator.d.ts +23 -0
  543. package/dist/utils/branch-store-locator.d.ts.map +1 -0
  544. package/dist/utils/branch-store-locator.js +90 -0
  545. package/dist/utils/branch-store.d.ts +21 -0
  546. package/dist/utils/branch-store.d.ts.map +1 -0
  547. package/dist/utils/branch-store.js +157 -0
  548. package/dist/utils/config.d.ts +39 -37
  549. package/dist/utils/config.d.ts.map +1 -1
  550. package/dist/utils/config.js +107 -119
  551. package/dist/utils/kb-manifest.d.ts +35 -0
  552. package/dist/utils/kb-manifest.d.ts.map +1 -0
  553. package/dist/utils/kb-manifest.js +154 -0
  554. package/dist/utils/kb-paths.d.ts +54 -0
  555. package/dist/utils/kb-paths.d.ts.map +1 -0
  556. package/dist/utils/kb-paths.js +125 -0
  557. package/dist/utils/manifest-paths.d.ts +4 -4
  558. package/dist/utils/manifest-paths.d.ts.map +1 -1
  559. package/dist/utils/manifest-paths.js +8 -56
  560. package/dist/utils/rule-registry.d.ts +42 -24
  561. package/dist/utils/rule-registry.d.ts.map +1 -1
  562. package/dist/utils/rule-registry.generated.d.ts +97 -0
  563. package/dist/utils/rule-registry.generated.d.ts.map +1 -0
  564. package/dist/utils/rule-registry.generated.js +125 -0
  565. package/dist/utils/rule-registry.js +52 -148
  566. package/dist/utils/schema-version.d.ts +5 -5
  567. package/dist/utils/schema-version.d.ts.map +1 -1
  568. package/dist/utils/schema-version.js +26 -6
  569. package/dist/utils/strict-modeling.d.ts +1 -4
  570. package/dist/utils/strict-modeling.d.ts.map +1 -1
  571. package/dist/utils/strict-modeling.js +8 -9
  572. package/package.json +47 -11
  573. package/schema/config.json +2 -2
  574. package/schema/manifest.json +26 -0
  575. package/src/public/branch-resolver.ts +1 -0
  576. package/src/public/check-types.ts +22 -19
  577. package/src/public/diagnostic-usage.ts +84 -6
  578. package/src/public/distribution-parity.ts +17 -9
  579. package/src/public/ignore-policy.ts +16 -10
  580. package/src/public/impact/coverage-depth-quality.ts +37 -1
  581. package/src/public/impact/diagnostics.ts +2 -1
  582. package/src/public/impact/diff-meaning.ts +11 -4
  583. package/src/public/impact/full-kb-quality.ts +545 -41
  584. package/src/public/impact/manifest.ts +2 -4
  585. package/src/public/operational-artifacts.ts +9 -1
  586. package/src/public/operations/catalog.ts +153 -10
  587. package/src/public/operations/check-executor.ts +98 -15
  588. package/src/public/operations/check-format-shared.ts +6 -0
  589. package/src/public/operations/check-helpers.ts +74 -35
  590. package/src/public/operations/contracts.ts +382 -0
  591. package/src/public/operations/discovery-entities.ts +7 -0
  592. package/src/public/operations/discovery-executors.ts +315 -25
  593. package/src/public/operations/index.ts +9 -4
  594. package/src/public/operations/migration-plan.ts +747 -0
  595. package/src/public/operations/node-ports.ts +87 -13
  596. package/src/public/operations/prolog-json.ts +60 -5
  597. package/src/public/operations/repair-plan.ts +60 -22
  598. package/src/public/operations/result-envelope.ts +141 -0
  599. package/src/public/operations/runtime-types.ts +96 -5
  600. package/src/public/operations/source-relationship-parity.ts +226 -0
  601. package/src/public/operations/specs/{autopilot.ts → bootstrap.ts} +17 -16
  602. package/src/public/operations/specs/check-rules.generated.ts +37 -0
  603. package/src/public/operations/specs/check.ts +14 -22
  604. package/src/public/operations/specs/discovery.ts +57 -3
  605. package/src/public/operations/specs/modeling.ts +3 -3
  606. package/src/public/operations/specs/mutation-schemas.ts +24 -6
  607. package/src/public/operations/specs/mutation.ts +27 -2
  608. package/src/public/operations/specs/planning.ts +241 -0
  609. package/src/public/operations/specs/proof.ts +43 -0
  610. package/src/public/operations/specs/reporting.ts +193 -12
  611. package/src/public/operations/specs/upsert.ts +10 -0
  612. package/src/public/operations/symbol-repair-plan.ts +324 -0
  613. package/src/public/operations/types.ts +62 -1
  614. package/src/public/proof-fingerprint.ts +216 -0
  615. package/src/public/proof-protocol-types.d.ts +96 -0
  616. package/src/public/proof-protocol.ts +589 -0
  617. package/src/public/proof-receipt.ts +499 -0
  618. package/src/public/schemas/entity.ts +27 -6
  619. package/src/public/skills/kibi-bootstrap/SKILL.md +58 -0
  620. package/src/public/skills/kibi-bootstrap/resources/bootstrap.md +11 -0
  621. package/src/public/skills/kibi-bootstrap/resources/branch-lifecycle.md +7 -0
  622. package/src/public/skills/kibi-bootstrap/resources/operation-access.md +5 -0
  623. package/src/public/skills/kibi-bootstrap/resources/source-authoring.md +8 -0
  624. package/src/public/skills/kibi-freshness/SKILL.md +39 -9
  625. package/src/public/skills/kibi-freshness/resources/branch-lifecycle.md +7 -0
  626. package/src/public/skills/kibi-freshness/resources/operation-access.md +6 -0
  627. package/src/public/skills/kibi-freshness/resources/source-authoring.md +7 -0
  628. package/src/public/skills/kibi-traceability/SKILL.md +47 -47
  629. package/src/public/skills/kibi-traceability/resources/branch-lifecycle.md +7 -0
  630. package/src/public/skills/kibi-traceability/resources/operation-access.md +5 -0
  631. package/src/public/skills/kibi-traceability/resources/source-authoring.md +6 -0
  632. package/src/public/skills/kibi-traceability/resources/traceability.md +8 -0
  633. package/src/public/skills/kibi-usage/SKILL.md +136 -231
  634. package/src/public/skills/kibi-usage/resources/branch-lifecycle.md +31 -0
  635. package/src/public/skills/kibi-usage/resources/kb-improvement.md +38 -0
  636. package/src/public/skills/kibi-usage/resources/operation-access.md +36 -38
  637. package/src/public/skills/kibi-usage/resources/proof.md +105 -0
  638. package/src/public/skills/kibi-usage/resources/relationship-directions.md +3 -3
  639. package/src/public/skills/kibi-usage/resources/source-authoring.md +31 -0
  640. package/src/public/skills/kibi-usage/resources/workflows.md +57 -4
  641. package/src/public/symbol-granularity.generated.ts +41 -0
  642. package/src/public/symbol-granularity.ts +35 -59
  643. package/src/public/telemetry-acceptance-types.d.ts +98 -0
  644. package/src/public/telemetry-acceptance.ts +30 -93
  645. package/src/public/telemetry-remediation.ts +1 -1
  646. package/src/schemas/entity.schema.json +1254 -239
  647. package/templates/github/kibi-badge.yml +86 -0
  648. package/templates/github/kibi-report.yml +84 -0
  649. package/dist/operations/autopilot/activation.d.ts +0 -4
  650. package/dist/operations/autopilot/activation.d.ts.map +0 -1
  651. package/dist/operations/autopilot/candidates.d.ts +0 -4
  652. package/dist/operations/autopilot/discovery.d.ts.map +0 -1
  653. package/dist/operations/autopilot/generate.d.ts +0 -8
  654. package/dist/operations/autopilot/generate.d.ts.map +0 -1
  655. package/dist/operations/autopilot/generate.js +0 -112
  656. package/dist/operations/autopilot/guidance.d.ts.map +0 -1
  657. package/dist/operations/autopilot/presentation.d.ts +0 -13
  658. package/dist/operations/autopilot/presentation.d.ts.map +0 -1
  659. package/dist/operations/autopilot/presentation.js +0 -91
  660. package/dist/operations/autopilot/types.d.ts.map +0 -1
  661. package/dist/operations/autopilot/types.js +0 -8
  662. package/dist/public/operations/specs/autopilot.d.ts.map +0 -1
  663. package/dist/public/skills/init-kibi/SKILL.md +0 -62
  664. package/dist/public/verification-receipt.d.ts +0 -75
  665. package/dist/public/verification-receipt.d.ts.map +0 -1
  666. package/dist/public/verification-receipt.js +0 -129
  667. package/src/public/skills/init-kibi/SKILL.md +0 -62
  668. package/src/public/verification-receipt.ts +0 -170
  669. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.d.ts +0 -0
  670. /package/dist/operations/{autopilot → bootstrap}/candidate-helpers.js +0 -0
  671. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.d.ts +0 -0
  672. /package/dist/operations/{autopilot → bootstrap}/requirement-claims.js +0 -0
@@ -0,0 +1,499 @@
1
+ import {
2
+ type ProofFingerprintComponents,
3
+ canonicalJson,
4
+ proofContractHash,
5
+ } from "./proof-fingerprint.js";
6
+ import {
7
+ PROOF_RECEIPT_VERSION,
8
+ PROOF_RESULT_OUTCOMES,
9
+ PROOF_RUN_OUTCOMES,
10
+ type ProofContract,
11
+ } from "./proof-protocol.js";
12
+
13
+ export const PROOF_RECEIPT_MAX_AGE_SECONDS = 7 * 24 * 60 * 60;
14
+
15
+ export const PROOF_RECEIPT_OUTCOMES = [
16
+ "passed",
17
+ "failed",
18
+ "errored",
19
+ "cancelled",
20
+ "skipped",
21
+ "timed_out",
22
+ "interrupted",
23
+ ] as const;
24
+
25
+ export const PROOF_RECEIPT_SCHEMA = {
26
+ type: "object",
27
+ description:
28
+ "Kibi-derived kibi.proof-receipt.v1. Receipts are never caller-authored; kb_ingest_proof derives them from kibi.proof-run.v1 artifacts.",
29
+ required: [
30
+ "version",
31
+ "receipt_id",
32
+ "test_id",
33
+ "scope",
34
+ "outcome",
35
+ "code_snapshot",
36
+ "environment_hash",
37
+ "started_at",
38
+ "finished_at",
39
+ "artifact_digest",
40
+ "contract_hash",
41
+ "fingerprint",
42
+ "fingerprint_components",
43
+ "integration_id",
44
+ "producer",
45
+ "command_argv",
46
+ "run_outcome",
47
+ "proof_results",
48
+ ],
49
+ properties: {
50
+ version: { type: "string", const: PROOF_RECEIPT_VERSION },
51
+ receipt_id: {
52
+ type: "string",
53
+ pattern: "^PR-[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$",
54
+ },
55
+ test_id: { type: "string", minLength: 1 },
56
+ scope: { type: "string", enum: ["unit", "integration", "end_to_end"] },
57
+ outcome: { type: "string", enum: [...PROOF_RECEIPT_OUTCOMES] },
58
+ code_snapshot: { type: "string", pattern: "^[a-f0-9]{64}$" },
59
+ environment_hash: { type: "string", pattern: "^[a-f0-9]{64}$" },
60
+ started_at: { type: "string", minLength: 1 },
61
+ finished_at: { type: "string", minLength: 1 },
62
+ artifact_digest: { type: "string", pattern: "^[a-f0-9]{64}$" },
63
+ contract_hash: { type: "string", pattern: "^[a-f0-9]{64}$" },
64
+ binding_hash: { type: "string", pattern: "^[a-f0-9]{64}$" },
65
+ fingerprint: { type: "string", pattern: "^[a-f0-9]{64}$" },
66
+ fingerprint_components: {
67
+ type: "object",
68
+ required: ["contract", "integration", "command", "bindings", "producer"],
69
+ additionalProperties: false,
70
+ properties: {
71
+ contract: { type: "string", pattern: "^[a-f0-9]{64}$" },
72
+ integration: { type: "string", pattern: "^[a-f0-9]{64}$" },
73
+ command: { type: "string", pattern: "^[a-f0-9]{64}$" },
74
+ bindings: { type: "string", pattern: "^[a-f0-9]{64}$" },
75
+ producer: { type: "string", pattern: "^[a-f0-9]{64}$" },
76
+ },
77
+ },
78
+ integration_id: { type: "string", minLength: 1 },
79
+ producer: {
80
+ type: "object",
81
+ required: ["name"],
82
+ properties: {
83
+ name: { type: "string", minLength: 1 },
84
+ version: { type: "string", minLength: 1 },
85
+ },
86
+ additionalProperties: false,
87
+ },
88
+ command_argv: {
89
+ type: "array",
90
+ minItems: 1,
91
+ items: { type: "string", minLength: 1 },
92
+ },
93
+ run_outcome: { type: "string", enum: [...PROOF_RUN_OUTCOMES] },
94
+ proof_results: {
95
+ type: "array",
96
+ minItems: 0,
97
+ maxItems: 1000,
98
+ items: {
99
+ type: "object",
100
+ required: ["symbol_id", "target", "outcome", "binding", "attempts"],
101
+ properties: {
102
+ symbol_id: { type: "string", minLength: 1 },
103
+ target: { type: "string", minLength: 1 },
104
+ outcome: { type: "string", enum: [...PROOF_RESULT_OUTCOMES] },
105
+ binding: { type: "string", enum: ["native_case", "aggregate_run"] },
106
+ native_id: { type: "string", minLength: 1 },
107
+ attempts: {
108
+ oneOf: [
109
+ {
110
+ type: "object",
111
+ required: ["status", "entries"],
112
+ properties: {
113
+ status: { type: "string", const: "complete" },
114
+ entries: {
115
+ type: "array",
116
+ minItems: 1,
117
+ items: {
118
+ type: "object",
119
+ required: ["outcome"],
120
+ properties: {
121
+ outcome: {
122
+ type: "string",
123
+ enum: [...PROOF_RESULT_OUTCOMES],
124
+ },
125
+ duration_ms: { type: "number", minimum: 0 },
126
+ },
127
+ additionalProperties: false,
128
+ },
129
+ },
130
+ },
131
+ additionalProperties: false,
132
+ },
133
+ {
134
+ type: "object",
135
+ required: ["status"],
136
+ properties: {
137
+ status: { type: "string", const: "unavailable" },
138
+ },
139
+ additionalProperties: false,
140
+ },
141
+ ],
142
+ },
143
+ },
144
+ additionalProperties: false,
145
+ },
146
+ },
147
+ gaps: {
148
+ type: "array",
149
+ items: {
150
+ type: "object",
151
+ required: ["symbol_id", "target", "reason"],
152
+ properties: {
153
+ symbol_id: { type: "string", minLength: 1 },
154
+ target: { type: "string", minLength: 1 },
155
+ reason: { type: "string", minLength: 1 },
156
+ },
157
+ additionalProperties: false,
158
+ },
159
+ },
160
+ },
161
+ additionalProperties: false,
162
+ } as const;
163
+
164
+ export type ProofReceipt = Readonly<{
165
+ version: typeof PROOF_RECEIPT_VERSION;
166
+ receipt_id: string;
167
+ test_id: string;
168
+ scope: "unit" | "integration" | "end_to_end";
169
+ outcome: (typeof PROOF_RECEIPT_OUTCOMES)[number];
170
+ code_snapshot: string;
171
+ environment_hash: string;
172
+ started_at: string;
173
+ finished_at: string;
174
+ artifact_digest: string;
175
+ contract_hash: string;
176
+ fingerprint: string;
177
+ fingerprint_components: ProofFingerprintComponents;
178
+ integration_id: string;
179
+ producer: { readonly name: string; readonly version?: string };
180
+ command_argv: readonly string[];
181
+ run_outcome: (typeof PROOF_RUN_OUTCOMES)[number];
182
+ proof_results: readonly {
183
+ readonly symbol_id: string;
184
+ readonly target: string;
185
+ readonly outcome: (typeof PROOF_RESULT_OUTCOMES)[number];
186
+ readonly binding: "native_case" | "aggregate_run";
187
+ readonly native_id?: string;
188
+ readonly attempts:
189
+ | {
190
+ readonly status: "complete";
191
+ readonly entries: readonly {
192
+ readonly outcome: string;
193
+ readonly duration_ms?: number;
194
+ }[];
195
+ }
196
+ | { readonly status: "unavailable" };
197
+ }[];
198
+ gaps?: readonly {
199
+ readonly symbol_id: string;
200
+ readonly target: string;
201
+ readonly reason: string;
202
+ }[];
203
+ }>;
204
+
205
+ export function finishedAtPrecedesStartedAt(
206
+ startedAt: number | null,
207
+ finishedAt: number | null,
208
+ ): boolean {
209
+ return startedAt !== null && finishedAt !== null && finishedAt < startedAt;
210
+ }
211
+
212
+ function timestamp(value: unknown): number | null {
213
+ if (typeof value !== "string") return null;
214
+ if (
215
+ !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(
216
+ value,
217
+ )
218
+ ) {
219
+ return null;
220
+ }
221
+ const parsed = Date.parse(value);
222
+ return Number.isFinite(parsed) ? parsed : null;
223
+ }
224
+
225
+ function nonEmptyString(value: unknown): boolean {
226
+ return typeof value === "string" && value.trim().length > 0;
227
+ }
228
+
229
+ function hex64(value: unknown): boolean {
230
+ return typeof value === "string" && /^[a-f0-9]{64}$/.test(value);
231
+ }
232
+
233
+ function isRecord(value: unknown): value is Record<string, unknown> {
234
+ return value !== null && typeof value === "object" && !Array.isArray(value);
235
+ }
236
+
237
+ function validAttempts(value: unknown): boolean {
238
+ const row = isRecord(value) ? value : null;
239
+ if (!row) return false;
240
+ if (row.status === "unavailable") return row.entries === undefined;
241
+ if (row.status !== "complete") return false;
242
+ if (!Array.isArray(row.entries) || row.entries.length === 0) return false;
243
+ return row.entries.every((entry) => {
244
+ const attempt = isRecord(entry) ? entry : null;
245
+ return (
246
+ attempt !== null &&
247
+ nonEmptyString(attempt.outcome) &&
248
+ (PROOF_RESULT_OUTCOMES as readonly string[]).includes(
249
+ String(attempt.outcome),
250
+ ) &&
251
+ (attempt.duration_ms === undefined ||
252
+ (Number.isInteger(attempt.duration_ms) &&
253
+ Number(attempt.duration_ms) >= 0))
254
+ );
255
+ });
256
+ }
257
+
258
+ function validReceiptProofResult(value: unknown): boolean {
259
+ const row = isRecord(value) ? value : null;
260
+ if (!row) return false;
261
+ return (
262
+ nonEmptyString(row.symbol_id) &&
263
+ nonEmptyString(row.target) &&
264
+ (PROOF_RESULT_OUTCOMES as readonly string[]).includes(
265
+ String(row.outcome),
266
+ ) &&
267
+ (["native_case", "aggregate_run"] as readonly string[]).includes(
268
+ String(row.binding),
269
+ ) &&
270
+ (row.native_id === undefined || nonEmptyString(row.native_id)) &&
271
+ validAttempts(row.attempts)
272
+ );
273
+ }
274
+
275
+ function validFingerprintComponents(value: unknown): boolean {
276
+ const row = isRecord(value) ? value : null;
277
+ if (!row) return false;
278
+ return (
279
+ hex64(row.contract) &&
280
+ hex64(row.integration) &&
281
+ hex64(row.command) &&
282
+ hex64(row.bindings) &&
283
+ hex64(row.producer)
284
+ );
285
+ }
286
+
287
+ /** Structural validation of one kibi.proof-receipt.v1 entry. */
288
+ export function validProofReceiptShape(
289
+ testId: string,
290
+ receipt: unknown,
291
+ ): boolean {
292
+ const row = isRecord(receipt) ? receipt : null;
293
+ if (!row) return false;
294
+ if (row.version !== PROOF_RECEIPT_VERSION) return false;
295
+ if (
296
+ typeof row.receipt_id !== "string" ||
297
+ !/^PR-[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$/.test(row.receipt_id)
298
+ )
299
+ return false;
300
+ if (row.test_id !== testId) return false;
301
+ if (
302
+ !(["unit", "integration", "end_to_end"] as readonly string[]).includes(
303
+ String(row.scope),
304
+ )
305
+ )
306
+ return false;
307
+ if (
308
+ !(PROOF_RECEIPT_OUTCOMES as readonly string[]).includes(String(row.outcome))
309
+ )
310
+ return false;
311
+ if (!hex64(row.code_snapshot) || !hex64(row.environment_hash)) return false;
312
+ if (!hex64(row.artifact_digest)) return false;
313
+ if (!hex64(row.contract_hash) || !hex64(row.fingerprint)) return false;
314
+ if (
315
+ row.binding_hash !== undefined &&
316
+ (typeof row.binding_hash !== "string" || !hex64(row.binding_hash))
317
+ ) {
318
+ return false;
319
+ }
320
+ if (!validFingerprintComponents(row.fingerprint_components)) return false;
321
+ if (!nonEmptyString(row.integration_id)) return false;
322
+ const producer = isRecord(row.producer) ? row.producer : null;
323
+ if (!producer || !nonEmptyString(producer.name)) return false;
324
+ if (producer.version !== undefined && !nonEmptyString(producer.version))
325
+ return false;
326
+ if (
327
+ !Array.isArray(row.command_argv) ||
328
+ row.command_argv.length === 0 ||
329
+ !row.command_argv.every((argument) => nonEmptyString(argument))
330
+ )
331
+ return false;
332
+ if (
333
+ !(PROOF_RUN_OUTCOMES as readonly string[]).includes(String(row.run_outcome))
334
+ )
335
+ return false;
336
+ if (
337
+ !Array.isArray(row.proof_results) ||
338
+ !row.proof_results.every(validReceiptProofResult)
339
+ )
340
+ return false;
341
+ if (row.gaps !== undefined) {
342
+ if (!Array.isArray(row.gaps)) return false;
343
+ if (
344
+ !row.gaps.every(
345
+ (gap) =>
346
+ isRecord(gap) &&
347
+ nonEmptyString(gap.symbol_id) &&
348
+ nonEmptyString(gap.target) &&
349
+ nonEmptyString(gap.reason),
350
+ )
351
+ )
352
+ return false;
353
+ }
354
+ const startedAt = timestamp(row.started_at);
355
+ const finishedAt = timestamp(row.finished_at);
356
+ if (startedAt === null || finishedAt === null) return false;
357
+ return !finishedAtPrecedesStartedAt(startedAt, finishedAt);
358
+ }
359
+
360
+ /**
361
+ * Full-history validation for proof_receipts: unique ids, per-test binding,
362
+ * supported scope, ordered timestamps, and structurally valid v1 entries.
363
+ */
364
+ export function proofReceiptHistoryErrors(
365
+ testId: string,
366
+ verificationScope: unknown,
367
+ receipts: readonly Readonly<Record<string, unknown>>[],
368
+ ): readonly string[] {
369
+ const errors: string[] = [];
370
+ if (receipts.length > 0 && typeof verificationScope !== "string") {
371
+ errors.push(
372
+ "verification_scope is required when proof_receipts are present",
373
+ );
374
+ }
375
+ const receiptIds = new Set<string>();
376
+ for (const [index, receipt] of receipts.entries()) {
377
+ const prefix = `proof_receipts[${index}]`;
378
+ const receiptId = receipt.receipt_id;
379
+ if (typeof receiptId === "string") {
380
+ if (receiptIds.has(receiptId)) {
381
+ errors.push(`${prefix}.receipt_id duplicates '${receiptId}'`);
382
+ }
383
+ receiptIds.add(receiptId);
384
+ }
385
+ if (receipt.test_id !== testId) {
386
+ errors.push(`${prefix}.test_id must equal '${testId}'`);
387
+ }
388
+ if (!validProofReceiptShape(testId, receipt)) {
389
+ errors.push(
390
+ `${prefix} must be a structurally valid kibi.proof-receipt.v1 bound to '${testId}'`,
391
+ );
392
+ continue;
393
+ }
394
+ const finishedAt = timestamp(receipt.finished_at);
395
+ if (
396
+ finishedAt !== null &&
397
+ index > 0 &&
398
+ timestamp(receipts[index - 1]?.finished_at) !== null &&
399
+ finishedAt <= (timestamp(receipts[index - 1]?.finished_at) as number)
400
+ ) {
401
+ errors.push(
402
+ `${prefix}.finished_at must be strictly later than the previous receipt`,
403
+ );
404
+ }
405
+ }
406
+ return errors;
407
+ }
408
+
409
+ /** The current receipt must match the live scope, contract hash, and fingerprint. */
410
+ export function proofReceiptCurrentBindingErrors(
411
+ testId: string,
412
+ verificationScope: unknown,
413
+ receipt: Readonly<Record<string, unknown>>,
414
+ contract?: ProofContract,
415
+ fingerprint?: string,
416
+ ): readonly string[] {
417
+ const errors: string[] = [];
418
+ if (receipt.test_id !== testId) {
419
+ errors.push(`proof receipt test_id must equal '${testId}'`);
420
+ }
421
+ if (typeof verificationScope !== "string") {
422
+ errors.push("verification_scope is required for current receipt evidence");
423
+ } else if (receipt.scope !== verificationScope) {
424
+ errors.push(
425
+ `proof receipt scope must equal the current verification_scope '${verificationScope}'`,
426
+ );
427
+ }
428
+ if (contract !== undefined) {
429
+ if (typeof receipt.contract_hash === "string") {
430
+ const expectedHash = proofContractHash(contract);
431
+ if (receipt.contract_hash !== expectedHash) {
432
+ errors.push(
433
+ "proof receipt contract_hash does not match the current proof_contract",
434
+ );
435
+ }
436
+ }
437
+ if (
438
+ fingerprint !== undefined &&
439
+ typeof receipt.fingerprint === "string" &&
440
+ receipt.fingerprint !== fingerprint
441
+ ) {
442
+ errors.push(
443
+ "proof receipt fingerprint does not match the current effective execution fingerprint",
444
+ );
445
+ }
446
+ }
447
+ return errors;
448
+ }
449
+
450
+ /**
451
+ * Hard schema cap on stored receipts per test. Ingest appends past this cap by
452
+ * rotating: drop exactly the oldest receipts so the newest evidence stays
453
+ * bound to the test without ever exceeding the cap.
454
+ */
455
+ export const MAX_PROOF_RECEIPTS = 50;
456
+
457
+ function isCapRotation(
458
+ previous: readonly Readonly<Record<string, unknown>>[],
459
+ next: readonly Readonly<Record<string, unknown>>[],
460
+ ): boolean {
461
+ if (next.length !== MAX_PROOF_RECEIPTS) return false;
462
+ if (previous.length < MAX_PROOF_RECEIPTS) return false;
463
+ const preserved = MAX_PROOF_RECEIPTS - 1;
464
+ for (let index = 0; index < preserved; index++) {
465
+ if (
466
+ canonicalJson(previous[previous.length - preserved + index]) !==
467
+ canonicalJson(next[index])
468
+ ) {
469
+ return false;
470
+ }
471
+ }
472
+ return true;
473
+ }
474
+
475
+ export function appendOnlyProofReceiptHistoryErrors(
476
+ previous: readonly Readonly<Record<string, unknown>>[],
477
+ next: readonly Readonly<Record<string, unknown>>[] | undefined,
478
+ ): readonly string[] {
479
+ if (previous.length === 0) return [];
480
+ if (next === undefined) {
481
+ return [
482
+ "proof_receipts is append-only and cannot be removed from an existing test",
483
+ ];
484
+ }
485
+ if (isCapRotation(previous, next)) return [];
486
+ if (next.length < previous.length) {
487
+ return [
488
+ `proof_receipts is append-only: expected at least ${previous.length} historical receipt(s), received ${next.length}`,
489
+ ];
490
+ }
491
+ for (const [index, receipt] of previous.entries()) {
492
+ if (canonicalJson(next[index]) !== canonicalJson(receipt)) {
493
+ return [
494
+ `proof_receipts is append-only: historical receipt at index ${index} was changed, removed, or reordered`,
495
+ ];
496
+ }
497
+ }
498
+ return [];
499
+ }
@@ -16,9 +16,13 @@
16
16
  along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
18
 
19
+ import {
20
+ PROOF_BINDINGS_SCHEMA,
21
+ PROOF_CONTRACT_SCHEMA,
22
+ } from "../proof-protocol.js";
23
+ import { PROOF_RECEIPT_SCHEMA } from "../proof-receipt.js";
19
24
  // Typed fact field enums per proposal
20
25
  import { SYMBOL_ROLES, type SymbolRole } from "../symbol-granularity.js";
21
- import { VERIFICATION_RECEIPT_SCHEMA } from "../verification-receipt.js";
22
26
 
23
27
  type FactKind =
24
28
  | "subject"
@@ -356,6 +360,17 @@ const entitySchema: Record<string, unknown> = {
356
360
  severity: { type: "string" },
357
361
  links: { type: "array", items: { type: "string" } },
358
362
  text_ref: { type: "string" },
363
+ proof_exempt: {
364
+ type: "boolean",
365
+ description:
366
+ "Requirement-only. Marks a current requirement as intentionally outside E2E-proof scope; requires proof_exempt_reason.",
367
+ },
368
+ proof_exempt_reason: {
369
+ type: "string",
370
+ minLength: 1,
371
+ description:
372
+ "Requirement-only. Required when proof_exempt is true; surfaces as the applicability reason in coverage rows.",
373
+ },
359
374
  semantic_text: {
360
375
  type: "string",
361
376
  description:
@@ -439,6 +454,7 @@ const entitySchema: Record<string, unknown> = {
439
454
  "module-level-behavior",
440
455
  "extractor-miss",
441
456
  "legacy-link",
457
+ "test-suite",
442
458
  ],
443
459
  },
444
460
  symbol_role: {
@@ -453,10 +469,11 @@ const entitySchema: Record<string, unknown> = {
453
469
  type: "string",
454
470
  enum: ["internal", "consumer"] satisfies VerificationPerspective[],
455
471
  },
456
- verification_receipts: {
472
+ proof_contract: PROOF_CONTRACT_SCHEMA,
473
+ proof_bindings: PROOF_BINDINGS_SCHEMA,
474
+ proof_receipts: {
457
475
  type: "array",
458
- maxItems: 50,
459
- items: VERIFICATION_RECEIPT_SCHEMA,
476
+ items: PROOF_RECEIPT_SCHEMA,
460
477
  },
461
478
  type: {
462
479
  type: "string",
@@ -597,13 +614,15 @@ const entitySchema: Record<string, unknown> = {
597
614
  anyOf: [
598
615
  { required: ["verification_scope"] },
599
616
  { required: ["verification_perspective"] },
600
- { required: ["verification_receipts"] },
617
+ { required: ["proof_contract"] },
618
+ { required: ["proof_bindings"] },
619
+ { required: ["proof_receipts"] },
601
620
  ],
602
621
  },
603
622
  },
604
623
  },
605
624
  {
606
- if: { required: ["verification_receipts"] },
625
+ if: { required: ["proof_receipts"] },
607
626
  // biome-ignore lint/suspicious/noThenProperty: JSON Schema conditional keyword.
608
627
  then: { required: ["verification_scope"] },
609
628
  },
@@ -620,6 +639,8 @@ const entitySchema: Record<string, unknown> = {
620
639
  { required: ["semantic_inventory_version"] },
621
640
  { required: ["semantic_source_field"] },
622
641
  { required: ["semantic_source_hash"] },
642
+ { required: ["proof_exempt"] },
643
+ { required: ["proof_exempt_reason"] },
623
644
  ],
624
645
  },
625
646
  },
@@ -0,0 +1,58 @@
1
+ ---
2
+ id: kibi-bootstrap
3
+ name: kibi-bootstrap
4
+ description: Bootstrap Kibi from the current Git checkout with exact Git attachment, preview approval, source-first writes, and repair-safe completion.
5
+ version: 3.0.0
6
+ kibiCompatibility: ">=1.0.0"
7
+ tags:
8
+ - kibi
9
+ - bootstrap
10
+ - source-first
11
+ - agent-guidance
12
+ resources:
13
+ - resources/bootstrap.md
14
+ - resources/branch-lifecycle.md
15
+ - resources/source-authoring.md
16
+ - resources/operation-access.md
17
+ ---
18
+ ## Goal
19
+
20
+ Seed branch-local Kibi knowledge for an attached but thin repository without
21
+ creating a parallel human-maintained ticket system. Ask at most four bounded
22
+ context questions only when the planner says repository evidence is
23
+ insufficient; agents own deterministic translation and humans resolve genuine
24
+ ambiguity. A seeded repository hands off to the normal Kibi workflow.
25
+
26
+ ## Interface and preview
27
+
28
+ Use the visible approved MCP surface or the trusted project-local CLI as equal
29
+ peer interfaces. If neither is available, stop. Run `kb_plan_bootstrap` (or
30
+ `plan-bootstrap --input`) read-only. If it returns `needs_context`, ask only its
31
+ bounded questions (never more than four), then rerun the planner. Show the
32
+ complete returned `structuredContent.plan`, including its canonical hash, and
33
+ get explicit approval before any write. Pass that plan object unchanged to
34
+ `kb_apply_plan`; do not reconstruct it from preview fields.
35
+
36
+ For CLI JSON, use the trusted route with `--input` (for example
37
+ `printf '%s\n' '{}' | kibi status --input -`); MCP and CLI are semantic peers.
38
+ Read the branch-lifecycle and source-authoring resources before migration,
39
+ source writes, or repair actions.
40
+
41
+ ## Apply and verify
42
+
43
+ Apply the approved `kibi.bootstrap-plan.v1` by calling `kb_apply_plan` with the
44
+ exact plan and approved hash. The operation owns dependency ordering,
45
+ source-first writes, sequential mutation, and recovery journaling. Direct
46
+ `kb_upsert` is forbidden for every kibi-bootstrap task, including after
47
+ approval; never replay plan actions manually. Use `kb_delete` only for an
48
+ approved hash-bound deletion plan; evolve requirements with `supersedes`.
49
+ Finish with `kb_check` and `kb_status`.
50
+
51
+ Consume the versioned `kibiProtocol: 1` result envelope: inspect `status`, `effects`,
52
+ `diagnostics`, and `nextActions`. On `committed_with_repairs`, execute required
53
+ repair actions and never retry the original mutation.
54
+
55
+ Kibi may author tracked Markdown/YAML/manifests and relationship shards
56
+ transactionally, but never Git-stages or commits them. Never read or edit
57
+ `.kb` directly. Missing exact branch stores are compiled from this checkout's
58
+ tracked sources by `kibi sync`; Kibi does not copy another branch's store.
@@ -0,0 +1,11 @@
1
+ # Bootstrap resource
2
+
3
+ `kb_plan_bootstrap` is read-only and returns `kibi.bootstrap-plan.v1`. Review
4
+ candidate evidence, exact actions, dependencies, expected snapshots, source
5
+ hashes, bounded questions, diagnostics, and the canonical `planHash` before
6
+ approving. A preview does not authorize source edits. After approval, pass the
7
+ unchanged returned `structuredContent.plan` to `kb_apply_plan` once with its
8
+ approved hash; inspect its typed result
9
+ and follow `nextActions` if it returns `committed_with_repairs`. Direct
10
+ `kb_upsert` is forbidden for every bootstrap task; never manually replay the
11
+ plan through it.
@@ -0,0 +1,7 @@
1
+ # Branch lifecycle
2
+
3
+ Use the exact `KIBI_BRANCH` value or Git symbolic HEAD. Hashed stores carry a
4
+ matching `branch.json`; missing stores are compiled from tracked sources by
5
+ `kibi sync`. Legacy literal stores require explicit migration. Kibi never
6
+ copies stores between branches or resolves Git conflicts. Read the preview,
7
+ approval hash, quarantine, restore, and purge details before lifecycle work.
@@ -0,0 +1,5 @@
1
+ # Operation access
2
+
3
+ MCP tools and the trusted project-local CLI are peer surfaces for the same
4
+ operation contracts. Use the dedicated JSON route; parse the shared
5
+ `KibiResult` envelope and follow required `nextActions` after partial commits.
@@ -0,0 +1,8 @@
1
+ # Source authoring
2
+
3
+ Tracked documents, manifests, and relationship shards are authoritative.
4
+ Kibi may write them transactionally but does not stage or commit them. Use
5
+ `document.path` for ambiguous new targets, preserve existing bodies when the
6
+ body is omitted, and use hash-bound deletion plans. On
7
+ `committed_with_repairs`, follow typed `nextActions` and never retry the
8
+ original mutation.