Sparks synthesis

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

Bounded synthesis

A vault tool layer, not an agent scheduler

Sparks supplies a Go binary and an agent-facing protocol for maintaining a personal knowledge base. A human captures sources; an external agent writes and revises wiki pages; Sparks performs deterministic bookkeeping and retrieval. The analysis covers the shipped CLI, MCP handlers, embedded instructions, persistence, maintenance and later consumers at commit 49abddc848ea55f78518bfbbbe04c3d37a5f2705, with an applicability cutoff of 2026-10-15. This is a whole-product boundary for Sparks, not for the enclosing agent harness. The sole source, SRC-1, supplies inspected implementation, doctrine/design and attributed operation. No target command or test was run, and no personal vault, agent execution trace or causal experiment was supplied (boundary, Source register).

The architecture implements the declared semantic/mechanical division, but that division is not a guarantee that all mechanical outputs preserve meaning. The external agent owns open-ended writing and answer synthesis. CLI and stdio MCP calls execute fixed operations; neither launches a semantic worker. Harness filenames select where identical instructions are installed, not a model version, permission set or isolation boundary. Existing instruction files are preserved unless overwrite is explicitly requested, so replacing a binary need not refresh a copied contract. Loading, precedence and obedience remain external dependencies (RT-CLM-work-split, RT-CMP-agent, RT-RTE-mcp-tools, RT-RTE-contract-install, RT-BAP-agent-contract).

Capture becomes a mechanical session, then agent-written content

The representative workflow is human-requested inbox processing followed by later lookup. It is joined explicitly by the shipped protocol, not inferred from unrelated capabilities. Prepare parses the current inbox and returns entries, capture dates, hints and affected-collection suggestions. For nonempty input it opens an ingest row. An existing active row blocks another sequential session, but the CLI can return that condition as readable output rather than a command error. The caller must inspect already_in_progress; the row is not a filesystem lock or a race-free concurrent admission mechanism (RT-RTE-ingest-cycle, RT-OBJ-ingests, workflow account).

The external agent then chooses which existing pages to read and what to write. Instructions request alias-aware deduplication, preference for updates, cautious maturity, source links, a dated operation log and explicit Revision sections preserving contradictions and both sources. Page edits are direct filesystem writes, not submissions to a Sparks semantic reviewer. Human initiation does not establish approval of each resulting page. The contradiction protocol affords inspectable reasons and later revision, but no actual page or evidence-consuming acceptance decision establishes which substantive claims were accepted for which use (MEM-OBJ-wiki-pages, MEM-OBJ-log, EPI-RTE-semantic-revision, EPI-CLM-revision-sources).

Finalize requires an active row, rereads the live inbox, archives its current entries, clears it, scans the vault, optionally commits through system Git and completes the row. It receives neither the prepared entry snapshot nor a per-entry semantic completion receipt. Consequently, the protocol's 10–15-entry session budget is not an implemented batch limit: partial semantic processing followed by finalize can archive and clear unprocessed entries. Concurrently appended entries can also enter the finalized set. Git stages the dirty tree, not an isolated prepared batch. Mechanical completion, semantic completeness and a clean diagnostic report are separate outcomes (RT-RTE-ingest-cycle, RT-CLM-mechanical-integrity, workflow account).

Recovery is operator-owned. Abort releases lifecycle state without restoring files. Archive append, inbox clearing, scan, Git and row completion are not one transaction. Interruption before clear can duplicate archive content on retry; failure after clear requires inspection rather than automatic reconstruction. The shipped recovery guidance does not establish exercised recovery success (RT-RTE-ingest-cycle, workflow account).

Retained content and access state have different consequences

Sparks retains raw captures and derived wiki prose as files, with symbolic file/frontmatter/link projections and ingest history in SQLite; Git history is optional. Source text, Revision reasons, operation summaries, catalog descriptions and task state are different retained inputs. Manifest metadata selects catalogs and maintenance work without supplying the underlying page meaning. Old index descriptions can survive regeneration through path/title matching without being reassessed. Task text influences fuzzy target ranking; checkbox state excludes completed tasks from later open candidates and brief previews. These are implemented consumer effects, not evidence that the underlying task succeeded (MEM-OBJ-raw, MEM-OBJ-manifest-projections, MEM-OBJ-index, MEM-OBJ-tasks, RT-RTE-maintenance-write).

