Cortex epistemic report
Type: agentic-system-analyses/types/agentic-system-epistemic-report.md
Source-and-claim boundary
The question is what Cortex acquires, produces, checks and licenses for later reliance, rather than whether its database deserves the name knowledge. Scope and exclusions: see boundary; source identity and evidence layers: see Source register. All new evidence below is SRC-1 at that pin, implementation unless marked doctrine/design. No target execution was performed. No observed run, production corpus, provider response or causal comparison is supplied. Consequently operation, summary fidelity, actual acceptance by a host and improved task performance remain unestablished. Provider weights and host reasoning are excluded, preventing claims about their internal epistemic processes. Repository evaluators are available source, not measured outcomes.
The following coverage distinguishes direct reads/searches in this job from supplied findings. It is a material-route account, not a complete file audit. No supplied runtime fact needs supersession; the doctor route and the stronger alert wording add coverage to that provisional baseline.
| Entry point or operation | SRC-1 source path | Coverage and records / remaining limit |
|---|---|---|
| CLI capture, direct capture, imports; pipeline bypass | src/cortex/cli/main.py, src/cortex/pipeline/importer.py, src/cortex/pipeline/orchestrator.py |
Supplied: RT-RTE-capture-pipeline, RT-RTE-direct-import. CLI dispatch signatures searched directly; importer bodies not independently reread. |
| Public MCP capture, classify, link, feedback, pipeline | src/cortex/transport/mcp/server.py |
Tool registrations searched; classify/pipeline bodies directly read; other entry behavior supplied by RT-RTE-capture-pipeline, RT-RTE-maintain-knowledge, RT-RTE-retrieve-context. |
| Classification, entity filtering, relationship proposal and rejection | src/cortex/services/llm.py, src/cortex/pipeline/normalize.py, src/cortex/pipeline/link.py |
Direct complete reads: EPI-RTE-metadata-generation, EPI-RTE-structure-check, EPI-RTE-metadata-admission. |
| Enrichment tier/staleness metadata and template application | src/cortex/pipeline/enrich.py, src/cortex/pipeline/orchestrator.py |
Supplied RT-RTE-capture-pipeline and RT-CLM-stage-resilience; not independently read. Supplied evidence supports metadata updates, not truth checking. Detailed enrichment criteria remain unassessed, preventing exhaustive authority coverage. |
| Fixed-rule inference and fixpoint diagnosis | src/cortex/pipeline/reason.py |
Direct complete read: EPI-RTE-rule-derivation, EPI-RTE-rule-retention, EPI-RTE-health-check. |
| Contradiction, pattern, gap, staleness and chain operations | src/cortex/pipeline/advanced_reason.py |
Direct complete read: EPI-RTE-state-diagnostics. Chain assembly follows existing causal edges; it does not independently identify causes. |
| Search/context/read, dossier and graph selection | src/cortex/retrieval/engine.py, src/cortex/retrieval/presenters.py, src/cortex/transport/mcp/server.py |
Supplied: RT-RTE-retrieve-context. Direct presenter synthesis/alert reads add EPI-RTE-period-synthesis and EPI-RTE-state-diagnostics. Dossier and engine bodies not independently reread. |
| Feedback and access promotion; weight helper APIs | src/cortex/retrieval/learner.py |
Complete direct read and caller search in src/, .github/, pyproject.toml: EPI-RTE-access-adaptation. Search finds no shipped calls to detect_miss, adjust_tiers or get_weights outside their definitions; update_weights is called by reset_weights only. No automatic ranking tuning established by these helpers. |
| Admin edit/delete/unlink/status/reason and safety | src/cortex/transport/mcp/server.py, src/cortex/db/store.py |
Direct handlers through unlink read; remainder supplied: RT-RTE-maintain-knowledge, RT-RTE-transport-control, RT-OBJ-store. Store method/call searches supplement supplied storage findings. |
| Doctor check/repair | src/cortex/cli/main.py |
Direct complete function reads: EPI-RTE-health-check, EPI-RTE-health-repair. FTS backing implementation searched, not independently read: actual FTS correctness not assessed. |
| REST/dashboard, backup/restore, install/release, embedding adapters | src/cortex/transport/api/server.py, src/cortex/dashboard/server.py, src/cortex/cli/backup.py, src/cortex/cli/install.py, src/cortex/services/embeddings.py |
Supplied findings: RT-RTE-transport-control, RT-RTE-install-release, RT-RTE-maintain-knowledge, component records below. Not independently reread; no deployment or weight-learning verdict. |
| Source evaluators and agent instructions | benchmarks/b3_contradiction/test_bench.py, benchmarks/b4_graph_intelligence/test_bench.py, benchmarks/b5_pattern_detection/test_bench.py, README.md, llms.txt |
Scoped direct searches: EPI-CLM-formal-intelligence, EPI-CLM-retrieval-learning. Test outcome assertions are not supplied results. Other tests, corpus and benchmark metrics not independently assessed; prevents a system-complete evaluation-quality conclusion. |
Claims considered: EPI-CLM-formal-intelligence, EPI-CLM-semantic-checks, EPI-CLM-retrieval-learning, plus the supplied resilience and consistency claims below. No universal claim that every stored assertion has been truth-validated is attributed to Cortex.
Epistemic-object inventory
| Object ID | Candidate truth-apt content or none | Claimed role | Evidence source and local anchor | Gap/limit |
|---|---|---|---|---|
| EPI-OBJ-document-text | Caller/imported assertions about decisions, fixes, lessons and other domains; particular truth-apt units depend on input | see record | SRC-1 src/cortex/db/store.py |
Imported, not produced; author/source warrant unknown |
| EPI-OBJ-summary | Claims compressing source text | see record | SRC-1 src/cortex/pipeline/normalize.py |
Internal summary, external summary and fallback differ; fidelity not guaranteed |
| EPI-OBJ-graph-assertions | Typed propositions, e.g. A causedBy B or A supersedes C | see record | SRC-1 src/cortex/pipeline/link.py, src/cortex/pipeline/reason.py |
Native asserted and inferred edges not separately warranted |
| EPI-OBJ-classification | Type/project/entity associations; confidence/tier are control metadata, not proofs | see record | SRC-1 src/cortex/services/llm.py, src/cortex/retrieval/learner.py |
Class membership can be truth-apt under an ontology; intended-use truth criteria unestablished |
| EPI-OBJ-diagnostic-result | Counts, dependency patterns; proposed systemic issue or documentation gap | see record | SRC-1 src/cortex/pipeline/advanced_reason.py, src/cortex/retrieval/presenters.py |
Structural observation versus explanatory extrapolation split in ledger |
| EPI-OBJ-period-narrative | Period counts or model-composed cross-document claims | see record | SRC-1 src/cortex/retrieval/presenters.py |
No actual model output supplied |
| RT-OBJ-inference-rules | Explicit formal assumptions about predicates | see record | SRC-1 src/cortex/pipeline/reason.py |
World truth of input edges not checked by closure |
| RT-CMP-llm-client, RT-CMP-sentence-transformer, RT-CMP-litellm-provider | Particular truth-apt content in weights/vectors not determinable | see records | SRC-1 src/cortex/services/llm.py, src/cortex/services/embeddings.py |
Distributed-parametric components; supplied records establish inference-only adapters, no exact version pin and model-resolution uncertainty, not absence of provider learning |
Authority-route ledger
The rows split checking, disposition, retention and use. Architectural status is assessed here; fields owned by supplied records are cited rather than redeclared. All implemented rows are static evidence, not observed operation. “No acceptance established” below concerns the named candidate and criterion, not an assertion that no external human could accept it.
| Route ID | Route function | Architectural status | Object/candidate ID | Content/update relation | Transition or check target | Evaluator/condition and domain | Activation and timing | Possible or observed result | Implemented force | Epistemic authority and scope | Operational authority | Behavioral-authority path | Evidence source and local anchor | Claim IDs | Mismatch marker | Gap/limit |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RT-RTE-capture-pipeline | content transformation | implemented | EPI-OBJ-document-text | truth-apt transformation: acquisition/import | Caller assertions enter retained service | see RT-RTE-capture-pipeline | see RT-RTE-capture-pipeline | see RT-RTE-capture-pipeline | see RT-RTE-capture-pipeline | Source warrant unknown; origin channel is not authentication | see RT-RTE-capture-pipeline | see RT-BAP-knowledge-delivery | SRC-1 src/cortex/pipeline/orchestrator.py |
none | none | Direct/import alternatives: see RT-RTE-direct-import |
| EPI-RTE-metadata-generation | content transformation | implemented | EPI-OBJ-summary; EPI-OBJ-classification; EPI-OBJ-graph-assertions | truth-apt transformation: indeterminate | Model interpretations of bounded input | Configured model; no supplied semantic comparison | When summary absent and model available | Summary/type/entity proposals or fallback | Candidate generation | Preservation versus new proposition cannot be settled without source/output pairs | Proposals proceed to structure checks | Normalizer → metadata; candidate then stored and served | SRC-1 src/cortex/services/llm.py |
none | none | Fallback title copy is non-ampliative reshaping; model branch may reshape, derive or conjecture |
| EPI-RTE-structure-check | check/evidence production | implemented | EPI-OBJ-classification; EPI-OBJ-graph-assertions | no content change | JSON/type/entity schema; relation endpoints, predicate, self-link, confidence | Parser and fixed predicates; structural domain only | After completion, before relationship writes | Pass/skip/fallback; see record | Enforcing for named structural gates | Well-formedness/existence only; confidence is not calibrated truth evidence | Allows conforming proposals to reach writes | LLMClient/LinkStage → filtered proposals → writer, immediate | SRC-1 src/cortex/services/llm.py, src/cortex/pipeline/link.py |
none | none | No reference-answer oracle or semantic verification established |
| EPI-RTE-metadata-admission | disposition/acceptance | implemented | EPI-OBJ-summary; EPI-OBJ-classification; EPI-OBJ-graph-assertions | no content change | Which proposals are written | Fixed software; caller classify bypasses internal model; see record | After structure checks, or explicit caller reclassification | Stored metadata/edges; invalid proposals skipped | Enforcing operational disposition | No evidence-consuming truth acceptance for intended knowledge use | Classifications/edges become available to retrieval and reasoning | Normalizer/LinkStage/classify → SQLite/Oxigraph → later service calls | SRC-1 src/cortex/pipeline/normalize.py, src/cortex/transport/mcp/server.py |
none | none | Admission is not epistemic acceptance; confidence 0.9 on classify is assigned |
| RT-RTE-capture-pipeline | retention | implemented | EPI-OBJ-document-text; EPI-OBJ-summary; EPI-OBJ-graph-assertions | no content change | Retain before and after stages | see RT-RTE-capture-pipeline | see RT-RTE-capture-pipeline | see RT-RTE-capture-pipeline | see RT-RTE-capture-pipeline | Persistence does not endorse assertions | see RT-RTE-capture-pipeline | see RT-BAP-knowledge-delivery | SRC-1 src/cortex/pipeline/orchestrator.py |
none | none | No observed operation |
| EPI-RTE-rule-derivation | content transformation | implemented | EPI-OBJ-graph-assertions | truth-apt transformation: entailed derivation | Symmetry, inverse and transitive closure within four rules | SPARQL patterns; formal graph domain under rule assumptions | Pipeline reason or explicit repair; see record | Missing triples constructed | Fixed query semantics | Conditional entailment only, not truth of premises or encoding | Constructed triples become candidates for graph addition | see RT-BAP-rule-execution | SRC-1 src/cortex/pipeline/reason.py |
EPI-CLM-formal-intelligence | none | No rule-specific source-truth check; concrete deduction in record |
| EPI-RTE-rule-retention | retention | implemented | EPI-OBJ-graph-assertions | no content change | Absent inferred triples become persistent edges | Existence check; not an independent evidence check | During each rule application | Graph additions and counts | Enforcing writes | No extra warrant beyond conditional derivation | Later graph queries and derivations can use inferred edges | see RT-BAP-rule-execution | SRC-1 src/cortex/pipeline/reason.py |
EPI-CLM-formal-intelligence | none | No dependency-based retraction established by additive reasoner |
| EPI-RTE-state-diagnostics | check/evidence production | implemented | EPI-OBJ-diagnostic-result | truth-apt transformation: entailed derivation | Counts/patterns in bounded current graph | Fixed structural predicates; listed objects/mentions only | reason/status request; dossier supplied in runtime | Superseded dependent, frequency/window, missing type, stale edge | Advisory | License limited to matching structural conditions | Warnings returned; do not themselves revise reliance or content | AdvancedReasoner/AlertPresenter → result/status → caller, advisory current request | SRC-1 src/cortex/pipeline/advanced_reason.py, src/cortex/retrieval/presenters.py |
EPI-CLM-semantic-checks | Semantic docstring overstates body | No semantic LLM contradiction comparison in inspected body; list caps prevent completeness |
| EPI-RTE-state-diagnostics | content transformation | implemented | EPI-OBJ-diagnostic-result | truth-apt transformation: ampliative conjecture | Repeated fixes → systemic issue; missing type → architecture/learning gap | Fixed heuristic, not independent explanatory test | After structural match | Possible systemic issue, or stronger alert label | Advisory | Non-entailment: repeated fixes can be unrelated; decisions may be documented elsewhere | Suggests review only; no automatic truth rejection | Diagnostics/status → caller prose, immediate; no enforced host uptake | SRC-1 src/cortex/pipeline/advanced_reason.py, src/cortex/retrieval/presenters.py |
EPI-CLM-formal-intelligence | Alert wording stronger than advanced result | No causal experiment validates explanatory inference |
| EPI-RTE-period-synthesis | content transformation | implemented | EPI-OBJ-period-narrative | truth-apt transformation: indeterminate | Model narrative from first 20 recent summaries | Configured model; no post-completion evidence check | Explicit synthesis request with nonempty recent set | Narrative response and bounded source list | Advisory | No semantic fidelity or acceptance license | Returned as service output, not automatically persisted as accepted synthesis | Presenter → MCP/CLI caller, advisory immediate response | SRC-1 src/cortex/retrieval/presenters.py |
none | none | Could reshape, derive or conjecture; source/output evidence needed to classify |
| EPI-RTE-period-synthesis | content transformation | implemented | EPI-OBJ-period-narrative | truth-apt transformation: entailed derivation | Fallback period count and type histogram | Deterministic counts over selected list | No available model or completion failure | Count narrative | Advisory | Correct only about selected bounded records and metadata | Returned as synthesis, no automatic capture | Presenter → requesting caller, current response | SRC-1 src/cortex/retrieval/presenters.py |
none | none | Not a complete claim about events outside bounded database listing |
| RT-RTE-retrieve-context | operational admission/selection/consumption | implemented | EPI-OBJ-document-text; EPI-OBJ-summary | no content change | Select and deliver retained assertions | see RT-RTE-retrieve-context | see RT-RTE-retrieve-context | see RT-RTE-retrieve-context | Ranking and informational delivery | Relevance/recency is not endorsement | see RT-RTE-retrieve-context | see RT-BAP-knowledge-delivery | SRC-1 src/cortex/retrieval/presenters.py |
none | none | Context reshapes projection non-ampliatively; host action unobserved |
| EPI-RTE-access-adaptation | behavior/policy adaptation | implemented | EPI-OBJ-classification | non-truth-apt policy/content update: access counters and tier | Frequency of reads or positive relevance signals | Counter threshold ≥10, not truth evaluator | After read/positive feedback | Counter increment, possible reflex tier | Enforcing metadata update | No truth license; relevance is not correctness | Changes tier surfaced by future briefings; no automatic weight tuning established | read/feedback → learner → stored tier → later briefing metadata | SRC-1 src/cortex/retrieval/learner.py |
EPI-CLM-retrieval-learning | none | Improved capacity and host response to tier not demonstrated |
| EPI-RTE-health-check | check/evidence production | implemented | RT-OBJ-store | no content change | FTS consistency and pending rule closure | Backing FTS check and four CONSTRUCT queries | Explicit doctor check | Status/warning, repair suggestion | Advisory | Index consistency/closure only, not content truth | Guides operator; does not automatically invoke repair | Doctor → terminal → operator, immediate advisory | SRC-1 src/cortex/cli/main.py, src/cortex/pipeline/reason.py |
none | none | Rule query errors counted as zero; fixpoint OK cannot certify error-free reasoning |
| EPI-RTE-health-repair | lineage/freshness/recovery | implemented | RT-OBJ-store | no content change | Index rebuild/checkpoint and invocation of additive reasoning | Operator request and stopped-server guard | Explicit doctor repair | Rebuilt index, inferred edges, WAL checkpoint | Enforcing on direct local path | Recovery consistency, no endorsement; new edge relation assessed separately | May make existing content retrievable and add formal consequences | Doctor → content index/graph → later search/graph consumers | SRC-1 src/cortex/cli/main.py |
none | none | No observed successful repair; default ten reasoning iterations is bounded |
| RT-RTE-maintain-knowledge | lineage/freshness/recovery | implemented | EPI-OBJ-document-text; EPI-OBJ-graph-assertions | no content change | Edits, unlink/delete, temporal snapshot and restore | see RT-RTE-maintain-knowledge | see RT-RTE-maintain-knowledge | see RT-RTE-maintain-knowledge | Caller-selected mutation | No semantic rejection criterion established | Explicitly changes retained content/edges; no automatic cascaded warrant withdrawal shown | Handler → stores → later retrieval; see RT-RTE-maintain-knowledge | SRC-1 src/cortex/transport/mcp/server.py |
none | none | Deleting an edge is not proof that all conclusions derived from it are withdrawn |
No route found within the inspected pipeline, presenters and maintenance handlers establishes lifecycle integration after evidence-consuming truth acceptance. Their graph linking is pre-acceptance organization, and formal derivation has only its conditional license. External human acceptance is not excluded. Uninspected relevant source prevents a system-complete negative.
System-claim versus route comparison
| Claim ID | Claimed operation or warrant | Claim source/anchor and evidence layer | Doctrine/design support | Implemented route IDs | Observed-run support | Causal support and design limits | Supported conclusion | Mismatch/unknown |
|---|---|---|---|---|---|---|---|---|
| EPI-CLM-formal-intelligence | see record | SRC-1 README.md, doctrine/design |
see record | EPI-RTE-rule-derivation, EPI-RTE-state-diagnostics, EPI-RTE-period-synthesis; retrieval see runtime | None supplied | Source benchmark assertions are not observations or interventions | Typed retention, structural inference and presentation implemented | “Knowledge”/“intelligence” do not independently warrant outputs |
| EPI-CLM-semantic-checks | see record | SRC-1 src/cortex/pipeline/advanced_reason.py, doctrine/design |
see record | EPI-RTE-state-diagnostics | None supplied | Structural fixture F1 does not measure semantic conflict detection | Structural dependency warning supported | Semantic LLM comparison declared but not implemented by inspected detect_contradictions body |
| EPI-CLM-retrieval-learning | see record | SRC-1 src/cortex/retrieval/learner.py, llms.txt, doctrine/design |
see record | EPI-RTE-access-adaptation | None supplied | Usage frequency has no independent correctness reference; no compared outcome | Persistent counters and promotion wired | Automatic weight tuning and retrieval improvement not established |
| RT-CLM-stage-resilience | see record | SRC-1 src/cortex/pipeline/orchestrator.py, doctrine/design |
see record | RT-RTE-capture-pipeline | None supplied | see record | Continuation not rejection/acceptance | Partial or complete labels cannot certify semantic quality |
| RT-CLM-store-consistency | see record | SRC-1 src/cortex/db/store.py, doctrine/design |
see record | RT-RTE-maintain-knowledge | None supplied | see record | Path-specific snapshots and compensation | Direct updates qualify universal lineage/consistency interpretation |
Bounded conclusion
Cortex admits externally supplied assertions before optional processing. Source warrant is unknown, not automatically preserved by a capture ID or channel. It retains and retrieves content and model/caller summaries through the routes in RT-RTE-capture-pipeline, RT-RTE-direct-import and RT-RTE-retrieve-context. Delivery is informational, not evidence of host reliance: see RT-BAP-knowledge-delivery.
Model classification and synthesis request truth-apt interpretations, but no input/output evidence distinguishes faithful compression from new claims. Their structural gates do not test source truth. Metadata and relationships nevertheless become operationally available to search and inference: see EPI-RTE-metadata-generation, EPI-RTE-structure-check, EPI-RTE-metadata-admission, EPI-RTE-period-synthesis. Neither accepted ampliative knowledge nor post-acceptance lifecycle integration is established for these routes.
Four fixed rules derive graph propositions under explicit assumptions. Their license is conditional entailment over encoded premises, not independent warrant for those premises, causal explanations or semantic consistency. Derived edges are retained without a separate truth decision; additive closure does not establish automatic withdrawal after premise edits. See EPI-RTE-rule-derivation, EPI-RTE-rule-retention. Structural diagnostics can warrant bounded pattern reports; “systemic issue” and “missing architecture” add conjectural interpretations that are not entailed by those patterns. Their force is advisory, and alerts are not automatic correction: see EPI-RTE-state-diagnostics.
Access feedback directly changes counters and tier metadata without a truth-apt theory update. It establishes a durable usage-to-metadata path, not calibrated correctness, automatic ranking optimization or improved future capacity. Doctor operations assess and repair indexes/closure, not propositions. Explicit edit, unlink, deletion and restore can change later reliance material but do not constitute a semantic acceptance protocol. See EPI-RTE-access-adaptation, EPI-RTE-health-check, EPI-RTE-health-repair, RT-RTE-maintain-knowledge.
The formal rules are localized and consumed, independently of whether they are criticized. The supplied RT-RTE-maintain-knowledge assesses those theory-builder conditions separately. No additional rule-criticism/revision loop is established here. Neither learning benefit, reflection, autonomous theory building nor exercised self-improvement follows from formal iteration or the access path. Distributed-parametric internals remain bounded by the separate RT-CMP-llm-client, RT-CMP-sentence-transformer and RT-CMP-litellm-provider evidence. No single system-wide epistemic verdict follows.
Shared records
Operative objects
EPI-OBJ-document-text
Label: Document text
Part of: RT-OBJ-store
Natural-language title/content in SQLite with graph identity. Caller/importer supplies assertions, which can be true or false over caller domains; actual candidate units are not determinable without a corpus. Producer/retention/read-back and unknown authorship are supplied by RT-RTE-capture-pipeline and RT-RTE-direct-import. This is the content part of the container, distinct from summaries and graph assertions. SRC-1 src/cortex/db/store.py; minimum storage passage supplied by RT-OBJ-store.
EPI-OBJ-summary
Label: Summary
Part of: RT-OBJ-store
Natural-language summary in SQLite and graph properties. Caller summary, model summary and fallback title share a field but not a common derivation guarantee. NormalizeStage and BriefingPresenter consume it; fallback uses title, not verification of a proposition. Distinct material part from full content: it can reach context without its supporting body. SRC-1 src/cortex/pipeline/normalize.py; see RT-RTE-retrieve-context.
EPI-OBJ-graph-assertions
Label: Graph assertions
Part of: RT-OBJ-store
Symbolic predicate/endpoint triples in Oxigraph, interpreted by graph queries and fixed inference. Imported/caller and model-proposed edges coexist with rule-derived edges. The predicate causedBy is an asserted causal relation, not an experiment. Distinct from the shipped rule objects RT-OBJ-inference-rules: these are their data and products. SRC-1 src/cortex/pipeline/link.py, src/cortex/pipeline/reason.py.
EPI-OBJ-classification
Label: Classification metadata
Part of: RT-OBJ-store
Symbolic type/project/entity associations, numerical confidence and tier/access configuration in SQLite and graph metadata. Consumption uses fixed comparisons and filters, not distributed model parameters. Parts share the retained metadata container but differ from document propositions; checks/admission versus access adaptation are split in route records. SRC-1 src/cortex/services/llm.py, src/cortex/retrieval/learner.py.
EPI-OBJ-diagnostic-result
Label: Diagnostic result
Natural-language messages plus symbolic type/severity/IDs/counts in returned Python dictionaries. Produced transiently by AdvancedReasoner or AlertPresenter, delivered through reason/status tools. No automatic persistence of these result dictionaries in inspected bodies. Distinct output part of RT-RTE-maintain-knowledge rather than that combined route itself; also overlaps retrieval presentation, so it is not a part of exactly one supplied record. SRC-1 src/cortex/pipeline/advanced_reason.py, src/cortex/retrieval/presenters.py.
EPI-OBJ-period-narrative
Label: Period narrative
Natural-language model prose or deterministic count summary, transient response string accompanied by symbolic themes and source descriptors. It is not automatically a stored object of type synthesis. Distinct output of synthesis within RT-RTE-retrieve-context; no supplied standalone object counterpart. SRC-1 src/cortex/retrieval/presenters.py.
Minimum passages for these material parts (SRC-1, implementation):
existing_summary = doc.get("summary", "") ---
src/cortex/pipeline/normalize.pygraph_updates = {"summary": classification["summary"]} ---
src/cortex/pipeline/normalize.py"confidence": float(data.get("confidence", 0.5)), ---
src/cortex/services/llm.py"narrative": narrative, ---
src/cortex/retrieval/presenters.py
Routes
EPI-RTE-metadata-generation
Label: Metadata generation
Part of: RT-RTE-capture-pipeline
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: Classification dictionary, or minimal fallback.
- Later read-back: Proposed summary and metadata can be written by normalization and reach later context calls.
- Delegated visibility: Classification model sees title and first 8000 content characters; relationship call sees new object title/type and first 4000 content characters plus up to 20 candidate titles/types/IDs; no worker delegation.
- Selection predicate: No existing summary; internal model requires availability.
- Invalidation or expiry: Rerun reuses existing summary rather than necessarily regenerating it.
- Activation or effect: Produces proposed interpretation, not an observed reliable semantic transformation.
- Evidence limits: No supplied classification response or expected-answer comparison.
The internal model proposes; Python requests type, summary, entities, properties and confidence. Stored caller summary skips this classification step, not necessarily relationship discovery. LLMClient.discover_relationships separately requests relations using new title/type, at most 4000 content characters and at most 20 existing object titles/types/IDs selected from recent candidates. Those titles do not supply full evidence for causal or contradiction assertions. Without a returned proposal and its source evidence, relationship meaning is indeterminate among reshaping, entailed derivation and conjecture; missing entailment evidence alone does not establish conjecture. Model processing is opaque; preservation, entailment and non-entailment of actual returned propositions are indeterminate. Fallback title copy is non-ampliative reshaping. This is generation within the supplied pipeline route, not another whole capture route. SRC-1 src/cortex/services/llm.py, src/cortex/pipeline/normalize.py.
prompt = CLASSIFY_PROMPT.format(title=title, content=content[:8000]) ---
src/cortex/services/llm.py"summary": title, ---
src/cortex/services/llm.pyPre-classified at capture time — skip LLM, use stored data
---
src/cortex/pipeline/normalize.py
EPI-RTE-structure-check
Label: Structure check
Part of: RT-RTE-capture-pipeline
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: Normalized dictionary or filtered relationships; errors trigger fallback/empty list.
- Later read-back: Only indirectly: admitted proposals can later be read.
- Delegated visibility: Same bounded model context as generation; validation itself is local code.
- Selection predicate: Parseable output; known types, entity categories/stopwords; relationship confidence >0.5, known predicate, different existing endpoints.
- Invalidation or expiry: Each completion/proposal is checked anew; no approval certificate.
- Activation or effect: Can reject malformed/low-confidence relationship proposals before graph writes.
- Evidence limits: Structural admissibility does not establish truth, semantic fidelity or confidence calibration.
Check targets are JSON syntax, known classification values and graph endpoint/predicate admissibility. Evaluators are json.loads, fixed Python conditions and SQLite existence queries. Domain is representation/graph structure, not whether an alleged root cause or contradiction is true. Python decides and vetoes, not a human per item. No answer oracle; mode is open capture. Classification invalid type becomes idea with capped confidence, while unsupported entity entries are filtered. Relationship parse failure returns no proposals; LinkStage can skip specific candidates. SRC-1 src/cortex/services/llm.py, src/cortex/pipeline/link.py.
if result["type"] not in valid_types: result["type"] = "idea" result["confidence"] = min(result["confidence"], 0.3) ---
src/cortex/services/llm.pyand r.get("confidence", 0) > 0.5 ---
src/cortex/services/llm.pyif from_id == to_id: continue ---
src/cortex/pipeline/link.pyif not self.store.content.get(from_id) or not self.store.content.get(to_id): ---
src/cortex/pipeline/link.py
EPI-RTE-metadata-admission
Label: Metadata admission
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: Normalized/linked/classified status and updates.
- Later read-back: SQLite summaries/types and graph metadata/edges feed later service calls and inference.
- Delegated visibility: No separate worker; model receives proposal context, caller reclassification is tool input.
- Selection predicate: Confidence >0 changes normalized type; summaries written regardless; structurally admitted edges; explicit classify accepts supplied nonempty fields.
- Invalidation or expiry: Edits/unlink/delete or later classification; automatic snapshots differ by path.
- Activation or effect: Writes metadata and relations without a semantic acceptance decision.
- Evidence limits: Status labels do not certify truth; graph write failures may be suppressed.
Distinct write/disposition function spanning RT-RTE-capture-pipeline and RT-RTE-maintain-knowledge; not a second declaration of either complete route. Caller or optional internal model proposes. Fixed software decides; per-content human veto is not wired here, though callers may be human. Open request mode, no reference-answer oracle. Guidance is classification prompt and tool instruction to read before reclassifying; read-first is not checked by the handler. Caller classify assigns confidence 0.9 rather than consuming accuracy evidence. Recovery is explicit edits/deletion and path-specific snapshots, not rollback on semantic rejection. Retained edges are organization before acceptance, not evidence of lifecycle integration. SRC-1 src/cortex/pipeline/normalize.py, src/cortex/pipeline/link.py, src/cortex/transport/mcp/server.py.
if classification["confidence"] > 0.0: updates["type"] = classification["type"] ---
src/cortex/pipeline/normalize.pyself.store.content.update(obj_id, **updates) ---
src/cortex/pipeline/normalize.pyupdates: dict[str, Any] = {"confidence": 0.9} ---
src/cortex/transport/mcp/server.pycreated.append(rel) ---
src/cortex/pipeline/link.py
EPI-RTE-rule-derivation
Label: Rule derivation
Part of: RT-RTE-maintain-knowledge
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: CONSTRUCT query result; rule counts reported by run.
- Later read-back: Derived triples can become premises and be read after retention; see rule-retention.
- Delegated visibility: inapplicable — local deterministic graph processing, no delegated model.
- Selection predicate: Four shipped query patterns with missing-edge filters.
- Invalidation or expiry: Rules static in code; edits to source/data can change results; no dependency lineage retraction in this method.
- Activation or effect: Derives conditional graph consequences, not checks of input truth.
- Evidence limits: Implementation deduction only; no observed graph or independently warranted premises.
This is the derivation part of ordinary/maintenance reasoning, distinct from retention below. A concrete symbolic input with edges A supersedes B and B supersedes C, A != C and no A supersedes C matches transitive_supersedes_1hop and constructs A supersedes C. This follows from the inspected query, conditional on the rule and exact encoded premises; no target execution is needed. Likewise causedBy inversion is not an independent causal discovery. Query failure returns zero, so zero inferred triples is not proof of successful closure. Owner is ReasonStage with fixed Python order, at most ten iterations by default. Rules propose formal consequences and software selects query matches; no answer oracle or per-triple human acceptance. Rule bodies are guidance, not revised products. For theory-builder conditions 1–4, addressability, persistence, learning, reflection and autonomy, see RT-RTE-maintain-knowledge: this part adds no criticism/revision mechanism. SRC-1 src/cortex/pipeline/reason.py.
CONSTRUCT {{ ?a cortex:supersedes ?c }} WHERE {{ ?a cortex:supersedes ?b . ?b cortex:supersedes ?c . FILTER(?a != ?c) FILTER NOT EXISTS {{ ?a cortex:supersedes ?c }} }} ---
src/cortex/pipeline/reason.pyfor iteration in range(max_iterations): ---
src/cortex/pipeline/reason.py
EPI-RTE-rule-retention
Label: Rule retention
Part of: RT-RTE-maintain-knowledge
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: Count of newly added graph triples.
- Later read-back: Retained Oxigraph edges feed graph queries and subsequent derivations across invocations.
- Delegated visibility: inapplicable — local backing-store mutation.
- Selection predicate: Constructed triple not already present.
- Invalidation or expiry: Explicit unlink/delete can remove edges; this additive method does not track premise-dependent withdrawal.
- Activation or effect: Direct graph additions, not truth acceptance or criticism.
- Evidence limits: No execution evidence or provenance chain distinguishing asserted from inferred edges in this method.
Owner ReasonStage._apply_rule admits formal query products after an existence check; software can veto duplicates, not semantically false premises. No human approval, answer oracle or independent evidence acceptance. Open graph maintenance guided by fixed rules; additions persist in graph, and explicit maintenance/recovery is separate. This retention part differs from both derivation and lifecycle integration after acceptance. SRC-1 src/cortex/pipeline/reason.py; behavioral force see RT-BAP-rule-execution.
if not existing: self.graph._store.add(quad) count += 1 ---
src/cortex/pipeline/reason.py
EPI-RTE-state-diagnostics
Label: State diagnostics
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: Lists of contradiction/pattern/gap/staleness findings or status alerts.
- Later read-back: inapplicable — these returned finding lists are not persisted by the inspected producer methods.
- Delegated visibility: Caller receives findings; no LLM invoked by detect_contradictions body.
- Selection predicate: Superseded node with dependents; ≥3 recent fixes per entity; type-presence gaps; stale dependency patterns.
- Invalidation or expiry: Computed anew on request over capped listings (advanced 1000; alerts 500).
- Activation or effect: Advisory reporting; no automatic withdrawal, correction or acceptance of challenged content.
- Evidence limits: Warnings may be incomplete and heuristic explanations exceed formal pattern evidence.
Distinct check/output functions spanning RT-RTE-maintain-knowledge and RT-RTE-retrieve-context. AdvancedReasoner.run_all returns results; cortex_reason exposes it, cortex_status returns AlertPresenter output. Code selects matches and names hypotheses; caller can ignore them. There is no answer oracle or obligatory human decision after findings. Domain is current graph bookkeeping, not semantic truth of whole documents. Structural contradiction means superseded yet depended upon, not P and not-P detection. propagate_staleness returns warnings; it does not mutate dependent objects.
The heuristic claim “possible systemic issue” is ampliative: three fixes about Redis can correct three independent mistakes rather than one systemic cause. Missing decision objects does not entail missing architecture documentation elsewhere. AlertPresenter strengthens the label to “Systemic issue” without adding evaluation. This counterexample qualifies the inference rather than erasing the factual count. Chain assembly follows causedBy/ledTo edges with visited/depth limits; it cannot validate causation. SRC-1 src/cortex/pipeline/advanced_reason.py, src/cortex/retrieval/presenters.py, src/cortex/transport/mcp/server.py.
findings.extend(self._structural_contradictions()) return findings ---
src/cortex/pipeline/advanced_reason.pyf"{window_days} days — possible systemic issue" ---
src/cortex/pipeline/advanced_reason.pyf"Systemic issue: {len(fix_ids)} fixes in 14 days " ---
src/cortex/retrieval/presenters.pystats["alerts"] = alerts ---
src/cortex/transport/mcp/server.py
EPI-RTE-period-synthesis
Label: Period synthesis
Part of: RT-RTE-retrieve-context
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: Themes, source descriptors and narrative string, or nothing_to_synthesize.
- Later read-back: inapplicable — this presenter returns a dictionary, not a persisted synthesis object.
- Delegated visibility: Internal completion sees title/type/summary of first 20 recent objects; response sources list first 30.
- Selection predicate: At most 500 listed project objects filtered by created_at cutoff; LLM available selects model branch.
- Invalidation or expiry: Recomputed per request; caller could capture separately but no automatic capture here.
- Activation or effect: Returns model prose or deterministic selected-set counts without post-generation acceptance.
- Evidence limits: No model output, fidelity comparison or host reliance trace; source list need not identify every counted object.
Explicit caller request triggers synthesis. Model proposes a narrative; successful completion is returned directly, exceptions choose fallback. No semantic veto or answer oracle. Mode is open query, not experiment. Prompt asks for a brief narrative, not corroboration against independent evidence. Retention/recovery inapplicable to transient result. Deterministic deduction: with selected recent objects of types fix, fix, lesson and no model, themes becomes fix:2, lesson:1; fallback says three objects captured plus those counts. This is entailed by selected metadata, not a novel lesson. The model alternative remains indeterminate without concrete source/output pairs. SRC-1 src/cortex/retrieval/presenters.py.
themes[t] = themes.get(t, 0) + 1 ---
src/cortex/retrieval/presenters.pyf"brief narrative (3-5 sentences):\n\n{summaries}" ---
src/cortex/retrieval/presenters.pylines = [f"Over the past period, {len(objects)} objects were captured."] ---
src/cortex/retrieval/presenters.py
EPI-RTE-access-adaptation
Label: Access adaptation
Part of: RT-RTE-retrieve-context
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: Read/feedback result and count, while access metadata persists.
- Later read-back: Counters/last-access config keys and changed tier survive; briefing returns tier (see runtime retrieval record).
- Delegated visibility: Caller relevance boolean is input, not a separate critic worker.
- Selection predicate: Read or positive feedback increments; threshold of ten accesses permits promotion.
- Invalidation or expiry: Counts accumulate; tier can later change by edits or explicit maintenance.
- Activation or effect: Trace-fed tier change is wired; later host behavior or better retrieval not observed.
- Evidence limits: No identified truth-apt improvement claim produced; no automatic trained parameters or ranking tuner established.
Caller supplies relevance, or read generates an implicit access event. Code decides threshold/promotion; no human per-item approval inside the write. The independent target would be retrieval usefulness, but access frequency alone does not test it. No expected-answer oracle or bounded experiment. Guidance is fixed promotion threshold; durable product is counters/time/tier, not a criticized theory. Record scope is automatic access path, not all helper APIs. Search in src/, .github/ and pyproject.toml finds only helper definitions for detect_miss, adjust_tiers and get_weights; update_weights has the reset helper call. Retrieval construction supplied by runtime uses defaults rather than loading these persisted weights. Thus get/set APIs do not establish an exercised or automatic ranking adaptation loop. SRC-1 src/cortex/retrieval/learner.py; closest container RT-RTE-retrieve-context.
if current + 1 >= 10: self._maybe_promote(obj_id) ---
src/cortex/retrieval/learner.pyself.store.content.update(obj_id, tier="reflex") ---
src/cortex/retrieval/learner.py:134-134return subsequent_read_id not in context_result_ids ---
src/cortex/retrieval/learner.py
EPI-RTE-health-check
Label: Health check
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: Terminal health messages and suggestions; missing stores abort.
- Later read-back: inapplicable — diagnostic results are printed, not retained by doctor_check.
- Delegated visibility: inapplicable — direct local checks, no model/delegation.
- Selection predicate: Explicit doctor check; missing stores, FTS report and pending rule counts; locked graph may skip.
- Invalidation or expiry: Checks rerun on request against current stores.
- Activation or effect: Reports warnings and suggests repair; no automatic repair invocation.
- Evidence limits: FTS helper body not independently assessed; zero pending can hide rule query errors.
New direct-CLI diagnostic omitted from the supplied runtime detail; related but distinct from RT-RTE-maintain-knowledge. Owner doctor_check calls content.fts_integrity_check and ReasonStage.check_fixpoint. The target/domain is index consistency and missing rule consequences. Neither check licenses truth of document content. Query failure in check_fixpoint assigns zero and continues, while ok is total_pending == 0; therefore all failing rules can still produce an OK closure result. Source-level countercase, not observed failure. Operator decides whether to repair; no answer oracle for knowledge admission. SRC-1 src/cortex/cli/main.py, src/cortex/pipeline/reason.py.
typer.echo(" Run
cortex doctor repairto rebuild.") ---src/cortex/cli/main.pyrule_counts[rule["name"]] = 0 continue ---
src/cortex/pipeline/reason.py"ok": total_pending == 0, ---
src/cortex/pipeline/reason.py
EPI-RTE-health-repair
Label: Health repair
- implementation conclusion status: wired
- operation conclusion status: uninspected
- Immediate return: Printed rebuild/inference/checkpoint results, or refusal if server detected running.
- Later read-back: Rebuilt index and new graph edges affect later retrieval/graph consumers.
- Delegated visibility: inapplicable — direct local code, no delegated worker.
- Selection predicate: Explicit doctor repair; process check, SQLite existence, optional graph existence.
- Invalidation or expiry: No semantic candidate expiry; backup/restore is a separate recovery mechanism.
- Activation or effect: Calls FTS rebuild, bounded ReasonStage.run and WAL checkpoint.
- Evidence limits: No exercise or rollback evidence; printed fixpoint label is stronger than a bounded loop guarantees.
New direct maintenance route related to, but not a duplicate of, RT-RTE-maintain-knowledge. Operator proposes repair, software may reject detected running server or missing SQLite; mode is open maintenance without per-triple approval or truth oracle. Guidance is fixed repair sequence. Index rebuild retains the same input assertions; reasoning adds conditional consequences as separately assessed above. No semantic truth acceptance or automatic criticism retention. Reasoner run defaults to ten iterations, while CLI prints “fixpoint” from returned iteration count without separately confirming closure. Recovery is not a semantic rejection gate. SRC-1 src/cortex/cli/main.py, src/cortex/pipeline/reason.py.
result = content.fts_rebuild() ---
src/cortex/cli/main.pyf"(fixpoint in {result['iterations']} iteration(s))" ---
src/cortex/cli/main.py
Claims
EPI-CLM-formal-intelligence
Label: Formal intelligence
No supplied claim counterpart: the supplied resilience/consistency claims concern different operations. Cortex's README describes capture, classification, relationship discovery, graph reasoning and serving intelligence. This warrants checking routes, not attributing infallibility or an acceptance protocol. SRC-1 README.md, doctrine/design.
Cortex captures knowledge objects (decisions, lessons, fixes, sessions, research, ideas), classifies them with an OWL-RL ontology, discovers relationships, reasons over the graph, and serves intelligence through hybrid retrieval. ---
README.md
The source benchmark tests are implementation evidence of evaluator design only. Scoped searches in SRC-1 benchmarks/b4_graph_intelligence/test_bench.py show fixture-node membership/order assertions for causal chains; these evaluate traversal against inserted edges, not whether real causes were correctly inferred. SRC-1 benchmarks/b5_pattern_detection/test_bench.py evaluates matching fixture-defined frequency/window/gap criteria. No results or independent component intervention supplied.
assert a_id in ids, "Root cause A must be in chain" ---
benchmarks/b4_graph_intelligence/test_bench.py
EPI-CLM-semantic-checks
Label: Semantic contradiction checks
No supplied standalone claim counterpart; related discrepancy already noted in RT-RTE-maintain-knowledge. The AdvancedReasoner module and method docstrings declare semantic LLM-compared conflict detection. Its inspected detect_contradictions body calls only structural checks. This is doctrine beyond implemented route coverage, not an access gap. SRC-1 src/cortex/pipeline/advanced_reason.py, doctrine/design versus implementation.
- Semantic contradictions (LLM-compared content) ---
src/cortex/pipeline/advanced_reason.py
The structural implementation passage is retained in EPI-RTE-state-diagnostics. A source benchmark asserts F1 for its selected contradiction fixtures; that assertion is neither a run nor evidence for unimplemented semantic comparison. SRC-1 benchmarks/b3_contradiction/test_bench.py, implementation evaluator design.
assert scores["f1"] == 1.0, ( ---
benchmarks/b3_contradiction/test_bench.py
EPI-CLM-retrieval-learning
Label: Retrieval learning
No supplied standalone claim counterpart; closest supplied mechanism is RT-RTE-retrieve-context. Learner module claims usage-based retrieval improvement and ranking-weight tuning; agent instructions label relevance feedback retrieval learning. Source implements counters/promotion and weight persistence helpers; callers searched in EPI-RTE-access-adaptation do not establish automatic tuning. Source alone establishes neither improved capacity nor actual task benefit. SRC-1 src/cortex/retrieval/learner.py, llms.txt, doctrine/design.
Learns from usage patterns to improve retrieval over time: ---
src/cortex/retrieval/learner.py
- Tunes ranking weights based on feedback ---
src/cortex/retrieval/learner.pyProvide explicit relevance feedback for retrieval learning. ---
llms.txt
Components
none declared in this member
Evidenced absences
none declared in this member
Behavioral-authority paths
none declared in this member