Skip to main content
Glama

kb_check

Read-onlyIdempotent

Validate the knowledge base against configured rules and return violations, quality diagnostics, and typed migration-plan actions; run read-only checks before or after mutations and source edits.

Instructions

Run KB validation rules and return violations, quality diagnostics, and typed kibi.migration-plan.v2 actions. Use before or after mutations and after source edits; checks remain read-only and never infer or apply actions from prose suggestions.

Input Schema

NameRequiredDescriptionDefault
asyncNoWhen true, start the check as a background job and return a kibi.job.v1 receipt immediately instead of holding the request until the tool timeout. Poll kb_job_status with the returned jobId. Use for full checks on large KBs that exceed the configured tool timeout. The MCP server registers kb_job_status only when KIBI_MCP_OPTIONAL_TOOLS includes it; otherwise async runs the check synchronously.
rulesNoOptional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, symbol-granularity, symbol-coordinates-missing, 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, scenario-outcome-mismatch, 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, evidence-floor, proof-contract-claims. 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.
stagedNoWhen true, inspect staged source changes for impact diagnostics using the shared CLI impact analyzer without shelling out to kibi check.
sourceFilesNoOptional repo-relative source files to inspect for early impact diagnostics. Use with includeImpactDiagnostics after meaningful source edits.
workspaceRootNoOptional absolute path of the workspace this call is about when it differs from the one the server started in, for example the git worktree you are working in. The server answers from that workspace's knowledge base when it is a worktree of the same repository or lies under the client's MCP roots; otherwise it answers from its own workspace and adds a workspace_mismatch diagnostic. Host hooks fill this in automatically where available.
maxDiagnosticsNoOptional maximum number of impact diagnostics to return. Graph validation violations are not capped by this value.
includeWorkingTreeDiffNoWhen true, inspect current unstaged working-tree diffs for impact diagnostics. Pair with sourceFiles to scope the analysis.
includeImpactDiagnosticsNoWhen true, include changed-file impact diagnostics such as symbol_granularity_violation, symbol_semantic_review_needed, source_file_unowned and requirement_statement_unverified (each current requirement the changed code implements, with its statement and firmness, since the check never compares code with a statement) in structured output.

Output Schema

