claude-obsidian synthesis

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

Bounded synthesis

From a preservation request to a knowledge proposal

claude-obsidian is a local-first Agent Skills package for building and maintaining a user-owned Obsidian knowledge vault. Its architectural split is between model-facing procedures that select and assess content, and Python code that admits and persists submitted changes. It is not the enclosing agent scheduler. This account covers the shipped production, maintenance, admission and later-consumption paths at commit 32ac5a02c4e082e4a5628ca810776375e134708e, with applicability cutoff 2026-10-13. The evidence is inspected implementation and doctrine/design from SRC-1, not a live vault or executed workflow. External hosts, model services, extraction implementations and Obsidian rendering are outside the source set. The whole-system boundary does not mean exhaustive inspection of every branch. See the boundary and Source register.

The declared promise is source-cited, compounding knowledge construction, not unconditional factual correctness. Shipped persistence and consumption pathways support the construction claim; they do not establish compounding quality. RT-CLM-product-promise retains that distinction.

Save begins with conversation content explicitly selected by the user. The foreground agent reads orientation and relevant pages, looks for an existing note and proposes a small create or replacement. The resulting prose, navigation, log and hot context are durable artifacts, not an unattended transcript dump. Conversation assertions cannot alone make a claim accepted. Ingest instead starts from captured source material and asks whether canonical compilation adds durable synthesis, navigation or reusable value. Source retention can therefore end without a canonical paraphrase. See RT-RTE-save-apply, MEM-OBJ-wiki-pages and EPI-RTE-evidence-assessment.

A representative multi-step workflow is bounded batch Ingest with one local source per worker. Delegation is optional. The parent supplies the vault root, source identity/path and bounded discovery scope. The worker returns proposed content, current target hashes, evidence locators, contradictions and unfinished work. Missing or ambiguous inputs stop the assignment; turn-budget pressure calls for a verified partial packet with a resumable next step. The parent resolves overlaps and owns one shared transaction. A worker packet is an intermediate return, not delivery of an ingested vault. Actual worker isolation and read-only permissions belong to the host: the declared worker tool surface includes Bash. See RT-RTE-ingest-drafts and the workflow account.

This arrangement keeps source discovery in a requested separate context while copied proposals cross back to the parent. It does not remove the parent's accumulated turns. Later page reads reload retained content, not live references into a worker window. Host eviction and compaction remain uninspected.

From proposed claims to admitted bytes

Provenance separates source records, claim assessments and the legacy ingestion manifest. Source records describe identity, freshness and support eligibility; raw payloads preserve evidence bytes. Claim records hold prose and evidence relationships. The manifest tracks processing identity and generated pages rather than warrant. A captured payload or successful processing label does not establish source truth. See MEM-OBJ-source-ledger, MEM-OBJ-claim-ledger and MEM-OBJ-manifest.

The provenance gate has computational force, but a restricted license. Accepted claims require fresh active non-synthetic support and review chronology; high-risk claims require two independent source groups. Fresh contradictory evidence requires contested assessment or nonempty adjudication notes. The program checks these declared fields, not whether the passages entail the claim or the notes resolve the contradiction. Moreover, prospective validation runs when a provenance ledger is written; prose-only edits do not trigger that gate. Thus the software can veto malformed acceptance metadata without establishing semantic acceptance. See EPI-RTE-ledger-check and EPI-RTE-ledger-disposition.

The host is instructed to assess evidence and seek review. CLI inspect produces a vault-bound plan digest; CLI apply requires that digest. The core checks supplied approval and current declared preconditions under the mutation lock, journals originals and performs confined per-file replacements. The digest binds planned effects, not the identity or judgment of a human reviewer. Only declared preconditions protect previously read non-write inputs. Per-file atomicity does not give simultaneous visibility of a whole batch. On drift the parent must reread and rebuild; journal restoration refuses to overwrite unrelated external changes and can remain rollback-failed. Final delivery is the apply result's operation ID and exact changed paths. See RT-RTE-save-apply, RT-BAP-plan-enforcement and the workflow recovery account.

Reviewed admission is not universal. The shipped callable capture route invokes the core without a plan approval argument, while retaining create-only raw payload constraints. Derived retrieval caches have their own automatic admission. These alternatives defeat a blanket human-review guarantee, not the local controls on the reviewed CLI branch. See RT-RTE-direct-capture and RT-RTE-optional-rerank.