Seven regenerated collections are distinct from live Tasks. Fixed extractors select raw fields, archived hints or manifest records and overwrite generated files on request. Reading List removes exact repeated strings, not semantically equivalent entries, and has no completed-reading lifecycle. Collection regeneration does not itself perform a subsequent scan or commit. Historical affected-collection suggestions are advisory and incomplete: Books consumes quotes, but its special-case suggestion branch can miss quote-only changes; deleted paths are excluded from the changed set (MEM-OBJ-collections, MEM-RTE-collection-regeneration, EPI-RTE-reading-extract, MEM-RTE-affected-selection).

Deterministic processing can add unsupported interpretations. Books' probable-title branch can turn an attribution such as an author/location pair into an alleged book title. Projects maps stable maturity to Shipped, although a reviewed description can concern an unshipped project. These are source-level non-entailment deductions, not executed counterexamples. They support local conjecture-producing mechanisms, not warranted new knowledge. Literal book: hints are a separate import branch. Generated headers assign stable maturity and empty sources without a review decision; quote rendering also drops the parser's raw source path. Neither stable labels nor persistence constitutes acceptance (EPI-RTE-books-extract, EPI-RTE-projects-extract, EPI-CLM-stable-maturity, EPI-RTE-quotes-extract).

Lint and format checks assess schemas, graph/path symptoms, timestamps and thinness proxies. They do not evaluate substantive support, source truth or contradiction resolution. Finalize neither requires a clean lint report nor consumes Scan's per-file error list. Some checks can inform repair or brief revisit suggestions, but their existence does not create a semantic admission barrier. Removing a source does not automatically retract derived claims; missing wiki files disappear from ordinary page catalogs while stale outgoing graph edges can survive (EPI-RTE-health-check, RT-CLM-mechanical-integrity, MEM-OBJ-manifest-projections).

A later request must bridge metadata to meaning

On a later question, query returns matching metadata; the external agent must separately read page bodies before synthesizing a source-informed answer. Revision reasons reach that consumer through full-page reading, not through query metadata. Brief is another explicit request: it gathers selected dated log blocks, raw and updated-page metadata, revisit paths and up to five open task texts. The task cap is not a global context budget. Brief does not automatically save a new summary. The viewer instead reads requested Markdown bodies and uses manifest state for navigation. These are requested retrieval chains, not independent unsolicited delivery; actual model context inclusion and answer dependence remain unobserved (RT-RTE-vault-consume, MEM-OBJ-log, MEM-OBJ-wiki-pages, workflow annotations).

For a scenario requiring an externally controlled, inspectable vault with deterministic catalogs and maintenance, the supported result is implemented persistence, selection and requested content delivery. For a scenario requiring certified semantic ingestion, automatic conflict adjudication or enforced partial-batch safety, those mechanisms do not supply the necessary guarantees. Source availability, session completion, diagnostic cleanliness, accepted claims and answer quality must not substitute for one another. There is no product ranking implicit in these different requirements.

What changes through use, and what remains unestablished

The strongest supported contribution toward future action is durable, editable material with later-consumer routes, including an explicit criticism-preservation protocol. That is more than transient output, but no comparison establishes that criticism improved future capacity. Operation-log forwarding alone does not establish an automatic trace-fed durable behavior update; trace learning and its original input source remain not determinable rather than a system-wide negative (MEM-OBJ-wiki-pages, MEM-OBJ-log, EPI-RTE-semantic-revision, profile verification).

The theory assessments remain separate. Condition 1, a whole formulated theory instance, is uninspected; editable prose affords addressability without supplying such an instance. Condition 2, content-dependent consumption of a theory, is uninspected. Condition 3, content-directed criticism with revision or changed reliance, is uninspected. Condition 4, retention shaping another round, is uninspected. The same semantic-route record supplies these individual limits. Learning from criticism is unestablished; reflective operation and autonomous theory-building are independently unestablished, not refuted by the missing traces. Deterministic execution of requested steps is not evidence that Sparks performs every internal theory-building operation (EPI-RTE-semantic-revision, epistemic bounded conclusion).

