LLM-Wiki-v3 epistemic report

Type: agentic-system-analyses/types/agentic-system-epistemic-report.md

Source-and-claim boundary

The question is what licenses reliance on retained claims, and how checking, admission and retrieval affect that license. Scope and exclusions: see boundary. Evidence identities/layers: see Source register, SRC-1. No additional source or revision is introduced. All new findings below are implementation or doctrine/design; no target execution was performed. The tracked Ada page establishes a candidate artifact, not an observed execution of a producing or accepting route.

Coverage distinguishes direct inspection in this job from supplied findings. Each cited record owns its detailed evidence and limitations.

Entry point / operation SRC-1 source path Coverage / records Limit and prevented conclusion
CLI dispatch, validate, validate-all, hook src/wiki/cli/__init__.py, scripts/pre-commit, src/wiki/validate.py, Makefile Direct complete reads; EPI-RTE-schema-check Installed hook and actual successful commits unobserved
ingest and propose_pages src/wiki/extract.py, src/wiki/ingest/pipeline.py, src/wiki/ingest/hashing.py, AGENTS.md Direct complete reads; RT-RTE-source-ingest, new material parts below No model response/proposal history; semantic preservation unresolved
quote/check/escalation/dedupe src/wiki/ingest/spancheck.py, src/wiki/ingest/diff.py, src/wiki/ingest/pipeline.py Direct complete reads; EPI-RTE-span-check, EPI-RTE-proposal-selection No semantic truth adjudicator in these inspected checks
review/edit/reject/direct acceptance src/wiki/review.py, src/wiki/cli/__init__.py Direct complete reads; RT-RTE-page-review, new disposition/retention parts Human evidence use and correctness unobserved
direct curated seed scripts/seed_corpus.py Direct main read; supplied RT-RTE-curated-seed Individual source/page specs not audited; no seed-wide fidelity conclusion
rebuild, query, adapters, optional ranking src/wiki/retrieve/store.py, src/wiki/retrieve/query.py, src/wiki/retrieve/fusion.py Direct complete reads; internals/builders supplied by RT-RTE-index-query Optional model internals uninspected; no downstream agent answer path supplied
retrieval/components metrics and saved outputs src/wiki/eval/harness.py, src/wiki/eval/metrics.py, src/wiki/cli/__init__.py Direct complete reads; EPI-RTE-retrieval-measurement Saved baselines remain attributed reports; no causal or reproduced outcome
ingest metric src/wiki/eval/ingest_eval.py, src/wiki/cli/__init__.py Direct complete reads; EPI-RTE-ingest-measurement Missing raw bytes prevent corpus replay; subset selection limits mean
query bootstrap src/wiki/cli/__init__.py Direct complete read; RT-RTE-query-bootstrap, EPI-RTE-query-bootstrap No actual label review/merge evidence
namespace YAML, chunking, audit, component internals schema/, src/wiki/ingest/chunk.py, src/wiki/audit.py, src/wiki/retrieve/ Supplied boundary/runtime findings, not re-audited here No independent exhaustive contract/encoder audit or system-complete semantic negative
MCP, context compiler, autonomous eval admission, lint/supersede README.md, Makefile, src/wiki/cli/__init__.py Direct dispatch/stub comparison; supplied boundary exclusions Intended future paths are not an observed deployed loop

Knowledge/warrant claims: RT-CLM-provenance-policy, RT-CLM-history-policy, EPI-CLM-faithfulness-support, EPI-CLM-eval-gates, EPI-CLM-provenance-trust. No defect requiring supplied-member supersession was found: runtime's partial-enforcement and forcing-route qualifications survive direct inspection. This report adds evaluator scope, separate lifecycle functions and the no-marker metric countercase. Uninspected page specifications prevent a corpus-complete truth assessment, not completion of this bounded architectural account.

Epistemic-object inventory

Object ID Candidate truth-apt content or none Claimed role Evidence source ID and local anchor Gap/limit
EPI-OBJ-raw-source see EPI-OBJ-raw-source see EPI-OBJ-raw-source SRC-1, src/wiki/ingest/hashing.py see EPI-OBJ-raw-source
EPI-OBJ-page-body see EPI-OBJ-page-body see EPI-OBJ-page-body SRC-1, knowledge/entities/ada-lovelace.md see EPI-OBJ-page-body
EPI-OBJ-page-metadata see EPI-OBJ-page-metadata see EPI-OBJ-page-metadata SRC-1, src/wiki/ingest/pipeline.py see EPI-OBJ-page-metadata
EPI-OBJ-query-labels see EPI-OBJ-query-labels see EPI-OBJ-query-labels SRC-1, src/wiki/cli/__init__.py see EPI-OBJ-query-labels
EPI-OBJ-eval-results see EPI-OBJ-eval-results see EPI-OBJ-eval-results SRC-1, src/wiki/eval/harness.py see EPI-OBJ-eval-results

Opaque parametric components and instruction authority are separately inventoried by RT-CMP-haiku-extractor, RT-CMP-sonnet-extractor, RT-CMP-dense-embedding, RT-CMP-cross-encoder and RT-BAP-ingest-instructions. These supply parameters/version/endpoint and guidance limits; this job adds no claim about inaccessible weights. Derived index representations belong to RT-RTE-index-query, not a new accepted theory.

Authority-route ledger

The linked declarations own the fields indicated by “see”; architectural status is this overlay's assessment. No route below is classified as observed. Check production, disposition and retention are distinct rows; no accepted-claim lifecycle-integration route is established by storing links or rebuilding an index.

Route ID: EPI-RTE-raw-import Route function: content transformation Architectural status: implemented Object/candidate ID: see EPI-RTE-raw-import Content/update relation: see EPI-RTE-raw-import Transition or check target: see EPI-RTE-raw-import Evaluator/condition and domain: see EPI-RTE-raw-import Activation and timing: see EPI-RTE-raw-import Possible or observed result: see EPI-RTE-raw-import Implemented force: see EPI-RTE-raw-import Epistemic authority and scope: see EPI-RTE-raw-import Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-raw-import Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-raw-import Evidence source ID and local anchor: see EPI-RTE-raw-import Claim IDs or none: see EPI-RTE-raw-import Mismatch marker or none: see EPI-RTE-raw-import Gap/limit: see EPI-RTE-raw-import

Route ID: EPI-RTE-page-extraction Route function: content transformation Architectural status: implemented Object/candidate ID: see EPI-RTE-page-extraction Content/update relation: see EPI-RTE-page-extraction Transition or check target: see EPI-RTE-page-extraction Evaluator/condition and domain: see EPI-RTE-page-extraction Activation and timing: see EPI-RTE-page-extraction Possible or observed result: see EPI-RTE-page-extraction Implemented force: see EPI-RTE-page-extraction Epistemic authority and scope: see EPI-RTE-page-extraction Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-page-extraction Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-page-extraction Evidence source ID and local anchor: see EPI-RTE-page-extraction Claim IDs or none: see EPI-RTE-page-extraction Mismatch marker or none: see EPI-RTE-page-extraction Gap/limit: see EPI-RTE-page-extraction

