kibi-cli 2.29.0 → 2.31.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 (116) hide show
  1. package/dist/cli-operation-metadata.d.ts +8 -8
  2. package/dist/cli-operation-metadata.js +8 -8
  3. package/dist/cli-register-reporting.d.ts.map +1 -1
  4. package/dist/cli-register-reporting.js +35 -2
  5. package/dist/commands/check-certificates.d.ts +52 -0
  6. package/dist/commands/check-certificates.d.ts.map +1 -0
  7. package/dist/commands/check-certificates.js +163 -0
  8. package/dist/commands/check.d.ts.map +1 -1
  9. package/dist/commands/check.js +4 -0
  10. package/dist/commands/discovery-table.d.ts.map +1 -1
  11. package/dist/commands/discovery-table.js +14 -2
  12. package/dist/commands/report.js +3 -3
  13. package/dist/commands/signoff.d.ts +37 -0
  14. package/dist/commands/signoff.d.ts.map +1 -0
  15. package/dist/commands/signoff.js +155 -0
  16. package/dist/operations/modeling/predicate-applicability.d.ts +5 -1
  17. package/dist/operations/modeling/predicate-applicability.d.ts.map +1 -1
  18. package/dist/operations/modeling/predicate-applicability.js +35 -2
  19. package/dist/operations/modeling/suggest-predicates.d.ts.map +1 -1
  20. package/dist/operations/modeling/suggest-predicates.js +3 -1
  21. package/dist/operations/mutation/contradictions.d.ts +7 -5
  22. package/dist/operations/mutation/contradictions.d.ts.map +1 -1
  23. package/dist/operations/mutation/contradictions.js +8 -6
  24. package/dist/operations/mutation/source-authoring.d.ts +15 -0
  25. package/dist/operations/mutation/source-authoring.d.ts.map +1 -1
  26. package/dist/operations/mutation/source-authoring.js +19 -7
  27. package/dist/operations/mutation/types.d.ts +5 -0
  28. package/dist/operations/mutation/types.d.ts.map +1 -1
  29. package/dist/operations/mutation/upsert.d.ts +14 -0
  30. package/dist/operations/mutation/upsert.d.ts.map +1 -1
  31. package/dist/operations/mutation/upsert.js +42 -36
  32. package/dist/operations/mutation/validate-upsert.d.ts.map +1 -1
  33. package/dist/operations/mutation/validate-upsert.js +61 -37
  34. package/dist/operations/planning/apply-plan.js +5 -5
  35. package/dist/operations/proof/baseline-diff.d.ts +1 -1
  36. package/dist/operations/proof/baseline-diff.js +1 -1
  37. package/dist/operations/proof/impact.d.ts +10 -4
  38. package/dist/operations/proof/impact.d.ts.map +1 -1
  39. package/dist/operations/proof/impact.js +27 -7
  40. package/dist/public/diagnostic-usage.js +2 -2
  41. package/dist/public/operations/catalog.d.ts +31 -10
  42. package/dist/public/operations/catalog.d.ts.map +1 -1
  43. package/dist/public/operations/contracts.d.ts.map +1 -1
  44. package/dist/public/operations/contracts.js +2 -0
  45. package/dist/public/operations/specs/bootstrap.d.ts +1 -1
  46. package/dist/public/operations/specs/bootstrap.js +1 -1
  47. package/dist/public/operations/specs/check-rules.generated.d.ts +1 -1
  48. package/dist/public/operations/specs/check-rules.generated.d.ts.map +1 -1
  49. package/dist/public/operations/specs/check-rules.generated.js +3 -1
  50. package/dist/public/operations/specs/check.d.ts +1 -1
  51. package/dist/public/operations/specs/composite.d.ts +1 -1
  52. package/dist/public/operations/specs/composite.js +1 -1
  53. package/dist/public/operations/specs/discovery.d.ts +1 -1
  54. package/dist/public/operations/specs/discovery.js +1 -1
  55. package/dist/public/operations/specs/impact-review-preparation.d.ts +2 -1
  56. package/dist/public/operations/specs/impact-review-preparation.d.ts.map +1 -1
  57. package/dist/public/operations/specs/impact-review-preparation.js +2 -1
  58. package/dist/public/operations/specs/planning.d.ts +1 -1
  59. package/dist/public/operations/specs/planning.js +1 -1
  60. package/dist/public/operations/specs/reporting.d.ts +25 -5
  61. package/dist/public/operations/specs/reporting.d.ts.map +1 -1
  62. package/dist/public/operations/specs/reporting.js +102 -26
  63. package/dist/public/skills/kibi-commit-review/SKILL.md +125 -0
  64. package/dist/public/skills/kibi-commit-review/resources/staged-gate.md +98 -0
  65. package/dist/public/skills/kibi-decisions/SKILL.md +130 -0
  66. package/dist/public/skills/kibi-decisions/resources/decision-records.md +142 -0
  67. package/dist/public/skills/kibi-decisions/resources/signoff-views.md +66 -0
  68. package/dist/public/skills/kibi-freshness/SKILL.md +3 -1
  69. package/dist/public/skills/kibi-traceability/SKILL.md +4 -0
  70. package/dist/public/skills/kibi-usage/SKILL.md +21 -16
  71. package/dist/public/skills/kibi-usage/resources/proof.md +36 -4
  72. package/dist/public/skills/kibi-usage/resources/workflows.md +1 -1
  73. package/dist/report/html-report.css +11 -4
  74. package/dist/report/html-report.d.ts +2 -2
  75. package/dist/report/html-report.d.ts.map +1 -1
  76. package/dist/report/html-report.js +27 -21
  77. package/dist/report/report-view.d.ts +2 -2
  78. package/dist/report/report-view.js +2 -2
  79. package/dist/signoff/collect.d.ts +39 -0
  80. package/dist/signoff/collect.d.ts.map +1 -0
  81. package/dist/signoff/collect.js +402 -0
  82. package/dist/signoff/html.d.ts +4 -0
  83. package/dist/signoff/html.d.ts.map +1 -0
  84. package/dist/signoff/html.js +210 -0
  85. package/dist/signoff/markdown.d.ts +20 -0
  86. package/dist/signoff/markdown.d.ts.map +1 -0
  87. package/dist/signoff/markdown.js +203 -0
  88. package/dist/signoff/model.d.ts +139 -0
  89. package/dist/signoff/model.d.ts.map +1 -0
  90. package/dist/signoff/model.js +142 -0
  91. package/dist/traceability/staged-consistency.d.ts.map +1 -1
  92. package/dist/traceability/staged-consistency.js +3 -1
  93. package/dist/utils/rule-registry.generated.d.ts +10 -0
  94. package/dist/utils/rule-registry.generated.d.ts.map +1 -1
  95. package/dist/utils/rule-registry.generated.js +12 -0
  96. package/package.json +2 -2
  97. package/src/public/diagnostic-usage.ts +3 -3
  98. package/src/public/operations/contracts.ts +2 -0
  99. package/src/public/operations/specs/bootstrap.ts +1 -1
  100. package/src/public/operations/specs/check-rules.generated.ts +3 -1
  101. package/src/public/operations/specs/composite.ts +1 -1
  102. package/src/public/operations/specs/discovery.ts +1 -1
  103. package/src/public/operations/specs/impact-review-preparation.ts +3 -1
  104. package/src/public/operations/specs/planning.ts +1 -1
  105. package/src/public/operations/specs/reporting.ts +114 -26
  106. package/src/public/skills/kibi-commit-review/SKILL.md +125 -0
  107. package/src/public/skills/kibi-commit-review/resources/staged-gate.md +98 -0
  108. package/src/public/skills/kibi-decisions/SKILL.md +130 -0
  109. package/src/public/skills/kibi-decisions/resources/decision-records.md +142 -0
  110. package/src/public/skills/kibi-decisions/resources/signoff-views.md +66 -0
  111. package/src/public/skills/kibi-freshness/SKILL.md +3 -1
  112. package/src/public/skills/kibi-traceability/SKILL.md +4 -0
  113. package/src/public/skills/kibi-usage/SKILL.md +21 -16
  114. package/src/public/skills/kibi-usage/resources/proof.md +36 -4
  115. package/src/public/skills/kibi-usage/resources/workflows.md +1 -1
  116. package/templates/github/kibi-badge.yml +1 -1