At the shipped-product boundary and across later vault invocations, exercised self-improvement is also unestablished. No objective-linked episode shows evidence determining an update to Sparks' own behavior-determining organization and subsequent operation causally depending on that update. Ordinary source/build checks provide a product-change route, not an automatic improvement loop or observed rollout. Persisted output could affect later organization through a consumer, but its retention label cannot close those causal links (RT-RTE-product-build, EPI-RTE-semantic-revision).

A linked capture-to-page-to-later-answer trace would change the operation assessment; source-grounded acceptance decisions would change the substantive acceptance assessment. Prepared-entry receipts with subset-aware finalize, enforced diagnostic consumption, complete withdrawal propagation or corrected collection semantics would change the corresponding architectural assessment. A theory/criticism/revision/next-round episode and objective-linked comparison would be needed for stronger learning or improvement attribution. None of those changes is inferred from existing test definitions or reported personal use.

Source-read log: none. This synthesis uses the supplied members and adds no source evidence.

Limitations

Limitation Affected SRC IDs and record citations Inspected boundary Conclusion prevented Evidence that would resolve it
No vault/session execution or causal comparison SRC-1; RT-RTE-ingest-cycle, RT-RTE-vault-consume, EPI-RTE-semantic-revision Frozen shipped code and protocol; no target execution Actual semantic completeness, successful recovery, answer dependence, improved future capacity and exercised self-improvement Linked execution artifacts, actual candidate/check/disposition records and objective-relevant comparisons with appropriate controls
External harness and provider remain outside the implementation boundary SRC-1; RT-CMP-agent, RT-BAP-agent-contract Sparks installation/describe and tool adapters only Model fixity or updates, instruction loading/compliance, deployed grants/isolation and host context management Pinned harness/provider contracts and relevant loading, permission and context traces
Initial provenance and direct/generic-caller admission are unresolved SRC-1; MEM-OBJ-raw, MEM-OBJ-wiki-pages, MEM-OBJ-index, MEM-OBJ-tasks Known subsequent transformations, not authenticated initial vault content Complete lineage/write-control classification and per-content human approval Content provenance and admission records identifying the actual deciding principal
Missing-frontmatter discrepancy retained in reconciliation SRC-1; RT-CLM-mechanical-integrity, MEM-OBJ-manifest-projections; report verification Scan parse-failure handling, ListPages join and Query consumer Treating the runtime's quoted source comment as a guarantee of query visibility Verification resolves the implementation reading: missing frontmatter excludes ordinary Query candidates. Correcting the source comment would remove the misleading rationale; scan tolerance alone cannot support visibility
Withdrawal and incremental refresh are incomplete SRC-1; MEM-OBJ-manifest-projections, MEM-RTE-affected-selection, MEM-RTE-collection-regeneration Current-page graph replacement, changed-path suggestions and explicit regeneration Complete graph deletion propagation, automatic derived-claim retraction or dependency-complete freshness Complete dependency/deletion handling and evidence that the subsequent refresh consumers execute
Some extraction associations remain semantically unresolved SRC-1; EPI-RTE-bookmarks-extract, EPI-RTE-media-extract Residual-line descriptions and first-URL associations Complete semantic-preservation or curation classification for those branches Actual source/output pairs and scoped semantic checks of the resulting associations
Epistemic inventory omits separate log and access-state units SRC-1; MEM-OBJ-log, MEM-OBJ-manifest-projections; report verification limit Epistemic inventory table versus combined reports and consumption ledger Exhaustive object-by-object epistemic comparison from that table alone; not the positive storage/selection findings Separate inventory treatment of operation-log and manifest graph/access-state inputs and their consumers
No established qualifying trace-fed update or bounded negative SRC-1; MEM-OBJ-log, EPI-RTE-semantic-revision, RT-RTE-vault-consume; profile verification Authored history, deterministic writes and requested later consumption Either a positive trace-learning/source classification or a complete negative Original trace inputs linked to an automatic durable update and later consumer, or a bounded absence investigation covering the included alternatives