Route ID: EPI-RTE-quote-location Route function: check/evidence production Architectural status: implemented Object/candidate ID: see EPI-RTE-quote-location Content/update relation: see EPI-RTE-quote-location Transition or check target: see EPI-RTE-quote-location Evaluator/condition and domain: see EPI-RTE-quote-location Activation and timing: see EPI-RTE-quote-location Possible or observed result: see EPI-RTE-quote-location Implemented force: see EPI-RTE-quote-location Epistemic authority and scope: see EPI-RTE-quote-location Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-quote-location Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-quote-location Evidence source ID and local anchor: see EPI-RTE-quote-location Claim IDs or none: see EPI-RTE-quote-location Mismatch marker or none: see EPI-RTE-quote-location Gap/limit: see EPI-RTE-quote-location

Route ID: EPI-RTE-schema-check Route function: check/evidence production Architectural status: implemented Object/candidate ID: see EPI-RTE-schema-check Content/update relation: see EPI-RTE-schema-check Transition or check target: see EPI-RTE-schema-check Evaluator/condition and domain: see EPI-RTE-schema-check Activation and timing: see EPI-RTE-schema-check Possible or observed result: see EPI-RTE-schema-check Implemented force: see EPI-RTE-schema-check Epistemic authority and scope: see EPI-RTE-schema-check Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-schema-check Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-schema-check Evidence source ID and local anchor: see EPI-RTE-schema-check Claim IDs or none: see EPI-RTE-schema-check Mismatch marker or none: see EPI-RTE-schema-check Gap/limit: see EPI-RTE-schema-check

Route ID: EPI-RTE-span-check Route function: check/evidence production Architectural status: implemented Object/candidate ID: see EPI-RTE-span-check Content/update relation: see EPI-RTE-span-check Transition or check target: see EPI-RTE-span-check Evaluator/condition and domain: see EPI-RTE-span-check Activation and timing: see EPI-RTE-span-check Possible or observed result: see EPI-RTE-span-check Implemented force: see EPI-RTE-span-check Epistemic authority and scope: see EPI-RTE-span-check Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-span-check Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-span-check Evidence source ID and local anchor: see EPI-RTE-span-check Claim IDs or none: see EPI-RTE-span-check Mismatch marker or none: see EPI-RTE-span-check Gap/limit: see EPI-RTE-span-check

Route ID: EPI-RTE-proposal-selection Route function: disposition/acceptance Architectural status: implemented Object/candidate ID: see EPI-RTE-proposal-selection Content/update relation: see EPI-RTE-proposal-selection Transition or check target: see EPI-RTE-proposal-selection Evaluator/condition and domain: see EPI-RTE-proposal-selection Activation and timing: see EPI-RTE-proposal-selection Possible or observed result: see EPI-RTE-proposal-selection Implemented force: see EPI-RTE-proposal-selection Epistemic authority and scope: see EPI-RTE-proposal-selection Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-proposal-selection Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-proposal-selection Evidence source ID and local anchor: see EPI-RTE-proposal-selection Claim IDs or none: see EPI-RTE-proposal-selection Mismatch marker or none: see EPI-RTE-proposal-selection Gap/limit: see EPI-RTE-proposal-selection

Route ID: EPI-RTE-pending-retention Route function: retention Architectural status: implemented Object/candidate ID: see EPI-RTE-pending-retention Content/update relation: see EPI-RTE-pending-retention Transition or check target: see EPI-RTE-pending-retention Evaluator/condition and domain: see EPI-RTE-pending-retention Activation and timing: see EPI-RTE-pending-retention Possible or observed result: see EPI-RTE-pending-retention Implemented force: see EPI-RTE-pending-retention Epistemic authority and scope: see EPI-RTE-pending-retention Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-pending-retention Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-pending-retention Evidence source ID and local anchor: see EPI-RTE-pending-retention Claim IDs or none: see EPI-RTE-pending-retention Mismatch marker or none: see EPI-RTE-pending-retention Gap/limit: see EPI-RTE-pending-retention

Route ID: EPI-RTE-review-disposition Route function: disposition/acceptance Architectural status: implemented Object/candidate ID: see EPI-RTE-review-disposition Content/update relation: see EPI-RTE-review-disposition Transition or check target: see EPI-RTE-review-disposition Evaluator/condition and domain: see EPI-RTE-review-disposition Activation and timing: see EPI-RTE-review-disposition Possible or observed result: see EPI-RTE-review-disposition Implemented force: see EPI-RTE-review-disposition Epistemic authority and scope: see EPI-RTE-review-disposition Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-review-disposition Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-review-disposition Evidence source ID and local anchor: see EPI-RTE-review-disposition Claim IDs or none: see EPI-RTE-review-disposition Mismatch marker or none: see EPI-RTE-review-disposition Gap/limit: see EPI-RTE-review-disposition

Route ID: EPI-RTE-knowledge-retention Route function: retention Architectural status: implemented Object/candidate ID: see EPI-RTE-knowledge-retention Content/update relation: see EPI-RTE-knowledge-retention Transition or check target: see EPI-RTE-knowledge-retention Evaluator/condition and domain: see EPI-RTE-knowledge-retention Activation and timing: see EPI-RTE-knowledge-retention Possible or observed result: see EPI-RTE-knowledge-retention Implemented force: see EPI-RTE-knowledge-retention Epistemic authority and scope: see EPI-RTE-knowledge-retention Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-knowledge-retention Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-knowledge-retention Evidence source ID and local anchor: see EPI-RTE-knowledge-retention Claim IDs or none: see EPI-RTE-knowledge-retention Mismatch marker or none: see EPI-RTE-knowledge-retention Gap/limit: see EPI-RTE-knowledge-retention

Route ID: EPI-RTE-query-selection Route function: operational admission/selection/consumption Architectural status: implemented Object/candidate ID: see EPI-RTE-query-selection Content/update relation: see EPI-RTE-query-selection Transition or check target: see EPI-RTE-query-selection Evaluator/condition and domain: see EPI-RTE-query-selection Activation and timing: see EPI-RTE-query-selection Possible or observed result: see EPI-RTE-query-selection Implemented force: see EPI-RTE-query-selection Epistemic authority and scope: see EPI-RTE-query-selection Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-query-selection Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-query-selection Evidence source ID and local anchor: see EPI-RTE-query-selection Claim IDs or none: see EPI-RTE-query-selection Mismatch marker or none: see EPI-RTE-query-selection Gap/limit: see EPI-RTE-query-selection

