EchoWiki report verification

Type: agentic-system-analyses/types/agentic-system-verification.md

Verification

The reports support a bounded implementation account with one local recovery qualification. I read all supplied members, types, contracts and answer files. The answer files are empty; the supplied structural check reports none. No structural failure needs routing. I independently checked the frozen checkout's full HEAD, clean status and tracked tree against boundary. I inspected source text only; no target, test, example or provider was executed. Implementation supports wiring, not observed operation or benefit.

Runtime and workflow

I traced manual, watcher/approval, note-copy, voice and CLI/API dispatch through the plugin adapter to the compiler. RT-RTE-document-compile, RT-RTE-watcher-approval and RT-RTE-voice-ingest correctly separate caller predicates, source admission and generated-content admission. SRC-1 obsidian-plugin/src/main.ts, obsidian-plugin/src/raw-watcher.ts, obsidian-plugin/src/approval-modal.ts, obsidian-plugin/src/voice-modal.ts, obsidian-plugin/src/stt-client.ts, obsidian-plugin/src/compiler-client.ts, src/cli/compile.ts and src/compiler-api.ts establish these paths. Manual/CLI invocation bypasses watcher approval; audio persists before STT; approval identifies current text by path, not a frozen body or output diff.

SRC-1 src/wiki/compiler.ts, src/wiki/llm.ts and src/wiki/prompts.ts support code-owned sequencing, model-directed task membership, independent task contexts, concurrent pools with separate limits, malformed-response fallback and skipped generation failures. Planned targets precede successful page generation. Summary rewriting receives target names, not generated bodies. Writer exceptions can follow earlier persistent writes. These support the runtime forcing cases and the selected workflow, not complete-page delivery or transactional recovery. The same-path early return creates the recovery exception retained under Limits.

RT-CMP-llm-model and RT-CMP-stt-model correctly distinguish configured model identifiers from pinned weights and inaccessible provider updates. SRC-1 src/llm/client.ts, src/config.ts and plugin settings/STT code support configurable endpoint selection, with no local training interface inferred. RT-OBJ-agents, RT-RTE-instruction-settings and RT-BAP-compiler-instructions accurately trace operator text into later system messages; prose obedience is not enforced. RT-OBJ-pending-queue identifies saved identifiers/timestamps rather than candidate knowledge. RT-BAP-retained-pages identifies contextual, not certified, authority. RT-CLM-conflict-policy preserves the doctrine/replacement mismatch. RT-RTE-release-build is supported by SRC-1 .github/workflows/release.yml, obsidian-plugin/esbuild.config.mjs, both package manifests and README.md: configured build/release and external installation, not an observed release or model-driven improvement.

Memory objects and read-back

I checked every memory object against its actual producer and consumer. MEM-OBJ-raw separates acquisition files from compile input; MEM-OBJ-summaries, MEM-OBJ-concepts and MEM-OBJ-entities identify persistent prose with different later consumers. MEM-OBJ-page-metadata distinguishes descriptions from symbolic associations. MEM-OBJ-index, MEM-OBJ-log and MEM-OBJ-sources correctly distinguish browsing, coarse status trace and utility capabilities. SRC-1 src/wiki/page-writer.ts, src/wiki/index-writer.ts, src/wiki/briefs.ts, src/wiki/frontmatter.ts, src/wiki/schema.ts and src/wiki/tools.ts support these findings. Document index entries can retain stale descriptions; emitted full_text pointers do not imply source-copy writes.

MEM-RTE-retained-selection and MEM-RTE-page-maintenance are real read/write subroutes of compilation. All eligible briefs enter planning; selected update bodies enter generation without frontmatter. No aggregate budget is imposed. Entity existence-based metadata handling differs from concept plan-based handling; neither guarantees semantic preservation. The memory annotations preserve these distinctions without replacing runtime identities. SRC-1 src/storage/node-storage.ts, src/storage/types.ts and obsidian-plugin/src/vault-storage.ts support per-file adapter operations, not a multi-file transaction or deployed isolation guarantee.

Epistemic records and evidence strength

I checked all epistemic object declarations and their source anchors: EPI-OBJ-source-content, EPI-OBJ-summary, EPI-OBJ-concept-page, EPI-OBJ-entity-page, EPI-OBJ-plan and EPI-OBJ-source-metadata. They distinguish truth-apt candidates from task selections and lineage fields; no object instance or source truth is inferred from prompts.

