Continuity epistemic report

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

Source-and-claim boundary

The question is whether conversation, imported content, synthesis and plugin evaluation become warranted knowledge or only operationally admitted candidates. The boundary and Source register fix SRC-1 and the whole-system functional scope. This report examines separate routes, not a system-wide knowledge-production score. No source, target code, test or service was executed. Implementation deductions below are not observed operation.

Direct inspection adds the files named below to the boundary's initial inspection. Supplied runtime records supply their own passages and are provisional wherever direct inspection refines a container into parts. No supersession is needed: the runtime's broad containers remain valid. The memory and workflow members were not supplied; comparisons are with the runtime only. Independent parametric components remain as assessed in RT-CMP-ai-client and RT-CMP-ai-evaluator: remote weights and endpoint identity are opaque, and no local training follows from retained text.

Entry point / operation SRC-1 source path Inspection basis and coverage / limit
Desktop send and saved output providers/chat-provider.tsx Supplied RT-RTE-desktop-chat; direct narrative prompt construction read. Canvas/journal/artifact factual admission semantics are not independently audited; prevents a complete negative about all workspace content.
Desktop remember / recall / forget lib/ai/memory-tools.ts, lib/db/memories.ts, lib/db/memory-db.ts Direct normalization, CRUD, schema/default and active-read inspection; EPI-RTE-key-reshaping, EPI-RTE-memory-retention, EPI-RTE-memory-withdrawal.
MCP CLI and tool registrations server/bin/cli.mjs, server/dist/server.mjs, server/tools/memory-tools.ts, server/tools/narrative-tools.ts, server/tools/lifecycle-tools.ts, server/tools/relationship-tools.ts Direct CLI import, bundle footer/registered names, source schemas and callbacks. Footer registers six modules and declares 17 tools, including learning/narrative/link/history paths. Targeted bundle inspection is not whole-bundle parity. Project/search modules inspected by scoped registration search and supplied boundary, not a full semantic audit; prevents complete MCP negative.
MCP database mutations and relations server/db/memories.ts, server/db/learnings.ts, server/db/relationships.ts Direct write/update/archive/import, observation insert and link/active-linked-read inspection; EPI-RTE-signal-retention, EPI-RTE-relation-retention.
Scheduled / manual narrative synthesis lib/ai/narrative-synthesis.ts, providers/memories-provider.tsx Direct input construction, parse fallback, save/absorption, scheduler, read-back and UI launch/manual caller inspection; narrative parts below.
Research launch, findings, gap check and completion lib/ai/research-engine.ts, providers/chat-provider.tsx Direct analyzer, fallback, gap and synthesizer construction; supplied RT-RTE-deep-research supplies launch/completion persistence.
Vault scan index and incremental update lib/vault/memory.ts Direct formatter, ranking and update inspection; EPI-RTE-vault-projection. Scanner truth/fidelity and write callers not independently audited; cannot certify the index against actual files.
Plugin RPC and foreground delivery plugin-host/src/index.ts, lib/plugins/manager.ts Supplied RT-RTE-plugin-admission and RT-CLM-plugin-controls; not re-audited here. Host registration is not demonstrated foreground prompt/tool delivery.
Threads cron, registered tools and review endpoints plugins/continuity-threads-engagement/src/ai-evaluator.ts, plugins/continuity-threads-engagement/src/cron.ts, plugins/continuity-threads-engagement/src/index.ts, plugins/continuity-threads-engagement/src/ui-server.ts Direct relevance/draft inference, threshold, ad-hoc search/draft handlers, regeneration/status/edit/select/approve paths. Scheduled and ad-hoc consumers differ.
Org event subscriptions, search and synchronization plugins/continuity-org-memory-sync/src/index.ts, plugins/continuity-org-memory-sync/src/sync-engine.ts, org-server/src/routes/memories-push.ts Scoped event/tool search and supplied RT-RTE-org-ingestion. Schema/auth/time guards do not check memory truth; intended local pull target remains mismatched. Full event production and search semantics uninspected.
Developer-agent maintenance CLAUDE.md, claude_docs/ Boundary's supplied doctrine inspection only. Separate development procedure, not in-app synthesis. No exercised criticism/revision conclusion.
Other model/web/vault/MCP tools, briefings and UI edits lib/ai/, lib/services/briefing-service.ts, components/ Runtime dispatch/boundary coverage only. Detailed evaluators and arbitrary external tool semantics unassessed; prevents a system-complete negative or inventory of every factual claim.

Excluded external provider internals, MCP clients/tools, live vaults and Threads API behavior prevent judgments of input truth, actual compliance, provider quality and live effects. Deliberately excluded historical plugin databases cannot supply route provenance. Missing registered observed runs prevents claims of exercised acceptance, reliable synthesis or benefit; missing interventions/comparisons prevents causal learning or improvement attribution. No retained candidate instance is treated as evidence that a particular route produced it.

Consequential warrant/design claims are EPI-CLM-conversation-understanding, EPI-CLM-source-groundtruth and EPI-CLM-research-quality. These are source declarations, not accepted conclusions.

Epistemic-object inventory

Object ID Candidate truth-apt content or none Claimed role Evidence source ID / local anchor Gap / limit
RT-OBJ-current-messages see record Desktop working context SRC-1 providers/chat-provider.tsx see record; no output truth oracle
EPI-OBJ-memories see record Persistent remembered statements SRC-1 lib/db/memories.ts Actual truth and authorship unobserved
EPI-OBJ-memory-source see record Source label affecting synthesis reliance SRC-1 server/tools/memory-tools.ts Caller label is not authenticated provenance
EPI-OBJ-learnings see record Observation signals SRC-1 server/db/learnings.ts Correction label does not establish a tested correction
EPI-OBJ-memory-links see record Relationship assertions SRC-1 server/db/relationships.ts Existence check is not relation validation
EPI-OBJ-narratives see record Understanding briefing SRC-1 lib/ai/narrative-synthesis.ts Semantic change and confidence calibration undetermined
EPI-OBJ-research-findings see record Findings/report candidates SRC-1 lib/ai/research-engine.ts Full source linkage is not passed to final synthesizer
EPI-OBJ-relevance-result see record Relevance assessment SRC-1 plugins/continuity-threads-engagement/src/ai-evaluator.ts Persona-fit judgment, not post truth
EPI-OBJ-draft-result see record Proposed replies SRC-1 plugins/continuity-threads-engagement/src/ai-evaluator.ts May contain claims, questions or non-truth-apt speech; no instance supplied
EPI-OBJ-vault-memory see record Vault overview SRC-1 lib/vault/memory.ts Selected excerpt, not whole vault or endorsed knowledge
RT-OBJ-plugin-session see record Session authority/registered prompts SRC-1 plugin-host/src/server.ts see record; foreground delivery unresolved

Authority-route ledger

Route ID: EPI-RTE-key-reshaping Route function: content transformation Architectural status: implemented Object/candidate ID: EPI-OBJ-memories Content/update relation: truth-apt transformation: non-ampliative reshaping Transition or check target: Caller key/value before setMemory Evaluator/condition and domain: TypeScript lowercase/trim/whitespace replacement; string domain Activation and timing: see EPI-RTE-key-reshaping; operation unobserved Possible or observed result: Normalized key and trimmed content Implemented force: see EPI-RTE-key-reshaping Epistemic authority and scope: No new factual warrant; value is retained as caller/model proposal Operational authority: Normalized identifier selects the global storage target Behavioral-authority path: see EPI-RTE-key-reshaping; horizon: Current call; durable consequences through memory writes Evidence source ID and local anchor: SRC-1 lib/ai/memory-tools.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-key-reshaping Gap/limit: see EPI-RTE-key-reshaping

Route ID: EPI-RTE-memory-retention Route function: retention Architectural status: implemented Object/candidate ID: EPI-OBJ-memories, EPI-OBJ-memory-source Content/update relation: truth-apt transformation: acquisition/import Transition or check target: Proposed memory statement and source metadata Evaluator/condition and domain: Desktop string checks; MCP schema/enums and DB CRUD; storage domain Activation and timing: see EPI-RTE-memory-retention; operation unobserved Possible or observed result: Created/updated/versioned row; import transaction or error Implemented force: see EPI-RTE-memory-retention Epistemic authority and scope: Imported source warrant unknown; versioning is not acceptance Operational authority: Makes candidate eligible for later active retrieval Behavioral-authority path: see EPI-RTE-memory-retention; horizon: Across later sends/MCP requests until archive or replacement Evidence source ID and local anchor: SRC-1 server/db/memories.ts (implementation) Claim IDs: EPI-CLM-source-groundtruth Mismatch marker: see EPI-RTE-memory-retention Gap/limit: see EPI-RTE-memory-retention