Route ID: EPI-RTE-ingest-measurement Route function: check/evidence production Architectural status: implemented Object/candidate ID: see EPI-RTE-ingest-measurement Content/update relation: see EPI-RTE-ingest-measurement Transition or check target: see EPI-RTE-ingest-measurement Evaluator/condition and domain: see EPI-RTE-ingest-measurement Activation and timing: see EPI-RTE-ingest-measurement Possible or observed result: see EPI-RTE-ingest-measurement Implemented force: see EPI-RTE-ingest-measurement Epistemic authority and scope: see EPI-RTE-ingest-measurement Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-ingest-measurement Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-ingest-measurement Evidence source ID and local anchor: see EPI-RTE-ingest-measurement Claim IDs or none: see EPI-RTE-ingest-measurement Mismatch marker or none: see EPI-RTE-ingest-measurement Gap/limit: see EPI-RTE-ingest-measurement

Route ID: EPI-RTE-retrieval-measurement Route function: check/evidence production Architectural status: implemented Object/candidate ID: see EPI-RTE-retrieval-measurement Content/update relation: see EPI-RTE-retrieval-measurement Transition or check target: see EPI-RTE-retrieval-measurement Evaluator/condition and domain: see EPI-RTE-retrieval-measurement Activation and timing: see EPI-RTE-retrieval-measurement Possible or observed result: see EPI-RTE-retrieval-measurement Implemented force: see EPI-RTE-retrieval-measurement Epistemic authority and scope: see EPI-RTE-retrieval-measurement Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-retrieval-measurement Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-retrieval-measurement Evidence source ID and local anchor: see EPI-RTE-retrieval-measurement Claim IDs or none: see EPI-RTE-retrieval-measurement Mismatch marker or none: see EPI-RTE-retrieval-measurement Gap/limit: see EPI-RTE-retrieval-measurement

Route ID: EPI-RTE-query-bootstrap Route function: content transformation Architectural status: implemented Object/candidate ID: see EPI-RTE-query-bootstrap Content/update relation: see EPI-RTE-query-bootstrap Transition or check target: see EPI-RTE-query-bootstrap Evaluator/condition and domain: see EPI-RTE-query-bootstrap Activation and timing: see EPI-RTE-query-bootstrap Possible or observed result: see EPI-RTE-query-bootstrap Implemented force: see EPI-RTE-query-bootstrap Epistemic authority and scope: see EPI-RTE-query-bootstrap Operational authority: behavior permitted, blocked, or changed: see EPI-RTE-query-bootstrap Behavioral-authority path: consumer, channel, force, horizon: see EPI-RTE-query-bootstrap Evidence source ID and local anchor: see EPI-RTE-query-bootstrap Claim IDs or none: see EPI-RTE-query-bootstrap Mismatch marker or none: see EPI-RTE-query-bootstrap Gap/limit: see EPI-RTE-query-bootstrap

Route ID: RT-RTE-curated-seed Route function: retention Architectural status: implemented Object/candidate ID: see EPI-OBJ-page-body and EPI-OBJ-page-metadata Content/update relation: no content change Transition or check target: see RT-RTE-curated-seed Evaluator/condition and domain: see RT-RTE-curated-seed and shared lexical/structural check records Activation and timing: see RT-RTE-curated-seed Possible or observed result: see RT-RTE-curated-seed Implemented force: see RT-RTE-curated-seed Epistemic authority and scope: see RT-RTE-curated-seed Operational authority: behavior permitted, blocked, or changed: see RT-RTE-curated-seed Behavioral-authority path: consumer, channel, force, horizon: see RT-RTE-curated-seed Evidence source ID and local anchor: see RT-RTE-curated-seed Claim IDs or none: none Mismatch marker or none: none Gap/limit: see RT-RTE-curated-seed

System-claim versus route comparison

Claim ID Claimed operation or warrant Claim source ID/anchor and evidence layer Doctrine/design support Implemented route IDs Observed-run support Causal support and design limits Supported conclusion Mismatch/unknown
RT-CLM-provenance-policy see claim see claim see claim EPI-RTE-page-extraction, EPI-RTE-quote-location, EPI-RTE-span-check, EPI-RTE-schema-check see records see records see records see records
RT-CLM-history-policy see claim see claim see claim EPI-RTE-knowledge-retention, EPI-RTE-query-selection see records see records see records see records
EPI-CLM-faithfulness-support see claim see claim see claim EPI-RTE-ingest-measurement, EPI-RTE-span-check see records see records see records see claim
EPI-CLM-eval-gates see claim see claim see claim EPI-RTE-retrieval-measurement, EPI-RTE-review-disposition see records see records see records see claim
EPI-CLM-provenance-trust see claim see claim see claim EPI-RTE-raw-import, EPI-RTE-quote-location, EPI-RTE-query-selection see records see records see records see claim

Bounded conclusion

The inspected architecture acquires source text with unknown external warrant, requests source-faithful candidate pages, checks localized structural/lexical conditions and retains eligible candidates for review. Those functions do not establish the truth or semantic entailment of every assertion. Extraction's semantic relation remains indeterminate; requested non-ampliative extraction is not evidence that it occurred, and no generated non-entailment witness establishes produced conjecture. See EPI-RTE-raw-import, EPI-RTE-page-extraction, EPI-RTE-quote-location, EPI-RTE-span-check and EPI-RTE-schema-check.

Staging disposition, human review, seed writing and retained-store availability have different authority. Checks enforce eligibility for specific writes; the human CLI can veto or edit a file, but evidence-consuming truth acceptance with named criterion, intended use and scope is not established. Consequently neither typed links nor index rebuilds are classified here as lifecycle integration of accepted knowledge. Rejection removes a pending file, not raw evidence; same-ID replacement and stale retrieval constrain withdrawal/history claims. See EPI-RTE-proposal-selection, EPI-RTE-pending-retention, EPI-RTE-review-disposition, EPI-RTE-knowledge-retention, RT-RTE-curated-seed and EPI-RTE-query-selection.

The supported deterministic derivations are numerical measurements from declared input conventions, not new domain explanations. Search reshapes/indexes existing content and ranks identifiers; its source-ID output is less lineage detail than the Markdown store. Measurements license lexical-pass and dataset-label agreement claims only. Candidate-query generation can change later evaluation labels without independent semantic acceptance, including a caller-selected active-dataset path. No inspected automatic result consumer promotes a product change, revises extraction guidance, trains weights or turns metrics into truth endorsement. These are scoped consumer findings, not claims about provider learning or all manual development. See EPI-RTE-query-selection, EPI-RTE-ingest-measurement, EPI-RTE-retrieval-measurement and EPI-RTE-query-bootstrap.

Validation-triggered escalation changes the current extraction choice without a retained policy update; scored variants alone establish no content-directed theory criticism. Improved future capacity, reflective self-representation, autonomous truth acceptance and exercised self-improvement are independently unestablished on these routes, rather than one inferred system-wide negative. Parameter opacity neither establishes nor refutes internal theory processing. No observed-run or causal evidence closes the later-use and benefit links. See EPI-RTE-proposal-selection, RT-RTE-eval-report and the separately scoped component records cited in the inventory.