@@ -5,7 +5,7 @@ export { executePlanBootstrap } from "../../../operations/bootstrap/generate.js"
5
5
  export const planBootstrapSpec = {
6
6
  name: "kb_plan_bootstrap",
7
7
  cliName: "plan-bootstrap",
8
- description: "Generate a deterministic, snapshot-bound kibi.bootstrap-plan.v1 for repository onboarding. Read-only analysis of the repository plus any declared knowledge sources and cited intent claims returns evidence, bounded context questions, exact dependency-ordered actions, a canonical plan hash, and no mutation side effects.",
8
+ description: "Generate a deterministic, snapshot-bound kibi.bootstrap-plan.v1 for repository onboarding. Use it only to onboard a repository whose KB is empty or incomplete (the kibi-bootstrap skill drives it); for a change in an onboarded project use kb_compile_intent. Read-only analysis of the repository plus any declared knowledge sources and cited intent claims returns evidence, bounded context questions, exact dependency-ordered actions, a canonical plan hash, and no mutation side effects.",
9
9
  businessInputSchema: {
10
10
  type: "object",
11
11
  properties: {
@@ -1,5 +1,5 @@
1
1
  /** Every selectable kb_check rule name, registry order. */
2
2
  export declare const SELECTABLE_RULE_NAMES: readonly string[];
3
3
  /** Comma-separated "Allowed:" fragment for the kb_check rules description. */
4
- export declare const SELECTABLE_RULES_ALLOWED = "must-priority-coverage, symbol-coverage, symbol-traceability, symbol-granularity, no-dangling-refs, source-relationship-parity, branch-store-not-compiled, source-path-dangling, no-cycles, required-fields, deprecated-adr-no-successor, superseded-requirement-open, scenario-feasibility, scenario-feasibility-unknown, exception-claim-keys, numeric-string-value, rule-key-arguments-missing, domain-contradictions, logic-coverage, rule-safety, rule-verifiability, query-plan-safety, req-status-vocabulary, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, strict-readiness, semantic-completeness, related-requirement-unmodeled, proof-contract-symbols, entity-id-style, domain-redundancy, domain-implication, subject-key-identity, subject-key-shape, ontology-quality, exception-unapproved, exception-approval-self-attested, agent-requirement-unapproved, requirement-rationale-missing, symbol-owner-superseded, adr-unlinked, adr-proposed, predicate-schema-conformance, entity-context-missing, entity-context-acknowledged, decision-firm-unreferenced, decision-firm-superseded, decision-firm-edited, supersedes-reason-missing, supersedes-reason-acknowledged, policy-ownership, policy-markers";
4
+ export declare const SELECTABLE_RULES_ALLOWED = "must-priority-coverage, symbol-coverage, symbol-traceability, symbol-granularity, no-dangling-refs, source-relationship-parity, branch-store-not-compiled, source-path-dangling, no-cycles, required-fields, deprecated-adr-no-successor, superseded-requirement-open, scenario-feasibility, scenario-feasibility-unknown, exception-claim-keys, numeric-string-value, rule-key-arguments-missing, domain-contradictions, logic-coverage, rule-safety, rule-verifiability, query-plan-safety, req-status-vocabulary, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, strict-readiness, semantic-completeness, related-requirement-unmodeled, proof-contract-symbols, entity-id-style, domain-redundancy, domain-implication, subject-key-identity, subject-key-shape, ontology-quality, exception-unapproved, exception-approval-self-attested, agent-requirement-unapproved, requirement-rationale-missing, symbol-owner-superseded, adr-unlinked, adr-proposed, predicate-schema-conformance, entity-context-missing, entity-context-acknowledged, decision-firm-unreferenced, decision-firm-superseded, decision-firm-edited, supersedes-reason-missing, supersedes-reason-acknowledged, policy-ownership, policy-markers, kb-consistency, kb-consistency-unresolved";
5
5
  //# sourceMappingURL=check-rules.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-rules.generated.d.ts","sourceRoot":"","sources":["../../../../src/public/operations/specs/check-rules.generated.ts"],"names":[],"mappings":"AAUA,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAsDlD,CAAC;AAGF,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,srCACgpC,CAAC"}
1
+ {"version":3,"file":"check-rules.generated.d.ts","sourceRoot":"","sources":["../../../../src/public/operations/specs/check-rules.generated.ts"],"names":[],"mappings":"AAUA,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAwDlD,CAAC;AAGF,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,iuCAC2rC,CAAC"}
@@ -62,7 +62,9 @@ export const SELECTABLE_RULE_NAMES = [
62
62
  "supersedes-reason-acknowledged",
63
63
  "policy-ownership",
64
64
  "policy-markers",
65
+ "kb-consistency",
66
+ "kb-consistency-unresolved",
65
67
  ];
66
68
  // implements REQ-006
67
69
  /** Comma-separated "Allowed:" fragment for the kb_check rules description. */
68
- export const SELECTABLE_RULES_ALLOWED = "must-priority-coverage, symbol-coverage, symbol-traceability, symbol-granularity, no-dangling-refs, source-relationship-parity, branch-store-not-compiled, source-path-dangling, no-cycles, required-fields, deprecated-adr-no-successor, superseded-requirement-open, scenario-feasibility, scenario-feasibility-unknown, exception-claim-keys, numeric-string-value, rule-key-arguments-missing, domain-contradictions, logic-coverage, rule-safety, rule-verifiability, query-plan-safety, req-status-vocabulary, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, strict-readiness, semantic-completeness, related-requirement-unmodeled, proof-contract-symbols, entity-id-style, domain-redundancy, domain-implication, subject-key-identity, subject-key-shape, ontology-quality, exception-unapproved, exception-approval-self-attested, agent-requirement-unapproved, requirement-rationale-missing, symbol-owner-superseded, adr-unlinked, adr-proposed, predicate-schema-conformance, entity-context-missing, entity-context-acknowledged, decision-firm-unreferenced, decision-firm-superseded, decision-firm-edited, supersedes-reason-missing, supersedes-reason-acknowledged, policy-ownership, policy-markers";
70
+ export const SELECTABLE_RULES_ALLOWED = "must-priority-coverage, symbol-coverage, symbol-traceability, symbol-granularity, no-dangling-refs, source-relationship-parity, branch-store-not-compiled, source-path-dangling, no-cycles, required-fields, deprecated-adr-no-successor, superseded-requirement-open, scenario-feasibility, scenario-feasibility-unknown, exception-claim-keys, numeric-string-value, rule-key-arguments-missing, domain-contradictions, logic-coverage, rule-safety, rule-verifiability, query-plan-safety, req-status-vocabulary, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, strict-readiness, semantic-completeness, related-requirement-unmodeled, proof-contract-symbols, entity-id-style, domain-redundancy, domain-implication, subject-key-identity, subject-key-shape, ontology-quality, exception-unapproved, exception-approval-self-attested, agent-requirement-unapproved, requirement-rationale-missing, symbol-owner-superseded, adr-unlinked, adr-proposed, predicate-schema-conformance, entity-context-missing, entity-context-acknowledged, decision-firm-unreferenced, decision-firm-superseded, decision-firm-edited, supersedes-reason-missing, supersedes-reason-acknowledged, policy-ownership, policy-markers, kb-consistency, kb-consistency-unresolved";
@@ -12,7 +12,7 @@ export declare const checkSpec: {
12
12
  readonly type: "string";
13
13
  readonly enum: readonly string[];
14
14
  };
15
- readonly description: "Optional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, symbol-granularity, no-dangling-refs, source-relationship-parity, branch-store-not-compiled, source-path-dangling, no-cycles, required-fields, deprecated-adr-no-successor, superseded-requirement-open, scenario-feasibility, scenario-feasibility-unknown, exception-claim-keys, numeric-string-value, rule-key-arguments-missing, domain-contradictions, logic-coverage, rule-safety, rule-verifiability, query-plan-safety, req-status-vocabulary, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, strict-readiness, semantic-completeness, related-requirement-unmodeled, proof-contract-symbols, entity-id-style, domain-redundancy, domain-implication, subject-key-identity, subject-key-shape, ontology-quality, exception-unapproved, exception-approval-self-attested, agent-requirement-unapproved, requirement-rationale-missing, symbol-owner-superseded, adr-unlinked, adr-proposed, predicate-schema-conformance, entity-context-missing, entity-context-acknowledged, decision-firm-unreferenced, decision-firm-superseded, decision-firm-edited, supersedes-reason-missing, supersedes-reason-acknowledged, policy-ownership, policy-markers. If omitted, server runs canonical and advisory rules plus the full-KB qualityDiagnostics audit scan, including usage telemetry acceptance when evidence exists; migration rules run only when explicitly selected. Advisory and migration findings are non-blocking qualityDiagnostics. If supplied, server preserves scoped validation and skips the full-KB advisory scan.";
15
+ readonly description: "Optional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, symbol-granularity, no-dangling-refs, source-relationship-parity, branch-store-not-compiled, source-path-dangling, no-cycles, required-fields, deprecated-adr-no-successor, superseded-requirement-open, scenario-feasibility, scenario-feasibility-unknown, exception-claim-keys, numeric-string-value, rule-key-arguments-missing, domain-contradictions, logic-coverage, rule-safety, rule-verifiability, query-plan-safety, req-status-vocabulary, strict-fact-shape, strict-req-fact-pairing, predicate-verifiability, strict-readiness, semantic-completeness, related-requirement-unmodeled, proof-contract-symbols, entity-id-style, domain-redundancy, domain-implication, subject-key-identity, subject-key-shape, ontology-quality, exception-unapproved, exception-approval-self-attested, agent-requirement-unapproved, requirement-rationale-missing, symbol-owner-superseded, adr-unlinked, adr-proposed, predicate-schema-conformance, entity-context-missing, entity-context-acknowledged, decision-firm-unreferenced, decision-firm-superseded, decision-firm-edited, supersedes-reason-missing, supersedes-reason-acknowledged, policy-ownership, policy-markers, kb-consistency, kb-consistency-unresolved. If omitted, server runs canonical and advisory rules plus the full-KB qualityDiagnostics audit scan, including usage telemetry acceptance when evidence exists; migration rules run only when explicitly selected. Advisory and migration findings are non-blocking qualityDiagnostics. If supplied, server preserves scoped validation and skips the full-KB advisory scan.";
16
16
  };
17
17
  readonly sourceFiles: {
18
18
  readonly type: "array";
@@ -344,7 +344,7 @@ export declare const skillsSpec: {
344
344
  export declare const modelSpec: {
345
345
  readonly name: "kb_model";
346
346
  readonly cliName: "model";
347
- readonly description: "Turn requirement prose into checkable structure without writing the KB. mode:analyze returns the semantic advisor receipt: the clause ledger, what is grounded, what is ambiguous and suggested modeling (pass clauses for compound prose and optional typed kibi.logic.v1 interpretations). mode:requirement converts one claim (subjectKey, propertyKey, operator, value, or typed logic) into a strict-lane write set and applyPlan. mode:predicates ranks ontology predicate schemas and returns an applicable predicate-fact plan only for reviewed bindings, otherwise an ontology-gap observation. With requirementId, mode:predicates also returns a hash-bound plan (fact write plus requires_predicate link) for kb_apply_plan, whose contradictionAnalysis is the what-if over the current KB; other returned plans apply with kb_upsert, and kb_upsert dryRun with plannedFacts previews a requirement before its facts exist.";
347
+ readonly description: "Turn requirement prose into checkable structure without writing the KB. Use it for one requirement's prose; to plan a whole change request use kb_compile_intent. mode:analyze returns the semantic advisor receipt: the clause ledger, what is grounded, what is ambiguous and suggested modeling (pass clauses for compound prose and optional typed kibi.logic.v1 interpretations). mode:requirement converts one claim (subjectKey, propertyKey, operator, value, or typed logic) into a strict-lane write set and applyPlan. mode:predicates ranks ontology predicate schemas and returns an applicable predicate-fact plan only for reviewed bindings, otherwise an ontology-gap observation. With requirementId, mode:predicates also returns a hash-bound plan (fact write plus requires_predicate link) for kb_apply_plan, whose contradictionAnalysis is the what-if over the current KB; other returned plans apply with kb_upsert, and kb_upsert dryRun with plannedFacts previews a requirement before its facts exist.";
348
348
  readonly businessInputSchema: {
349
349
  readonly type: "object";
350
350
  readonly required: readonly ["mode", "text"];
@@ -152,7 +152,7 @@ export const skillsSpec = {
152
152
  export const modelSpec = {
153
153
  name: "kb_model",
154
154
  cliName: "model",
155
- description: "Turn requirement prose into checkable structure without writing the KB. mode:analyze returns the semantic advisor receipt: the clause ledger, what is grounded, what is ambiguous and suggested modeling (pass clauses for compound prose and optional typed kibi.logic.v1 interpretations). mode:requirement converts one claim (subjectKey, propertyKey, operator, value, or typed logic) into a strict-lane write set and applyPlan. mode:predicates ranks ontology predicate schemas and returns an applicable predicate-fact plan only for reviewed bindings, otherwise an ontology-gap observation. With requirementId, mode:predicates also returns a hash-bound plan (fact write plus requires_predicate link) for kb_apply_plan, whose contradictionAnalysis is the what-if over the current KB; other returned plans apply with kb_upsert, and kb_upsert dryRun with plannedFacts previews a requirement before its facts exist.",
155
+ description: "Turn requirement prose into checkable structure without writing the KB. Use it for one requirement's prose; to plan a whole change request use kb_compile_intent. mode:analyze returns the semantic advisor receipt: the clause ledger, what is grounded, what is ambiguous and suggested modeling (pass clauses for compound prose and optional typed kibi.logic.v1 interpretations). mode:requirement converts one claim (subjectKey, propertyKey, operator, value, or typed logic) into a strict-lane write set and applyPlan. mode:predicates ranks ontology predicate schemas and returns an applicable predicate-fact plan only for reviewed bindings, otherwise an ontology-gap observation. With requirementId, mode:predicates also returns a hash-bound plan (fact write plus requires_predicate link) for kb_apply_plan, whose contradictionAnalysis is the what-if over the current KB; other returned plans apply with kb_upsert, and kb_upsert dryRun with plannedFacts previews a requirement before its facts exist.",
156
156
  businessInputSchema: {
157
157
  type: "object",
158
158
  required: ["mode", "text"],
@@ -233,7 +233,7 @@ export declare const searchSpec: {
233
233
  export declare const statusSpec: {
234
234
  readonly name: "kb_status";
235
235
  readonly cliName: "status";
236
- readonly description: "Report current branch, KB snapshot, freshness metadata, schema status, and a typed kibi.migration-plan.v2 action graph. Read-only status inspection with no mutation side effects; damaged stores are diagnosed without starting the engine.";
236
+ readonly description: "Report current branch, KB snapshot, freshness metadata, schema status, and a typed kibi.migration-plan.v2 action graph. Call it first to orient on a branch or after a failed call; use kb_check for validation findings and kb_coverage for proof status. Read-only status inspection with no mutation side effects; damaged stores are diagnosed without starting the engine.";
237
237
  readonly businessInputSchema: {
238
238
  readonly type: "object";
239
239
  readonly properties: {};
@@ -212,7 +212,7 @@ export const searchSpec = {
212
212
  export const statusSpec = {
213
213
  name: "kb_status",
214
214
  cliName: "status",
215
- description: "Report current branch, KB snapshot, freshness metadata, schema status, and a typed kibi.migration-plan.v2 action graph. Read-only status inspection with no mutation side effects; damaged stores are diagnosed without starting the engine.",
215
+ description: "Report current branch, KB snapshot, freshness metadata, schema status, and a typed kibi.migration-plan.v2 action graph. Call it first to orient on a branch or after a failed call; use kb_check for validation findings and kb_coverage for proof status. Read-only status inspection with no mutation side effects; damaged stores are diagnosed without starting the engine.",
216
216
  businessInputSchema: { type: "object", properties: {} },
217
217
  // Status must remain available when the branch store cannot be attached.
218
218
  requiresProlog: false,
@@ -2,13 +2,14 @@ import { executePrepareImpactReview } from "../impact-review-preparation.js";
2
2
  export declare const prepareImpactReviewSpec: {
3
3
  readonly name: "kb_prepare_impact_review";
4
4
  readonly cliName: "prepare-impact-review";
5
- readonly description: "Prepare complete content-bound impact-review authoring inputs from the current staged snapshot or explicitly selected immutable Git commits. Returns strict reviewer schemas and an unauthored template; it does not decide, approve, sign, stage, or prove the review.";
5
+ readonly description: "Prepare complete content-bound impact-review authoring inputs from the current staged snapshot or explicitly selected immutable Git commits. Use it when kb_check reports that changed files need an impact review; it does not plan KB changes. Returns strict reviewer schemas and an unauthored template; it does not decide, approve, sign, stage, or prove the review.";
6
6
  readonly businessInputSchema: {
7
7
  readonly type: "object";
8
8
  readonly additionalProperties: false;
9
9
  readonly required: readonly ["scope"];
10
10
  readonly properties: {
11
11
  readonly scope: {
12
+ readonly description: "What to review: {\"kind\":\"staged\"} for the staged snapshot, or {\"kind\":\"diff\",\"baseCommit\":\"<sha>\",\"headCommit\":\"<sha>\"} with full commit hashes.";
12
13
  readonly oneOf: readonly [{
13
14
  readonly type: "object";
14
15
  readonly additionalProperties: false;
@@ -1 +1 @@
1
- {"version":3,"file":"impact-review-preparation.d.ts","sourceRoot":"","sources":["../../../../src/public/operations/specs/impact-review-preparation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAG7E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CF,CAAC"}
1
+ {"version":3,"file":"impact-review-preparation.d.ts","sourceRoot":"","sources":["../../../../src/public/operations/specs/impact-review-preparation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAG7E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CF,CAAC"}
@@ -2,13 +2,14 @@ import { executePrepareImpactReview } from "../impact-review-preparation.js";
2
2
  export const prepareImpactReviewSpec = {
3
3
  name: "kb_prepare_impact_review",
4
4
  cliName: "prepare-impact-review",
5
- description: "Prepare complete content-bound impact-review authoring inputs from the current staged snapshot or explicitly selected immutable Git commits. Returns strict reviewer schemas and an unauthored template; it does not decide, approve, sign, stage, or prove the review.",
5
+ description: "Prepare complete content-bound impact-review authoring inputs from the current staged snapshot or explicitly selected immutable Git commits. Use it when kb_check reports that changed files need an impact review; it does not plan KB changes. Returns strict reviewer schemas and an unauthored template; it does not decide, approve, sign, stage, or prove the review.",
6
6
  businessInputSchema: {
7
7
  type: "object",
8
8
  additionalProperties: false,
9
9
  required: ["scope"],
10
10
  properties: {
11
11
  scope: {
12
+ description: 'What to review: {"kind":"staged"} for the staged snapshot, or {"kind":"diff","baseCommit":"<sha>","headCommit":"<sha>"} with full commit hashes.',
12
13
  oneOf: [
13
14
  {
14
15
  type: "object",
@@ -8,7 +8,7 @@ export { executeCompileIntent } from "../../../operations/planning/compile-inten
8
8
  export declare const compileIntentSpec: {
9
9
  readonly name: "kb_compile_intent";
10
10
  readonly cliName: "compile-intent";
11
- readonly description: "Compile complete change intent into a deterministic, snapshot-bound read-only plan. Reuses intent-aware discovery and semantic modeling, accounts for every proposition, reports contradiction witnesses, proposes traceability links, and emits dependency-ordered kb_upsert-style steps only for resolved typed claims. contradictionAnalysis.outcome is no_conflict only when the check could decide: an unmodeled proposition or a related current requirement without logic leaves it unresolved with reasons and reviewCandidates to compare and judge through conflictReviews. No mutation side effects.";
11
+ readonly description: "Compile complete change intent into a deterministic, snapshot-bound read-only plan. Use it before editing code for a change request that may touch several requirements; use kb_model for one requirement's prose and kb_plan_bootstrap for first-time onboarding. Reuses intent-aware discovery and semantic modeling, accounts for every proposition, reports contradiction witnesses, proposes traceability links, and emits dependency-ordered kb_upsert-style steps only for resolved typed claims. contradictionAnalysis.outcome is no_conflict only when the check could decide: an unmodeled proposition or a related current requirement without logic leaves it unresolved with reasons and reviewCandidates to compare and judge through conflictReviews. No mutation side effects.";
12
12
  readonly businessInputSchema: {
13
13
  readonly type: "object";
14
14
  readonly required: readonly ["intent", "mode"];
@@ -6,7 +6,7 @@ export { executeCompileIntent } from "../../../operations/planning/compile-inten
6
6
  export const compileIntentSpec = {
7
7
  name: "kb_compile_intent",
8
8
  cliName: "compile-intent",
9
- description: "Compile complete change intent into a deterministic, snapshot-bound read-only plan. Reuses intent-aware discovery and semantic modeling, accounts for every proposition, reports contradiction witnesses, proposes traceability links, and emits dependency-ordered kb_upsert-style steps only for resolved typed claims. contradictionAnalysis.outcome is no_conflict only when the check could decide: an unmodeled proposition or a related current requirement without logic leaves it unresolved with reasons and reviewCandidates to compare and judge through conflictReviews. No mutation side effects.",
9
+ description: "Compile complete change intent into a deterministic, snapshot-bound read-only plan. Use it before editing code for a change request that may touch several requirements; use kb_model for one requirement's prose and kb_plan_bootstrap for first-time onboarding. Reuses intent-aware discovery and semantic modeling, accounts for every proposition, reports contradiction witnesses, proposes traceability links, and emits dependency-ordered kb_upsert-style steps only for resolved typed claims. contradictionAnalysis.outcome is no_conflict only when the check could decide: an unmodeled proposition or a related current requirement without logic leaves it unresolved with reasons and reviewCandidates to compare and judge through conflictReviews. No mutation side effects.",
10
10
  businessInputSchema: {
11
11
  type: "object",
12
12
  required: ["intent", "mode"],
@@ -69,42 +69,49 @@ export declare function executeFindGaps(input: FindGapsInput, context: Operation
69
69
  export declare const findGapsSpec: {
70
70
  readonly name: "kb_find_gaps";
71
71
  readonly cliName: "find-gaps";
72
- readonly description: "Run bulk missing/present relationship analysis over KB entities. Use for questions like which requirements lack scenarios or tests. No mutation side effects.";
72
+ readonly description: "List KB entities by the relationships they lack or have. Use for questions like which requirements lack scenarios or tests; all filters must match, and a relationship counts in either direction. Use kb_coverage instead for proof status and repair plans, and kb_check for rule violations. No mutation side effects.";
73
73
  readonly businessInputSchema: {
74
74
  readonly type: "object";
75
75
  readonly properties: {
76
76
  readonly type: {
77
77
  readonly type: "string";
78
78
  readonly enum: readonly ["req", "scenario", "test", "adr", "flag", "event", "symbol", "fact"];
79
+ readonly description: "Only report entities of this type. Omit for all types.";
79
80
  };
80
81
  readonly missingRelationships: {
81
82
  readonly type: "array";
82
83
  readonly items: {
83
84
  readonly type: "string";
84
85
  };
86
+ readonly description: "Relationship types the entity must have none of, in either direction, for example specified_by or verified_by. verified_by and validates satisfy each other.";
85
87
  };
86
88
  readonly presentRelationships: {
87
89
  readonly type: "array";
88
90
  readonly items: {
89
91
  readonly type: "string";
90
92
  };
93
+ readonly description: "Relationship types the entity must have at least one of each, in either direction.";
91
94
  };
92
95
  readonly tags: {
93
96
  readonly type: "array";
94
97
  readonly items: {
95
98
  readonly type: "string";
96
99
  };
100
+ readonly description: "Keep entities carrying any of these metadata tags. Bootstrap provenance stubs appear in rows only when this names bootstrap:provenance-stub.";
97
101
  };
98
102
  readonly sourceFile: {
99
103
  readonly type: "string";
104
+ readonly description: "Keep entities whose source path contains this substring.";
100
105
  };
101
106
  readonly limit: {
102
107
  readonly type: "integer";
103
108
  readonly default: 100;
109
+ readonly description: "Maximum rows to return; count reports the full total.";
104
110
  };
105
111
  readonly offset: {
106
112
  readonly type: "integer";
107
113
  readonly default: 0;
114
+ readonly description: "Zero-based row offset for pagination.";
108
115
  };
109
116
  };
110
117
  };
@@ -118,7 +125,7 @@ export declare const findGapsSpec: {
118
125
  * + bound-symbol code scope) and hand the Prolog coverage stage a
119
126
  * TestId -> BindingHash dict. This is the default binding mode since slice 3;
120
127
  * KIBI_PROOF_BINDING_MODE=strict-snapshot opts out (receipts then match only
121
- * against the whole-workspace snapshot they were proven on).
128
+ * against the whole-workspace snapshot they were produced on).
122
129
  */
123
130
  export declare function currentProofBindingMode(): "per_contract" | "strict_snapshot";
124
131
  export declare function perContractTestBindings(context: OperationContext): Promise<string | null>;
@@ -134,7 +141,7 @@ export declare function executeCoverage(input: CoverageInput, context: Operation
134
141
  export declare const coverageSpec: {
135
142
  readonly name: "kb_coverage";
136
143
  readonly cliName: "coverage";
137
- readonly description: "Generate curated structural coverage and conservative end-to-end requirement proof reports for requirements, symbols, or grouped types. Reports include the compatible repair plan plus typed kibi.migration-plan.v2 actions; semantic and E2E actions remain review/execution work. Paginated plans identify incomplete scope and no mutation occurs.";
144
+ readonly description: "Generate curated structural coverage and conservative end-to-end requirement proof reports for requirements, symbols, or grouped types. Use it to ask which requirements are tested end to end, how strong each requirement's evidence is (evidenceLevel: proved, tested, asserted or unverified), and what blocks the rest; use kb_find_gaps for a plain list of missing links and kb_check for rule violations. Reports include the compatible repair plan plus typed kibi.migration-plan.v2 actions; semantic and E2E actions remain review/execution work. Paginated plans identify incomplete scope and no mutation occurs.";
138
145
  readonly businessInputSchema: {
139
146
  readonly type: "object";
140
147
  readonly properties: {
@@ -142,36 +149,42 @@ export declare const coverageSpec: {
142
149
  readonly type: "string";
143
150
  readonly enum: readonly ["req", "symbol", "type"];
144
151
  readonly default: "req";
152
+ readonly description: "Report shape: req gives per-requirement proof status and a repair plan, symbol gives per-symbol ownership coverage, type gives counts per entity type.";
145
153
  };
146
154
  readonly tags: {
147
155
  readonly type: "array";
148
156
  readonly items: {
149
157
  readonly type: "string";
150
158
  };
159
+ readonly description: "Keep rows for entities carrying any of these metadata tags.";
151
160
  };
152
161
  readonly includePassing: {
153
162
  readonly type: "boolean";
154
163
  readonly default: false;
164
+ readonly description: "Also return rows that are already tested or not applicable. By default only rows that still need repair are returned.";
155
165
  };
156
166
  readonly statuses: {
157
167
  readonly type: "array";
158
168
  readonly items: {
159
169
  readonly type: "string";
160
- readonly enum: readonly ["proven", "missing", "unresolved", "not_applicable"];
170
+ readonly enum: readonly ["tested", "missing", "unresolved", "not_applicable"];
161
171
  };
162
172
  readonly description: "Requirement proof-status filter (req mode): include only rows whose proofStatus is listed. Selecting statuses implies include-passing; not_applicable rows carry their typed applicability reason in proofStages.applicability.reason. The summary always reflects the whole KB.";
163
173
  };
164
174
  readonly includeTransitive: {
165
175
  readonly type: "boolean";
166
176
  readonly default: true;
177
+ readonly description: "Count symbol coverage reached transitively through linked entities, not only direct links.";
167
178
  };
168
179
  readonly limit: {
169
180
  readonly type: "integer";
170
181
  readonly default: 100;
182
+ readonly description: "Maximum rows to return. When the repair plan reports scope.complete false, rerun with offset 0 and a larger limit.";
171
183
  };
172
184
  readonly offset: {
173
185
  readonly type: "integer";
174
186
  readonly default: 0;
187
+ readonly description: "Zero-based row offset for pagination.";
175
188
  };
176
189
  readonly includeMigrationPreview: {
177
190
  readonly type: "boolean";
@@ -215,7 +228,7 @@ export declare function executeGraph(input: GraphInput, context: OperationContex
215
228
  export declare const graphSpec: {
216
229
  readonly name: "kb_graph";
217
230
  readonly cliName: "graph";
218
- readonly description: "Run bounded graph traversal from one or more seed IDs across curated relationship types. No mutation side effects.";
231
+ readonly description: "Run bounded graph traversal from one or more seed IDs across curated relationship types and return the nodes and edges reached. Use it to follow links from IDs you already have, such as a requirement to its scenarios and tests or a symbol to the requirements it implements; use kb_query to find entities by filter and kb_search to ask a question. Traversal stops at depth, maxNodes or maxEdges and then sets truncated. No mutation side effects.";
219
232
  readonly businessInputSchema: {
220
233
  readonly type: "object";
221
234
  readonly required: readonly ["seedIds"];
@@ -225,37 +238,44 @@ export declare const graphSpec: {
225
238
  readonly items: {
226
239
  readonly type: "string";
227
240
  };
241
+ readonly description: "Entity IDs to start from, for example REQ-... or SCEN-.... Seeds are always returned as nodes.";
228
242
  };
229
243
  readonly relationships: {
230
244
  readonly type: "array";
231
245
  readonly items: {
232
246
  readonly type: "string";
233
247
  };
248
+ readonly description: "Relationship types to follow, for example specified_by, verified_by or implements. Omit to follow every relationship type.";
234
249
  };
235
250
  readonly direction: {
236
251
  readonly type: "string";
237
252
  readonly enum: readonly ["outgoing", "incoming", "both"];
238
253
  readonly default: "outgoing";
254
+ readonly description: "outgoing follows links from each node, incoming follows links pointing at it, both does either.";
239
255
  };
240
256
  readonly depth: {
241
257
  readonly type: "integer";
242
258
  readonly default: 1;
243
259
  readonly minimum: 1;
244
260
  readonly maximum: 5;
261
+ readonly description: "Number of hops from the seeds.";
245
262
  };
246
263
  readonly entityTypes: {
247
264
  readonly type: "array";
248
265
  readonly items: {
249
266
  readonly type: "string";
250
267
  };
268
+ readonly description: "Keep only nodes of these types (req, scenario, test, adr, flag, event, symbol, fact) in the result, and the edges between them. Traversal still passes through other types.";
251
269
  };
252
270
  readonly maxNodes: {
253
271
  readonly type: "integer";
254
272
  readonly default: 200;
273
+ readonly description: "Stop and set truncated once this many nodes are reached.";
255
274
  };
256
275
  readonly maxEdges: {
257
276
  readonly type: "integer";
258
277
  readonly default: 500;
278
+ readonly description: "Stop and set truncated once this many edges are reached.";
259
279
  };
260
280
  };
261
281
  };
@@ -1 +1 @@
1
- {"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../../../src/public/operations/specs/reporting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../../../src/public/operations/specs/reporting.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK5D,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,aAAa,CAAC;AAelE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IACnD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD,CAAC;AAiCF,wBAAsB,eAAe,CACnC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CA+B3C;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDyC,CAAC;AAEnE;;;;;;;GAOG;AAEH,wBAAgB,uBAAuB,IAAI,cAAc,GAAG,iBAAiB,CAI5E;AAGD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0CxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAGzC,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAC/C,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,EAClD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAoB1B;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CA4H3C;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FyC,CAAC;AAEnE,wBAAsB,YAAY,CAChC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CA8BxC;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDsC,CAAC"}
@@ -30,7 +30,7 @@ function validateEntityType(type) {
30
30
  }
31
31
  }
32
32
  const COVERAGE_PROOF_STATUSES = new Set([
33
- "proven",
33
+ "tested",
34
34
  "missing",
35
35
  "unresolved",
36
36
  "not_applicable",
@@ -70,20 +70,44 @@ export async function executeFindGaps(input, context) {
70
70
  export const findGapsSpec = {
71
71
  name: "kb_find_gaps",
72
72
  cliName: "find-gaps",
73
- description: "Run bulk missing/present relationship analysis over KB entities. Use for questions like which requirements lack scenarios or tests. No mutation side effects.",
73
+ description: "List KB entities by the relationships they lack or have. Use for questions like which requirements lack scenarios or tests; all filters must match, and a relationship counts in either direction. Use kb_coverage instead for proof status and repair plans, and kb_check for rule violations. No mutation side effects.",
74
74
  businessInputSchema: {
75
75
  type: "object",
76
76
  properties: {
77
77
  type: {
78
78
  type: "string",
79
79
  enum: ENTITY_TYPES,
80
+ description: "Only report entities of this type. Omit for all types.",
81
+ },
82
+ missingRelationships: {
83
+ type: "array",
84
+ items: { type: "string" },
85
+ description: "Relationship types the entity must have none of, in either direction, for example specified_by or verified_by. verified_by and validates satisfy each other.",
86
+ },
87
+ presentRelationships: {
88
+ type: "array",
89
+ items: { type: "string" },
90
+ description: "Relationship types the entity must have at least one of each, in either direction.",
91
+ },
92
+ tags: {
93
+ type: "array",
94
+ items: { type: "string" },
95
+ description: "Keep entities carrying any of these metadata tags. Bootstrap provenance stubs appear in rows only when this names bootstrap:provenance-stub.",
96
+ },
97
+ sourceFile: {
98
+ type: "string",
99
+ description: "Keep entities whose source path contains this substring.",
100
+ },
101
+ limit: {
102
+ type: "integer",
103
+ default: 100,
104
+ description: "Maximum rows to return; count reports the full total.",
105
+ },
106
+ offset: {
107
+ type: "integer",
108
+ default: 0,
109
+ description: "Zero-based row offset for pagination.",
80
110
  },
81
- missingRelationships: { type: "array", items: { type: "string" } },
82
- presentRelationships: { type: "array", items: { type: "string" } },
83
- tags: { type: "array", items: { type: "string" } },
84
- sourceFile: { type: "string" },
85
- limit: { type: "integer", default: 100 },
86
- offset: { type: "integer", default: 0 },
87
111
  },
88
112
  },
89
113
  requiresProlog: true,
@@ -96,7 +120,7 @@ export const findGapsSpec = {
96
120
  * + bound-symbol code scope) and hand the Prolog coverage stage a
97
121
  * TestId -> BindingHash dict. This is the default binding mode since slice 3;
98
122
  * KIBI_PROOF_BINDING_MODE=strict-snapshot opts out (receipts then match only
99
- * against the whole-workspace snapshot they were proven on).
123
+ * against the whole-workspace snapshot they were produced on).
100
124
  */
101
125
  // implements REQ-kibi-verification-evidence-contract
102
126
  export function currentProofBindingMode() {
@@ -262,13 +286,13 @@ export async function executeCoverage(input, context) {
262
286
  },
263
287
  };
264
288
  const fullyCovered = Number(enrichedPayload.summary?.fullyCovered ?? 0);
265
- const proofProven = Number(enrichedPayload.summary?.proofProven ?? 0);
289
+ const proofTested = Number(enrichedPayload.summary?.proofTested ?? 0);
266
290
  const total = Number(enrichedPayload.summary?.total ?? 0);
267
291
  return {
268
292
  content: [
269
293
  {
270
294
  type: "text",
271
- text: `Coverage summary: ${fullyCovered} structurally covered and ${proofProven} proven out of ${total}.`,
295
+ text: `Coverage summary: ${fullyCovered} structurally covered and ${proofTested} tested end to end out of ${total}.`,
272
296
  },
273
297
  ],
274
298
  structuredContent: enrichedPayload,
@@ -282,24 +306,49 @@ export async function executeCoverage(input, context) {
282
306
  export const coverageSpec = {
283
307
  name: "kb_coverage",
284
308
  cliName: "coverage",
285
- description: "Generate curated structural coverage and conservative end-to-end requirement proof reports for requirements, symbols, or grouped types. Reports include the compatible repair plan plus typed kibi.migration-plan.v2 actions; semantic and E2E actions remain review/execution work. Paginated plans identify incomplete scope and no mutation occurs.",
309
+ description: "Generate curated structural coverage and conservative end-to-end requirement proof reports for requirements, symbols, or grouped types. Use it to ask which requirements are tested end to end, how strong each requirement's evidence is (evidenceLevel: proved, tested, asserted or unverified), and what blocks the rest; use kb_find_gaps for a plain list of missing links and kb_check for rule violations. Reports include the compatible repair plan plus typed kibi.migration-plan.v2 actions; semantic and E2E actions remain review/execution work. Paginated plans identify incomplete scope and no mutation occurs.",
286
310
  businessInputSchema: {
287
311
  type: "object",
288
312
  properties: {
289
- by: { type: "string", enum: ["req", "symbol", "type"], default: "req" },
290
- tags: { type: "array", items: { type: "string" } },
291
- includePassing: { type: "boolean", default: false },
313
+ by: {
314
+ type: "string",
315
+ enum: ["req", "symbol", "type"],
316
+ default: "req",
317
+ description: "Report shape: req gives per-requirement proof status and a repair plan, symbol gives per-symbol ownership coverage, type gives counts per entity type.",
318
+ },
319
+ tags: {
320
+ type: "array",
321
+ items: { type: "string" },
322
+ description: "Keep rows for entities carrying any of these metadata tags.",
323
+ },
324
+ includePassing: {
325
+ type: "boolean",
326
+ default: false,
327
+ description: "Also return rows that are already tested or not applicable. By default only rows that still need repair are returned.",
328
+ },
292
329
  statuses: {
293
330
  type: "array",
294
331
  items: {
295
332
  type: "string",
296
- enum: ["proven", "missing", "unresolved", "not_applicable"],
333
+ enum: ["tested", "missing", "unresolved", "not_applicable"],
297
334
  },
298
335
  description: "Requirement proof-status filter (req mode): include only rows whose proofStatus is listed. Selecting statuses implies include-passing; not_applicable rows carry their typed applicability reason in proofStages.applicability.reason. The summary always reflects the whole KB.",
299
336
  },
300
- includeTransitive: { type: "boolean", default: true },
301
- limit: { type: "integer", default: 100 },
302
- offset: { type: "integer", default: 0 },
337
+ includeTransitive: {
338
+ type: "boolean",
339
+ default: true,
340
+ description: "Count symbol coverage reached transitively through linked entities, not only direct links.",
341
+ },
342
+ limit: {
343
+ type: "integer",
344
+ default: 100,
345
+ description: "Maximum rows to return. When the repair plan reports scope.complete false, rerun with offset 0 and a larger limit.",
346
+ },
347
+ offset: {
348
+ type: "integer",
349
+ default: 0,
350
+ description: "Zero-based row offset for pagination.",
351
+ },
303
352
  includeMigrationPreview: {
304
353
  type: "boolean",
305
354
  default: false,
@@ -367,22 +416,49 @@ export async function executeGraph(input, context) {
367
416
  export const graphSpec = {
368
417
  name: "kb_graph",
369
418
  cliName: "graph",
370
- description: "Run bounded graph traversal from one or more seed IDs across curated relationship types. No mutation side effects.",
419
+ description: "Run bounded graph traversal from one or more seed IDs across curated relationship types and return the nodes and edges reached. Use it to follow links from IDs you already have, such as a requirement to its scenarios and tests or a symbol to the requirements it implements; use kb_query to find entities by filter and kb_search to ask a question. Traversal stops at depth, maxNodes or maxEdges and then sets truncated. No mutation side effects.",
371
420
  businessInputSchema: {
372
421
  type: "object",
373
422
  required: ["seedIds"],
374
423
  properties: {
375
- seedIds: { type: "array", items: { type: "string" } },
376
- relationships: { type: "array", items: { type: "string" } },
424
+ seedIds: {
425
+ type: "array",
426
+ items: { type: "string" },
427
+ description: "Entity IDs to start from, for example REQ-... or SCEN-.... Seeds are always returned as nodes.",
428
+ },
429
+ relationships: {
430
+ type: "array",
431
+ items: { type: "string" },
432
+ description: "Relationship types to follow, for example specified_by, verified_by or implements. Omit to follow every relationship type.",
433
+ },
377
434
  direction: {
378
435
  type: "string",
379
436
  enum: ["outgoing", "incoming", "both"],
380
437
  default: "outgoing",
438
+ description: "outgoing follows links from each node, incoming follows links pointing at it, both does either.",
439
+ },
440
+ depth: {
441
+ type: "integer",
442
+ default: 1,
443
+ minimum: 1,
444
+ maximum: 5,
445
+ description: "Number of hops from the seeds.",
446
+ },
447
+ entityTypes: {
448
+ type: "array",
449
+ items: { type: "string" },
450
+ description: "Keep only nodes of these types (req, scenario, test, adr, flag, event, symbol, fact) in the result, and the edges between them. Traversal still passes through other types.",
451
+ },
452
+ maxNodes: {
453
+ type: "integer",
454
+ default: 200,
455
+ description: "Stop and set truncated once this many nodes are reached.",
456
+ },
457
+ maxEdges: {
458
+ type: "integer",
459
+ default: 500,
460
+ description: "Stop and set truncated once this many edges are reached.",
381
461
  },
382
- depth: { type: "integer", default: 1, minimum: 1, maximum: 5 },
383
- entityTypes: { type: "array", items: { type: "string" } },
384
- maxNodes: { type: "integer", default: 200 },
385
- maxEdges: { type: "integer", default: 500 },
386
462
  },
387
463
  },
388
464
  requiresProlog: true,