Route ID: EPI-RTE-memory-withdrawal Route function: disposition/acceptance Architectural status: implemented Object/candidate ID: EPI-OBJ-memories Content/update relation: no content change Transition or check target: Eligibility of a stored memory for active reads Evaluator/condition and domain: Caller/model forget request and archival SQL; active-row domain Activation and timing: see EPI-RTE-memory-withdrawal; operation unobserved Possible or observed result: Archived row excluded from inspected active memory reads Implemented force: see EPI-RTE-memory-withdrawal Epistemic authority and scope: No judgment that content is false; withholding active use only Operational authority: Stops direct active recall/context selection, not every derivative Behavioral-authority path: see EPI-RTE-memory-withdrawal; horizon: Later active reads; old narratives/history can outlive archival Evidence source ID and local anchor: SRC-1 lib/db/memories.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-memory-withdrawal Gap/limit: see EPI-RTE-memory-withdrawal

Route ID: EPI-RTE-signal-retention Route function: retention Architectural status: implemented Object/candidate ID: EPI-OBJ-learnings Content/update relation: truth-apt transformation: acquisition/import Transition or check target: Caller observation about user/preferences/patterns Evaluator/condition and domain: MCP enum/range schema then SQL insert; record-shape domain Activation and timing: see EPI-RTE-signal-retention; operation unobserved Possible or observed result: Pending learning row with optional source ids and confidence Implemented force: see EPI-RTE-signal-retention Epistemic authority and scope: Imported observation warrant unknown; label correction is not criticism evidence Operational authority: Pending signals can trigger and supply later synthesis Behavioral-authority path: see EPI-RTE-signal-retention; horizon: Until absorbed; observations persist for list/display Evidence source ID and local anchor: SRC-1 server/db/learnings.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-signal-retention Gap/limit: see EPI-RTE-signal-retention

Route ID: EPI-RTE-relation-retention Route function: retention Architectural status: implemented Object/candidate ID: EPI-OBJ-memory-links Content/update relation: truth-apt transformation: acquisition/import Transition or check target: Caller claim that two memories contradict/supersede/depend on one another Evaluator/condition and domain: Endpoint-existence SQL and uniqueness constraint; identifier domain Activation and timing: see EPI-RTE-relation-retention; operation unobserved Possible or observed result: Stored typed edge or error Implemented force: see EPI-RTE-relation-retention Epistemic authority and scope: Only endpoints/existing edge constraints checked; relation truth unknown Operational authority: Linked-memory query exposes edge and active counterpart Behavioral-authority path: see EPI-RTE-relation-retention; horizon: Later MCP/UI link reads Evidence source ID and local anchor: SRC-1 server/db/relationships.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-relation-retention Gap/limit: see EPI-RTE-relation-retention

Route ID: EPI-RTE-narrative-generation Route function: content transformation Architectural status: implemented Object/candidate ID: EPI-OBJ-narratives Content/update relation: truth-apt transformation: indeterminate Transition or check target: Memories, pending signals and prior narrative to new briefing Evaluator/condition and domain: Configured AIClient under synthesis instructions; user-model domain Activation and timing: see EPI-RTE-narrative-generation; operation unobserved Possible or observed result: Candidate JSON/text narrative and self-assigned confidence Implemented force: see EPI-RTE-narrative-generation Epistemic authority and scope: No added warrant merely from model synthesis; inherited warrant unknown Operational authority: Proposes future system-message context Behavioral-authority path: see EPI-RTE-narrative-generation; horizon: Current synthesis; candidate may persist across sessions Evidence source ID and local anchor: SRC-1 lib/ai/narrative-synthesis.ts (implementation) Claim IDs: EPI-CLM-source-groundtruth Mismatch marker: see EPI-RTE-narrative-generation Gap/limit: see EPI-RTE-narrative-generation

Route ID: EPI-RTE-narrative-format Route function: check/evidence production Architectural status: implemented Object/candidate ID: EPI-OBJ-narratives Content/update relation: no content change Transition or check target: Response syntax as JSON, not propositions about user Evaluator/condition and domain: JSON.parse after optional fence stripping; syntax domain Activation and timing: see EPI-RTE-narrative-format; operation unobserved Possible or observed result: Parsed value or exception, followed by raw-text fallback Implemented force: see EPI-RTE-narrative-format Epistemic authority and scope: Syntactic parse license only; neither structure assertion nor factual acceptance Operational authority: Parse failure does not block all narrative admission Behavioral-authority path: see EPI-RTE-narrative-format; horizon: Current synthesis Evidence source ID and local anchor: SRC-1 lib/ai/narrative-synthesis.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-narrative-format Gap/limit: see EPI-RTE-narrative-format

Route ID: EPI-RTE-narrative-retention Route function: retention Architectural status: implemented Object/candidate ID: EPI-OBJ-narratives, EPI-OBJ-learnings Content/update relation: no content change Transition or check target: Generated/parsed/fallback content to narrative row Evaluator/condition and domain: App SQL save after model call; no evidenced factual acceptance criterion Activation and timing: see EPI-RTE-narrative-retention; operation unobserved Possible or observed result: Versioned current briefing saved; pending learning flags set absorbed Implemented force: see EPI-RTE-narrative-retention Epistemic authority and scope: Retention grants no epistemic acceptance; confidence is generated/capped Operational authority: Makes current content available for later prompt and next synthesis Behavioral-authority path: see EPI-RTE-narrative-retention; horizon: Across sessions until subsequent update Evidence source ID and local anchor: SRC-1 lib/ai/narrative-synthesis.ts (implementation) Claim IDs: EPI-CLM-source-groundtruth Mismatch marker: see EPI-RTE-narrative-retention Gap/limit: see EPI-RTE-narrative-retention