Shared records

Operative objects

EPI-OBJ-raw-source

Label: Raw source documents

Candidate truth-apt content: External propositions over the input document's domain. Claimed role: Source evidence bytes. Source-native raw//source plus meta.json; natural-language document bytes on filesystem, symbolic hash/origin metadata. Distinct from model parameters and page propositions; no supplied operative-object counterpart. Closest container is RT-RTE-source-ingest. Hash names content, not warrant. Quote support and source credibility remain separate.

Evidence: SRC-1, src/wiki/ingest/hashing.py; implementation / candidate-artifact evidence as applicable. Gap/limit: External truth and actual stored raw bytes unavailable.

(raw_dir / stored_name).write_bytes(data) --- src/wiki/ingest/hashing.py

EPI-OBJ-page-body

Label: Proposed and retained page body

Candidate truth-apt content: Historical/domain assertions. Claimed role: Source-attributed candidate claims. Source-native RawExtractedPage.body / PageRecord.body; natural-language Markdown on pending/knowledge files. Distinct operative part from typed metadata. Candidate instance states Ada Lovelace was a nineteenth-century English mathematician, among other claims; citations alone do not establish their truth. Closest containers are RT-RTE-source-ingest and RT-RTE-page-review; this object spans proposal and retained phases rather than duplicating either route.

Evidence: SRC-1, knowledge/entities/ada-lovelace.md; implementation / candidate-artifact evidence as applicable. Gap/limit: Artifact provenance does not prove execution/acceptance.

Ada Lovelace was a nineteenth-century English mathematician. [^src:1] --- knowledge/entities/ada-lovelace.md

EPI-OBJ-page-metadata

Label: Page fields, sources and relations

Candidate truth-apt content: Definitions/relations plus lineage assertions. Claimed role: Typing, lineage and selection. Source-native fields/frontmatter/sources: symbolic IDs, source offsets, timestamps, supersession links and typed edges in YAML on files, plus natural-language definition/aliases used as search text. Split from body because checks and consumers differ; schema validates shapes while graph/loaders consume metadata operationally. No supplied object counterpart; overlaps the same multi-route containers as page-body. Content of generated definitions/relations is unobserved.

Evidence: SRC-1, src/wiki/ingest/pipeline.py; implementation / candidate-artifact evidence as applicable. Gap/limit: Lexical body checks do not check every prose field.

"superseded_by": None, "supersedes": fields.pop("supersedes", []), "related": fields.pop("related", []), --- src/wiki/ingest/pipeline.py

EPI-OBJ-query-labels

Label: Queries and expected page IDs

Candidate truth-apt content: Candidate relevance assertions. Claimed role: Evaluation reference answers. Source-native query / expected_page_ids / query_type in JSONL. Query text is natural-language request (not necessarily truth-apt); expected-ID association is symbolic relevance assertion consumed as binary oracle. Filesystem active or bootstrap dataset. No supplied object counterpart; spans RT-RTE-query-bootstrap and RT-RTE-eval-report, so not a part of exactly one container.

Evidence: SRC-1, src/wiki/cli/__init__.py; implementation / candidate-artifact evidence as applicable. Gap/limit: Model-generated labels not independently verified.

if line: fh.write(_json.dumps({"query": line, "expected_page_ids": [path.stem], "query_type": "lookup"}) + "\n") n += 1 --- src/wiki/cli/__init__.py

EPI-OBJ-eval-results

Label: Evaluation metrics and reports

Part of: RT-RTE-eval-report

The object is the material measurement output of that route, hence its parent is a route rather than an object.

Candidate truth-apt content: Bounded numerical measurement claims. Claimed role: Operator assessment. Source-native result / overall / by_type / per_query; symbolic numerical summaries and natural-language Markdown rendering on baseline JSON/Markdown; ingest measurement only stdout. No supplied operative-object counterpart; material measurement output of RT-RTE-eval-report, not a second route.

Evidence: SRC-1, src/wiki/eval/harness.py; implementation / candidate-artifact evidence as applicable. Gap/limit: No automatic admission or causal license.

"n": len(dataset), "overall": aggregate(per_query), --- src/wiki/eval/harness.py

Routes

EPI-RTE-raw-import

Label: Raw source import

Part of: RT-RTE-source-ingest

This is the material content transformation function within the supplied container, not a replacement for that container.

Object/candidate ID: EPI-OBJ-raw-source

Content/update relation: truth-apt transformation: acquisition/import

Transition or check target: External document bytes enter the raw store

Evaluator/condition and domain: SHA-256 addresses bytes; no source-truth evaluator

Activation and timing: Operator ingest, before extraction

Possible or observed result: Source bytes plus origin/hash sidecar

Implemented force: Enforcing storage identity, not endorsement

Epistemic authority and scope: Source warrant unknown; byte retention preserves an evidence reference, not its truth

Operational authority: behavior permitted, blocked, or changed: Makes raw text available for extraction and lexical checking

Behavioral-authority path: consumer, channel, force, horizon: Pipeline and checker; file read; permissive; later ingests/evaluations

Claim IDs or none: none

Mismatch marker or none: none

Gap/limit: UTF-8 decoding can fail; loader does not rehash retained bytes.

Evidence source ID and local anchor: SRC-1, src/wiki/ingest/hashing.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Source ID and raw directory
  • Later read-back: Stored bytes are reloaded by pipeline and ingest evaluation
  • Delegated visibility: Selected text later reaches extractor; raw writer makes no delegation
  • Selection predicate: Operator-selected file; existing meta.json suppresses a rewrite
  • Invalidation or expiry: No expiry; existing hash directory reused
  • Activation or effect: Raw persistence wired; use unobserved
  • Evidence limits: UTF-8 decoding can fail; loader does not rehash retained bytes.

data = source_path.read_bytes() sha = sha256_hex(data) --- src/wiki/ingest/hashing.py

EPI-RTE-page-extraction

Label: Source-conditioned page proposal

Part of: RT-RTE-source-ingest

This is the material content transformation function within the supplied container, not a replacement for that container. The model proposes; Python advances and can reject. Open document extraction has no expected-answer oracle. Prompt forbids outside knowledge and requests citations. Static instructions are guidance, not a formulated content-directed criticism loop. Provider internals are opaque; parameter/fixity limits remain in RT-CMP-haiku-extractor and RT-CMP-sonnet-extractor.

Object/candidate ID: EPI-OBJ-page-body; EPI-OBJ-page-metadata

Content/update relation: truth-apt transformation: indeterminate

Transition or check target: Source chunk to proposed claims, definitions, edges and quotes

Evaluator/condition and domain: Anthropic generation under root instructions; no independent semantic judge

Activation and timing: Each chunk and, after failed checks, alternate extractor

Possible or observed result: RawExtractedPage values