From retained material to a later answer

Later Query starts from hot/index orientation, then requests relevant candidates and reads current pages and provenance before answering. Hot context is orientation, not independent evidence. Indexed retrieval filters known stale index/chunk/page mismatches and deduplicates pages; its default final budget is five pages from twenty BM25 chunk candidates. Unavailable or degraded retrieval calls for read-only fallback search, not an automatic rebuild. Candidate selection is implemented; evidence-grounded answering and refusal remain requested model behavior. See RT-RTE-vault-query, MEM-OBJ-hot and MEM-BAP-vault-evidence.

The prescribed Query branch uses --no-rerank and requests no mutation. Direct default retrieval may instead invoke Ollama, rerank with dense vectors and persist an embedding cache outside the canonical transaction journal. Unusable embeddings produce a whole-set no-op fallback. Ranking consumes contextualized chunk text, whereas displayed snippets show only capped raw excerpts. Neither ranking nor a snippet supplies a complete warrant. Synthetic prefixes copy selected opening text and may truncate qualifications; optional model prefixes have no established semantic relation without input/output instances. Egress-enabled prefix generation can fall back from Anthropic to a Claude subprocess and then synthetic text. See MEM-OBJ-chunks, RT-RTE-optional-rerank, RT-RTE-prefix-generation and EPI-RTE-synthetic-prefix.

A separate lifecycle route supplies retained context without a current query. After environment opt-in and applicable vault consent, SessionStart emits at most 32 KiB from the fixed hot file, including on resume or compact. This is coarse availability/consent/budget selection, not targeted relevance. The Save authoring target of 500 words is a different control. Stop emits bounded journal warnings; it neither captures a transcript nor performs recovery. The package emits bytes, while the external host delivers them and the model determines their influence. A non-instruction envelope does not establish injection resistance. See RT-RTE-session-context.

Maintenance and the limits of improvement

The strongest supported contribution toward future work is explicit retention and reuse: selected reasoning can become vault prose, admitted revisions can reach later queries, and code can reuse or rebuild derived access structures. That is not demonstrated improved capacity. Chunk maintenance withdraws the BM25 index before changes, prunes surplus chunks and can leave indexed retrieval unavailable after failure. Tiling reuses vectors and deletes orphan entries; its overlap bands are heuristic, with uncalibrated seeds, not permission to merge meanings. Log folds request additive extractive summaries without upgrading evidence or changing hot context. Research preserves a dossier even when the separately reviewed canonical merge is rejected. See MEM-RTE-chunk-maintenance, MEM-RTE-tiling-diagnosis, MEM-RTE-log-fold and EPI-RTE-canonical-integration.

Diagnostics and admission remain separate. Lint does not auto-repair. Optional checkpoint lint can block a Git checkpoint without undoing prior note retention, and callers can skip it. Product verification supplies executable checks and explicitly pending manual gates, not an automatic promotion scheduler. Mode changes affect future filing through explicit configuration rather than evaluation-fed learned policy. See EPI-RTE-checkpoint-gate, RT-RTE-review-machinery and MEM-BAP-filing-config.

For a bounded source-ingestion scenario, this architecture offers a connected proposal-to-delivery procedure with deterministic stale-plan rejection and recovery. For a vault-question scenario, it offers candidate retrieval plus requested current-support assessment. For unsolicited continuity, it offers consent-gated copied orientation. None of these source-supported mechanisms establishes successful synthesis, trustworthy downstream withdrawal or improved answers in operation.

Learning, reflection, autonomy and self-improvement are separate questions. The runtime supports retained guidance, explicit configuration and review machinery, but supplies no theory account establishing conditions 1–4: a complete localized theory, content-dependent consumption, content-directed criticism with revision or changed reliance, and retained criticism shaping a next round are not established as a theory-building chain. This is not evidence that every condition is absent. Nor does the account establish that criticism of a consumed theory improved future-action capacity. Reflective self-representation with both causal directions, computation performing every internal theory-building role, and exercised evidence-responsive self-change are independently unestablished. Product gates and note revision alone close none of those claims. For the declared package boundary, no update-to-later-operation comparison establishes exercised self-improvement or successful improvement. The accepted memory assessment likewise establishes neither a qualifying automatic trace-fed behavior-shaping chain nor a bounded system-wide negative. See RT-RTE-review-machinery, EPI-RTE-evidence-assessment, the epistemic conclusion and profile verification.

