EchoWiki synthesis
Type: agentic-system-analyses/types/agentic-system-synthesis.md
Bounded synthesis
From source admission to a compilation request
EchoWiki is a knowledge-compilation system for Obsidian: incoming notes or voice transcripts become summaries, concept pages and entity pages in a linked Markdown wiki. This account covers the whole shipped production and later-consumption loop at commit 11446997423e88177dba62d6a3d5c1e8b4886c62, with cutoff 2026-10-14. SRC-1 supplies implementation and doctrine/design, not execution traces or experiments. No target code, tests or provider calls were executed. The plugin, CLI, shared compiler, storage adapters, prompts and maintenance paths are included; Obsidian internals, remote providers and private vault state are not inspectable evidence here (boundary, source register).
The representative workflow begins with a supported raw text file detected by the plugin watcher. With watch mode and require-approval enabled, a one-second per-path debounce leads to a persisted queue. The human can preview, approve or reject the path. Approval authorizes compilation of the file's current contents, not a frozen preview or a generated-page diff. Rejecting removes the queue item, not the source. Manual active-file compilation and CLI invocation bypass this watcher gate. Voice capture is another acquisition route: audio is saved before transcription, and nonempty returned text is saved as raw Markdown for possible later compilation. Neither microphone permission nor source approval certifies transcript or output accuracy (RT-RTE-watcher-approval, RT-RTE-voice-ingest, workflow).
Code sequences the work; models choose content and page tasks
The plugin calls the shared compiler in-process with vault-backed storage; the CLI uses filesystem storage. Code owns the finite progression, while a configured chat model supplies a summary, create/update/related selections and page bodies. These are service calls, not independently scheduled agents or a model-controlled tool loop. Exported file/page/image helpers do not establish a shipped query agent. Human browsing of the resulting index and links belongs to Obsidian (RT-RTE-document-compile, EPI-RTE-helper-access).
Each compilation reloads stored AGENTS.md or a fallback and delivers it as system-role guidance. Full source text enters the summary call. Planning then receives that source, the draft summary and all eligible concept/entity briefs. Briefs use descriptions, legacy briefs or flattened 150-character body previews; entity briefs also include type and source count. The planning model selects tasks. Only update tasks receive their selected prior page body, without frontmatter. Thus retained descriptions can steer target selection before full old content reaches generation (RT-OBJ-agents, RT-BAP-compiler-instructions, MEM-RTE-retained-selection).
Concept and entity generation use separate concurrent pools. Each task receives an explicit message array rather than a growing conversation. Sibling results and the full planning response stay out of that task's context; only returned results reach writers. This isolates task output but does not bound total input: every task still receives the full source, all briefs enter planning, and no aggregate token budget or long-document split is enforced. Cross-invocation continuity comes from page reloads, not saved dialogue or conversation checkpoints (RT-RTE-document-compile, MEM-RTE-retained-selection).
Admission permits retention, not factual endorsement
Code filters plan shapes, names and entity types, checks related-page existence and rejects empty generation results. Malformed page JSON can fall back to raw text. Link cleanup tests a whitelist containing existing and planned targets; a failed planned page can therefore leave an admitted link without an eventual target. These checks constrain task eligibility and markup, not truth or claim support (EPI-RTE-plan-check, EPI-RTE-plan-dispose, EPI-RTE-link-check, EPI-RTE-link-reshape).
The compiler writes entities, optionally rewrites the summary, writes concepts, adds related/reciprocal links, updates the index and appends the ingest log. Summary rewriting receives target names, not the final generated page bodies, so it cannot be treated as an implemented semantic comparison with those pages. Full-body replacement has no independent conflict gate: preserving manually edited meaning is requested from the model, not enforced. A create task can address an existing filename without having received the old body. Entity writers nevertheless use actual existence for metadata handling; concept metadata handling follows the plan branch. The semantic-loss warning does not imply identical metadata loss in both branches (EPI-RTE-summary-rewrite, RT-CLM-conflict-policy, MEM-OBJ-entities, MEM-RTE-page-maintenance).
Sources and counts are association metadata, not corroboration. Summary full_text pointers name source copies that this short-document loop does not write; concept/entity source fields point to summaries. Retention therefore supplies navigation and context without a claim-level evidence recovery guarantee. Imported source warrant remains unknown. Without actual source/output pairs, generated content cannot be classified as faithfully preserved, entailed from warranted premises or demonstrably novel. Within the inspected shipped paths, no evidence-consuming factual acceptance decision, post-acceptance integration or refutation-directed withdrawal was found (MEM-OBJ-page-metadata, MEM-OBJ-sources, EPI-RTE-source-lineage, EPI-RTE-page-generate, EPI-ABS-quality-gate).
Delivery and later reuse
Persistent wiki writes and resolved caller completion constitute the shipped delivery criterion, not successful generation of every planned page. Individual task failures are skipped; malformed/empty plans and failed summary rewrites have fallbacks. Later storage failures can leave earlier writes intact. Re-running recomputes from current source/wiki rather than resuming a checkpoint, and different input paths are not serialized against shared page/index/log targets. In a non-overlapping approval, a thrown failure normally leaves the queued path for retry. An overlapping approval can instead return through the in-flight guard and remove that item before the active compile finishes or fails. Queue disappearance and modal completion notices alone are not universal delivery witnesses (RT-RTE-document-compile, workflow, report-verification limits).
The strongest supported contribution to future work is durable context reuse: automatically admitted concept/entity descriptions and selected bodies reach later planning and rewriting. The compiler supplies this context automatically at the model-consumer boundary, although a new compilation triggers the chain. Requested raw-file reads and documented human browsing are separate request-fulfillment operations. Local memory combines prose with code-interpreted paths, links and metadata; previews compress retained representations and replacements revise entries. These mechanisms establish wiring, not observed response dependence or improved capacity (MEM-RTE-retained-selection, RT-BAP-retained-pages, MEM-OBJ-index, profile verification).
Learning as improved capacity remains unestablished: there is no measured improvement comparison. The operation log has no inspected consumer that extracts future guidance, while generic notes/transcripts have unresolved activity-trace origin; neither a positive trace-learning route nor a system-wide negative follows. Operator instruction edits can change later prompt supply, but the compiler does not revise its own instructions. Reflection about its own operation and autonomous theory building are not established by these paths; automated sequencing is a narrower supported property. The records do not establish formulated content-directed criticism retained into another round. No improvement objective, evidence-responsive organizational update and subsequent causally dependent operation is demonstrated, so exercised self-improvement is not established. This does not exclude retained pages from behavior-determining state merely because they are outputs, or infer absent reasoning inside opaque providers (MEM-ABS-feedback-consumer, MEM-OBJ-raw, RT-RTE-instruction-settings, epistemic conclusion, RT-CMP-llm-model).
For repeated note ingestion and wiki navigation, the implementation establishes a concrete retained-context and maintenance path. For trustworthy cross-document knowledge production, reliable human-edit preservation or complete-page delivery, its structural gates and prompt policies establish narrower guarantees. Source/output traces with recorded acceptance decisions would change the knowledge assessment; overlap/failure traces and transaction/conflict controls would change the recovery assessment; independently specified objectives, retained evidence-driven changes and controlled later comparisons would change the learning/self-improvement assessment. None is supplied by the current evidence (EPI-CLM-cross-synthesis, EPI-ABS-quality-gate, RT-RTE-document-compile).
Limitations
| Limitation | Affected SRC IDs and record citations | Inspected boundary | Conclusion prevented | Evidence that would resolve it |
|---|---|---|---|---|
| Implementation and intent only; no observed outcomes or contrasts | SRC-1; RT-RTE-document-compile, EPI-RTE-page-generate | Frozen shipped compiler and callers; no private vault, execution trace or experiment supplied | Successful operation, fidelity, novelty, activated response dependence, measured benefit and causal attribution | Linked source/output/run artifacts, later-consumer traces and appropriately controlled comparisons |
| Conditional queue failure retention: the unresolved sequential/concurrent accounts require a non-overlap qualification | SRC-1; RT-RTE-watcher-approval, memory annotation on RT-OBJ-pending-queue, workflow annotation, report-verification limits | Plugin approval wrapper, same-path in-flight guard and queue persistence | Universal retry retention, or queue disappearance/modal completion alone as proof of completed writes; actual overlap frequency | Serialized/awaited approval handling with failure tests and traces showing queue/write ordering |
| Trace-learning overview is overly cautious despite a resolved local negative | SRC-1; MEM-ABS-feedback-consumer, MEM-OBJ-log, profile-verification limits | Accepted comparison retains axis not-determinable, local log-feedback “no” and unresolved source/helper/provider branches |
Reading the axis as meaning every unit lacks classification; system-wide negative or complete-coverage comparisons | An overview preserving the local classification explicitly, plus evidence resolving the remaining write/input/consumer branches |
| No factual acceptance or refutation-directed reliance change in searched shipped paths | SRC-1; EPI-ABS-quality-gate, EPI-RTE-plan-dispose | Compiler, parsers, writers, callers, helpers, probes and build path; external human/model processing outside the bounded negative | Attributing accepted knowledge production or post-acceptance integration to the shipped loop | Evidence-consuming decisions naming factual criteria, intended use/scope and consequential reliance consumers |
| Source pointers and summaries do not establish a recoverable evidence archive | SRC-1; MEM-OBJ-sources, MEM-OBJ-page-metadata, EPI-RTE-source-lineage | Short-document callers/compiler emit pointers without source-copy writes; external prepopulation unresolved | Guaranteed full-text recovery or claim-level support from source counts/paths | Implemented archival writes and verified resolvable provenance linking claims to retained source content |
| Prompt preservation and link membership have narrower force than semantic/graph guarantees | SRC-1; RT-CLM-conflict-policy, EPI-RTE-summary-rewrite, EPI-RTE-link-check | Replacement writers, target-only rewrite context and existing-plus-planned whitelist | Guaranteed manual-edit preservation, consistency with final pages or eventual link-target existence | Conflict/diff admission, final-body comparisons and successful-target validation, with source/output evidence |
| Host/provider behavior and external initialization/consumption remain unresolved | SRC-1; RT-CMP-llm-model, RT-CMP-stt-model, MEM-OBJ-raw, MEM-OBJ-sources, RT-RTE-document-compile | Local adapters and message wiring; provider weights/retention, host durability, actual settings, initial authorship and helper consumers unavailable | Exact model reproducibility, deployed isolation/durability, complete memory provenance or learning inventory | Pinned provider/deployment contracts and operational state/provenance with established consumers |
| Nontransactional, unbudgeted compilation limits recovery and scale claims | SRC-1; RT-RTE-document-compile, MEM-RTE-retained-selection, MEM-RTE-page-maintenance | Full-source task contexts, all-brief planning, per-file storage and per-input guards | Bounded total context, whole-ingest rollback, shared-target serialization or complete-page success | Enforced context budgeting, coordinated transactional writes and representative failure/concurrency/scale traces |