Implemented force: Advisory proposal, not retained-store admission

Epistemic authority and scope: Requested faithful extraction; whether each generated statement preserves source meaning is not determinable without outputs and semantic comparison

Operational authority: behavior permitted, blocked, or changed: Supplies candidates to construction and checks

Behavioral-authority path: consumer, channel, force, horizon: Pipeline via propose_pages tool payload; permissive; current chunk

Claim IDs or none: RT-CLM-provenance-policy

Mismatch marker or none: Requested fidelity does not establish reliable semantic preservation

Gap/limit: Import of document is acquisition; generation may reshape or introduce unsupported propositions. No non-entailment witness for a generated candidate is supplied, so ampliative conjecture is not established.

Evidence source ID and local anchor: SRC-1, src/wiki/extract.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Structured proposal list with usage
  • Later read-back: Valid descendants may persist in pending and knowledge; no extraction transcript retained here
  • Delegated visibility: Source chunk, source ID/offset, root instructions and tool schema; not existing corpus
  • Selection predicate: First matching propose_pages tool block
  • Invalidation or expiry: Next attempt can replace current attempt; pending same-ID writes can overwrite
  • Activation or effect: Proposal delivery wired; compliance and activation unobserved
  • Evidence limits: Import of document is acquisition; generation may reshape or introduce unsupported propositions. No non-entailment witness for a generated candidate is supplied, so ampliative conjecture is not established.

EPI-RTE-quote-location

Label: Quote location and lineage construction

Part of: RT-RTE-source-ingest

This is the material check/evidence production function within the supplied container, not a replacement for that container.

Object/candidate ID: EPI-OBJ-page-metadata

Content/update relation: no content change

Transition or check target: Each proposed quote against complete decoded source text

Evaluator/condition and domain: Exact substring, else rapidfuzz partial alignment at minimum 85

Activation and timing: Before schema and marked-claim checks

Possible or observed result: Offsets and score, or issue and zero span

Implemented force: Enforcing input to page validity

Epistemic authority and scope: Locates matching text only; fuzzy match is not exact quotation and neither establishes source truth or claim support

Operational authority: behavior permitted, blocked, or changed: Unlocated quote makes candidate invalid; offsets become retained source references

Behavioral-authority path: consumer, channel, force, horizon: build_page to issue list and sources array; enforcing; current proposal and later source lookup

Claim IDs or none: RT-CLM-provenance-policy

Mismatch marker or none: Lineage metadata is not truth endorsement

Gap/limit: Duplicate source quotes select first exact occurrence; no adjudication of surrounding context

Evidence source ID and local anchor: SRC-1, src/wiki/ingest/pipeline.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Located offsets or None
  • Later read-back: Derived offsets persist with staged/retained page
  • Delegated visibility: inapplicable — deterministic host computation
  • Selection predicate: Every supplied quote, not every substantive assertion
  • Invalidation or expiry: Recomputed on new build; no automatic recheck on edited acceptance
  • Activation or effect: Validity input wired; no run supplied
  • Evidence limits: Duplicate source quotes select first exact occurrence; no adjudication of surrounding context

idx = source_text.find(quote) if idx >= 0: return idx, idx + len(quote), 100.0 --- src/wiki/ingest/pipeline.py

EPI-RTE-schema-check

Label: Structural page validation

This structural evaluator spans RT-RTE-source-ingest, RT-RTE-curated-seed, the optional commit step of RT-RTE-page-review, and standalone validation. It is not contained in exactly one supplied route. It identifies the shared check and its distinct invocation consumers, not another end-to-end admission route. Additional entry points compared with runtime: validate and validate-all report structural results; scripts/pre-commit selects staged namespace filenames but validates working-tree files. It invokes the same CLI, not check_page_spans. A failing hook blocks commit only if installed and invoked. The CLI exposes no automatic repair or withdrawal on a failed standalone check (SRC-1, src/wiki/cli/__init__.py, scripts/pre-commit).

Object/candidate ID: EPI-OBJ-page-metadata; EPI-OBJ-page-body

Content/update relation: no content change

Transition or check target: Frontmatter against namespace schema and existing citation indexes

Evaluator/condition and domain: JSON Schema/format checks plus footnote-index loop; structural domain

Activation and timing: Ingest and seed prewrite; standalone validate/validate-all; optional installed pre-commit hook

Possible or observed result: Issue list; CLI success/failure exit

Implemented force: Enforcing within ingest/seed and installed commit hook; reporting in standalone CLI

Epistemic authority and scope: Schema conformity and reference bounds, not truth or complete citation coverage

Operational authority: behavior permitted, blocked, or changed: Issues block staging/seed writes; hook failure blocks commit after review move, not that move

Behavioral-authority path: consumer, channel, force, horizon: Pipeline/seed via issue list; Git via hook exit; enforcing; one build or commit

Claim IDs or none: RT-CLM-provenance-policy

Mismatch marker or none: Unknown fields and invalid markers can fail while unmarked false text is outside body check

Gap/limit: Effective individual schema constraints supplied by runtime/boundary; this inspection does not re-audit all YAML contracts

Evidence source ID and local anchor: SRC-1, src/wiki/validate.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Issues or CLI exit
  • Later read-back: Standalone validation retains no changed claim; hook and ingest outputs may be recorded elsewhere
  • Delegated visibility: inapplicable — no model call
  • Selection predicate: Parsed namespace; only existing citation markers enumerated
  • Invalidation or expiry: No cached approval; later edits can bypass earlier result
  • Activation or effect: Structural check and hook dispatch wired, installation unobserved
  • Evidence limits: Effective individual schema constraints supplied by runtime/boundary; this inspection does not re-audit all YAML contracts

for m in _FOOTNOTE_RE.finditer(body): n = int(m.group(1)) --- src/wiki/validate.py

EPI-RTE-span-check

Label: Marked-claim lexical support check

This lexical evaluator spans RT-RTE-source-ingest, RT-RTE-curated-seed and RT-RTE-eval-report. It is not contained in exactly one supplied route. It identifies the shared check and distinguishes its admission and measurement consumers rather than duplicating their end-to-end routes.

Object/candidate ID: EPI-OBJ-page-body; EPI-OBJ-page-metadata

Content/update relation: no content change

Transition or check target: Fragment before each citation against the addressed raw slice

Evaluator/condition and domain: Index/text/bounds/nonempty checks then token_set_ratio threshold; lexical domain

Activation and timing: Ingest/seed construction; reused by faithfulness metric

Possible or observed result: Issue strings or empty list

Implemented force: Enforcing input to staging/seed; measurement input in evaluation

Epistemic authority and scope: Lexical overlap within checked fragments only; does not license entailment, negation handling or source truth

Operational authority: behavior permitted, blocked, or changed: Low overlap prevents staging/seed admission; failures can trigger alternate extraction

