Link epistemic report
Type: agentic-system-analyses/types/agentic-system-epistemic-report.md
Source-and-claim boundary
The question is whether Link's retained context is acquired, transformed, checked and licensed for later reliance. Scope and exclusions are see boundary; evidence identity and layers are see Source register, SRC-1. This is source inspection at the frozen commit, not target execution. The supplied runtime is a provisional route map. Direct inspection below adds checks, dispositions and transformations; it does not supersede the valid runtime containers.
External human judgments, host model behavior, provider weights and the separately reported QA benchmark workspace are not supplied. Missing judgments prevent establishing evidence-consuming acceptance of particular claims. Missing host traces prevent establishing actual reliance, compliance or changed answers. Unpinned and inaccessible provider state prevents independently assessing the truth content, if any, in distributed-parametric components. Missing QA artifacts prevent independently licensing reported answer-quality results or causal attribution. Available source files left unread are inspection limits, not access gaps.
| Entry point or operation | Source path, SRC-1 | Coverage and evidence basis | Limit and prevented conclusion |
|---|---|---|---|
| CLI dispatch | link.py |
Direct read of main, review-all and selected lifecycle handlers; supplied RT-RTE-memory-admission |
Parser internals and demo/proof bodies not audited; no all-command approval invariant |
| MCP slim/full registration and review/admin dispatch | mcp_package/link_mcp/server.py |
Direct registration/dispatch search and recall/review/admin body reads; supplied RT-RTE-context-recall and RT-RTE-session-delivery | Full tool bodies not all reread; host tool compliance unobserved |
| HTTP and LinkBar callers | serve.py; apps/LinkBar/Sources/LinkBar/LinkStore.swift |
Supplied RT-RTE-memory-admission, RT-RTE-runtime-install | Caller wiring assessed from runtime, not an independent UI/security audit |
| Session hooks, handoffs and capture cleanup | link.py; mcp_package/link_core/capture.py; mcp_package/link_core/handoff.py |
Supplied RT-RTE-session-capture, RT-RTE-session-delivery; direct proposal normalization read, EPI-RTE-proposal-normalization | Capture dedup/redaction bodies not independently traced here; no universal lineage-preservation conclusion |
| Write, review, update, archive and restore | mcp_package/link_core/memory.py |
Direct reads of shared implementations; EPI-RTE-memory-check, EPI-RTE-memory-disposition, EPI-RTE-review-marking, EPI-RTE-memory-withdrawal | Forget and visibility details supplied only; no all-path quarantine |
| Structured ingest and validation | mcp_package/link_core/structured_ingest.py; mcp_package/link_core/validation.py |
Direct complete validator and renderer/apply reads; EPI-RTE-export-rendering, EPI-RTE-wiki-validation, EPI-RTE-staged-disposition | Input loader and plan ownership details supplied by RT-RTE-structured-ingest; export source truth unknown |
| Arbitrary-source ingest, query filing, research and lint | LINK.md |
Direct operation instructions; supplied RT-RTE-agent-wiki | External authored candidates and critic decisions unavailable; instruction is not compliance |
| Project seed, Obsidian/imported instruction sources | mcp_package/link_core/project_seed.py; mcp_package/link_core/obsidian.py; mcp_package/link_core/importers.py |
Supplied RT-RTE-project-seed, RT-RTE-source-import, RT-RTE-session-capture | No independent semantic fidelity audit of seed/import |
| Generic wiki search/context, including archived memories | mcp_package/link_core/wiki.py; mcp_package/link_core/search.py; mcp_package/link_core/query.py |
Correction-round direct reads of enumeration, complete search selector, topic-context assembly and combined-query construction; supplied MEM-RTE-wiki-read and RT-RTE-context-recall | Generic page delivery does not apply focused-memory lifecycle/project gates or carry memory-specific review/lifecycle warnings; ranking determines actual delivery, which is unobserved |
| Query compaction, ranking, warnings and abstention | mcp_package/link_core/query.py; mcp_package/link_core/memory.py; mcp_package/link_mcp/server.py |
Direct body reads; EPI-RTE-recall-assessment; supplied RT-RTE-context-recall | Only focused recall emits the inspected first-class abstention result; combined query emits separate guidance |
| Stale repository references | mcp_package/link_core/staleness.py; mcp_package/link_core/query.py |
Direct checker and consumer reads; EPI-RTE-path-staleness | Bounded path lookup is not general semantic drift detection |
| Consolidate, digest and retrieval history | mcp_package/link_core/consolidate.py; mcp_package/link_core/usage.py |
Direct plan and usage bodies; EPI-RTE-consolidation-plan | Similarity helper/digest bodies not fully inspected; experimental usage boost is not automatic production learning |
| Sync, team import and recovery | mcp_package/link_core/sync.py; mcp_package/link_core/backup.py; mcp_package/link_core/operations.py |
Supplied RT-RTE-workspace-sync, RT-RTE-local-recovery; direct sync claim search | Byte/history restoration is not truth endorsement; outgoing secret checks do not judge incoming truth |
| Offline recall evaluator | scripts/eval_recall_quality.py |
Supplied rank scoring plus direct main read; RT-RTE-recall-evaluation |
Regression exit status can block an invoking job, not automatically alter production |
| Other evaluators, tests, doctor, benchmark, share/snapshot/export | scripts/; tests/; mcp_package/link_core/doctor.py; mcp_package/link_core/share.py; link.py |
Entry-point/search coverage only, or runtime summaries | Hygiene, poisoning, salience, staleness, token and LoCoMo evaluator bodies, complete health/benchmark and export consumers unassessed; prevents system-complete negative about evaluators and operational adaptation |
| Runtime setup and model provisioning | mcp_package/link_core/semantic.py; integrations/ |
Supplied RT-RTE-runtime-install, RT-CMP-model2vec, RT-CMP-fastembed, RT-CMP-reranker | Exact provider internals/weights and installed configuration unavailable |
Consequential claims are RT-CLM-approved-memory, EPI-CLM-source-backed, EPI-CLM-confidence-tags and EPI-CLM-review-accuracy. These concern distinct approval, lineage, inference and review licenses; none is an observed success guarantee.
Epistemic-object inventory
| Object ID | Candidate truth-apt content or none | Claimed role | Evidence source ID and local anchor | Gap/limit |
|---|---|---|---|---|
| EPI-OBJ-memory-page | User/project facts and preferences; procedures include both claims and directives | see record | SRC-1, mcp_package/link_core/memory.py |
Caller source label does not authenticate origin or approval |
| EPI-OBJ-wiki-page | Imported documentation and agent-authored claims, comparisons, answers and hypotheses | see record | SRC-1, LINK.md |
Empty scaffold supplies no accepted claim instance |
| EPI-OBJ-capture-proposal | Proposed user/project claims extracted from notes; original text may mix speakers | see record | SRC-1, mcp_package/link_core/memory.py |
User-only hook selection differs from manual/import inputs |
| RT-OBJ-link-instructions | Mostly policy; doctrine includes claims about grounding and review | see record | SRC-1, LINK.md |
Static shipped method, not evaluated use-derived learning |
| RT-OBJ-operation-journal | Symbolic propositions about write/recovery state, not factual wiki knowledge | see record | SRC-1, mcp_package/link_core/operations.py |
Restoring bytes preserves an earlier state, not its truth |
| RT-CMP-model2vec, RT-CMP-fastembed, RT-CMP-reranker | not determinable: numerical representation/scores do not individuate their encoded truth-apt content | see records | SRC-1, mcp_package/link_core/semantic.py |
Separate unpinned models; no inspected parameter-update step; external internals opaque |
Handoff text, raw imports, manifests and numerical indexes remain contextual parts of their supplied route records, not new inferred knowledge objects. A handoff gives task priority and possibly claims about past work; no particular handoff instance is supplied. Retrieval events report selected identities, not evidence that an answer used or benefited from them.
Authority-route ledger
The ledger separates checking from its consumer and retention from integration. see delegates only fields owned by the cited records; the content/update assessments and architectural statuses here are this report's judgments. Implementation status establishes capacity, never activation. No accepted ampliative claim instance is evidenced.
| 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: behavior permitted, blocked, or changed | Behavioral-authority path: consumer, channel, force, horizon | Evidence source ID and local anchor | Claim IDs or none | Mismatch marker or none | Gap/limit |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RT-RTE-source-import | content transformation | implemented | Raw source; see record | truth-apt transformation: acquisition/import | External Markdown to raw copies | see record | Explicit import | see record | Copy permitted by checks | Original attribution can survive; source truth unknown | Makes raw available to later ingest | Raw reader; filesystem; permissive; later ingest | SRC-1, mcp_package/link_core/obsidian.py |
none | none | Import does not itself create recalled knowledge; source warrant unknown. |
| RT-RTE-project-seed | content transformation | implemented | EPI-OBJ-wiki-page | truth-apt transformation: acquisition/import | Project files/history to source page | see record | Explicit seed; steering permits bootstrap | see record | Bounded copying/rendering | Source lineage available; no truth oracle | Generated page eligible for query | Query/agent; wiki excerpt; advisory; later calls | SRC-1, mcp_package/link_core/project_seed.py |
none | none | Exact semantic preservation unassessed; source warrant unknown. |
| EPI-RTE-proposal-normalization | content transformation | implemented | EPI-OBJ-capture-proposal | truth-apt transformation: indeterminate | First-person or decision text to candidate claim | see record | Proposal mining before capture/acceptance | see record | Candidate only | No general semantic-preservation license | Makes rewritten proposal available for caller selection | Capture/review caller; candidate text; advisory; until accepted/dismissed | SRC-1, mcp_package/link_core/memory.py |
none | none | Speaker and temporal qualifier can change; warranted reshaping only under extra assumptions. |
| RT-RTE-session-capture | retention | implemented | EPI-OBJ-capture-proposal | no content change | Retain proposal/raw review context | see record | Session end or manual capture | see record | Proposal-only persistence | No approval from capture | Inbox and review supply enabled | Review caller; raw/inbox; advisory; later sessions | SRC-1, link.py |
none | none | Automatic user-only extraction does not cover manual/import origin; downstream acceptance separate. |
| EPI-RTE-memory-check | check/evidence production | implemented | EPI-OBJ-memory-page | no content change | Secret-shaped, duplicate and conflicting candidates | see record | Before write; conflicts before update | see record | Computes heuristic findings | Only detected similarity/revision/secret patterns | Supplies inputs to separate disposition | Writer; candidate lists; enforcing only at disposition; current mutation | SRC-1, mcp_package/link_core/memory.py |
RT-CLM-approved-memory | none | No general contradiction or truth proof; optional model state opaque; update is not the new-write secret gate. |
| EPI-RTE-memory-disposition | disposition/acceptance | implemented | EPI-OBJ-memory-page | no content change | Whether shared new-memory write proceeds | see record | After candidate checks | see record | Overrideable rejection or permissive write | Operational admission, not evidence-consuming truth acceptance | Refuses or admits pending active page | Writer; return/override arguments; enforcing; current call | SRC-1, mcp_package/link_core/memory.py |
RT-CLM-approved-memory | Approval contract is not authenticated | Direct files and sync bypass this gate. |
| RT-RTE-memory-admission | retention | implemented | EPI-OBJ-memory-page | truth-apt transformation: acquisition/import | Caller claim to durable memory | see record | After write admission | see record | Durable pending active page | Acquires supplied claim; source warrant unknown | Eligible for later recall before review | Recall; Markdown; permissive; later sessions | SRC-1, mcp_package/link_core/memory.py |
RT-CLM-approved-memory | none | Retention/use before acceptance is not lifecycle integration. |
| EPI-RTE-memory-update | content transformation | implemented | EPI-OBJ-memory-page | truth-apt transformation: acquisition/import | Caller detail appended to retained memory | see record | Explicit update after conflict gate | see record | Journaled append and review reset | Acquires supplied detail with source label; source warrant unknown | Changes future claim/body context and makes review pending | Recall/agent; body and metadata; permissive/advisory; later calls | SRC-1, mcp_package/link_core/memory.py |
EPI-CLM-review-accuracy | Update does not inherit new-write secret screen | Append does not resolve every old/new contradiction or prove accuracy. |
| EPI-RTE-review-marking | disposition/acceptance | implemented | EPI-OBJ-memory-page | non-truth-apt policy/content update: review metadata and due date | Caller assertion of accuracy to reviewed marker | see record | Explicit review; optional bulk confirm | see record | Sets reviewed, re-arms window | Protocol criterion: human confirms accuracy for future context; evidence not checked by code | Review metadata/rank/warnings change | Recall and agent; review fields; ranking/advisory; typed review interval | SRC-1, mcp_package/link_core/memory.py |
EPI-CLM-review-accuracy | Marker is not proof of acceptance | No authenticated judgment trace or mandatory evidence/note; no claim-instance acceptance established. |
| EPI-RTE-memory-withdrawal | operational admission/selection/consumption | implemented | EPI-OBJ-memory-page | non-truth-apt policy/content update: archive/restore status | Focused-memory default eligibility, including combined query's memory branch | see record | Caller archive/restore | see record | Focused active filter enforces status | Withdrawal from focused-memory default selection only, not refutation or all-query withdrawal | Archive suppresses focused active selection; restore re-enables; generic wiki delivery remains possible | Focused-memory selector; lifecycle fields; enforcing for that branch; until changed | SRC-1, mcp_package/link_core/memory.py |
none | Generic wiki delivery bypasses focused lifecycle filtering | Ordinary combined query can still deliver the retained archived page through MEM-RTE-wiki-read, without memory-specific review/lifecycle warnings. include_archived/as_of, file reads and prior host text also remain possible. |
| EPI-RTE-export-rendering | content transformation | implemented | EPI-OBJ-wiki-page | truth-apt transformation: non-ampliative reshaping | Export page bodies to grouped source pages | see record | Structured plan/render | see record | Deterministic rendering | Body lineage retained with explicit byte modifications; source truth unknown | Creates candidate outputs for staging | Adapter; output strings; permissive; planned apply | SRC-1, mcp_package/link_core/structured_ingest.py |
EPI-CLM-source-backed | Verbatim has documented escape exception | Generated counts derive within supplied export domain, not upstream factual validation; high confidence is preset. |
| EPI-RTE-wiki-validation | check/evidence production | implemented | EPI-OBJ-wiki-page | no content change | Wiki structure, links, dates, secret patterns | see record | Staged pre-copy or explicit/post-write check | see record | Produces passed/findings | Shape/link consistency and detected secret patterns only | Inputs to stage rejection or operator completion decision | Adapter/agent; validator result; enforcing/advisory respectively; current apply/completion | SRC-1, mcp_package/link_core/validation.py |
EPI-CLM-source-backed | none | Cannot establish faithful grounding or source truth; source links need not entail authored prose. |
| EPI-RTE-staged-disposition | disposition/acceptance | implemented | EPI-OBJ-wiki-page | no content change | Apply staged structured output | see record | After conflicts and staged validation | see record | Code veto on failure, copy on pass | Acceptance of structural/ownership admissibility only; not truth acceptance | Blocks or permits live replacement | Adapter; validation/plan; enforcing; current apply | SRC-1, mcp_package/link_core/structured_ingest.py |
none | none | Caught copy failure rollback is not crash/concurrency proof. |
| RT-RTE-structured-ingest | retention | implemented | EPI-OBJ-wiki-page | no content change | Generated wiki plus provenance manifest | see record | Successful structured apply | see record | Filesystem persistence | Hash lineage, not endorsement | Later query and later managed update available | Query/adapter; Markdown/hash manifest; permissive; later calls | SRC-1, mcp_package/link_core/structured_ingest.py |
none | none | No epistemic lifecycle integration established merely by rebuilding links/index. |
| RT-RTE-agent-wiki | content transformation | doctrine only | EPI-OBJ-wiki-page | truth-apt transformation: indeterminate | Arbitrary source/answer to claims and hypotheses | see record | Agent follows ingest/query/research instructions | see record | Natural-language request | Explicit source statements, reasonable inferences and speculation distinguished by authored tags | Requests source-linked pages, contradiction notes and human-selected repairs | External agent; LINK.md; advisory; ingest/lint/future queries | SRC-1, LINK.md |
EPI-CLM-confidence-tags | none | Actual transformation may acquire, reshape, derive or conjecture; no produced candidate or checked entailment/non-entailment trace. |
| RT-RTE-agent-wiki | lifecycle integration | doctrine only | EPI-OBJ-wiki-page | no content change | Accepted content connected to sources and existing pages | see record | After human confirms memory or selects filing/fixes; arbitrary-source ingest has workflow authority | see record | Requested links, Open Questions, organization changes | Integration request; no accepted claim instance or reliable compliance established | Asks agent to organize reusable content | Agent; LINK.md and wiki; advisory; later queries | SRC-1, LINK.md |
none | none | Source linking during ordinary ingest may precede acceptance; not all graph rebuilding is lifecycle integration. |
| EPI-RTE-recall-assessment | check/evidence production | implemented | EPI-OBJ-memory-page | no content change | Query-memory match strength, not claim truth | see record | Focused recall after selection | see record | Returns confidence/abstention | Lexical coverage or capped semantic similarity only | Supplies cautious-use advice | MCP/agent; JSON confidence/abstention; advisory; answer turn | SRC-1, mcp_package/link_core/memory.py |
none | none | Strong match is compatible with false claim; weak result remains returned. |
| EPI-RTE-context-compaction | content transformation | implemented | EPI-OBJ-memory-page; EPI-OBJ-wiki-page | truth-apt transformation: indeterminate | Selected body to bounded packet excerpt | see record | Packet construction after selection | see record | Fixed character clipping | Provenance remains, full semantic scope need not remain | Limits initial host context; follow-up can return fuller pages | Agent; compact text/ellipsis; advisory; query turn | SRC-1, mcp_package/link_core/query.py |
EPI-CLM-source-backed | Excerpt is not full source warrant | Qualifiers outside excerpt require source reload. |
| RT-RTE-context-recall | operational admission/selection/consumption | implemented | EPI-OBJ-memory-page; EPI-OBJ-wiki-page | no content change | Select retained context; compaction assessed separately | see record | Recall request | see record | Ranking, filters and budgets | Selected excerpts/provenance, not new warrant | Chooses what reaches initial host context through separately gated memory and ungated generic wiki branches | Agent; packets/capsules; ranking/advisory; present and later calls | SRC-1, mcp_package/link_core/query.py |
EPI-CLM-source-backed | Archive is not an all-packet withdrawal gate | Generic delivery of retained archived/expired/project-scoped memory pages is see MEM-RTE-wiki-read; page compaction omits memory-specific review/lifecycle warnings. Clipping can omit qualifiers; fuller-source follow-up remains. No answer oracle. |
| RT-RTE-session-delivery | operational admission/selection/consumption | implemented | EPI-OBJ-memory-page; handoff text | no content change | Unsolicited startup/first-response supply | see record | Hook or first suitable MCP response | see record | Delivery plus priority instruction | No epistemic acceptance from freshness or delivery | Requests resume/verify and supplies remembered context | External agent; hook/stdout/tool JSON; advisory; next session | SRC-1, link.py |
none | none | Process flag is not proof of session identity; receiving behavior unobserved. |
| EPI-RTE-path-staleness | check/evidence production | implemented | EPI-OBJ-memory-page | no content change | Missing formerly tracked path references | see record | Combined query, when repository available | see record | Findings carried with verify guidance | Limited missing/renamed-path evidence only | Requests review before relying on affected memory | Agent; stale_paths/guidance; advisory; query turn | SRC-1, mcp_package/link_core/staleness.py |
none | none | Path existence is not claim correctness; no automatic archive or content replacement. |
| EPI-RTE-consolidation-plan | check/evidence production | implemented | EPI-OBJ-capture-proposal; EPI-OBJ-memory-page | truth-apt transformation: indeterminate | Backlog counts, duplicate/theme/merge proposals | see record | Explicit consolidate or backlog nudge | see record | Read-only candidate action plan | Counts under supplied payload; similarity groups not proven equivalence | Offers follow-up mutation commands, no automatic merge | Human/agent; plan; advisory; subsequent explicit actions | SRC-1, mcp_package/link_core/consolidate.py |
none | none | Grouping internals not fully audited; merge correctness remains a human/content-review question. |
| RT-RTE-workspace-sync | operational admission/selection/consumption | implemented | EPI-OBJ-memory-page; EPI-OBJ-wiki-page | truth-apt transformation: acquisition/import | Incoming/merged workspace content | see record | Explicit sync/team sync | see record | File/Git reconciliation | Lineage may survive; incoming truth/approval unknown | Imports content into local retrieval independently of memory writer | Recall; merged/imported files; permissive; later calls | SRC-1, mcp_package/link_core/sync.py |
none | none | Outgoing secret gate does not establish incoming endorsement; conflict sibling keeps both versions. |
| RT-RTE-local-recovery | lineage/freshness/recovery | implemented | RT-OBJ-operation-journal | no content change | Restore snapshot/archive state | see record | Mutation failure or confirmed recovery | see record | Restore bytes; report integrity/errors | State lineage only | Restored context can replace newer context for later recall | Recovery/recall; snapshots/files; enforcing at replacement; later calls | SRC-1, mcp_package/link_core/operations.py |
none | none | Does not recheck truth or automatically withdraw already supplied host text. |
| RT-RTE-recall-evaluation | check/evidence production | implemented | Authored target identities | no content change | Top-five retrieval rank | see record | Offline maintainer invocation | see record | Metrics and regression exit status | Retrieval rank on authored/variant suite, not answer truth | Nonzero exit on compared metric regression; no automatic production update | Invoker; report/exit code; enforcing for process, downstream uninspected; invocation | SRC-1, scripts/eval_recall_quality.py |
none | none | QA reported results are not this evaluator; no run or component-causal evidence supplied. |
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-approved-memory | see record | SRC-1, LINK.md, doctrine/design |
see record | EPI-RTE-memory-check, EPI-RTE-memory-disposition, RT-RTE-memory-admission | None supplied | No human-approval credential; caller overrides and sync/file alternatives | Approval is a shipped protocol with heuristic admission, not authenticated all-path approval | Pending active memories can reach recall |
| EPI-CLM-source-backed | see record | SRC-1, mcp_package/link_core/query.py, doctrine/design |
see record | RT-RTE-context-recall, EPI-RTE-export-rendering, EPI-RTE-wiki-validation | None supplied | Lineage and shape checks do not establish source truth, encoding fidelity or final-answer grounding | Packets expose provenance and source-related excerpts; supported export bodies preserve documented lineage | Arbitrary authored prose/source entailment and qualifier-preserving clipping unresolved |
| EPI-CLM-confidence-tags | see record | SRC-1, LINK.md, doctrine/design |
see record | RT-RTE-agent-wiki is a requested route; EPI-RTE-export-rendering presets high | None supplied | Source-count maturity and explicitness are not independent truth evidence; retrieval confidence has a different target | Tags distinguish authored statement/inference/speculation intentions | No observed tagging judgment, calibration or inference acceptance |
| EPI-CLM-review-accuracy | see record | SRC-1, LINK.md, doctrine/design |
see record | EPI-RTE-review-marking, EPI-RTE-memory-withdrawal | None supplied | Optional note; same caller can mark/re-arm; bulk confirm is a Boolean | Human accuracy confirmation is requested, reviewed state has consequential recall effects | Recorded reviewed status alone does not establish evidence-consuming acceptance |
Bounded conclusion
Link acquires supplied user/project claims and external documents, retains them locally, and later selects compact excerpts for agents. The assessed source/import routes retain paths, revision strings or hashes but do not verify source truth; their epistemic source warrant is unknown. Structured export rendering is deterministic reshaping with explicit bracket escaping, not unrestricted verbatim preservation. Derived page counts and validation counts are warranted only as computations over the supplied records and inspected rules, not as external-world facts. First-person normalization has a concrete semantic counterexample, so the general route remains indeterminate rather than automatically non-ampliative.
The new-write gates evaluate detected secrets, similarity and revision/conflict patterns. Their separate disposition consumer can reject or admit a pending active page and supports caller overrides. These are operational safeguards, not truth acceptance. Pending review is not quarantine. Update appends supplied detail and resets review; it should not inherit the new-write secret-screening claim. Sync/file imports and direct edits are distinct admission paths. Archive withdraws a page from default focused-memory active selection, including the combined query's memory branch. It does not withdraw future operational availability across ordinary combined recall: the independent generic wiki branch can still rank and deliver the retained archived page, without memory-specific review/lifecycle warnings. This supported alternate consumer is see MEM-RTE-wiki-read, SRC-1, mcp_package/link_core/wiki.py, mcp_package/link_core/search.py and mcp_package/link_core/query.py. Historical/include_archived focused recall, direct file access and text already in a host window are additional exceptions. Actual generic delivery depends on query, corpus and ranking; no disclosure or reliance was observed.
The review protocol has a criterion, intended use and scope: the human confirms that a memory is accurate for future personal/project context. The implemented marker changes review warnings, ranking and the typed review horizon. The code does not consume mandatory evidence of that confirmation or a named factual test. No supplied claim-instance judgment therefore establishes acceptance, and index/backlink rebuild or retention cannot be called post-acceptance lifecycle integration. Arbitrary-source ingest requests source links, contradiction notes, confidence labels and coherent revision; the external agent's actual acquisition, entailment or ampliative conjecture is unobserved. The available templates afford localized theories; they do not supply a formulated candidate or exercised criticism/iteration. The runtime's independent theory-builder limits remain see RT-RTE-agent-wiki.
Wiki validation licenses structural admissibility and link/index consistency under its finite checks. Structured apply enforces its result before copying; agent-authored completion uses a post-write protocol. Neither verifies propositions against the source. Recall confidence targets query match, not truth. Focused abstention and stale-path warnings ask an external agent to verify or refrain; they do not remove the returned weak/stale candidate or enforce its final answer. Content delivery and operational ranking are implemented; actual host reliance and benefit remain unobserved. Startup supply and handoff instructions can affect a later session without an explicit recall, but supply does not establish acceptance or compliance.
The offline recall evaluator checks authored target ranks and can fail its own process on a hybrid regression. It does not automatically select a new product policy or accept a factual answer. Other accessible evaluator and maintenance bodies remain unassessed as named in coverage, so no system-complete absence of evidence-responsive behavior or knowledge testing follows. In the inspected usage module, retrieval recording supports observability; the popularity boost is explicitly retained as not adopted, and the inspected combined query does not pass salience. Retrieval counts cannot demonstrate learning or improvement. Independent learning, reflection, autonomy and self-improvement conclusions require their own behavioral and attribution evidence; no exercised benefit is established here. The embedding and cross-encoder routes remain separate, with unpinned external weights and no inspected parameter-update operation, not a system-wide verdict about learning.
Shared records
Operative objects
EPI-OBJ-memory-page
Label: Memory page
Source-native identity: Markdown pages under wiki/memories/ rendered and reloaded by the memory core. Representational form: natural-language claim/body/procedure text and symbolic lifecycle/provenance fields, assessed separately by the ledger. Storage substrate: local Markdown. Closest supplied record is RT-RTE-memory-admission; distinct identity is its durable output, not the admission progression. The title/TLDR can truncate; claim text is retained in the body. SRC-1, mcp_package/link_core/memory.py, implementation.
Memory
{clean_text} ---
mcp_package/link_core/memory.py
EPI-OBJ-wiki-page
Label: Wiki page
Source-native identity: source/concept/entity/comparison/exploration pages addressed by Link's wiki categories. Representational form: natural-language sourced prose/code plus symbolic frontmatter and graph links; substrate: local Markdown. Closest supplied records are RT-RTE-agent-wiki and RT-RTE-structured-ingest; distinct identity is their shared output family, not either route. Checks and authorship differ and are not assigned one acceptance status. SRC-1, LINK.md, doctrine/design; mcp_package/link_core/structured_ingest.py, implementation.
- Create a source page in
wiki/sources/following the template- For each significant concept, entity, or claim in the source:
- If a wiki page exists: UPDATE it with new information, add the source to its Sources section, update
date_updatedandsource_count- If no wiki page exists: CREATE one following the appropriate template, set
maturity: seed---LINK.md
EPI-OBJ-capture-proposal
Label: Capture proposal
Source-native identity: candidate memory strings produced from note segments and retained in session captures. Representational form: natural-language candidate text with symbolic type/confidence/action metadata; substrate: raw Markdown captures and returned objects. Closest supplied record is RT-RTE-session-capture; distinct identity is the candidate content, not the capture route. Source-user identity is conditional on input provenance. SRC-1, mcp_package/link_core/memory.py, implementation. Normalization passage is retained in EPI-RTE-proposal-normalization; supplied capture record retains the automatic user-turn selection evidence.
Routes
EPI-RTE-proposal-normalization
Label: Proposal normalization
Part of: RT-RTE-session-capture
Material transformation part of the supplied capture route, not a duplicate capture operation. Endpoints/progression: segmented notes → normalize_proposed_memory → candidate memory → proposal selection/capture. Owner: deterministic regex code; state: text and classified memory type. No internal model judge or answer oracle; open proposal requests, not an evaluated improvement loop. Caller/human decides subsequent approval and shared writer can veto; no write is admitted by normalization itself. Guidance is the shipped replacement list; rollback means discard candidate or later edit/delete capture. SRC-1, mcp_package/link_core/memory.py, implementation.
Concrete deduction, not execution: I prefer short replies with preference type becomes User prefers short replies. after capitalization/replacement and final punctuation. This is referent-preserving only if the first-person speaker is the user. The manual path permits mixed notes; assistant: I prefer short replies loses its speaker prefix in segmentation and can become the same user-preference candidate. From now on I only push to develop loses its temporal lead-in. Neither universal semantic preservation nor non-entailment of every output is established; the route is indeterminate with speaker/time assumptions needed. Automatic user-only hook extraction is a source-supported limiting case that reduces, but does not erase, this general ambiguity.
- Immediate return: Normalized candidate string.
- Later read-back: Captured candidate can be re-mined/selected at later acceptance.
- Delegated visibility: Local review callers receive candidate; external further delegation uninspected.
- Selection predicate: Replacement patterns, classified type and bounded segments.
- Invalidation or expiry: Source/candidate change or dismissal changes later proposal; no claim-specific expiry here.
- Activation or effect: Candidate transformation wired; changed future behavior unobserved.
- Evidence limits: No executed candidate or identity/temporal-fidelity test.
- implementation conclusion status: wired
- operation conclusion status: uninspected
line = re.sub(r"^(?:user|human|me|assistant|codex|agent)\s:\s", "", line, flags=re.IGNORECASE) ---
mcp_package/link_core/memory.pyvalue = re.sub(r"^(?:from now on|going forward|starting now|starting today)[,\s]+", "", value, flags=re.IGNORECASE) ---
mcp_package/link_core/memory.py(r"^i prefer\b", "User prefers"), ---
mcp_package/link_core/memory.py
EPI-RTE-memory-check
Label: Memory candidate checking
Part of: RT-RTE-memory-admission
Checking part of the supplied admission route; its findings are distinct from the disposition below. Endpoints/progression: proposed text/title plus active record list → secret scanner, duplicate matcher, conflict matcher → findings to writer. Owner: deterministic core, optional numerical embedder for conflict revision similarity. State: type/scope/project, active claims, caller exclusions; effects: finding lists, not proof of truth. Check target is secret-shaped text or potential duplication/revision/conflict within eligible active memory types, not all logical contradictions. Lexical conflict branches use negation/overlap, options and reversed preference cues; semantic tier requires revision cue and threshold. Human/caller proposes and resolves actual meaning; code selects candidates, disposition can veto. Open requests; no expected-answer oracle, no product successor. New-write secret gate can be bypassed by explicit argument; update checks conflicts but its inspected body does not perform that new-write secret screen. SRC-1, mcp_package/link_core/memory.py, implementation.
- Immediate return: Secret labels or duplicate/conflict candidates.
- Later read-back: inapplicable — checking alone does not persist a judgment; admitted content is separate.
- Delegated visibility: Mutation caller receives candidates for review.
- Selection predicate: Type/project/active filters and heuristic threshold rules.
- Invalidation or expiry: Recomputed from current records; model/cache changes can change semantic candidates.
- Activation or effect: Findings feed rejection at separate disposition, not independent acceptance.
- Evidence limits: False positives/negatives and numerical-provider internals unassessed; no observed check results.
- implementation conclusion status: wired
- operation conclusion status: uninspected
if new_negated != has_negation(record_text) and len(overlap) >= 1 and overlap_ratio >= 0.45: score = max(score, 92) reasons.append("opposite_negation") ---
mcp_package/link_core/memory.py
EPI-RTE-memory-disposition
Label: Memory write disposition
Part of: RT-RTE-memory-admission
Disposition part, separate from checks and persisted output. Endpoints/progression: checker findings plus override/supersedes arguments → reject or continue shared new-memory writer → created/refusal result. Owner: software gate; caller proposes and can override detected secrets, duplicates and conflicts. Protocol human may veto by withholding approval; no authenticated human result is consumed. State/actions: pending active page and optional archival lineage after admission, or no creation on rejection. Trigger: explicit remember/accepted capture request; proposed change: supplied durable context. Guidance is approved-memory contract and refusal messages. Open requests; answer oracle inapplicable, no expected truth. Journal rollback/recovery belongs to RT-RTE-local-recovery, not a truth-check rollback. SRC-1, mcp_package/link_core/memory.py, implementation; protocol see RT-CLM-approved-memory.
- Immediate return: Created identity or created=False and findings.
- Later read-back: Admitted page is subsequently read by recall; refusal itself has no durable acceptance record.
- Delegated visibility: Caller/workspace readers; no delegated worker.
- Selection predicate: Gate predicates and caller override arguments; superseded item excluded from candidate blocking.
- Invalidation or expiry: Later updates/archive/supersession and file mutations can change eligibility.
- Activation or effect: Reject/permit operation wired; no human assent or later behavioral activation evidenced.
- Evidence limits: Other admission paths bypass this mechanism; source strings and success do not authenticate approval.
- implementation conclusion status: wired
- operation conclusion status: uninspected
if duplicate_candidates and not allow_duplicate: return { "created": False, "duplicate": True, ---
mcp_package/link_core/memory.py
EPI-RTE-memory-update
Label: Memory detail update
Closest supplied RT-RTE-memory-admission explicitly leaves detailed updates to later analysis. Distinct referent is an existing-page detail append, not new-page creation. Endpoints/progression: identifier/text/source → active-page resolution and conflicts against other records → refusal or appended update → pending review metadata → later recall. Owner: caller supplies new detail; software checks a bounded conflict domain and writes. State/effects: old body plus update, update count/source/time, removal of reviewed fields. Trigger/proposed change: explicit update to active context. Guidance requests review again with the human; caller can decline or override conflicts, software rejects empty/unresolved/inactive targets. Open update requests; no factual expected-answer oracle. Journaled recovery applies, but the inspected implementation does not run the new-write secret screen. Appending preserves older body text rather than proving that all previous claims have been semantically reconciled. SRC-1, mcp_package/link_core/memory.py, implementation; LINK.md, doctrine/design.
- Immediate return: Updated identity/remaining issues or conflict refusal.
- Later read-back: Appended body, pending review state and update provenance reach later reload/recall.
- Delegated visibility: Workspace readers and calling hosts receive updated selected content; no inner worker.
- Selection predicate: Resolved active identifier, nonempty supplied detail, other-record conflicts and allow_conflict.
- Invalidation or expiry: Removes reviewed_at/review_note and sets pending; later human review re-arms metadata, archive suppresses default focused-memory selection but not generic wiki delivery of the retained page.
- Activation or effect: Durable detail acquisition and review reset wired; changed host behavior unobserved.
- Evidence limits: Caller source label is not authenticated evidence; no universal conflict resolution, secret safety or truth acceptance.
- implementation conclusion status: wired
- operation conclusion status: uninspected
updated_body = append_memory_update(body, clean_text, timestamp, clean_source) ---
mcp_package/link_core/memory.pyupdated_text = update_frontmatter_fields(original, updates, remove={"reviewed_at", "review_note"}) ---
mcp_package/link_core/memory.py
EPI-RTE-review-marking
Label: Memory review marking
Closest supplied record RT-RTE-memory-admission explicitly leaves detailed review to later analysis; distinct referent is the subsequent callable reviewed-state mutation, not new-page admission. Endpoints/progression: identifier/optional note → resolve page → reviewed metadata/re-armed due date → later recall review state and rank. Owner: caller asserts review; code writes marker/date. State: existing page and typed review window. Trigger/proposed change: explicit review or CLI bulk review with confirm; caller can withhold the call, code can reject unresolved identifier, journal supports recovery. Guidance asks human accuracy confirmation, intended use future personal/project context; source evidence consumption is not mandatory. Proposer/decider is caller/human under protocol, software does not independently judge claim accuracy. Open requests; no answer oracle or live improvement trigger. Bulk confirm strengthens interaction friction, not authenticated per-content evidence. SRC-1, mcp_package/link_core/memory.py and link.py, implementation; criterion doctrine in EPI-CLM-review-accuracy.
- Immediate return: Reviewed state and remaining issues.
- Later read-back: Later recall reloads reviewed metadata and its due date.
- Delegated visibility: Workspace hosts receive review state/warnings in selected packets.
- Selection predicate: Resolved identifier; bulk mode active pending/due list and caller confirm.
- Invalidation or expiry: Update resets pending/removes review evidence fields; typed window becomes due and can be re-armed.
- Activation or effect: Changes future warning/ranking capacity; actual approval or changed host reliance unobserved.
- Evidence limits: Optional note and caller-written marker do not establish evidence-consuming acceptance.
- implementation conclusion status: wired
- operation conclusion status: uninspected
clean_note = note.strip() if note else "" updates = { "review_status": "reviewed", "reviewed_at": f'"{timestamp}"', } ---
mcp_package/link_core/memory.py"review_status": "pending", ---
mcp_package/link_core/memory.py:1657-1663
The downstream selector consumes reviewed status as a ranking input, independently of whether the marker corresponds to an actual accuracy judgment:
if str(record.get("review_status") or "").lower() == "reviewed": boost += 3 ---
mcp_package/link_core/memory.py
EPI-RTE-memory-withdrawal
Label: Memory archive withdrawal
Closest supplied record RT-RTE-memory-admission mentions archive/restore as recovery; distinct referent is subsequent focused-memory eligibility withdrawal and restoration. Endpoints/progression: caller identifier/status/reason → journaled lifecycle fields → future focused-memory recall's active filter, including the combined query's memory branch. Owner: caller chooses archival/reinstatement, core enforces requested state and focused-memory selector excludes inactive unless explicit alternatives. The independent generic wiki consumer is see MEM-RTE-wiki-read: ordinary combined query and explicit search/context can still deliver the retained archived page. This is not a duplicate archive route; it is the alternate consumer that bounds archive's force. Guidance: archive stale/wrong memory rather than permanent deletion. Human can veto by not requesting; unresolved page/unsupported status rejects. Open lifecycle requests, no truth oracle: archive reason may contain criticism but code does not evaluate it. State replacement is journal-recoverable; no current host-context eviction. SRC-1, mcp_package/link_core/memory.py, implementation; LINK.md, doctrine/design.
- Immediate return: Status-change result.
- Later read-back: Changed status reaches later focused-memory selection; retained body remains independently available through generic wiki search/context and ordinary combined-query page delivery.
- Delegated visibility: Local and connected host consumers receive selected memory packets or generic page excerpts; generic page compaction omits memory-specific review/lifecycle warnings.
- Selection predicate: Resolved page; focused-memory default active filter, optional historical/include_archived exceptions. Generic wiki selection instead ranks all nonhidden Markdown and graph neighbors without the focused lifecycle/project gates.
- Invalidation or expiry: Restore reverses archive fields; supersession and expiry independently change focused-memory eligibility. Archive does not delete or exclude the page from generic wiki enumeration.
- Activation or effect: Focused-memory operational withdrawal/restoration wired; generic delivery remains implemented and possible, not observed; no actual reliance/refutation trace.
- Evidence limits: No all-query withdrawal or erasure of prior host text; archive is not proof the proposition is false. Actual generic delivery depends on query/corpus/ranking.
- implementation conclusion status: wired
- operation conclusion status: uninspected
elif not include_archived and not is_active_memory(record): continue ---
mcp_package/link_core/memory.py
Correction inspection directly checked SRC-1, mcp_package/link_core/wiki.py enumeration and complete context_for_topic, mcp_package/link_core/search.py complete search_pages, and mcp_package/link_core/query.py branch assembly and _compact_page, implementation layer. Enumeration includes retained memory Markdown; search and context use page matches and graph neighbors without the focused-memory gate. Combined query compacts those pages separately from its filtered memory results. Minimum passages and the distinct consumer's findings are see MEM-RTE-wiki-read and RT-RTE-context-recall.
EPI-RTE-export-rendering
Label: Structured export rendering
Part of: RT-RTE-structured-ingest
Transformation part of supplied structured ingest container. Endpoints/progression: loaded export pages/relationships → group/sort/count/render → candidate source-page strings. Owner: deterministic adapter. State: export manifest, navigation, page bodies and relationship records; effects: grouped Markdown, provenance fields, calculated connection counts. Caller chooses exclusions/apply/adoption; software rejects colliding groups; later stage gate can veto. Open supported-export requests, no expected-answer oracle. Guidance is fixed renderer and schema; source hash/revision and adapter details persist on apply, rollback/discard is stage or copy recovery. Source truths are acquired, body reshaping is non-ampliative under the documented encoding change; generated count claims are derivations over supplied records. confidence: high is preset, not a check result.
Concrete deduction: input body Use [[name]] has no trailing newline to strip, triggers replacement and becomes Use [\[name]] inside a fenced Markdown block. A note records the escape and raw retains exact bytes. Therefore the rendered character string is not universally byte-verbatim despite its TLDR wording. This establishes an explicit encoding exception, not falsity of upstream documentation. SRC-1, mcp_package/link_core/structured_ingest.py, implementation.
- Immediate return: Output page strings and render statistics.
- Later read-back: Applied source bodies/manifest feed future query and plan ownership checks.
- Delegated visibility: Local wiki consumers, no internal model delegation.
- Selection predicate: Navigation groups/exclusions, sorted page inputs and supported relationships.
- Invalidation or expiry: Source hash/output ownership and explicit pruning govern later regeneration.
- Activation or effect: Rendering wired; staged/admitted persistence separate.
- Evidence limits: Export truth/source authenticity unknown; count domain limited to supplied records, escaped code not exact bytes.
- implementation conclusion status: wired
- operation conclusion status: uninspected
body = str(page.get("markdown") or "").rstrip("\n") escaped = "[[" in body if escaped: body = body.replace("[[", "[\[") escaped_pages.append(str(page.get("canonical_url") or "")) ---
mcp_package/link_core/structured_ingest.py
EPI-RTE-wiki-validation
Label: Wiki validation checking
Part of: RT-RTE-structured-ingest
Finite checking part of the staged route, also exposed as standalone CLI/MCP/HTTP check. The containing staged route remains valid; reuse by other consumers does not make this another apply operation. Endpoints/progression: wiki files → shape/section/date/link/backlink/secret checks → findings and passed Boolean. Owner/evaluator: deterministic validator. Context/state: wiki roots, parsed frontmatter/body, expected backlink map; target/domain: file admissibility and structural consistency, not proposition truth or source entailment. Caller chooses strictness; warning-only findings pass by default. Validator proposes findings, separate consumers decide action. Open validation requests, no semantic expected-answer oracle; no product change is selected. SRC-1, mcp_package/link_core/validation.py, implementation. Complete function inspected; no source-content comparison or confidence-calibration check in that function.
- Immediate return: passed, counts and typed findings.
- Later read-back: inapplicable — validator does not persist acceptance; changed wiki belongs to its consumers.
- Delegated visibility: Calling agent/operator receives result; no worker delegation.
- Selection predicate: All nonhidden Markdown plus required paths; finite fields/sections/link rules.
- Invalidation or expiry: Recomputed on next invocation; strict flag changes warning disposition.
- Activation or effect: Feeds staged rejection or post-write completion protocol, distinct force by consumer.
- Evidence limits: Structural success does not license factual claims or guarantee every sensitive value is detected.
- implementation conclusion status: wired
- operation conclusion status: uninspected
error_count = sum(1 for finding in findings if finding["severity"] == "error") warning_count = sum(1 for finding in findings if finding["severity"] == "warning") passed = error_count == 0 and (warning_count == 0 if strict else True) ---
mcp_package/link_core/validation.py
EPI-RTE-staged-disposition
Label: Staged wiki disposition
Part of: RT-RTE-structured-ingest
Separate disposition part. Endpoints/progression: caller-authorized plan → reject conflicts → stage generated outputs/log/index/backlinks → validator → reject failure or copy live files and ownership manifest. Owner: adapter enforces finite gate, caller chooses apply/options and can veto invocation. Proposed change: rendered wiki files. Guidance: plan ownership and shape validation; current hashes/manifests persist. Mode: open supported exports, no factual expected-answer oracle, no live adaptive curriculum. Caught copy exceptions restore original bytes; direct agent/file writes are different paths. SRC-1, mcp_package/link_core/structured_ingest.py, implementation. Acceptance here is structural/ownership admission, not evidence-consuming acceptance of a truth-apt claim.
- Immediate return: Applied count and validation or raised conflict/validation error.
- Later read-back: Admitted wiki and manifest reach later query/adapter invocations.
- Delegated visibility: Ordinary workspace consumers; no internal model worker.
- Selection predicate: No plan conflicts and staged passed result; explicit apply/options.
- Invalidation or expiry: Later source/output change and explicit prune; copy failure can restore originals.
- Activation or effect: Code veto before live copy wired; successful operation unobserved.
- Evidence limits: No universal pre-write wiki gate, truth oracle or crash/concurrent isolation guarantee.
- implementation conclusion status: wired
- operation conclusion status: uninspected
validation = validate_wiki(stage_wiki) if not validation.get("passed"): raise StructuredIngestError(f"staged wiki failed validation: {validation.get('findings')}") ---
mcp_package/link_core/structured_ingest.py
EPI-RTE-context-compaction
Label: Context excerpt compaction
Part of: RT-RTE-context-recall
Material transformation part of supplied retrieval, distinct from its selector and match evaluator. Endpoints/progression: selected memory summary/steps or page content → compact objects and character-limited excerpts → packet/capsule → external agent; follow-up reload remains available. Owner: deterministic budget/character rules. State: selected content, budget and provenance metadata; effect: excerpt rather than full source in initial host context. No approval or expected-answer oracle; open query requests. The host interprets the excerpt and chooses further reads. SRC-1, mcp_package/link_core/query.py, implementation.
Concrete deduction, not execution: _trim_text("Safe only locally", 10) returns Safe on... because the retained prefix is seven characters. In general a qualifier placed after the cutoff does not reach the excerpt, even though the ellipsis signals incompleteness. The inspected _compact_page passes page content and its primary/neighbor character limit to this function. Semantic preservation therefore depends on source content and cutoff; the relation is indeterminate at the whole-route level, not a warranted transformation of every claim. The example tests the helper's rules, not a claimed deployed budget or actual user page.
- Immediate return: Bounded excerpt/object with provenance and follow-up fields.
- Later read-back: inapplicable — this constructor does not retain a new content version; later source reload uses the underlying retained wiki.
- Delegated visibility: Calling host receives excerpts by value; fuller content stays outside initial context but locally reachable.
- Selection predicate: Budget-specific primary/neighbor limits and selected summaries/steps; no semantic qualifier detector.
- Invalidation or expiry: New query/budget/source yields a new packet; old host-window text is not automatically evicted.
- Activation or effect: Context exclusion and on-demand restoration capacity wired; actual host reliance unobserved.
- Evidence limits: Ellipsis/provenance do not preserve omitted qualifications; no observed fidelity or answer-benefit test.
- implementation conclusion status: wired
- operation conclusion status: uninspected
def _trim_text(value: object, max_chars: int) -> str: text = str(value or "").strip() if len(text) <= max_chars: return text return text[: max(0, max_chars - 3)].rstrip() + "..." ---
mcp_package/link_core/query.py
EPI-RTE-recall-assessment
Label: Recall match assessment
Part of: RT-RTE-context-recall
Checking part of supplied context route. Endpoints/progression: query and retrieved memory metadata/body → match confidence → top-result abstention recommendation → focused MCP JSON and external-agent guidance. Owner: lexical rule/optional semantic cap; agent decides final reliance. Target/domain: lexical query coverage or numerical closeness, not factual truth; strong result can be an exact match to a false claim. State: ranked results, confidence labels; no candidate truth mutation or acceptance. Open recall requests; no expected-answer oracle. Shared combined query is a countercase to universal first-class abstention: it uses compact review/weak-match guidance, while focused memory mode carries abstention. SRC-1, mcp_package/link_core/memory.py, mcp_package/link_mcp/server.py, mcp_package/link_core/query.py, implementation.
- Immediate return: Confidence label and recommended abstention/reason/guidance.
- Later read-back: inapplicable — result is current-turn advice, not persisted acceptance or revised policy.
- Delegated visibility: Calling host receives both advice and matching memory content.
- Selection predicate: Query token coverage and top result confidence; focused branch condition.
- Invalidation or expiry: Fresh query/record/model selection recomputes result.
- Activation or effect: Advisory cautious-use instruction; neither weak candidate removal nor final-answer enforcement.
- Evidence limits: No observed compliance or calibration; match score and review endorsement are distinct.
- implementation conclusion status: wired
- operation conclusion status: uninspected
if q and (q in title or q in tldr): return "strong" ---
mcp_package/link_core/memory.py"abstention": _core_recall_abstention(memories), ---
mcp_package/link_mcp/server.py:1414-1426"Treat matches as hints only; say the memory has nothing " "reliable on this rather than asserting from a weak match." ---
mcp_package/link_core/memory.py
EPI-RTE-path-staleness
Label: Repository path staleness
Part of: RT-RTE-context-recall
Checking/warning part of context recall newly traced beyond runtime's selection summary. Endpoints/progression: selected full memory body/context → bounded referenced-path checks and Git history/rename lookup → stale_paths on compact memory → verify/review instruction. Owner: deterministic checker and packet builder. Target/domain: a named path formerly tracked but missing now, optionally a known successor; not whether the claim remains correct. Activation condition: provided repo_root with .git, selected memories and bounded path references. Caller/agent decides review/update; code does not rewrite/archive content. Open query/check operation, no truth oracle. SRC-1, mcp_package/link_core/staleness.py, mcp_package/link_core/query.py, implementation.
- Immediate return: Removed/renamed-path findings attached to selected memories.
- Later read-back: inapplicable — findings are current-query annotations, not stored acceptance/revision.
- Delegated visibility: Agent gets stale_paths plus guidance to verify before relying.
- Selection predicate: Selected memory identities; parsed path candidates up to lookup limit; missing and formerly known paths only.
- Invalidation or expiry: Current filesystem/history/selected records change later findings.
- Activation or effect: Advisory verify/update request, not automatic rejection or withdrawal.
- Evidence limits: No general staleness conclusion from no findings; Git/history/parse limits and unobserved behavior.
- implementation conclusion status: wired
- operation conclusion status: uninspected
if (self.root / candidate).exists(): continue if not self._was_known(candidate): continue # never in the repository: prose, not a stale reference ---
mcp_package/link_core/staleness.py"A recalled memory names a repository file git no longer has " "(see its stale_paths); verify the memory against the current code " "before relying on it, and suggest the user review or update it.", ---
mcp_package/link_core/query.py
EPI-RTE-consolidation-plan
Label: Memory consolidation planning
Closest supplied RT-RTE-session-capture supplies capture backlog and RT-RTE-memory-admission supplies durable context; distinct identity is read-only planning, not either write operation. Endpoints/progression: capture/review payloads and optional merge candidates → counts, duplicate/theme groups and action commands → human/agent chooses subsequent explicit mutation. Owner: code generates plan, human chooses and may veto every action. State: payload counts, similarity helpers, survivor/absorbed claims; effect: report, no content merge. Count propositions are entailed under the payload's count/list interpretation; duplicate/theme/merge correctness is heuristic, unassessed in the unread helper bodies. Open maintenance requests/backlog prompts; no factual expected-answer oracle or automatic product successor. Guidance is review/approval safety text; rollback inapplicable for read-only planner, later writes have separate gates. SRC-1, mcp_package/link_core/consolidate.py, mcp_package/link_mcp/server.py, implementation.
- Immediate return: Read-only counts, groups, review queue and mutation commands.
- Later read-back: inapplicable — this planner writes no durable content or policy; subsequent chosen writes are separate.
- Delegated visibility: Caller/human sees proposals through terminal or MCP JSON.
- Selection predicate: Provided capture/review payloads, helper groups and optional merge candidates.
- Invalidation or expiry: Recomputed on new backlog; no plan expiry or automatic application.
- Activation or effect: Advisory plan; human-approved commands may later change context.
- Evidence limits: No observed semantic merge correctness, criticism-led iteration or improvement; grouping helpers not fully read.
- implementation conclusion status: wired
- operation conclusion status: uninspected
"safety": ( "Read-only plan. Nothing was merged, deleted, or saved. " "Run the listed commands only after the user approves each action." ), ---
mcp_package/link_core/consolidate.py
Claims
EPI-CLM-source-backed
Label: Source-backed context packet
Claimed operation: query returns compact, source-backed context for a later agent answer, rather than answering directly. Closest supplied RT-RTE-context-recall is implementation progression, not a claim declaration; RT-CLM-approved-memory concerns approval rather than source warrant. No supplied claim counterpart after comparison. SRC-1, mcp_package/link_core/query.py, doctrine/design, quoted via supplied runtime record. Its operative instruction is:
"Prefer recall-ready reviewed memories for personalization and source-backed wiki pages for factual claims.", ---
mcp_package/link_core/query.py
EPI-CLM-confidence-tags
Label: Claim confidence tags
Claimed operation: source-derived claim confidence denotes explicit statement, reasonable inference or speculation; maturity also rises with source count. These are authored labels and source-count policy, not calibrated factual probabilities. Closest supplied RT-RTE-agent-wiki describes requested authoring; distinct identity is the doctrine's claim-classification convention. No supplied claim counterpart after comparison. SRC-1, LINK.md, doctrine/design.
Tag confidence on claims:
high(explicitly stated),medium(reasonable inference),low(speculative) ---LINK.mdUpdate the
maturityfield: seed (1 source) → growing (2-3 sources) → mature (4-6 sources) → established (7+ sources) ---LINK.md
EPI-CLM-review-accuracy
Label: Human memory accuracy review
Claimed operation: the human confirms accuracy before a memory is marked reviewed, after which the typed trust window is re-armed; stale/wrong memories should be archived. Closest supplied RT-CLM-approved-memory governs initial save approval, not subsequent accuracy review; distinct decision and horizon. SRC-1, LINK.md, doctrine/design.
- After the human confirms a memory is accurate, run
python3 link.py review-memory "<name-or-title>" .. Reviewing re-arms the memory's trust window (review_after): project context stays trusted for 3 months, preferences/notes/procedures for 6, decisions and stable facts for 12. ---LINK.md
Evidenced absences
none declared in this member
Behavioral-authority paths
none declared in this member; external-agent delivery channels are see RT-BAP-agent-steering and RT-BAP-context-packet, with per-function force bounded in the ledger above.
Supplementary evidence limits
The offline evaluator's operative result is a regression exit code, not live content acceptance:
if hybrid_groups[group][metric] < baseline[metric]: print(f"REGRESSION: hybrid {group} {metric} below lexical baseline", file=sys.stderr) return 1 ---
scripts/eval_recall_quality.py
Retrieval event recording stores selected names rather than queries, outcomes or factual judgments. The usage-aware alternative is explicitly not adopted; this prevents inferring that current retrieval counts automatically adapt production query ranking. SRC-1, mcp_package/link_core/usage.py, implementation and attributed design history; mcp_package/link_core/query.py, inspected combined-query call has no salience argument. This is not an all-call-site absence assertion.
MEASURED AND NOT ADOPTED. Ranking is not usage-aware, and this is the
function that was tried. scripts/eval_salience.py splits queries by whether
the answer is a memory with retrieval history, and at every ceiling from 1
to 4 the cold half got harder to find: at ceiling 1 the hot half gained
nothing and cold still fell. The average improves, which is exactly how this
kind of change gets shipped without anyone noticing what it cost.
---
mcp_package/link_core/usage.py
This comment is attributed measurement history, not a reproduced experiment. The unread salience evaluator prevents independent assessment of that comparison. No exercised self-improvement or component effect follows.