Kibi includes deterministic derived predicates for internal analysis and automation. These predicates are not exposed as a raw public inference surface.
transitively_implements(Symbol, Req)transitively_depends(Req1, Req2)impacted_by_change(Entity, Changed)affected_symbols(Req, Symbols)coverage_gap(Req, Reason)untested_symbols(Symbols)stale(Entity, MaxAgeDays)orphaned(Symbol)conflicting(Adr1, Adr2)deprecated_still_used(Adr, Symbols)current_adr(Id)superseded_by(OldId, NewId)adr_chain(AnyId, Chain)contradicting_reqs(ReqA, ReqB, Reason)
contradicting_reqs/3 uses strict requirement semantics only for current requirements and strict domain facts.
current_req/1excludes deprecated and superseded requirements.- A contradiction requires both requirements to:
constrainsthe samefact_kind=subjectfact (matched bysubject_key) in the strict lanerequires_propertyafact_kind=property_valuefact for that same subject in the strict lane
- Non-blocking lane:
observationandmetafacts are explicitly excluded from contradiction inference. They serve as non-blocking notes for bugs, workarounds, and historical context. - Conflict classes currently covered:
- exact-value conflicts like
eq pendingvseq granted - numeric range gaps like
lte 2vsgte 3 - polarity conflicts like
requirevsforbidon the same normalized tuple
- exact-value conflicts like
- Scope and validity windows only conflict when they intersect.
These predicates remain useful for product features, automation, and future internal services. Public MCP agents should use the curated public surface instead:
kb_searchkb_querykb_statuskb_find_gapskb_coveragekb_graphkb_upsertkb_deletekb_check
-
strict-fact-shape- checks only facts that already declare
fact_kind - ignores legacy prose facts without
fact_kind(migration-safe) - is intended for migration auditing and is disabled by default while older repos are being normalized
- can be opted into explicitly through CLI/MCP rule selection when a repo is ready to inspect or enforce strict fact shape
- checks only facts that already declare
-
domain-contradictions- checks for logical conflicts between requirements based on shared strict facts
- strict-lane only: does not promise contradiction detection over all facts; only those explicitly modeled as
subject+property_valueparticipation rules - is enabled by default for immediate value on normalized data
Bug records, incident notes, and workaround documentation should use observation or meta facts rather than strict fact modeling. Since observation and meta facts are excluded from contradiction inference, they are appropriate for non-blocking evidence.
Rule: Use observation or meta fact_kind for bug/workaround notes. Do NOT create a flag entity for bugs unless there is an actual runtime/config gate.