Behavioral-authority path: consumer, channel, force, horizon: Page validity and faithfulness; issue list; enforcing or reporting by consumer; current candidate

Claim IDs or none: RT-CLM-provenance-policy; EPI-CLM-faithfulness-support

Mismatch marker or none: Semantic support claim exceeds lexical evaluator

Gap/limit: Unmarked sentences and namespace-specific prose metadata are not enumerated by the body loop

Evidence source ID and local anchor: SRC-1, src/wiki/ingest/spancheck.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: List of issues
  • Later read-back: Issues influence manifest rejection; not fed as critique into retry prompt
  • Delegated visibility: inapplicable — local lexical procedure
  • Selection predicate: Only extract_claims matches
  • Invalidation or expiry: Recomputed on ingestion/evaluation; edited review not rechecked
  • Activation or effect: Check wiring established, true-positive/false-positive rates unobserved
  • Evidence limits: Unmarked sentences and namespace-specific prose metadata are not enumerated by the body loop

span_text = full_text[start:end] score = token_set_ratio(claim, span_text) --- src/wiki/ingest/spancheck.py

EPI-RTE-proposal-selection

Label: Retry, deduplication and staging eligibility

Part of: RT-RTE-source-ingest

This is the material disposition/acceptance function within the supplied container, not a replacement for that container. Model proposes, software decides and vetoes, no human per-candidate decision here. Mode is open ingestion, not fixed-answer experimentation; lexical source spans are a reference rather than truth oracle. Failure triggers fresh alternate-model generation, not instruction/parameter revision. No transactional rollback of prior raw writes.

Object/candidate ID: EPI-OBJ-page-body; EPI-OBJ-page-metadata

Content/update relation: no content change

Transition or check target: Candidate sets for current chunk and per-ID staging eligibility

Evaluator/condition and domain: Python nonempty/all-valid predicate, last attempt fallback, first-ID dedupe and page.is_valid

Activation and timing: After each extractor result and after all chunks

Possible or observed result: Retry, valid candidate selected, invalid candidate rejected, duplicate suppressed

Implemented force: Enforcing staging disposition, not epistemic acceptance

Epistemic authority and scope: Eligibility under structural/lexical criteria for pending review only; no named truth acceptance decision

Operational authority: behavior permitted, blocked, or changed: Validation failure can switch to stronger model; only issue-free deduped pages can be staged

Behavioral-authority path: consumer, channel, force, horizon: Pipeline via conditions; enforcing; current ingest

Claim IDs or none: none

Mismatch marker or none: Manifest accepted means pending, not knowledge acceptance

Gap/limit: First duplicate can suppress a later better candidate; no content-level comparison of duplicates

Evidence source ID and local anchor: SRC-1, src/wiki/ingest/pipeline.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Selected candidates and manifest disposition
  • Later read-back: Manifest records reasons; no consumer automatically learns a policy from them
  • Delegated visibility: Same selected input/instructions to retry, not explicit first-attempt critique
  • Selection predicate: First all-valid set, otherwise last set; first ID across chunks
  • Invalidation or expiry: Later ingest replaces same manifest/pending name
  • Activation or effect: Deterministic selection wired; route operation unobserved
  • Evidence limits: First duplicate can suppress a later better candidate; no content-level comparison of duplicates

EPI-RTE-pending-retention

Label: Pending page and manifest retention

Part of: RT-RTE-source-ingest

This is the material retention function within the supplied container, not a replacement for that container.

Object/candidate ID: EPI-OBJ-page-body; EPI-OBJ-page-metadata

Content/update relation: no content change

Transition or check target: Selected candidate values to pending files

Evaluator/condition and domain: Software serialization; eligibility see EPI-RTE-proposal-selection

Activation and timing: After selection

Possible or observed result: Pending Markdown and manifest

Implemented force: Permissive retention before epistemic acceptance

Epistemic authority and scope: No additional epistemic license from writing

Operational authority: behavior permitted, blocked, or changed: Makes candidates available to review

Behavioral-authority path: consumer, channel, force, horizon: Review via sorted pending Markdown; permissive; across invocations

Claim IDs or none: none

Mismatch marker or none: none

Gap/limit: No claim that persisted proposals were checked in an actual run

Evidence source ID and local anchor: SRC-1, src/wiki/ingest/pipeline.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Manifest
  • Later read-back: Pending Markdown to review; source manifest not a review gate
  • Delegated visibility: Human preview/editor later receives file
  • Selection predicate: Only valid first-ID proposals
  • Invalidation or expiry: Accept moves; reject deletes; same-ID ingest overwrites; no expiry
  • Activation or effect: Retention wired; no pending instance supplied
  • Evidence limits: No claim that persisted proposals were checked in an actual run

EPI-RTE-review-disposition

Label: Human decision and page deletion

Part of: RT-RTE-page-review

This is the material disposition/acceptance function within the supplied container, not a replacement for that container. Human can propose edits and veto in interactive mode; Python routes the chosen action. No software answer oracle or epistemic criterion; guidance is extraction doctrine, not automatically reapplied. Open review, not a bounded experiment. Changed files persist or are deleted; Git recovery depends on successful commits. A body-difference flag from diff_page is advisory rather than semantic contradiction adjudication (SRC-1, src/wiki/ingest/diff.py).

Object/candidate ID: EPI-OBJ-page-body; EPI-OBJ-page-metadata

Content/update relation: no content change

Transition or check target: Pending file for retain/replace, reject, skip or quit

Evaluator/condition and domain: Human prompt decision; callable accept/reject has no proof of human decision

Activation and timing: After 800-character preview and optional editor

Possible or observed result: Accept invokes move; reject unlinks; skip retains candidate

Implemented force: Enforcing human protocol on CLI; permissive public callable

Epistemic authority and scope: Operational approval recorded, but criterion/intended-use/evidence-consuming truth judgment not enforced or supplied

Operational authority: behavior permitted, blocked, or changed: Allows file retention/replacement or deletes candidate; rejection leaves raw source and manifests

Behavioral-authority path: consumer, channel, force, horizon: CLI human response to accept_page/reject_page; enforcing on interactive path; one file

Claim IDs or none: RT-CLM-history-policy

Mismatch marker or none: Admission does not revalidate edits or automatically preserve superseded content

Gap/limit: Human may inspect evidence externally, but that judgment is unobserved

Evidence source ID and local anchor: SRC-1, src/wiki/review.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Destination or rejection status
  • Later read-back: Accepted files reach loader; rejected file has no later read-back; raw evidence remains
  • Delegated visibility: Human gets preview or editor file, not automatically full raw sources
  • Selection predicate: Sorted pending files and human response; callable path bypasses prompt
  • Invalidation or expiry: Move/delete; no automatic rollback after failed commit
  • Activation or effect: Disposition wiring established; no exercised acceptance established
  • Evidence limits: Human may inspect evidence externally, but that judgment is unobserved

EPI-RTE-knowledge-retention