EPI-RTE-summary-generate, EPI-RTE-page-generate and EPI-RTE-summary-rewrite faithfully leave semantic transformation indeterminate. EPI-RTE-plan-check and EPI-RTE-plan-dispose separate structural testing from operational disposition, including raw-text fallback. EPI-RTE-link-check and EPI-RTE-link-reshape distinguish whitelist testing from markup replacement; their scope does not license preserved reference identity or universal semantic fidelity. EPI-RTE-page-retain, EPI-RTE-page-consume and EPI-RTE-source-lineage accurately describe retention, contextual use and associations before factual acceptance. SRC-1 compiler, parser, prompt, brief, wikilink and writer files support these dispositions.

EPI-RTE-probe-check and EPI-RTE-probe-notice are supported by SRC-1 src/llm/client.ts, obsidian-plugin/src/stt-client.ts and obsidian-plugin/src/settings-tab.ts: completion/nonemptiness feeds advisory notices, not factual evaluation or later policy adaptation. EPI-RTE-helper-access describes implemented functions in SRC-1 src/wiki/tools.ts, explicitly withholding a shipped query consumer. Its wired status applies to helper implementation, not unspecified consumer wiring.

EPI-CLM-knowledge-compiler, EPI-CLM-cross-synthesis and EPI-CLM-summary-preservation retain source-native requests from SRC-1 README.md, templates/wiki/AGENTS.md and src/wiki/prompts.ts. Their comparison does not promote doctrine to checked factual knowledge. MEM-ABS-feedback-consumer and EPI-ABS-quality-gate have supported, distinct bounded absences. Independent complete consumer tracing and scoped searches found log append, structural predicates, upstream approval and probes, not trace-fed guidance, factual acceptance, post-acceptance integration or refutation-driven withdrawal. Provider processing and external human evaluation remain outside those negatives.

Reconciliation and omission searches

All declared Part of: relations identify compiler subroutes, not interchangeable outputs or authority paths. I checked every supersession and reported overlap in reconciliation. Its sole amendment connects the same brief-enumeration, model-selection and selected-body-delivery progression in the epistemic and memory routes. Both declarations retain their statuses and qualifications. The other object/route overlaps have materially different referents or granularity; retaining valid containers is justified. The source-copy and entity/concept asymmetry dispositions agree with implementation. The unresolved queue conflict cites both findings, decisive evidence and the prevented recovery conclusion; its local disposition is below.

Consequential omission questions were whether a shipped caller supplied a missing source archive, factual evaluator, log-feedback consumer, query-agent path or automatic instruction revision. The search basis was the full frozen tree, all executable source files, caller dependencies, prompts/templates, package scripts and release workflow—not only analyst quotations. SRC-1 src/, obsidian-plugin/src/, README.md, templates/, .github/workflows/release.yml and package.json were searched for source writes, helper callers, model-tool registration, evaluation, admission, conflict, deletion and log/report consumers. Complete source reads disposed these questions: helpers remain unwired to a shipped query agent; no compiler archival step, factual gate or trace-feedback route was found. SRC-1 .ai/01-PRD.md, .ai/02-TECH-SPEC.md, .ai/03-TASKS.md and CLAUDE.md distinguish proposed scope from current AI SDK implementation. Packaging, external host/provider behavior and private runtime state cannot establish the missing consumers or observed benefits.

Further optional omission expansion stopped because the selected questions have supported dispositions and no identified material challenge remains undisposed. Additional metadata inspection would not reasonably change the retained compilation, read-back or factual-acceptance conclusions. This is not exhaustive defect enumeration, a successful CLI/build check or proof of deployment behavior.

Blockers

none

Limits

  • Queue failure retention is conditional on non-overlapping approval. RT-RTE-watcher-approval and the memory annotation on RT-OBJ-pending-queue state failure-retention behavior without the concurrent exception preserved in the workflow account and reconciliation conflict. Independent inspection of SRC-1 obsidian-plugin/src/main.ts and obsidian-plugin/src/approval-modal.ts confirms the workflow's retained passages: an overlapping approval can return from the in-flight guard and remove the pending item before the active compile fails. Readers must withhold a universal retry-queue guarantee and must not treat queue disappearance or the approval modal's completion notice alone as evidence of completed writes. This is a local coordination limit, not a disputed central compilation or memory conclusion: sequential failure retention, persistent queue reload, code-managed delivery and absence of transactional rollback remain supported. The reports already retain the decisive exception and conflict, so a declared publication limit preserves the bounded account without attributing an unsupported guarantee. Actual overlap and its frequency remain unobserved.