Route ID: EPI-RTE-narrative-consumption Route function: operational admission/selection/consumption Architectural status: implemented Object/candidate ID: EPI-OBJ-narratives Content/update relation: no content change Transition or check target: Current narrative content and confidence metadata Evaluator/condition and domain: App read/prompt construction; presence predicate, not truth evaluation Activation and timing: see EPI-RTE-narrative-consumption; operation unobserved Possible or observed result: What I Know About You section in system message, or omission on failure Implemented force: see EPI-RTE-narrative-consumption Epistemic authority and scope: Operational context, not certified knowledge; confidence label is not measured accuracy Operational authority: May guide model response/tool proposals before another check Behavioral-authority path: see EPI-RTE-narrative-consumption; horizon: Current send and repeated later sends Evidence source ID and local anchor: SRC-1 providers/chat-provider.tsx (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-narrative-consumption Gap/limit: see EPI-RTE-narrative-consumption

Route ID: EPI-RTE-research-findings Route function: content transformation Architectural status: implemented Object/candidate ID: EPI-OBJ-research-findings Content/update relation: truth-apt transformation: indeterminate Transition or check target: Search/source findings to final report/summary Evaluator/condition and domain: External search/provider plus configured AIClient; open research domain Activation and timing: see EPI-RTE-research-findings; operation unobserved Possible or observed result: Findings, report and summary, including fallback excerpts Implemented force: see EPI-RTE-research-findings Epistemic authority and scope: Acquired source warrant unknown; model-generated claim warrant unestablished Operational authority: Completion can persist report/summary without per-content review Behavioral-authority path: see EPI-RTE-research-findings; horizon: Current pipeline; retained report/summary later available Evidence source ID and local anchor: SRC-1 lib/ai/research-engine.ts (implementation) Claim IDs: EPI-CLM-research-quality Mismatch marker: see EPI-RTE-research-findings Gap/limit: see EPI-RTE-research-findings

Route ID: EPI-RTE-research-gap Route function: check/evidence production Architectural status: implemented Object/candidate ID: EPI-OBJ-research-findings Content/update relation: no content change Transition or check target: Coverage of current question by findings so far Evaluator/condition and domain: AIClient with question, 200-character finding prefixes and investigated-question statuses; adequacy domain Activation and timing: see EPI-RTE-research-gap; operation unobserved Possible or observed result: shouldContinue and optional follow-up questions or parse failure Implemented force: see EPI-RTE-research-gap Epistemic authority and scope: Candidate adequacy judgment only; not factual verification of findings Operational authority: Supplies continuation selector, not acceptance certificate Behavioral-authority path: see EPI-RTE-research-gap; horizon: Current research round Evidence source ID and local anchor: SRC-1 lib/ai/research-engine.ts (implementation) Claim IDs: EPI-CLM-research-quality Mismatch marker: see EPI-RTE-research-gap Gap/limit: see EPI-RTE-research-gap

Route ID: EPI-RTE-research-continuation Route function: disposition/acceptance Architectural status: implemented Object/candidate ID: EPI-OBJ-research-findings Content/update relation: no content change Transition or check target: Next research round versus synthesis Evaluator/condition and domain: Code consumes shouldContinue, follow-up presence and bounds; continuation domain Activation and timing: see EPI-RTE-research-continuation; operation unobserved Possible or observed result: Up to three follow-ups or exit to synthesis; failed gap check also exits Implemented force: see EPI-RTE-research-continuation Epistemic authority and scope: Permission to proceed, not acceptance of report claims Operational authority: Schedules more source work or permits synthesis without successful review Behavioral-authority path: see EPI-RTE-research-continuation; horizon: Current pipeline rounds Evidence source ID and local anchor: SRC-1 lib/ai/research-engine.ts (implementation) Claim IDs: EPI-CLM-research-quality Mismatch marker: see EPI-RTE-research-continuation Gap/limit: see EPI-RTE-research-continuation

Route ID: EPI-RTE-threads-relevance Route function: check/evidence production Architectural status: implemented Object/candidate ID: EPI-OBJ-relevance-result Content/update relation: no content change Transition or check target: Relevance/authentic engagement opportunity of supplied posts for persona/topics Evaluator/condition and domain: AIEvaluator remote model then JSON.parse; persona-fit domain Activation and timing: see EPI-RTE-threads-relevance; operation unobserved Possible or observed result: Post-id score/reason array; parse exception returns [] Implemented force: see EPI-RTE-threads-relevance Epistemic authority and scope: Judgment of fit only, not factual correctness, mechanism or transfer Operational authority: Scores feed cron threshold; ad-hoc search returns scores as advice Behavioral-authority path: see EPI-RTE-threads-relevance; horizon: Current scan or ad-hoc request Evidence source ID and local anchor: SRC-1 plugins/continuity-threads-engagement/src/ai-evaluator.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-threads-relevance Gap/limit: see EPI-RTE-threads-relevance

Route ID: EPI-RTE-threads-selection Route function: disposition/acceptance Architectural status: implemented Object/candidate ID: EPI-OBJ-relevance-result Content/update relation: no content change Transition or check target: Which new posts enter stored review/draft work queue Evaluator/condition and domain: Code scoreMap lookup and configured threshold; selection domain Activation and timing: see EPI-RTE-threads-selection; operation unobserved Possible or observed result: Qualifying stored posts; others not admitted this scan Implemented force: see EPI-RTE-threads-selection Epistemic authority and scope: Operational relevance admission, not acceptance of factual claims Operational authority: Permits draft generation for above-threshold posts Behavioral-authority path: see EPI-RTE-threads-selection; horizon: Current scan with persisted qualifying results Evidence source ID and local anchor: SRC-1 plugins/continuity-threads-engagement/src/cron.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-threads-selection Gap/limit: see EPI-RTE-threads-selection

Route ID: EPI-RTE-threads-drafting Route function: content transformation Architectural status: implemented Object/candidate ID: EPI-OBJ-draft-result Content/update relation: truth-apt transformation: indeterminate Transition or check target: Post/persona to candidate reply text Evaluator/condition and domain: AIEvaluator under concise/authentic/value instructions; reply-content domain Activation and timing: see EPI-RTE-threads-drafting; operation unobserved Possible or observed result: Two parsed options or []; ad-hoc single raw reply Implemented force: see EPI-RTE-threads-drafting Epistemic authority and scope: Questions/policies may be non-truth-apt; factual reply claims remain unwarranted candidates Operational authority: Supplies text for review or ad-hoc tool return Behavioral-authority path: see EPI-RTE-threads-drafting; horizon: Current call; cron candidates may persist Evidence source ID and local anchor: SRC-1 plugins/continuity-threads-engagement/src/ai-evaluator.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-threads-drafting Gap/limit: see EPI-RTE-threads-drafting

Route ID: EPI-RTE-threads-retention Route function: retention Architectural status: implemented Object/candidate ID: EPI-OBJ-draft-result Content/update relation: no content change Transition or check target: Generated reply text to plugin-local draft rows Evaluator/condition and domain: Code insertion after draft generation; storage domain Activation and timing: see EPI-RTE-threads-retention; operation unobserved Possible or observed result: Stored drafts and drafted status Implemented force: see EPI-RTE-threads-retention Epistemic authority and scope: Candidate storage, not epistemic acceptance Operational authority: Makes draft selectable/editable/postable later Behavioral-authority path: see EPI-RTE-threads-retention; horizon: Across review requests until regeneration/deletion Evidence source ID and local anchor: SRC-1 plugins/continuity-threads-engagement/src/cron.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-threads-retention Gap/limit: see EPI-RTE-threads-retention

Route ID: EPI-RTE-threads-publication Route function: disposition/acceptance Architectural status: implemented Object/candidate ID: EPI-OBJ-draft-result Content/update relation: no content change Transition or check target: Selected/first draft for remote posting Evaluator/condition and domain: HTTP caller plus post/draft/config availability checks; publication domain Activation and timing: see EPI-RTE-threads-publication; operation unobserved Possible or observed result: Remote reply id/posted record or failed engagement Implemented force: see EPI-RTE-threads-publication Epistemic authority and scope: Permission to publish only; endpoint result does not certify truth or authenticated human acceptance Operational authority: Calls Threads API; records replied on success Behavioral-authority path: see EPI-RTE-threads-publication; horizon: Current request and durable external/local effects Evidence source ID and local anchor: SRC-1 plugins/continuity-threads-engagement/src/ui-server.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-threads-publication Gap/limit: see EPI-RTE-threads-publication

Route ID: EPI-RTE-vault-projection Route function: content transformation Architectural status: implemented Object/candidate ID: EPI-OBJ-vault-memory Content/update relation: truth-apt transformation: non-ampliative reshaping Transition or check target: Scanner metadata/excerpts to stored vault overview Evaluator/condition and domain: Code formatter/heuristic ranker; scan-summary domain Activation and timing: see EPI-RTE-vault-projection; operation unobserved Possible or observed result: Subset of folders/files with truncated excerpts and counts Implemented force: see EPI-RTE-vault-projection Epistemic authority and scope: Warrant no stronger than supplied scan; importance heuristic not truth test Operational authority: Provides high-level memory context and replaces index after scan/update Behavioral-authority path: see EPI-RTE-vault-projection; horizon: Retained until rescan or incremental write Evidence source ID and local anchor: SRC-1 lib/vault/memory.ts (implementation) Claim IDs: none Mismatch marker: see EPI-RTE-vault-projection Gap/limit: see EPI-RTE-vault-projection

Route ID: EPI-RTE-provider-acquisition Route function: content transformation Architectural status: implemented Object/candidate ID: EPI-OBJ-research-findings Content/update relation: truth-apt transformation: acquisition/import Transition or check target: external Perplexity answer to findings Evaluator/condition and domain: see EPI-RTE-provider-acquisition Activation and timing: see EPI-RTE-provider-acquisition Possible or observed result: see EPI-RTE-provider-acquisition Implemented force: see EPI-RTE-provider-acquisition Epistemic authority and scope: imported source warrant unknown; fixed high label adds no warrant Operational authority: see EPI-RTE-provider-acquisition Behavioral-authority path: see EPI-RTE-provider-acquisition Evidence source ID and local anchor: SRC-1 lib/ai/research-engine.ts Claim IDs: EPI-CLM-research-quality Mismatch marker: high confidence assigned without a local factual evaluator Gap/limit: external answer correctness and actual returned answer unobserved

Route ID: EPI-RTE-excerpt-fallback Route function: content transformation Architectural status: implemented Object/candidate ID: EPI-OBJ-research-findings Content/update relation: truth-apt transformation: non-ampliative reshaping Transition or check target: read-source prefix to findings after analyzer failure Evaluator/condition and domain: see EPI-RTE-excerpt-fallback Activation and timing: see EPI-RTE-excerpt-fallback Possible or observed result: see EPI-RTE-excerpt-fallback Implemented force: see EPI-RTE-excerpt-fallback Epistemic authority and scope: acquired excerpt retains only unknown external-source warrant; truncation can degrade interpretability Operational authority: see EPI-RTE-excerpt-fallback Behavioral-authority path: see EPI-RTE-excerpt-fallback Evidence source ID and local anchor: SRC-1 lib/ai/research-engine.ts Claim IDs: EPI-CLM-research-quality Mismatch marker: low confidence fallback still enters findings pipeline Gap/limit: no guarantee that a character prefix preserves qualifications or a whole claim

The remaining supplied material routes are not recast as new declarations:

Route ID: RT-RTE-org-ingestion Route function: operational admission/selection/consumption Architectural status: implemented Object/candidate ID: see RT-RTE-org-ingestion Content/update relation: truth-apt transformation: acquisition/import Transition or check target: schema/auth/timestamp admission, not memory truth Evaluator/condition and domain: see RT-RTE-org-ingestion Activation and timing: see RT-RTE-org-ingestion Possible or observed result: see RT-RTE-org-ingestion Implemented force: see RT-RTE-org-ingestion Epistemic authority and scope: imported source warrant unknown Operational authority: see RT-RTE-org-ingestion Behavioral-authority path: see RT-RTE-org-ingestion Evidence source ID and local anchor: SRC-1 org-server/src/routes/memories-push.ts Claim IDs: none Mismatch marker: intended memory.db pull versus SDK default app target; see record Gap/limit: no observed roundtrip; incomplete event/search inspection

Route ID: RT-RTE-plugin-admission Route function: operational admission/selection/consumption Architectural status: implemented Object/candidate ID: see RT-OBJ-plugin-session Content/update relation: non-truth-apt policy/content update: capability/session registration Transition or check target: process/session access, not prompt truth Evaluator/condition and domain: see RT-RTE-plugin-admission Activation and timing: see RT-RTE-plugin-admission Possible or observed result: see RT-RTE-plugin-admission Implemented force: see RT-RTE-plugin-admission Epistemic authority and scope: no factual license from token/capability admission Operational authority: see RT-RTE-plugin-admission Behavioral-authority path: see RT-BAP-plugin-capabilities Evidence source ID and local anchor: SRC-1 plugin-host/src/index.ts Claim IDs: RT-CLM-plugin-controls Mismatch marker: foreground delivery not established by host registration Gap/limit: enabled process and installed bundle operation unobserved

System-claim versus route comparison

Claim ID Claimed operation/warrant Source ID/anchor and layer Doctrine/design support Implemented routes Observed-run support Causal support/design limits Supported conclusion Mismatch/unknown
EPI-CLM-conversation-understanding see record SRC-1 README.md; doctrine/design see record RT-RTE-desktop-chat, EPI-RTE-narrative-generation, EPI-RTE-narrative-consumption None registered No interventions or criterion-based truth/understanding evaluation Model-mediated structure/context production is implemented Understanding and dependable automatic extraction are not established by these routes
EPI-CLM-source-groundtruth see record SRC-1 lib/ai/narrative-synthesis.ts; doctrine/design see record EPI-RTE-memory-retention, EPI-RTE-narrative-generation, EPI-RTE-narrative-retention None registered No source authenticity/claim verification; parse fallback can lose preserved learning sections Instructions distinguish user-set claims and AI hypotheses Caller-set/inherited source labels cannot establish ground truth; contradiction rule is requested, not enforced
EPI-CLM-research-quality see record SRC-1 lib/ai/research-engine.ts; doctrine/design see record EPI-RTE-research-findings, EPI-RTE-research-gap, EPI-RTE-research-continuation None registered No reference answers, factual audit or comparative outcome; lossy evidence delivery Adequacy review and follow-up work selection are wired Adequacy judgment and citation-form instructions do not license factual accuracy or citation fidelity

Bounded conclusion

Continuity implements several consequential candidate routes. EPI-RTE-memory-retention, EPI-RTE-signal-retention and EPI-RTE-relation-retention acquire caller/model statements with unknown source warrant. String/schema/id checks license storage and retrieval, not truth. Archival EPI-RTE-memory-withdrawal removes direct active selection but does not establish derivative withdrawal from narrative/history. Relationship labels organize assertions; they are not validated criticism or accepted-claim integration.

EPI-RTE-key-reshaping and the scan formatter in EPI-RTE-vault-projection deterministically reshape content under inspected rules. They add no empirical warrant. There is no established entailed factual derivation from warranted premises in these assessed routes. Narrative/research/reply model transformations remain separately indeterminate without actual premises/output traces: inference guidance is not evidence of produced ampliative claims, and retained candidates do not establish acceptance.

EPI-RTE-narrative-format checks syntax only. EPI-RTE-narrative-retention admits even fallback text and marks signals absorbed; EPI-RTE-narrative-consumption then supplies narrative content and self-assigned confidence in the next system message. This is a wired, advisory/model-interpreted behavioral-authority path across sessions, without a demonstrated evidence-consuming acceptance criterion. It is not lifecycle integration after established acceptance. Prior-content preservation and source-groundtruth claims remain unsupported at their enforcement points.

EPI-RTE-research-gap judges coverage over abbreviated findings. EPI-RTE-research-continuation consumes that result to schedule work or proceed to synthesis, including after failed review. Its authority is pipeline continuation, not fact certification. EPI-RTE-threads-relevance assesses persona fit; EPI-RTE-threads-selection enforces a score threshold for an engagement queue. Neither result checks reply/post truth. EPI-RTE-threads-publication licenses external posting via endpoint availability, not authenticated human factual acceptance; status rejection does not enforce a veto in that endpoint. These are different targets, domains and forces, not one evaluator.

Plugin capability admission and org timestamp conflict resolution are direct symbolic policy changes/selection without a truth-apt acceptance route. They can govern access or overwrite eligibility, but cannot upgrade content warrant. The org pull database target and plugin foreground-delivery gaps bound claimed later consumption independently of content quality.

No exercised learning, reflective criticism, autonomous theory-building or self-improvement follows from the named writes alone. The inspected prompts represent the user/research subject, not demonstrated criticism of Continuity's own method against operation records. Possible behavior-shaping narrative adaptation is retained and deliverable, but no operation trace establishes activation or improved capacity. This is a local limit on these evidence paths, not a negative about opaque model processes or all shipped operations. Unassessed available paths prevent a system-complete negative about knowledge production or acceptance. No global epistemic score follows.

Shared records

Components

none declared in this member; the distributed-parametric components are RT-CMP-ai-client and RT-CMP-ai-evaluator.

Operative objects

EPI-OBJ-memories

Label: Memory statement content

Part of: RT-RTE-memory-admission

Natural-language memory content is stored in SQLite memory.db rows and consumed by recall/context/synthesis. Candidate truth-apt content includes user preferences, project facts, patterns and constraints over the stated user/project scope; actual truth cannot be determined without instances/evidence. This object is the content-bearing part of the supplied admission route (different kind because the route owns production/persistence, not content identity). SRC-1 lib/db/memories.ts (implementation).

[generateId(), id, content, "continuity-app", now] --- lib/db/memories.ts

EPI-OBJ-memory-source

Label: Memory source authority label

Part of: RT-RTE-memory-admission

Symbolic source enum in a SQLite row; caller-provided/default/inherited label is converted to natural-language source framing in synthesis. This is distinct from memory text because its consumer assigns epistemic treatment. It asserts provenance category, not verified authorship. It is the metadata part admitted by the supplied runtime route. SRC-1 server/tools/memory-tools.ts (implementation).

source: MemorySourceEnum.optional().describe("Who wrote this: 'user' (explicit preference), 'ai' (inferred), 'system' (automated)"), --- server/tools/memory-tools.ts

EPI-OBJ-learnings

Label: Learning observations and absorption state

Part of: RT-RTE-memory-admission

Natural-language observation and symbolic signal_type/confidence/optional source ids/absorption flag reside in memory.db. Observation is truth-apt about preferences/patterns; flags control selection, not truth. Separate operative parts are described here: text supplies synthesis content; flag/count supplies scheduling and pending eligibility. This is the learning input part of the supplied admission container. SRC-1 server/db/learnings.ts (implementation).

source_thread_id = null, source_message_id = null, --- server/db/learnings.ts

Label: Memory relationship assertions

Symbolic typed edges and endpoint identifiers reside in SQLite memory_links; caller relation can assert truth-apt contradiction, dependence or supersession over the endpoint claims. Fixed query rules expose edges and active counterparts; relation names are not automatically interpreted as warrants. No counterpart in supplied runtime declarations: distinct from content persistence, although endpoints refer to its memories. SRC-1 server/db/relationships.ts (implementation).

const { memory_id_a, memory_id_b, relationship_type = "related" } = params; --- server/db/relationships.ts

EPI-OBJ-narratives

Label: Narrative briefing and structured learning sections

Part of: RT-RTE-memory-admission

Natural-language user briefing/insights in SQLite narratives.content and JSON sections; symbolic version/confidence/hash accompany it. Briefing and structured learnings have different readers: foreground gets content plus metadata, subsequent synthesis gets prior content plus prior learning sections. They can differ after fallback. Truth-apt candidate claims concern user/work/projects; no concrete candidate trace is supplied. This is the saved-output part of runtime admission. SRC-1 lib/ai/narrative-synthesis.ts (implementation).

Math.min(result.confidence, 0.95), --- lib/ai/narrative-synthesis.ts:274-274

EPI-OBJ-research-findings

Label: Research findings and report candidates

Part of: RT-RTE-deep-research

Natural-language findings/report/summary and symbolic sourceUrl/confidence/subquestion ids reside in JS working structures; canvas/message persistence belongs to the runtime callback. Different consumers receive 200-character findings for gap review and 300-character findings for synthesis, plus separate source metadata. Findings may assert truth-apt claims about researched subject; external or generated provenance differs by branch. This is the work-product part of the supplied pipeline. SRC-1 lib/ai/research-engine.ts (implementation).

confidence: "high", --- lib/ai/research-engine.ts

EPI-OBJ-relevance-result

Label: RelevanceResult score and rationale

Part of: RT-RTE-threads-engagement

Symbolic postId/score plus natural-language reason in JS parsed array; qualifying results are stored in plugin SQLite posts. Fit-to-persona/topic is the assessment target, not post truth. Rationale may express truth-apt relevance judgments but no verified reference labels are supplied. This is the assessment-result part of the runtime Threads route; model identity stays in RT-CMP-ai-evaluator. SRC-1 plugins/continuity-threads-engagement/src/ai-evaluator.ts (implementation).

export interface RelevanceResult { postId: string; score: number; reason: string; } --- plugins/continuity-threads-engagement/src/ai-evaluator.ts

EPI-OBJ-draft-result

Label: DraftResult reply text

Part of: RT-RTE-threads-engagement

Natural-language reply options reside in JS strings, then plugin-local SQLite drafts for scheduled/regenerated candidates. Ad-hoc single-reply path returns directly. No supplied instance individuates factual claims; questions and non-truth-apt speech are possible. This is a different content part than scoring because its later consumer can publish text. SRC-1 plugins/continuity-threads-engagement/src/ai-evaluator.ts (implementation).

export interface DraftResult { drafts: string[]; } --- plugins/continuity-threads-engagement/src/ai-evaluator.ts

EPI-OBJ-vault-memory

Label: VaultMemory formatted overview

Natural-language overview with symbolic paths/count/date metadata is stored as a global memory string at obsidian_vault_index. Counts/paths/excerpts are truth-apt about the supplied scan, with unverified scan-to-files fidelity. Projection and incremental updater own its changes. Distinct identity compared with runtime desktop/memory routes: producer is vault scan/write logic rather than conversation or MCP caller, although downstream delivery overlaps. SRC-1 lib/vault/memory.ts (implementation).

const VAULT_MEMORY_KEY = "obsidian_vault_index"; --- lib/vault/memory.ts

Routes

EPI-RTE-key-reshaping

Label: Desktop key and value normalization

Part of: RT-RTE-memory-admission

For concrete input key " Work Style " and value " Prefers short answers ", inspected code passes work_style and Prefers short answers to setMemory. This is an implementation deduction, not a run. Distinct keys differing only in case/spacing can collapse; value trimming does not entail truth. Nonempty checks concern strings, not preferences. Model proposes via tool choice; code decides validity; there is no reference answer or per-content human veto. SRC-1 lib/ai/memory-tools.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Normalized remembered text after persistence
  • Later read-back: Via stored content, not the transient normalization result
  • Delegated visibility: Executor receives key/value, not full user history
  • Selection predicate: Nonempty trimmed key/value; default type context
  • Invalidation or expiry: Per-call input expires; canonical key may overwrite existing slot
  • Activation or effect: Canonical storage address/content passed to setMemory
  • Evidence limits: No run; semantic truth/identifier intent is not checked

Behavioral-authority path: consumer: setMemory; channel: normalized string arguments; force: enforcing storage-address selection, not enforcing truth; horizon: this write and later reads of the canonical slot. Epistemic license: No new factual warrant; value is retained as caller/model proposal.

// Normalize the key (lowercase, underscores for spaces) const normalizedKey = args.key .toLowerCase() .trim() .replace(/\s+/g, "_"); --- lib/ai/memory-tools.ts

EPI-RTE-memory-retention

Label: Desktop and MCP candidate persistence

Part of: RT-RTE-memory-admission

Desktop model or MCP caller proposes; code admits. MCP source is caller supplied, defaults ai; desktop insertion omits source and inherits ai, while update retains existing source. Therefore a desktop model update of a preexisting user-labeled row leaves that label attached to changed content. This is a counterexample to treating source=user as guaranteed human authorship. MCP write can unarchive an existing matching row. Version history offers inspection, not an automatic truth rollback. No answer oracle or content approval criterion is present in these inspected mutations. SRC-1 server/db/memories.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Stored row/JSON or tool error
  • Later read-back: Active records reach recall/system context; MCP readers return requested rows
  • Delegated visibility: Database executor receives content and metadata
  • Selection predicate: Desktop canonical key/global scope; MCP key+scope+project upsert
  • Invalidation or expiry: Replacement/version bump; MCP upsert clears archived_at
  • Activation or effect: Candidate retention and later delivery are wired, activation unobserved
  • Evidence limits: No source truth verification or live shared-database proof

Behavioral-authority path: consumers: active memory queries, recall executor and configured model via rebuilt system context; channel: memory.db row to tool result or prompt; force: permissive retrieval eligibility and advisory natural-language context; horizon: later requests/sends until archive or replacement. Epistemic license: Imported source warrant unknown; versioning is not acceptance.

source = "ai", --- server/db/memories.ts

EPI-RTE-memory-withdrawal

Label: Memory archival changes active selection

Part of: RT-RTE-memory-admission

Caller or model requests withdrawal; code archives, rather than erases. No evidence-consuming rejection criterion is supplied. Counterexample to complete forgetting: narrative gathering excludes archived rows but feeds previous narrative and asks to preserve all previous learnings. Scheduler also requires active memories and does not necessarily run just because an item was archived. Thus archiving does not establish withdrawal of the same claim from already generated narrative or saved chat. MCP write can revive an archived slot; desktop getMemory only finds active slots. SRC-1 lib/db/memories.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Archived acknowledgment or missing-key response
  • Later read-back: Active recall excludes row; version history remains independently readable
  • Delegated visibility: Executor receives identifier only
  • Selection predicate: Existing active desktop key or MCP id
  • Invalidation or expiry: Archival changes eligibility; later writes may reintroduce content
  • Activation or effect: Direct active memory exclusion is wired; derivative removal is not established
  • Evidence limits: No universal erasure or epistemic falsification follows

Behavioral-authority path: consumers: getMemory/getAllMemories/searchMemories and synthesis memory selection; channel: archived_at SQL predicates; force: enforcing exclusion from these active reads; horizon: later active requests, not already generated narrative/history. Epistemic license: No judgment that content is false; withholding active use only.

UPDATE memories SET archived_at = $1 WHERE key = $2 AND scope = $3 AND project_id IS NULL, --- lib/db/memories.ts

EPI-RTE-signal-retention

Label: MCP learning observation admission

Part of: RT-RTE-memory-admission

MCP caller proposes observation, signal_type and optional provenance. Code stores with default confidence 0.5; no check dereferences thread/message evidence or adjudicates observation truth in the inspected insert. Starting or requesting the call is not per-content human approval. No answer oracle; open input recording. Absorption is bookkeeping, not accepted knowledge or improved capacity. SRC-1 server/db/learnings.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Learning row and pending count
  • Later read-back: Unabsorbed rows enter synthesis; list returns retained observations
  • Delegated visibility: Insert sees observation/labels and optional source identifiers
  • Selection predicate: Scope/project and pending predicate select synthesis inputs
  • Invalidation or expiry: Absorption flag removes from next pending set, not deletion
  • Activation or effect: Observation persistence can affect next narrative construction
  • Evidence limits: No evidence of actual conversational extraction or calibrated confidence

Behavioral-authority path: consumers: checkAndSynthesize and synthesizeNarrative; channel: pending count and observation rows; force: permissive scheduling and advisory model input; horizon: future synthesis until absorption, with retained observations still listable. Epistemic license: Imported observation warrant unknown; label correction is not criticism evidence.

confidence = 0.5, --- server/db/learnings.ts

EPI-RTE-relation-retention

Label: MCP relationship assertions retained

No counterpart after comparison with supplied runtime records: this is caller-selected relationship persistence, not a model evaluation or automatic withdrawal route. Caller supplies relation; code checks existence, not the asserted logical relation. A supersedes or contradicts enum does not archive either endpoint. getMemoryLinks filters the linked row by archived_at but does not interpret relation type as a reliability policy. This is organization before demonstrated acceptance, not lifecycle integration of accepted knowledge. No human-content veto/reference oracle is established. SRC-1 server/db/relationships.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Edge JSON or error
  • Later read-back: MCP and memory-browser linked-record reads expose retained edge
  • Delegated visibility: Executor sees endpoint ids and relation enum
  • Selection predicate: Existing endpoints; unique edge; active counterpart on read
  • Invalidation or expiry: Archival hides linked counterpart; edge semantics do not invalidate claims
  • Activation or effect: Inspectable organization, not automatic relation-dependent reliance
  • Evidence limits: No validated entailment/contradiction/supersession or integrated acceptance

Behavioral-authority path: consumers: memory_links_get callback and getLinkedMemories UI query; channel: memory_links join results; force: advisory relationship display, not enforcing contradiction/supersession; horizon: later linked-record requests. Epistemic license: Only endpoints/existing edge constraints checked; relation truth unknown.

if (!a) throw new Error(Memory not found: ${memory_id_a}); --- server/db/relationships.ts

EPI-RTE-narrative-generation

Label: Model synthesis of user understanding

Part of: RT-RTE-memory-admission

Prompt asks to infer patterns and evolving understanding, preserve prior learnings and adjust confidence for contradiction. Available evidence cannot establish semantic preservation, entailment or actual non-entailment of a particular output: no instance with premises/result was supplied. Remaining possibilities are reshaping, entailed derivation or ampliative conjecture; a grounded input/output trace is needed to distinguish them. Memory SQL selects all active scopes even for project synthesis, while signals/previous narrative are scoped. This is not demonstrated project-only evidence. Invocation owner is app synthesis code; model proposes text under natural-language rules, not a truth oracle. SRC-1 lib/ai/narrative-synthesis.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: AI response, then save path
  • Later read-back: Input candidate can become saved narrative; prior narrative is fed into next synthesis
  • Delegated visibility: Model receives labeled memory text, observations and previous briefing/learnings; not full source threads
  • Selection predicate: All active memories; scoped unabsorbed signals and latest scoped narrative
  • Invalidation or expiry: Snapshot comparison may suppress invocation; generated candidate replaces prior content if saved
  • Activation or effect: User model construction requested; actual content/quality unobserved
  • Evidence limits: No candidate trace, provenance verification or empirical contradiction resolution

Behavioral-authority path: consumers: response parser/save code, then next synthesis and foreground model if persisted; channel: AI response to narrative row to prompt; force: permissive automatic admission, then advisory/model-interpreted context; horizon: current synthesis and later sessions. Epistemic license: No added warrant merely from model synthesis; inherited warrant unknown.

  • If a new learning contradicts an old one, keep both but adjust confidence --- lib/ai/narrative-synthesis.ts

EPI-RTE-narrative-format

Label: Narrative JSON parsing and fallback

Part of: RT-RTE-memory-admission

Program checks parseability; type assertion is not runtime schema validation. Concrete malformed response "not-json" throws in JSON.parse; inspected catch constructs content "not-json", empty learning array and confidence 0.3, then proceeds to save. A low fallback confidence is not a rejection gate. This defeats the possible claim that invalid JSON necessarily prevents operational reliance. No target execution was needed for this deduction. SRC-1 lib/ai/narrative-synthesis.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Parsed result or caught exception
  • Later read-back: inapplicable — parse event itself is not retained for later consumer
  • Delegated visibility: Parser sees response text only
  • Selection predicate: Optional fence removal then JSON parse
  • Invalidation or expiry: Per-call result; catch generates replacement container
  • Activation or effect: Branches to parsed output or fallback, not a semantic truth decision
  • Evidence limits: No semantic schema/evidence check established by parsing

Behavioral-authority path: consumer: synthesizeNarrative catch/save branch; channel: JSON.parse result or exception; force: enforcing branch selection, not enforcing semantic acceptance; horizon: current synthesis. Epistemic license: Syntactic parse license only; neither structure assertion nor factual acceptance.

result = JSON.parse(text); --- lib/ai/narrative-synthesis.ts

EPI-RTE-narrative-retention

Label: Narrative replacement and signal absorption

Part of: RT-RTE-memory-admission

Code admits generated or fallback text automatically, then marks input signals absorbed one by one. Confidence Math.min cap limits maximum display value, not calibration or a semantic gate. Existing row is updated rather than a full narrative-version archive in this function. No transactional all-or-nothing envelope is shown around narrative write and all absorption writes. Preserve-all instruction is countered by parse fallback with learnings: [], so preservation is requested, not enforced. Manual user launch is not content approval. Exceptions/scheduler catch provide failure return, not established restoration of prior narrative. SRC-1 lib/ai/narrative-synthesis.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Boolean true after SQL steps, or thrown/caught failure
  • Later read-back: Latest narrative read and prior narrative supplied to next synthesis
  • Delegated visibility: DB receives content, serialized sections, version/confidence/hash
  • Selection predicate: Successful persistence; no minimum confidence predicate
  • Invalidation or expiry: Current row content replaced; pending flags changed
  • Activation or effect: Future model-visible candidate and scheduling state change
  • Evidence limits: No accepted claim, semantic preservation or atomic multi-step guarantee

Behavioral-authority path: consumers: getNarrativeForPrompt, subsequent synthesizeNarrative, and pending-learning scheduling queries; channel: narratives row and absorbed_into_narrative flags; force: permissive candidate supply and enforcing pending-set exclusion; horizon: across sessions until later update. Epistemic license: Retention grants no epistemic acceptance; confidence is generated/capped.

"UPDATE learnings SET absorbed_into_narrative = 1 WHERE id = $1", --- lib/ai/narrative-synthesis.ts

EPI-RTE-narrative-consumption

Label: Saved narrative to foreground system message

Part of: RT-RTE-memory-admission

Material part of runtime memory admission; its downstream authority agrees with RT-BAP-system-guidance. getNarrativeForPrompt selects nonempty content without a minimum confidence or per-claim support check. Only content/confidence/version/date, not structured sections or source thread/message evidence, are included here. The channel upgrades presentation to system context while retaining candidate warrant, not automatically epistemic authority. Delivery is wired; compliance and benefit remain unobserved. SRC-1 providers/chat-provider.tsx (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Constructed system prompt
  • Later read-back: Retained briefing supplied across sends when available
  • Delegated visibility: Foreground model receives narrative content and display metadata, not source trace
  • Selection predicate: Tauri context; nonempty latest scoped narrative; best-effort read
  • Invalidation or expiry: Per-send rebuild; latest saved content replaces earlier selection
  • Activation or effect: Natural-language advisory/contextual influence on answer/tool choice
  • Evidence limits: No observed activation; failure can omit context silently

Behavioral-authority path: consumer: configured foreground model; channel: What I Know About You section in rebuilt system message; force: advisory/model-interpreted context, not deterministic compliance; horizon: current and repeated later sends. Epistemic license: Operational context, not certified knowledge; confidence label is not measured accuracy.

"## What I Know About You", --- providers/chat-provider.tsx

EPI-RTE-research-findings

Label: Research import and candidate report construction

Part of: RT-RTE-deep-research

This route concerns the analyzer and final synthesizer's model-generated content. The adjacent imported-answer and excerpt-fallback branches are separately declared in EPI-RTE-provider-acquisition and EPI-RTE-excerpt-fallback; they do not inherit the model-transformation classification. Model inference remains indeterminate without concrete premises/output. Analyst sees up to 2000 characters per selected source; fallback uses 500. Final synthesizer sees findings sliced to 300 plus a title/URL source list, without each finding sourceUrl/confidence. It cannot be assumed to verify every citation from original excerpts. This is a counterexample to equating source presence with complete evidence delivery. Planner/generator owns proposals; callback admission is automatic; no reference answer. SRC-1 lib/ai/research-engine.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Pipeline findings then report/summary result
  • Later read-back: Completion callback stores report canvas and chat summary, per RT-RTE-deep-research
  • Delegated visibility: Analyst sees selected source excerpts; synthesizer sees shortened findings and source titles/URLs
  • Selection predicate: Source-order caps/read success; parsed model fields; Perplexity-answer and fallback branches
  • Invalidation or expiry: Cooperative cancellation and partial-result fallback; current windows discarded
  • Activation or effect: Candidate work product available through callback persistence
  • Evidence limits: Input/output trace needed to distinguish model reshaping/derivation/conjecture; external source truth unknown

Behavioral-authority path: consumers: gap reviewer, final synthesizer and desktop onComplete callback; channel: shortened finding text, final report/summary and callback result; force: advisory model evidence context and permissive automatic work-product persistence; horizon: current pipeline and later canvas/history reads. Epistemic license: Acquired source warrant unknown; model-generated claim warrant unestablished.

// Fall back to using raw source content as findings --- lib/ai/research-engine.ts

EPI-RTE-research-gap

Label: Model judgment of research sufficiency

Part of: RT-RTE-deep-research

Model judges gaps under instructions, without original source text in this invocation or a reference outcome. It is a production evaluator, not a causal experiment or known-answer benchmark. reasoning is requested but inspected consumer uses shouldContinue/followUpQuestions; unconsumed rationale is not evidence of implemented criticism-directed revision. SRC-1 lib/ai/research-engine.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Parsed adequacy judgment or exception
  • Later read-back: inapplicable — check output is used for current continuation, not saved as an independent critic record
  • Delegated visibility: Reviewer receives abbreviated findings and statuses, not original source pages
  • Selection predicate: Reached gap phase before round/read/cancellation cap
  • Invalidation or expiry: Current check expires after continuation choice
  • Activation or effect: Judgment can change further research selection
  • Evidence limits: No oracle, demonstrated truth checking or content-directed blame attribution

Behavioral-authority path: consumer: runResearch gap-result branch; channel: parsed shouldContinue/followUpQuestions; force: permissive continuation advice subject to code bounds; horizon: current round. Epistemic license: Candidate adequacy judgment only; not factual verification of findings.

const gapResponse = await aiClient.chat(gapMessages); --- lib/ai/research-engine.ts

EPI-RTE-research-continuation

Label: Gap judgment to follow-ups or synthesis

Part of: RT-RTE-deep-research

Model proposes follow-ups; code caps and decides progression. A false/missing shouldContinue, missing questions, reached budgets or parse exception can end gap checking. Catch explicitly proceeds to synthesis, so this is not enforcing mandatory successful epistemic review. No content veto or answer oracle. It may improve coverage but no learning or benefit is established. SRC-1 lib/ai/research-engine.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: New subquestions or break
  • Later read-back: inapplicable — transient continuation decisions do not independently persist; report persists by separate callback
  • Delegated visibility: Worker rounds receive selected questions/search queries
  • Selection predicate: shouldContinue plus follow-ups, max rounds/read budget/cancellation
  • Invalidation or expiry: End/cancellation discards round state; report may outlive it
  • Activation or effect: Code-selected work continuation affects current pipeline
  • Evidence limits: Stopping is not evidence-consuming acceptance of claims

Behavioral-authority path: consumers: next source-worker round or final synthesizer; channel: questionsToInvestigate or loop break; force: enforcing work selection/continuation; horizon: current pipeline rounds. Epistemic license: Permission to proceed, not acceptance of report claims.

// Gap check failed — proceed to synthesis with what we have --- lib/ai/research-engine.ts

EPI-RTE-threads-relevance

Label: Model persona-fit scoring

Part of: RT-RTE-threads-engagement

Separate consumers: cron score admission is enforcing, registered search tool formats all returned posts with scores and reasons and is advisory. The inspected parser uses a type assertion, not range/identity validation; scoring scale in prompt is not runtime calibration. The evaluator does not assess truth of post or drafted reply. Provider computation remains RT-CMP-ai-evaluator. No answer oracle or validated reference relevance label. SRC-1 plugins/continuity-threads-engagement/src/ai-evaluator.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Scores/reasons or empty array on parse failure
  • Later read-back: Scores/reasons persisted with qualifying cron posts; ad-hoc result retention depends on caller
  • Delegated visibility: Scorer sees post text/usernames plus persona/keywords
  • Selection predicate: Input post array; model-generated scores; parser success
  • Invalidation or expiry: Per-call scores; retained qualifying post metadata lasts separately
  • Activation or effect: Score data supplied to selection or advisory tool result
  • Evidence limits: No calibrated accuracy, score-range enforcement or actual tool delivery proved

Behavioral-authority path: consumers: CronScheduler scoreMap threshold and search_threads_posts formatting handler; channel: RelevanceResult array; force: ranking input to enforcing cron threshold versus advisory ad-hoc text; horizon: scan/current request, with qualifying metadata later persisted. Epistemic license: Judgment of fit only, not factual correctness, mechanism or transfer.

const parsed = JSON.parse(response) as RelevanceResult[]; --- plugins/continuity-threads-engagement/src/ai-evaluator.ts

EPI-RTE-threads-selection

Label: Cron score threshold admission

Part of: RT-RTE-threads-engagement

Model proposes relevance; code admits based on score >= threshold after prior search/dedup budgets. Empty score array leads no matches. Threshold is a criterion for intended engagement queue use only; not an evidence-consuming truth acceptance rule. User supplies persona/settings rather than reviewing each threshold decision. Rejected/unscored posts are not thereby false. SRC-1 plugins/continuity-threads-engagement/src/cron.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Qualifying-post list and stored post rows
  • Later read-back: Persisted posts and metadata reach review UI/later actions
  • Delegated visibility: Drafter receives qualifying post and persona
  • Selection predicate: Id-matched score at or above configured threshold
  • Invalidation or expiry: Later status edits change workflow metadata; not guaranteed external veto
  • Activation or effect: Conditional queue admission and draft-generation permission
  • Evidence limits: Model fit judgment cannot warrant post truth or reply safety

Behavioral-authority path: consumers: insertPost and AIEvaluator.draftReplies; channel: qualifyingPosts list; force: enforcing score-threshold queue admission; horizon: scan and later review of stored qualifying posts. Epistemic license: Operational relevance admission, not acceptance of factual claims.

if (score && score.score >= this.relevanceThreshold) { --- plugins/continuity-threads-engagement/src/cron.ts

EPI-RTE-threads-drafting

Label: Model reply candidate generation

Part of: RT-RTE-threads-engagement

No reply instance allows individuation of a proposition or proof of non-entailment. If a reply is a question it need not be truth-apt; if it asserts experience or insight, preservation/derivation/conjecture require input/output evidence. Model proposes; parse maps text fields, does not assess factual accuracy. Regenerate endpoint deletes old drafts before replacement generation; failure can therefore leave no old candidates. Direct draft tool returns one reply without this scheduled persistence/threshold. SRC-1 plugins/continuity-threads-engagement/src/ai-evaluator.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Reply options/empty list or direct single reply
  • Later read-back: Cron/regeneration store candidates; ad-hoc reply goes to invoking caller
  • Delegated visibility: Model receives post/persona and optional tone, not user experience evidence
  • Selection predicate: Qualifying cron post or endpoint/tool request
  • Invalidation or expiry: Regeneration deletes old draft rows; per-call inference context expires
  • Activation or effect: Produces candidate reply content
  • Evidence limits: No observed content, factual check or guaranteed two valid options

Behavioral-authority path: consumers: cron/regenerate draft inserter or draft_threads_reply caller; channel: returned draft strings; force: permissive candidate supply, advisory until separately selected/posted; horizon: current call and later persisted review where stored. Epistemic license: Questions/policies may be non-truth-apt; factual reply claims remain unwarranted candidates.

return { drafts: parsed.map((d) => d.text) }; --- plugins/continuity-threads-engagement/src/ai-evaluator.ts

EPI-RTE-threads-retention

Label: Draft candidates retained for review

Part of: RT-RTE-threads-engagement

Cron automatically inserts every returned draft and sets drafted status. The UI permits string edits and selected-draft choice. These operations can alter proposed content, but no observed human evidence-consuming factual acceptance is supplied. Status drafted can be set even when drafts array is empty. External post success remains separate. SRC-1 plugins/continuity-threads-engagement/src/cron.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Draft rows/status and eventual scan count
  • Later read-back: Review/read/approve endpoints fetch retained drafts
  • Delegated visibility: Persistence sees generated draft strings; later HTTP client sees candidates
  • Selection predicate: All returned options, no separate semantic criterion
  • Invalidation or expiry: Regeneration deletes old drafts; edits replace text
  • Activation or effect: Candidate availability for later review/posting
  • Evidence limits: Local persistence is source-defined; no retained database instances inspected

Behavioral-authority path: consumers: review GET/edit/select/approve handlers; channel: plugin-local drafts rows; force: permissive availability for editing/selection/publication, not factual endorsement; horizon: later review requests until regeneration/deletion. Epistemic license: Candidate storage, not epistemic acceptance.

insertDraft(post.id, result.drafts[i], i + 1); --- plugins/continuity-threads-engagement/src/cron.ts

EPI-RTE-threads-publication

Label: Review actions and endpoint-triggered publication

Part of: RT-RTE-threads-engagement

UI intends human review, but any caller reaching endpoint with configuration/post/draft can initiate. Existing rejected/skipped status is not checked here, so status rejection is not an enforcing publication veto. Draft selection defaults first option. API result is an operative outcome for posted/failed bookkeeping, not evidence for factual claim acceptance, process reliability or causal model benefit. No rollback of successful remote post or checked replay safety is established. Editing/selecting/status changes are separate from posting and do not require an evidence criterion. SRC-1 plugins/continuity-threads-engagement/src/ui-server.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: HTTP reply id or error with engagement status
  • Later read-back: Local engagement/post status consumed by review and summary tools
  • Delegated visibility: Threads API receives chosen draft text; not scoring evidence/reviewer rationale
  • Selection predicate: Existing post, draft (selected or first), configured API
  • Invalidation or expiry: Status changes do not undo remote reply; failed record does not prove no remote effect
  • Activation or effect: Endpoint permits external publishing and local outcome bookkeeping
  • Evidence limits: No authenticated human reviewer, factual acceptance, idempotency or actual successful posting

Behavioral-authority path: consumers: ThreadsAPI.postReply and local outcome bookkeeping; channel: selected/first draft text and remote reply result; force: permissive publication, then enforcing posted/failed state update; horizon: current request plus durable remote/local effects. Epistemic license: Permission to publish only; endpoint result does not certify truth or authenticated human acceptance.

const replyId = await deps.threadsApi.postReply(post.id, draft.draft_text); --- plugins/continuity-threads-engagement/src/ui-server.ts

EPI-RTE-vault-projection

Label: Deterministic vault overview and incremental edits

No counterpart after runtime comparison: scanner projection has its own producer and selection, although desktop chat consumes it. Code takes at most 15 root subfolders and 30 scored files; file score depends on frontmatter/depth/name/size, not evidence correctness. Excerpt first line strips heading and truncates to 60. Concrete input excerpt "# Alpha\nBeta" becomes Alpha, losing Beta by design. updateVaultMemoryFile uses substring matching for path replacement and can replace lines mentioning another longer path containing that string; fidelity of incremental update is therefore not guaranteed. The relation here describes the projection intent/ordinary formatter, not a guarantee for all incremental inputs. No acceptance step. SRC-1 lib/vault/memory.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: setMemory completion; stored overview text
  • Later read-back: Vault memory getter returns retained string for later context
  • Delegated visibility: Formatter sees supplied scan data; consumer sees selected overview rather than all files
  • Selection predicate: Heuristic ranking/top-N, root-folder cap and excerpt prefix
  • Invalidation or expiry: Rescan replaces entry; incremental update replaces substring-matching lines or appends
  • Activation or effect: Retained summarized vault awareness; actual scan validity unobserved
  • Evidence limits: No scanner/content truth audit; lossy and potentially destructive incremental mapping

Behavioral-authority path: consumers: setMemory and later vault-context/model readers; channel: stored overview at obsidian_vault_index; force: enforcing overview selection/overwrite and advisory model context; horizon: retained until rescan/incremental write. Epistemic license: Warrant no stronger than supplied scan; importance heuristic not truth test.

return scored.slice(0, MAX_KEY_FILES).map((s) => s.file); --- lib/vault/memory.ts

EPI-RTE-provider-acquisition

Label: Perplexity answer imported as finding

Part of: RT-RTE-deep-research

This is the external-answer import branch of the supplied research pipeline, distinct from local analyzer generation. runSubAgent copies each Perplexity answer into findings and assigns confidence high without an evidence-consuming factual decision. Imported truth-apt content is acquired, not produced by this local transformation. There is no local oracle or human content veto; external source warrant remains unknown. SRC-1 lib/ai/research-engine.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Answer-bearing finding with subquestion id and high label
  • Later read-back: Finding enters gap/synthesis contexts; final report/summary can persist through the runtime callback
  • Delegated visibility: Downstream reviewer/synthesizer sees abbreviated finding text, not the external provider's internal evidence process
  • Selection predicate: Nonempty perplexityAnswers branch
  • Invalidation or expiry: Working findings last for pipeline; persisted output lasts separately
  • Activation or effect: External candidate becomes eligible for report construction without local verification
  • Evidence limits: No supplied answer instance, provider evidence trace, observed use or validated confidence

Behavioral-authority path: consumers: gap reviewer and final synthesizer; channel: finding content prefixes; force: advisory evidence context with an uncalibrated label; horizon: this research pipeline and later callback output. No factual acceptance follows.

for (const answer of perplexityAnswers) { findings.push({ content: answer, subQuestionId: subQuestion.id, confidence: "high", }); --- lib/ai/research-engine.ts

EPI-RTE-excerpt-fallback

Label: Failed analyzer returns source prefixes

Part of: RT-RTE-deep-research

This is the source-excerpt fallback part of the supplied research pipeline, not a successful analyzer judgment. The catch truncates read-source content to 500 characters, associates URL/subquestion and marks low confidence. For concrete source text of 500 copies of A followed by " except in winter", the retained prefix excludes the qualification. This implementation deduction demonstrates lossy reshaping; it neither establishes source truth nor produces an accepted inference. Code owns fallback selection; no human approval, answer oracle or per-claim rejection criterion is present. SRC-1 lib/ai/research-engine.ts (implementation).

  • implementation conclusion status: wired
  • operation conclusion status: uninspected
  • Immediate return: Source-prefix findings with URL and low confidence
  • Later read-back: Prefixes feed current gap/synthesizer invocations; report/summary can later persist through runtime callback
  • Delegated visibility: Downstream consumers get prefixes, not original read-source text or failed analyzer reasoning
  • Selection predicate: Analyzer try/catch failure and available readSources
  • Invalidation or expiry: Working findings disappear at pipeline end; outputs may survive
  • Activation or effect: Failure does not exclude source-prefix material from report construction
  • Evidence limits: Truncation need not preserve a complete proposition or qualification; source warrant unknown; no run

Behavioral-authority path: consumers: gap reviewer/final synthesizer; channel: abbreviated fallback findings; force: permissive pipeline supply and advisory model context; horizon: current pipeline, with outputs independently persisted.

content: source.fullContent!.slice(0, 500), sourceUrl: source.url, subQuestionId: subQuestion.id, confidence: "low", --- lib/ai/research-engine.ts

Claims

EPI-CLM-conversation-understanding

Label: Conversation becomes understood structure

No counterpart among supplied runtime claims: this is the product's consequential understanding/extraction declaration, not the plugin-control guarantee. SRC-1 README.md (doctrine/design) asserts background understanding and extraction from conversation. Implementation overlap is with desktop tools and synthesis, not evidence of exercised understanding.

You just talk. Have a conversation about your project, your research, your plans. The system listens, understands, and quietly builds structure in the background — tasks, notes, timelines, decisions — all extracted from your natural conversation. --- README.md

EPI-CLM-source-groundtruth

Label: Source labels license synthesis reliance

No counterpart among supplied runtime claims: the synthesis instruction licenses direct reliance on user-labeled content and hypothesis framing for AI-labeled content. It further requests preservation and contradiction-confidence adjustment. SRC-1 lib/ai/narrative-synthesis.ts (doctrine/design). Source label authenticity and semantic enforcement are not implemented by this instruction alone.

  • User-set memories (source: "user") are ground truth — state them directly
  • AI-inferred memories (source: "ai") are hypotheses — frame appropriately
  • Preserve ALL existing learnings from the previous narrative --- lib/ai/narrative-synthesis.ts

EPI-CLM-research-quality

Label: Research adequacy and factual report guidance

No counterpart among supplied runtime claims: source-native instructions ask the reviewer to judge sufficient coverage and the synthesizer to produce a factual balanced cited report. SRC-1 lib/ai/research-engine.ts (doctrine/design). Implemented model calls request the behavior; they do not establish accurate execution or accepted report propositions.

  • Set shouldContinue to false if findings adequately cover the topic --- lib/ai/research-engine.ts

  • Cite sources inline using [Source N] format

  • Be factual and balanced — note disagreements between sources --- lib/ai/research-engine.ts

Evidenced absences

none declared in this member. Uninspected operations and missing runs bound conclusions rather than establish system-wide absences.

Behavioral-authority paths

none declared in this member. The generic narrative/model-guidance path is already RT-BAP-system-guidance. Each new route above records its distinct consumer, channel, force and horizon without duplicating that referent.