Label: Retained page move

Part of: RT-RTE-page-review

This is the material retention function within the supplied container, not a replacement for that container.

Object/candidate ID: EPI-OBJ-page-body; EPI-OBJ-page-metadata

Content/update relation: no content change

Transition or check target: Pending page to namespace file

Evaluator/condition and domain: Parsed type membership, then Path.replace; not schema/span checks

Activation and timing: After CLI accept or direct accept_page invocation

Possible or observed result: Knowledge file can replace same-name destination

Implemented force: Permissive retained-store use

Epistemic authority and scope: Retained availability, not evidence-consuming acceptance or lifecycle integration

Operational authority: behavior permitted, blocked, or changed: Future loads see moved content; Git optional and after move

Behavioral-authority path: consumer, channel, force, horizon: load_pages/rebuild/query/bootstrap/evaluation via namespace files; permissive; cross-invocation

Claim IDs or none: RT-CLM-history-policy

Mismatch marker or none: Same-name replacement contradicts an unconditional old-pages-stay invariant

Gap/limit: Seed alternate is separately covered by RT-RTE-curated-seed; seed checks before direct write but no per-page human gate

Evidence source ID and local anchor: SRC-1, src/wiki/review.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Destination path
  • Later read-back: Namespace Markdown feeds all later consumers
  • Delegated visibility: inapplicable — move itself delegates no interpretation
  • Selection predicate: Namespace membership and supplied filename
  • Invalidation or expiry: Replacement possible; no TTL or automatic reciprocal supersession update
  • Activation or effect: Persistence wired; Git history and actual reuse unobserved
  • Evidence limits: Seed alternate is separately covered by RT-RTE-curated-seed; seed checks before direct write but no per-page human gate

EPI-RTE-query-selection

Label: Current-page loading and ranked identifier delivery

Part of: RT-RTE-index-query

This is the material operational admission/selection/consumption function within the supplied container, not a replacement for that container. Concrete deterministic reshaping: a PageRecord with id ada-lovelace, body B, aliases [Augusta Ada King], and no tags/parents/definition yields search_text equal to "ada lovelace B Augusta Ada King". The code replaces hyphens in the id, appends body and selected metadata and joins with spaces. This is indexing text, not a derived historical proposition. Separately, rrf({bm25: [ada-lovelace]}) produces that ID with score 1/61 and source list [bm25], directly from the inspected enumerate/add formula. These are deductions from implementation, not target executions (SRC-1, src/wiki/retrieve/store.py, src/wiki/retrieve/fusion.py). Query strips lineage to source IDs; full source spans remain in Markdown, not in returned dictionaries. Optional-model fixity and opaque state remain as scoped in RT-CMP-dense-embedding and RT-CMP-cross-encoder.

Object/candidate ID: EPI-OBJ-page-body; EPI-OBJ-page-metadata

Content/update relation: truth-apt transformation: non-ampliative reshaping

Transition or check target: Retained page representations to search text, indexes and selected IDs

Evaluator/condition and domain: BM25, graph, optional embedding ranks; RRF; optional cross-encoder; relevance not truth domain

Activation and timing: Explicit rebuild then later query; not automatic on admission

Possible or observed result: IDs, scores, contributing paths and source-ID lists; no generated answer

Implemented force: Ranking and permissive delivery; no semantic endorsement

Epistemic authority and scope: Relevance ordering only; no new domain claim or acceptance license

Operational authority: behavior permitted, blocked, or changed: Changes what operator/evaluator sees first; superseded pages excluded on load but stale fused IDs can escape

Behavioral-authority path: consumer, channel, force, horizon: CLI/evaluator via result dictionaries and IDs; ranking; current query and persistent indexes

Claim IDs or none: RT-CLM-history-policy

Mismatch marker or none: Current-page filter is not universal output withdrawal; provenance omits spans/extractor/time

Gap/limit: A downstream agent consumer is not implemented; freshness does not establish endorsement

Evidence source ID and local anchor: SRC-1, src/wiki/retrieve/query.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Ranked dictionaries
  • Later read-back: Index state reused by later queries; query writes no retained answer
  • Delegated visibility: Optional models see search text/query; downstream agent not supplied
  • Selection predicate: Enabled components and top-k; active rerank filters IDs against current pages
  • Invalidation or expiry: Explicit rebuild; query lacks hash/freshness check
  • Activation or effect: Selection wired; answer effects unobserved
  • Evidence limits: A downstream agent consumer is not implemented; freshness does not establish endorsement

return " ".join(parts) --- src/wiki/retrieve/store.py

EPI-RTE-ingest-measurement

Label: Faithfulness measurement

Part of: RT-RTE-eval-report

This is the material check/evidence production function within the supplied container, not a replacement for that container. Concrete countercase, deduced without execution: body "The Moon is made of cheese." contains no citation marker. extract_claims returns []; faithfulness therefore returns 1.0 for any sources/texts. The function does not inspect the truth of that sentence. This falsifies interpreting its maximum as semantic faithfulness for every body assertion; it does not falsify the narrower marked-claim statistic. For footnoted claims the statistic is max(0, round(1 - issue_count/claim_count, 4)); source truth remains an unchecked premise (SRC-1, src/wiki/ingest/spancheck.py, src/wiki/eval/ingest_eval.py).

Object/candidate ID: EPI-OBJ-page-body; EPI-OBJ-eval-results

Content/update relation: truth-apt transformation: entailed derivation

Transition or check target: Marked claims on retained pages with available raw text

Evaluator/condition and domain: Ratio derived from extract_claims count and span-check issues; lexical-domain statistic

Activation and timing: Explicit wiki eval ingest

Possible or observed result: Per-page number and mean over included pages

Implemented force: Advisory reporting only

Epistemic authority and scope: Entails the implemented lexical-pass statistic conditional on parsed inputs; not fraction of true or semantically supported claims

Operational authority: behavior permitted, blocked, or changed: Prints metric; no implemented automatic promotion, repair or withdrawal

Behavioral-authority path: consumer, channel, force, horizon: Operator via CLI stdout; advisory; one evaluation

Claim IDs or none: EPI-CLM-faithfulness-support

Mismatch marker or none: Name/docstring implies support beyond implemented check

Gap/limit: Missing raw files skip pages; no claims returns 1.0; mean is subset-dependent

Evidence source ID and local anchor: SRC-1, src/wiki/eval/ingest_eval.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Page score and aggregate stdout
  • Later read-back: inapplicable — CLI does not persist this measurement or automatically consume it later
  • Delegated visibility: inapplicable — no model judge
  • Selection predicate: Namespace files with sources and loadable raw documents; not current-page filter
  • Invalidation or expiry: Fresh computation only; no retained approval
  • Activation or effect: Measurement wired; observed scores and semantic accuracy unestablished
  • Evidence limits: Missing raw files skip pages; no claims returns 1.0; mean is subset-dependent