An inspectable source-to-packet-to-apply-to-query trace would change the assessment of exercised delivery and reliance. Checks of actual source/claim pairs would test semantic acceptance; controlled outcome comparisons would test benefit at the varied mechanism's level. Explicit withdrawal handling with downstream tests would strengthen retraction conclusions. A retained criticism/update trace and subsequent operation depending on that update would be needed for exercised self-improvement attribution. More source inspection alone cannot supply those observations or causal comparisons.

Limitations

Limitation Affected SRC IDs and record citations Inspected boundary Conclusion prevented Evidence that would resolve it
Fold implementation-status conflict SRC-1; MEM-RTE-log-fold, EPI-RTE-extractive-fold; report limit Shipped fold instruction and its reviewed filing/discovery path Memory assigns afforded; epistemic assigns claimed. No single reconciled implementation status or reliable extractive execution follows. Both leave operation uninspected. Record-level adjudication of the status boundary; an actual checked fold artifact and later-consumption trace for execution claims.
Incomplete rejected/deprecated presentation edge SRC-1; MEM-OBJ-source-ledger, MEM-OBJ-claim-ledger, MEM-BAP-vault-evidence, EPI-RTE-ledger-check; report limit Query current-support rules, provenance states and eligibility predicates Reliable downstream semantic withdrawal and removal of already-delivered context are not established; local eligibility vetoes remain supported. Explicit rejected/deprecated consumer handling and traces/tests of changed reliance, including already-copied context.
Coarse curation units SRC-1; MEM-RTE-chunk-maintenance, RT-RTE-optional-rerank, MEM-RTE-tiling-diagnosis, MEM-OBJ-source-ledger; profile limit Partial inventory groups derivative transformations and groups source-status changes with model-prefix semantics Mechanism counts and complete per-store curation comparisons, especially status withdrawal versus derivative deletion, are unsupported. Local existence findings remain valid. Accepted transformation-by-transformation records and units with separate consumers and coverage.
No supplied execution or causal comparison SRC-1; RT-RTE-save-apply, RT-RTE-vault-query, RT-CLM-product-promise, EPI-RTE-evidence-assessment Frozen source implementation and doctrine; no target execution Successful review, delivery, recovery, semantic acceptance, compounding quality and causally improved capacity cannot be inferred. Registered execution artifacts and suitable outcome comparisons, with component variation where component attribution is claimed.
External host/provider responsibilities SRC-1; RT-CMP-host-model, RT-RTE-ingest-drafts, RT-RTE-session-context Package-side worker and lifecycle contracts, excluding host internals Actual isolation, tool restrictions, compaction contents, delivery, obedience and provider-internal learning remain unresolved. Host permission/context traces and scoped provider contracts or inspectable implementation under a separately authorized boundary.
Opaque and initial content SRC-1; MEM-OBJ-wiki-pages, MEM-OBJ-source-ledger, MEM-OBJ-queue, MEM-RTE-queue-resumption Setup/adoption, raw retention and bounded queue state; no live vault history or external executor Complete content lineage/form, extraction fidelity, queue completion as capture success and qualifying trace-learning/source conclusions remain unresolved. Provenance-bearing payloads, adoption history and executor-to-artifact-to-consumer traces identifying content and admission control.
Model names do not pin weights SRC-1; RT-CMP-haiku-prefix, RT-CMP-ollama-embedding, MEM-CMP-tiling-model Client identifiers, fallback selection and model-string/input cache keys Immutable model resolution and version-stable cached vectors are not established. Immutable weight identities and resolution contracts, plus cache invalidation keyed to those identities.
Available paths not exhaustively audited; historical benchmark evidence unavailable SRC-1; boundary, RT-RTE-review-machinery, EPI-RTE-diagnostic-selection Selected shipped producer/consumer paths; incomplete extraction, migration, transport and helper audits; absent historical benchmark helpers Universal security, complete semantic/adaptation inventories, system-wide learning negatives and historical retrieval-performance claims are unsupported. Focused inspection of material alternatives for inventory claims; separately registered historical benchmark code/results and comparable conditions for performance claims.