NameRequiredDescriptionDefault
dataYesSynchronous check payload, or a kibi.job.v1 receipt when async:true detached the check into a background job (poll kb_job_status with the jobId).
errorNo
statusYes
effectsYes
operationYes
diagnosticsYes
nextActionsYes
kibiProtocolYes
resultVersionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.1.7
    • changedInput schema / properties / rules / description
      Previous value: -"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, scenario-outcome-mismatch, 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, evidence-floor, proof-contract-claims. 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."New value: +"Optional rule subset. Allowed: must-priority-coverage, symbol-coverage, symbol-traceability, symbol-granularity, symbol-coordinates-missing, 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, scenario-outcome-mismatch, 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, evidence-floor, proof-contract-claims. 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."
    • changedInput schema / properties / rules / items / anyOf
      Previous value: -[
      -  {
      -    "const": "must-priority-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-traceability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-granularity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "no-dangling-refs",
      -    "type": "string"
      -  },
      -  {
      -    "const": "source-relationship-parity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "branch-store-not-compiled",
      -    "type": "string"
      -  },
      -  {
      -    "const": "source-path-dangling",
      -    "type": "string"
      -  },
      -  {
      -    "const": "no-cycles",
      -    "type": "string"
      -  },
      -  {
      -    "const": "required-fields",
      -    "type": "string"
      -  },
      -  {
      -    "const": "deprecated-adr-no-successor",
      -    "type": "string"
      -  },
      -  {
      -    "const": "superseded-requirement-open",
      -    "type": "string"
      -  },
      -  {
      -    "const": "scenario-feasibility",
      -    "type": "string"
      -  },
      -  {
      -    "const": "scenario-feasibility-unknown",
      -    "type": "string"
      -  },
      -  {
      -    "const": "scenario-outcome-mismatch",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-claim-keys",
      -    "type": "string"
      -  },
      -  {
      -    "const": "numeric-string-value",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-key-arguments-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-contradictions",
      -    "type": "string"
      -  },
      -  {
      -    "const": "logic-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-safety",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-verifiability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "query-plan-safety",
      -    "type": "string"
      -  },
      -  {
      -    "const": "req-status-vocabulary",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-fact-shape",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-req-fact-pairing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "predicate-verifiability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-readiness",
      -    "type": "string"
      -  },
      -  {
      -    "const": "semantic-completeness",
      -    "type": "string"
      -  },
      -  {
      -    "const": "related-requirement-unmodeled",
      -    "type": "string"
      -  },
      -  {
      -    "const": "proof-contract-symbols",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-id-style",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-redundancy",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-implication",
      -    "type": "string"
      -  },
      -  {
      -    "const": "subject-key-identity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "subject-key-shape",
      -    "type": "string"
      -  },
      -  {
      -    "const": "ontology-quality",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-unapproved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-approval-self-attested",
      -    "type": "string"
      -  },
      -  {
      -    "const": "agent-requirement-unapproved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "requirement-rationale-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-owner-superseded",
      -    "type": "string"
      -  },
      -  {
      -    "const": "adr-unlinked",
      -    "type": "string"
      -  },
      -  {
      -    "const": "adr-proposed",
      -    "type": "string"
      -  },
      -  {
      -    "const": "predicate-schema-conformance",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-context-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-context-acknowledged",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-unreferenced",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-superseded",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-edited",
      -    "type": "string"
      -  },
      -  {
      -    "const": "supersedes-reason-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "supersedes-reason-acknowledged",
      -    "type": "string"
      -  },
      -  {
      -    "const": "policy-ownership",
      -    "type": "string"
      -  },
      -  {
      -    "const": "policy-markers",
      -    "type": "string"
      -  },
      -  {
      -    "const": "kb-consistency",
      -    "type": "string"
      -  },
      -  {
      -    "const": "kb-consistency-unresolved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "evidence-floor",
      -    "type": "string"
      -  },
      -  {
      -    "const": "proof-contract-claims",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": "must-priority-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-traceability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-granularity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-coordinates-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "no-dangling-refs",
      +    "type": "string"
      +  },
      +  {
      +    "const": "source-relationship-parity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "branch-store-not-compiled",
      +    "type": "string"
      +  },
      +  {
      +    "const": "source-path-dangling",
      +    "type": "string"
      +  },
      +  {
      +    "const": "no-cycles",
      +    "type": "string"
      +  },
      +  {
      +    "const": "required-fields",
      +    "type": "string"
      +  },
      +  {
      +    "const": "deprecated-adr-no-successor",
      +    "type": "string"
      +  },
      +  {
      +    "const": "superseded-requirement-open",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-feasibility",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-feasibility-unknown",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-outcome-mismatch",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-claim-keys",
      +    "type": "string"
      +  },
      +  {
      +    "const": "numeric-string-value",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-key-arguments-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-contradictions",
      +    "type": "string"
      +  },
      +  {
      +    "const": "logic-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-safety",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-verifiability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "query-plan-safety",
      +    "type": "string"
      +  },
      +  {
      +    "const": "req-status-vocabulary",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-fact-shape",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-req-fact-pairing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "predicate-verifiability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-readiness",
      +    "type": "string"
      +  },
      +  {
      +    "const": "semantic-completeness",
      +    "type": "string"
      +  },
      +  {
      +    "const": "related-requirement-unmodeled",
      +    "type": "string"
      +  },
      +  {
      +    "const": "proof-contract-symbols",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-id-style",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-redundancy",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-implication",
      +    "type": "string"
      +  },
      +  {
      +    "const": "subject-key-identity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "subject-key-shape",
      +    "type": "string"
      +  },
      +  {
      +    "const": "ontology-quality",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-unapproved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-approval-self-attested",
      +    "type": "string"
      +  },
      +  {
      +    "const": "agent-requirement-unapproved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "requirement-rationale-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-owner-superseded",
      +    "type": "string"
      +  },
      +  {
      +    "const": "adr-unlinked",
      +    "type": "string"
      +  },
      +  {
      +    "const": "adr-proposed",
      +    "type": "string"
      +  },
      +  {
      +    "const": "predicate-schema-conformance",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-context-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-context-acknowledged",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-unreferenced",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-superseded",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-edited",
      +    "type": "string"
      +  },
      +  {
      +    "const": "supersedes-reason-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "supersedes-reason-acknowledged",
      +    "type": "string"
      +  },
      +  {
      +    "const": "policy-ownership",
      +    "type": "string"
      +  },
      +  {
      +    "const": "policy-markers",
      +    "type": "string"
      +  },
      +  {
      +    "const": "kb-consistency",
      +    "type": "string"
      +  },
      +  {
      +    "const": "kb-consistency-unresolved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "evidence-floor",
      +    "type": "string"
      +  },
      +  {
      +    "const": "proof-contract-claims",
      +    "type": "string"
      +  }
      +]
  2. Changed2 schema fields changedv0.1.6
    • changedInput schema / properties / rules / description
      Previous value: -"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, evidence-floor, proof-contract-claims. 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."New value: +"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, scenario-outcome-mismatch, 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, evidence-floor, proof-contract-claims. 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."
    • changedInput schema / properties / rules / items / anyOf
      Previous value: -[
      -  {
      -    "const": "must-priority-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-traceability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-granularity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "no-dangling-refs",
      -    "type": "string"
      -  },
      -  {
      -    "const": "source-relationship-parity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "branch-store-not-compiled",
      -    "type": "string"
      -  },
      -  {
      -    "const": "source-path-dangling",
      -    "type": "string"
      -  },
      -  {
      -    "const": "no-cycles",
      -    "type": "string"
      -  },
      -  {
      -    "const": "required-fields",
      -    "type": "string"
      -  },
      -  {
      -    "const": "deprecated-adr-no-successor",
      -    "type": "string"
      -  },
      -  {
      -    "const": "superseded-requirement-open",
      -    "type": "string"
      -  },
      -  {
      -    "const": "scenario-feasibility",
      -    "type": "string"
      -  },
      -  {
      -    "const": "scenario-feasibility-unknown",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-claim-keys",
      -    "type": "string"
      -  },
      -  {
      -    "const": "numeric-string-value",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-key-arguments-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-contradictions",
      -    "type": "string"
      -  },
      -  {
      -    "const": "logic-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-safety",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-verifiability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "query-plan-safety",
      -    "type": "string"
      -  },
      -  {
      -    "const": "req-status-vocabulary",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-fact-shape",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-req-fact-pairing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "predicate-verifiability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-readiness",
      -    "type": "string"
      -  },
      -  {
      -    "const": "semantic-completeness",
      -    "type": "string"
      -  },
      -  {
      -    "const": "related-requirement-unmodeled",
      -    "type": "string"
      -  },
      -  {
      -    "const": "proof-contract-symbols",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-id-style",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-redundancy",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-implication",
      -    "type": "string"
      -  },
      -  {
      -    "const": "subject-key-identity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "subject-key-shape",
      -    "type": "string"
      -  },
      -  {
      -    "const": "ontology-quality",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-unapproved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-approval-self-attested",
      -    "type": "string"
      -  },
      -  {
      -    "const": "agent-requirement-unapproved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "requirement-rationale-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-owner-superseded",
      -    "type": "string"
      -  },
      -  {
      -    "const": "adr-unlinked",
      -    "type": "string"
      -  },
      -  {
      -    "const": "adr-proposed",
      -    "type": "string"
      -  },
      -  {
      -    "const": "predicate-schema-conformance",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-context-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-context-acknowledged",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-unreferenced",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-superseded",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-edited",
      -    "type": "string"
      -  },
      -  {
      -    "const": "supersedes-reason-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "supersedes-reason-acknowledged",
      -    "type": "string"
      -  },
      -  {
      -    "const": "policy-ownership",
      -    "type": "string"
      -  },
      -  {
      -    "const": "policy-markers",
      -    "type": "string"
      -  },
      -  {
      -    "const": "kb-consistency",
      -    "type": "string"
      -  },
      -  {
      -    "const": "kb-consistency-unresolved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "evidence-floor",
      -    "type": "string"
      -  },
      -  {
      -    "const": "proof-contract-claims",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": "must-priority-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-traceability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-granularity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "no-dangling-refs",
      +    "type": "string"
      +  },
      +  {
      +    "const": "source-relationship-parity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "branch-store-not-compiled",
      +    "type": "string"
      +  },
      +  {
      +    "const": "source-path-dangling",
      +    "type": "string"
      +  },
      +  {
      +    "const": "no-cycles",
      +    "type": "string"
      +  },
      +  {
      +    "const": "required-fields",
      +    "type": "string"
      +  },
      +  {
      +    "const": "deprecated-adr-no-successor",
      +    "type": "string"
      +  },
      +  {
      +    "const": "superseded-requirement-open",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-feasibility",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-feasibility-unknown",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-outcome-mismatch",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-claim-keys",
      +    "type": "string"
      +  },
      +  {
      +    "const": "numeric-string-value",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-key-arguments-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-contradictions",
      +    "type": "string"
      +  },
      +  {
      +    "const": "logic-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-safety",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-verifiability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "query-plan-safety",
      +    "type": "string"
      +  },
      +  {
      +    "const": "req-status-vocabulary",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-fact-shape",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-req-fact-pairing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "predicate-verifiability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-readiness",
      +    "type": "string"
      +  },
      +  {
      +    "const": "semantic-completeness",
      +    "type": "string"
      +  },
      +  {
      +    "const": "related-requirement-unmodeled",
      +    "type": "string"
      +  },
      +  {
      +    "const": "proof-contract-symbols",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-id-style",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-redundancy",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-implication",
      +    "type": "string"
      +  },
      +  {
      +    "const": "subject-key-identity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "subject-key-shape",
      +    "type": "string"
      +  },
      +  {
      +    "const": "ontology-quality",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-unapproved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-approval-self-attested",
      +    "type": "string"
      +  },
      +  {
      +    "const": "agent-requirement-unapproved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "requirement-rationale-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-owner-superseded",
      +    "type": "string"
      +  },
      +  {
      +    "const": "adr-unlinked",
      +    "type": "string"
      +  },
      +  {
      +    "const": "adr-proposed",
      +    "type": "string"
      +  },
      +  {
      +    "const": "predicate-schema-conformance",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-context-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-context-acknowledged",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-unreferenced",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-superseded",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-edited",
      +    "type": "string"
      +  },
      +  {
      +    "const": "supersedes-reason-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "supersedes-reason-acknowledged",
      +    "type": "string"
      +  },
      +  {
      +    "const": "policy-ownership",
      +    "type": "string"
      +  },
      +  {
      +    "const": "policy-markers",
      +    "type": "string"
      +  },
      +  {
      +    "const": "kb-consistency",
      +    "type": "string"
      +  },
      +  {
      +    "const": "kb-consistency-unresolved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "evidence-floor",
      +    "type": "string"
      +  },
      +  {
      +    "const": "proof-contract-claims",
      +    "type": "string"
      +  }
      +]
  3. Changed2 schema fields changedv0.1.4
    • changedInput schema / properties / rules / description
      Previous value: -"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."New value: +"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, evidence-floor, proof-contract-claims. 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."
    • changedInput schema / properties / rules / items / anyOf
      Previous value: -[
      -  {
      -    "const": "must-priority-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-traceability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-granularity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "no-dangling-refs",
      -    "type": "string"
      -  },
      -  {
      -    "const": "source-relationship-parity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "branch-store-not-compiled",
      -    "type": "string"
      -  },
      -  {
      -    "const": "source-path-dangling",
      -    "type": "string"
      -  },
      -  {
      -    "const": "no-cycles",
      -    "type": "string"
      -  },
      -  {
      -    "const": "required-fields",
      -    "type": "string"
      -  },
      -  {
      -    "const": "deprecated-adr-no-successor",
      -    "type": "string"
      -  },
      -  {
      -    "const": "superseded-requirement-open",
      -    "type": "string"
      -  },
      -  {
      -    "const": "scenario-feasibility",
      -    "type": "string"
      -  },
      -  {
      -    "const": "scenario-feasibility-unknown",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-claim-keys",
      -    "type": "string"
      -  },
      -  {
      -    "const": "numeric-string-value",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-key-arguments-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-contradictions",
      -    "type": "string"
      -  },
      -  {
      -    "const": "logic-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-safety",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-verifiability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "query-plan-safety",
      -    "type": "string"
      -  },
      -  {
      -    "const": "req-status-vocabulary",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-fact-shape",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-req-fact-pairing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "predicate-verifiability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-readiness",
      -    "type": "string"
      -  },
      -  {
      -    "const": "semantic-completeness",
      -    "type": "string"
      -  },
      -  {
      -    "const": "related-requirement-unmodeled",
      -    "type": "string"
      -  },
      -  {
      -    "const": "proof-contract-symbols",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-id-style",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-redundancy",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-implication",
      -    "type": "string"
      -  },
      -  {
      -    "const": "subject-key-identity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "subject-key-shape",
      -    "type": "string"
      -  },
      -  {
      -    "const": "ontology-quality",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-unapproved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-approval-self-attested",
      -    "type": "string"
      -  },
      -  {
      -    "const": "agent-requirement-unapproved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "requirement-rationale-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-owner-superseded",
      -    "type": "string"
      -  },
      -  {
      -    "const": "adr-unlinked",
      -    "type": "string"
      -  },
      -  {
      -    "const": "adr-proposed",
      -    "type": "string"
      -  },
      -  {
      -    "const": "predicate-schema-conformance",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-context-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-context-acknowledged",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-unreferenced",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-superseded",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-edited",
      -    "type": "string"
      -  },
      -  {
      -    "const": "supersedes-reason-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "supersedes-reason-acknowledged",
      -    "type": "string"
      -  },
      -  {
      -    "const": "policy-ownership",
      -    "type": "string"
      -  },
      -  {
      -    "const": "policy-markers",
      -    "type": "string"
      -  },
      -  {
      -    "const": "kb-consistency",
      -    "type": "string"
      -  },
      -  {
      -    "const": "kb-consistency-unresolved",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": "must-priority-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-traceability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-granularity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "no-dangling-refs",
      +    "type": "string"
      +  },
      +  {
      +    "const": "source-relationship-parity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "branch-store-not-compiled",
      +    "type": "string"
      +  },
      +  {
      +    "const": "source-path-dangling",
      +    "type": "string"
      +  },
      +  {
      +    "const": "no-cycles",
      +    "type": "string"
      +  },
      +  {
      +    "const": "required-fields",
      +    "type": "string"
      +  },
      +  {
      +    "const": "deprecated-adr-no-successor",
      +    "type": "string"
      +  },
      +  {
      +    "const": "superseded-requirement-open",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-feasibility",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-feasibility-unknown",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-claim-keys",
      +    "type": "string"
      +  },
      +  {
      +    "const": "numeric-string-value",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-key-arguments-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-contradictions",
      +    "type": "string"
      +  },
      +  {
      +    "const": "logic-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-safety",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-verifiability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "query-plan-safety",
      +    "type": "string"
      +  },
      +  {
      +    "const": "req-status-vocabulary",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-fact-shape",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-req-fact-pairing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "predicate-verifiability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-readiness",
      +    "type": "string"
      +  },
      +  {
      +    "const": "semantic-completeness",
      +    "type": "string"
      +  },
      +  {
      +    "const": "related-requirement-unmodeled",
      +    "type": "string"
      +  },
      +  {
      +    "const": "proof-contract-symbols",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-id-style",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-redundancy",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-implication",
      +    "type": "string"
      +  },
      +  {
      +    "const": "subject-key-identity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "subject-key-shape",
      +    "type": "string"
      +  },
      +  {
      +    "const": "ontology-quality",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-unapproved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-approval-self-attested",
      +    "type": "string"
      +  },
      +  {
      +    "const": "agent-requirement-unapproved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "requirement-rationale-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-owner-superseded",
      +    "type": "string"
      +  },
      +  {
      +    "const": "adr-unlinked",
      +    "type": "string"
      +  },
      +  {
      +    "const": "adr-proposed",
      +    "type": "string"
      +  },
      +  {
      +    "const": "predicate-schema-conformance",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-context-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-context-acknowledged",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-unreferenced",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-superseded",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-edited",
      +    "type": "string"
      +  },
      +  {
      +    "const": "supersedes-reason-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "supersedes-reason-acknowledged",
      +    "type": "string"
      +  },
      +  {
      +    "const": "policy-ownership",
      +    "type": "string"
      +  },
      +  {
      +    "const": "policy-markers",
      +    "type": "string"
      +  },
      +  {
      +    "const": "kb-consistency",
      +    "type": "string"
      +  },
      +  {
      +    "const": "kb-consistency-unresolved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "evidence-floor",
      +    "type": "string"
      +  },
      +  {
      +    "const": "proof-contract-claims",
      +    "type": "string"
      +  }
      +]
  4. Changed2 schema fields changedv0.1.3
    • changedInput schema / properties / rules / description
      Previous value: -"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."New value: +"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."
    • changedInput schema / properties / rules / items / anyOf
      Previous value: -[
      -  {
      -    "const": "must-priority-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-traceability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-granularity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "no-dangling-refs",
      -    "type": "string"
      -  },
      -  {
      -    "const": "source-relationship-parity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "branch-store-not-compiled",
      -    "type": "string"
      -  },
      -  {
      -    "const": "source-path-dangling",
      -    "type": "string"
      -  },
      -  {
      -    "const": "no-cycles",
      -    "type": "string"
      -  },
      -  {
      -    "const": "required-fields",
      -    "type": "string"
      -  },
      -  {
      -    "const": "deprecated-adr-no-successor",
      -    "type": "string"
      -  },
      -  {
      -    "const": "superseded-requirement-open",
      -    "type": "string"
      -  },
      -  {
      -    "const": "scenario-feasibility",
      -    "type": "string"
      -  },
      -  {
      -    "const": "scenario-feasibility-unknown",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-claim-keys",
      -    "type": "string"
      -  },
      -  {
      -    "const": "numeric-string-value",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-key-arguments-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-contradictions",
      -    "type": "string"
      -  },
      -  {
      -    "const": "logic-coverage",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-safety",
      -    "type": "string"
      -  },
      -  {
      -    "const": "rule-verifiability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "query-plan-safety",
      -    "type": "string"
      -  },
      -  {
      -    "const": "req-status-vocabulary",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-fact-shape",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-req-fact-pairing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "predicate-verifiability",
      -    "type": "string"
      -  },
      -  {
      -    "const": "strict-readiness",
      -    "type": "string"
      -  },
      -  {
      -    "const": "semantic-completeness",
      -    "type": "string"
      -  },
      -  {
      -    "const": "related-requirement-unmodeled",
      -    "type": "string"
      -  },
      -  {
      -    "const": "proof-contract-symbols",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-id-style",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-redundancy",
      -    "type": "string"
      -  },
      -  {
      -    "const": "domain-implication",
      -    "type": "string"
      -  },
      -  {
      -    "const": "subject-key-identity",
      -    "type": "string"
      -  },
      -  {
      -    "const": "subject-key-shape",
      -    "type": "string"
      -  },
      -  {
      -    "const": "ontology-quality",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-unapproved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "exception-approval-self-attested",
      -    "type": "string"
      -  },
      -  {
      -    "const": "agent-requirement-unapproved",
      -    "type": "string"
      -  },
      -  {
      -    "const": "requirement-rationale-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "symbol-owner-superseded",
      -    "type": "string"
      -  },
      -  {
      -    "const": "adr-unlinked",
      -    "type": "string"
      -  },
      -  {
      -    "const": "adr-proposed",
      -    "type": "string"
      -  },
      -  {
      -    "const": "predicate-schema-conformance",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-context-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "entity-context-acknowledged",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-unreferenced",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-superseded",
      -    "type": "string"
      -  },
      -  {
      -    "const": "decision-firm-edited",
      -    "type": "string"
      -  },
      -  {
      -    "const": "supersedes-reason-missing",
      -    "type": "string"
      -  },
      -  {
      -    "const": "supersedes-reason-acknowledged",
      -    "type": "string"
      -  },
      -  {
      -    "const": "policy-ownership",
      -    "type": "string"
      -  },
      -  {
      -    "const": "policy-markers",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": "must-priority-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-traceability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-granularity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "no-dangling-refs",
      +    "type": "string"
      +  },
      +  {
      +    "const": "source-relationship-parity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "branch-store-not-compiled",
      +    "type": "string"
      +  },
      +  {
      +    "const": "source-path-dangling",
      +    "type": "string"
      +  },
      +  {
      +    "const": "no-cycles",
      +    "type": "string"
      +  },
      +  {
      +    "const": "required-fields",
      +    "type": "string"
      +  },
      +  {
      +    "const": "deprecated-adr-no-successor",
      +    "type": "string"
      +  },
      +  {
      +    "const": "superseded-requirement-open",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-feasibility",
      +    "type": "string"
      +  },
      +  {
      +    "const": "scenario-feasibility-unknown",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-claim-keys",
      +    "type": "string"
      +  },
      +  {
      +    "const": "numeric-string-value",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-key-arguments-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-contradictions",
      +    "type": "string"
      +  },
      +  {
      +    "const": "logic-coverage",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-safety",
      +    "type": "string"
      +  },
      +  {
      +    "const": "rule-verifiability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "query-plan-safety",
      +    "type": "string"
      +  },
      +  {
      +    "const": "req-status-vocabulary",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-fact-shape",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-req-fact-pairing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "predicate-verifiability",
      +    "type": "string"
      +  },
      +  {
      +    "const": "strict-readiness",
      +    "type": "string"
      +  },
      +  {
      +    "const": "semantic-completeness",
      +    "type": "string"
      +  },
      +  {
      +    "const": "related-requirement-unmodeled",
      +    "type": "string"
      +  },
      +  {
      +    "const": "proof-contract-symbols",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-id-style",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-redundancy",
      +    "type": "string"
      +  },
      +  {
      +    "const": "domain-implication",
      +    "type": "string"
      +  },
      +  {
      +    "const": "subject-key-identity",
      +    "type": "string"
      +  },
      +  {
      +    "const": "subject-key-shape",
      +    "type": "string"
      +  },
      +  {
      +    "const": "ontology-quality",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-unapproved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "exception-approval-self-attested",
      +    "type": "string"
      +  },
      +  {
      +    "const": "agent-requirement-unapproved",
      +    "type": "string"
      +  },
      +  {
      +    "const": "requirement-rationale-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "symbol-owner-superseded",
      +    "type": "string"
      +  },
      +  {
      +    "const": "adr-unlinked",
      +    "type": "string"
      +  },
      +  {
      +    "const": "adr-proposed",
      +    "type": "string"
      +  },
      +  {
      +    "const": "predicate-schema-conformance",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-context-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "entity-context-acknowledged",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-unreferenced",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-superseded",
      +    "type": "string"
      +  },
      +  {
      +    "const": "decision-firm-edited",
      +    "type": "string"
      +  },
      +  {
      +    "const": "supersedes-reason-missing",
      +    "type": "string"
      +  },
      +  {
      +    "const": "supersedes-reason-acknowledged",
      +    "type": "string"
      +  },
      +  {
      +    "const": "policy-ownership",
      +    "type": "string"
      +  },
      +  {
      +    "const": "policy-markers",
      +    "type": "string"
      +  },
      +  {
      +    "const": "kb-consistency",
      +    "type": "string"
      +  },
      +  {
      +    "const": "kb-consistency-unresolved",
      +    "type": "string"
      +  }
      +]
  5. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that by disclosing that checks never infer or apply actions from prose suggestions — a meaningful constraint given the tool emits migration-plan actions. It does not mention async execution or the non-blocking nature of advisory findings, which live only in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the action and outputs front-loaded; no filler. The second sentence is dense but each clause (read-only, no inference, no auto-apply) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with a 60-value rule enum, an output schema, and rich annotations, the description covers purpose, timing, and the key non-inference guarantee. Details like async job behavior, rule subsetting semantics, and impact diagnostics are fully specified in the schema, so their absence from the description is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (async, rules, staged, sourceFiles, workspaceRoot, maxDiagnostics, includeWorkingTreeDiff, includeImpactDiagnostics) is already documented in detail. The description adds no parameter-level meaning, which is the correct baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run KB validation rules') plus the concrete return payload (violations, quality diagnostics, typed kibi.migration-plan.v2 actions). It does not name any sibling (kb_find_gaps, kb_coverage, kb_prepare_impact_review) as a contrast, so differentiation still requires inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear timing guidance: 'Use before or after mutations and after source edits.' It does not name alternatives or exclusions, though the clause about never applying actions implicitly routes application to kb_apply_plan without saying so explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.