claims = extract_claims(body) if not claims: return 1.0 --- src/wiki/eval/ingest_eval.py

EPI-RTE-retrieval-measurement

Label: Retrieval agreement and component reporting

Part of: RT-RTE-eval-report

This is the material check/evidence production function within the supplied container, not a replacement for that container. Expected IDs are supplied reference answers, not independent factual adjudication. Metrics derive propositions about ranks and those labels through inspected arithmetic (SRC-1, src/wiki/eval/metrics.py). Components command varies complete adapters under one dataset, but aliases/fallback availability and source-only evidence do not establish independent component effects. No empirical improvement or transfer follows.

Object/candidate ID: EPI-OBJ-query-labels; EPI-OBJ-eval-results

Content/update relation: truth-apt transformation: entailed derivation

Transition or check target: Ranked IDs compared to expected_page_ids on current dataset

Evaluator/condition and domain: Deterministic binary relevance NDCG/MRR/recall and means; dataset-label domain

Activation and timing: Explicit retrieval/components commands

Possible or observed result: Per-query/aggregate report and component delta; optional saved snapshots

Implemented force: Advisory; no product-change gate

Epistemic authority and scope: Label agreement for specified corpus/query/adapters, not answer truth, generalization or isolated causal component benefit

Operational authority: behavior permitted, blocked, or changed: Saves reports for operator; does not automatically change retrieval or content

Behavioral-authority path: consumer, channel, force, horizon: Operator via stdout and baseline files; advisory; across invocations when manually read

Claim IDs or none: EPI-CLM-eval-gates

Mismatch marker or none: README gate claim versus explicit reporting-only implementation

Gap/limit: Dataset labels and current component availability constrain comparisons; implementation is not reproduced experiment

Evidence source ID and local anchor: SRC-1, src/wiki/eval/harness.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Metrics and optional saved JSON/Markdown
  • Later read-back: Reports retained; no inspected automatic adoption consumer
  • Delegated visibility: Adapters receive query; optional model inputs as in query selection
  • Selection predicate: Nonempty JSONL rows; expected IDs supplied as oracle
  • Invalidation or expiry: Latest named report overwritten, timestamped snapshots retained
  • Activation or effect: Report route wired; causal advantage unobserved
  • Evidence limits: Dataset labels and current component availability constrain comparisons; implementation is not reproduced experiment

rel = set(q["expected_page_ids"]) --- src/wiki/eval/harness.py

EPI-RTE-query-bootstrap

Label: Generated evaluation queries and automatic labels

Part of: RT-RTE-query-bootstrap

This is the material content transformation function within the supplied container, not a replacement for that container. Model proposes queries; software assigns labels and writes; human review is requested, not enforced. Open per-page query generation has no answer oracle for label correctness. Starting command is not per-row human approval. No ingest instructions or cost guard; no automatic rollback or learning from earlier metric results.

Object/candidate ID: EPI-OBJ-query-labels

Content/update relation: truth-apt transformation: indeterminate

Transition or check target: Retained body to candidate query plus assertion that current page is expected answer

Evaluator/condition and domain: Model generation then filename-derived expected_page_ids; no semantic label check

Activation and timing: Explicit bootstrap command, every namespace page including superseded

Possible or observed result: Candidate JSONL rows at caller-selected output

Implemented force: Permissive dataset write, intended human-review protocol

Epistemic authority and scope: Candidate relevance assertion only; semantic correctness and entailment not established

Operational authority: behavior permitted, blocked, or changed: Default output awaits merge; selected active-dataset output can directly reach evaluator

Behavioral-authority path: consumer, channel, force, horizon: Harness via JSONL expected IDs; permissive; later evaluation

Claim IDs or none: none

Mismatch marker or none: Review reminder does not enforce separate active-data admission

Gap/limit: Query itself need not be truth-apt, but associated relevance label is; no generated example establishes ampliation

Evidence source ID and local anchor: SRC-1, src/wiki/cli/__init__.py; implementation.

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Candidate count and output file
  • Later read-back: Later harness can consume rows if merged or written to active dataset
  • Delegated visibility: Model receives body and query-generation instruction, not full source evidence
  • Selection predicate: All nonempty response lines; labels always current filename; no superseded filter
  • Invalidation or expiry: Output truncated on invocation; partial writes may survive failure
  • Activation or effect: Writing wired; label validity, human merge and later use unobserved
  • Evidence limits: Query itself need not be truth-apt, but associated relevance label is; no generated example establishes ampliation

Claims

EPI-CLM-faithfulness-support

Label: Faithfulness as source support

Claimed operation: ingest metric describes the fraction of footnoted claims whose spans actually support them. SRC-1, src/wiki/eval/ingest_eval.py; doctrine/design docstring, not run evidence. Distinct from RT-CLM-provenance-policy: this concerns a reported numerical evaluator, not extraction instructions. The implemented lexical statistic and no-marker countercase are owned by EPI-RTE-ingest-measurement; EPI-RTE-span-check bounds support to token overlap. No observed or causal validation of semantic-support accuracy is supplied.

faithfulness — fraction of footnoted claims whose cited span actually supports the claim (reuses the span-check; no LLM needed). --- src/wiki/eval/ingest_eval.py

EPI-CLM-eval-gates

Label: Evaluation-gated changes

Claimed operation: retrieval and ingest changes require metric deltas and an autonomous write route proceeds through an eval gate. SRC-1, README.md; doctrine/design. No counterpart after comparison with supplied runtime Claims; closest route is RT-RTE-eval-report. Implemented reporting does not itself enforce such a development/promotion gate. CLI review is a human choice, seed writes are directly checked, and no inspected CLI operation automatically accepts knowledge based on reported deltas. This is not a claim that an external maintainer cannot voluntarily require them. Run and causal support for the stronger gate are missing.

  • Evals gate changes. No retrieval change ships without an NDCG/MRR delta; no ingest change without a faithfulness delta (Phase 2). --- README.md

typer.echo("(gate relaxed for toy corpus — reporting only)") --- src/wiki/cli/__init__.py

EPI-CLM-provenance-trust

Label: Reconstruct trust from provenance

Claimed operation: trust is reconstructed on demand from source identity, span, extraction time and extractor, without numeric confidence. SRC-1, README.md; doctrine/design. Closest supplied claim RT-CLM-provenance-policy concerns generation coverage and invention; this distinct claim concerns later reliance on a lineage chain. Metadata retention and source-byte access afford inspection, but EPI-RTE-query-selection returns source IDs only. No inspected query consumer reconstructs endorsement or source truth; full manual reconstruction also needs unavailable retained raw bodies. Retrieval relevance scores are not stored numeric confidence about claim truth. No observed-run or causal trust benefit follows.

  • No numeric confidence scores. Trust is reconstructed on demand from a provenance chain — source_id, span, extracted_at, extractor — never stored as a float. --- README.md