llmwiki synthesis

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

Bounded synthesis

From session evidence to retained project knowledge

llmwiki is a project-knowledge system whose ordinary writer is the foreground coding model following a shipped save skill. A Bun/TypeScript engine supplies capture, extraction, bookkeeping, checks and later context selection. The analysis covers the shipped state loop, skills, adapters and optional unattended writer at commit e6be788bdfd969c3695f839a5d6b5752bb233cfc, with cutoff 2026-11-08. SRC-1 is the frozen Git repository, not a deployed user's wiki. The evidence is inspected implementation and doctrine, with attributed reported operation kept separate; no target execution, successful save trace or causal task comparison supports this account (boundary, source register).

The claimed work is to remember project decisions and context and make them available next time, not to guarantee general factual truth (EPI-CLM-save-retrieval). Its distinctive architecture separates readable derived knowledge from access state. Markdown pages retain facts, decisions, reasons and living topics. SQLite holds queue/index/provenance state; local JSON/JSONL holds emissions, feedback and selector aggregates. Page bodies are interpreted natural language, while offsets, hashes, globs and lexical trigger strings have fixed symbolic consumers. These are not evidence of model-weight updates (MEM-OBJ-wiki-pages, MEM-OBJ-capture-state, MEM-OBJ-wiki-index, MEM-OBJ-recall-triggers).

Passive capture discovers and queues eligible enrolled sessions; it does not itself admit semantic knowledge. The representative workflow is explicit, human-present /wiki-save, because it connects current-session evidence to authored pages, checks and a delivered close-out. The host model resolves the exact current session rather than substituting the most recent backlog item. Manual enqueue can include sessions below passive capture's 50-line threshold. The engine serves screened, fixed extraction snapshots from the byte watermark, with up to twenty whole retained utterances per page. Grouping and omission mean this is not a complete interleaved transcript; a separately supplied harness summary is only draft material. The model chooses useful human-expressed content, writes through its ordinary tools and repairs lint findings (RT-RTE-passive-capture, RT-RTE-warm-save, workflow account).

Routine stable admission is model judgment under the skill, not individual human approval. Direction changes and unresolved contradictions have a separate human-review policy. The engine checks sequential extract issuance, the exact issued end offset and no rewind for ordinary interactive marking. Those checks certify range bookkeeping, not reading, authorship or truth; skipped marking intentionally has weaker receipt requirements. Whole-close-out delivery additionally requires L0/current-state and log refresh, registration/indexing/reconciliation and final checks, followed by a short user report. The completion event command does not perform those steps itself. Identity failure must therefore remain a failed save rather than trigger nearest-session recovery; authoring or lint failure remains foreground repair, without automatic rollback of arbitrary host edits (RT-RTE-warm-save, WF-CLM-closeout-completion).

Alternate writers and the scope of verification

Optional engine generation is a separate route, not a hidden step in warm save. Without a configured provider command it returns unavailable. Once configured, autoupdate can run explicitly or under an opt-in scheduler; arbitrary-file ingest also reaches it. Dry-run is the default publication mode but can still make model calls. WRITE proposes a page; ordinary committed publication requires an exact VERIFY acceptance token, the configured grounding condition and virtual lint. Strict path grounding is opt-in, so default measurements are advisory. Human-review categories instead take a screened/linted draft-queue branch without requiring the positive verifier token. Ordinary rejection omits the candidate and advances its range as skipped; direction drafts preserve pending work (RT-RTE-auto-update).

These checks have different domains. A path occurrence, quote occurrence or structural match does not establish that a tool succeeded or that a proposition follows from its source. Model verification requests extract-bounded judgment, not a known-answer oracle. Separate WRITE/VERIFY calls do not enforce different resolved models or immutable versions. Recommended tool-free flags are not a mandatory spawn restriction: configured argv can invoke another wrapper, and scratch directories/environment markers are not OS isolation (EPI-RTE-mechanical-check, RT-CLM-independent-verify, RT-CLM-tool-free).

Living-topic consolidation has a consequentially different replacement boundary. It checks selected added lines, not preservation of all old claims, writes the full replacement before lint, and does not restore an existing topic after failed merged-page lint. This establishes a reachable recovery defect, not observed content loss. Distillation's separate snapshot protocol cannot repair that generalization: its deterministic check preserves source-name sets and conflict strings, not every claim or claim-to-citation attachment. Neither route supports universal no-loss or transactional publication guarantees (MEM-RTE-topic-merge, EPI-RTE-distill-check).

What reaches the next invocation

Later consumption is both requested and unsolicited. Wiki-ask requests search and raw-source tracing, then asks the user before saving a reusable answer. Host events instead automatically supply cold-start entry material, prompt-related pointers/excerpts or path-specific edit reminders. Turn retrieval uses deterministic lexical relevance and coverage before affinity ordering, session deduplication and a top-three limit. Its shared character allowance is 1,600 including save-nudge reserve, with conditional excerpt caps. Cold-start L0 is not uniformly hard-truncated by that turn budget. Excerpts omit evidence lines and footnote definitions, so retained reasons need not accompany delivered claims; explicit page/raw reads can reload them, but a pointer does not prove that reload occurred (MEM-RTE-query-fileback, RT-RTE-context-delivery, memory context annotation).

Rule text has two distinct consumers: lexical rule-plus-recall strings affect ranking, while eligible imperative text becomes a reminder. The pre-edit hook can deny the first matching path once in gate mode, after which retry needs no proof of obedience. Off/advise modes, missing identity, unrecognized targets, marker failure and caught errors bound that control. Currency checks can withhold rules while ordinary source-changed prose remains available with a warning; pointer-only turn output occurs before excerpt filtering. Shape and freshness do not authenticate human approval. These are scoped supply and interruption controls, not a global truth filter or authorization system (MEM-OBJ-recall-triggers, RT-RTE-edit-rules, RT-BAP-wiki-context).

The engine controls selective supply, not the external host's whole context window or compaction. Save favors warm inline work; its path-only scratchpad fallback is a host-dependent context-isolation protocol, not a shipped worker scheduler. OpenCode and OpenClaw have distinct invocation, channel and cache behavior, so compatibility and agent suppression cannot be generalized across hosts. Commit and lexical-absence channels can also replace or share turn output: not all delivered content comes from wiki pages, and a bounded lexical absence result is not a statement about the project's full history (RT-RTE-context-delivery, report verification limits).

Feedback, maintenance and independent improvement properties

The strongest supported adaptive contribution is a durable feedback-to-selector path. Version-bound emitted-page judgments can produce aggregates that reorder eligible near-ties, remove positive evidence for reported-wrong versions and withhold rules pending recheck. This changes future selection without rewriting page prose or model weights. Emission records contain page paths and hashes, not historical excerpt bodies or proof of use. Recheck validates current revisions and caller evidence statements rather than their semantic entailment. Legacy read-scan refresh is an explicit capability, not an active default daemon learner (MEM-OBJ-emission-ledger, MEM-RTE-feedback-fold, EPI-RTE-feedback-recheck).

Session-to-page compilation and usage-to-selector updates support wired trace-fed durable adaptation. They do not yet establish learning as improved capacity for future action: no comparison demonstrates that criticism of a consumed theory improved subsequent capacity. Semantic review produces bounded advisory criticism, not automatic applied repair. Gap tasks can close after two qualifying reports omit them, which changes work selection without proving the underlying issue fixed. Silver replay checks authored retrieval/substring expectations, not task truth. Human quiz grades instead update a recall schedule and do not accept project claims (EPI-RTE-semantic-review, EPI-RTE-gap-disposition, EPI-RTE-feedback-replay, MEM-OBJ-quiz-ledger).

The theory-builder conditions remain separate. Localized page rules and method texts afford condition 1. Host delivery alone leaves content-dependent consumption, condition 2, uninspected. Criticism requests afford a route toward condition 3, but no trace joins a challenged theory, result, placement of blame and resulting revision or reliance change. Persistence alone leaves condition 4's criticism-to-next-round use uninspected. The accepted account supports a bounded architectural reflection witness—representation of the system's own emissions/usage can affect later selection—but not demonstrated live activation or reflective revision of its methods. Autonomous performance of every internal operation is not established; direction admission includes human judgment (epistemic bounded conclusion).

For self-improvement specifically, the feedback-ranking route supports a standing improvement-directed capacity in context-selection organization, with useful-context supply as the independently specifiable objective. Evidence-to-update and update-to-live-selector mechanisms are wired; no supplied run establishes a particular evidence-responsive update and later behavior causally depending on it. Exercised self-improvement and successful improvement therefore remain unestablished, independently of reflection and autonomy (EPI-RTE-affinity-update).

For cross-session project handoff, the supported result is thus readable retained experience plus targeted later supply, with explicit but heterogeneous checks and recovery boundaries. For claims of reliable factual preservation, autonomous semantic repair or improved coding performance, this evidence is insufficient. Linked source/extract/page/check traces followed through a later consumer would change the activation assessment; controlled task comparisons would change the capacity/benefit assessment. Enforced old-claim preservation and failed-merge restoration would change the topic-recovery assessment. Immutable resolved model identities and mandatory provider restrictions would change the verification-independence and child-authority assessments—not substitute for outcome evidence.

Limitations

limitation affected SRC IDs and record citations inspected boundary conclusion prevented evidence that would resolve it
No live host/provider or end-to-end operation evidence SRC-1; RT-CMP-host-model, RT-RTE-warm-save, RT-BAP-wiki-context Frozen shipped implementation and skills; host/provider internals and actual user state outside capture Successful close-out, truthful authorship, model compliance, cross-host deployment and causal task benefit Versioned execution traces connecting evidence, writes, checks, host delivery and later actions; outcome comparisons
Alternate read-back sources and negative-claim evaluators incompletely inventoried; required report-verification limit SRC-1; RT-RTE-context-delivery, report verification Specialists' wiki/rule inventory; verifier inspected commit/absence alternatives in src/engine/commit-context.ts, src/engine/absent-subject.ts, src/engine/turncontext.ts Complete read-back/evaluator inventory, attribution of all turn output to accepted wiki pages, or full-history absence Part/consumer records for those alternatives; absence assessment retaining lexical spellings, loaded wiki scope, bounded log and tracked HEAD domain
Broad comparison units omit per-part distinctions; required profile-verification limit SRC-1; MEM-OBJ-capture-state, RT-RTE-context-delivery, profile verification Partial profile groups raw/export bodies with queue metadata and session selector state with other resolved mechanisms Exhaustive per-object storage, lineage and authority comparisons, including complete session-state effects Separate classifications of each retained part and actual consumer, preserving supported existence findings
Initial provenance, caller control and remaining maintenance/observer coverage are local unknowns SRC-1; MEM-OBJ-recall-triggers, MEM-RTE-freshness-recheck, EPI-RTE-affinity-update, MEM-OBJ-review-reports Known later transformations; arbitrary initial content, generic API principals and partially inspected alternatives unresolved Complete memory-value, write-control or semantic-repair inventory; unsupported system-wide negatives Provenance/admission records and targeted producer-to-consumer inspection of unresolved branches
Symbolic checks and model judgment have narrower domains than semantic fidelity SRC-1; EPI-RTE-mechanical-check, EPI-RTE-distill-check, MEM-RTE-topic-merge Literal overlap, source/conflict preservation and selected added-claim gates Truth from occurrence, complete claim preservation, universal rejection rollback or full-loop transaction safety Claim-level input/output and rejection traces; enforced preservation and restoration across replacement/publication stages
Model independence and tool exclusion depend on configuration outside enforced gates SRC-1; RT-CLM-independent-verify, RT-CLM-tool-free Configurable WRITE/VERIFY roles and argv spawn Distinct immutable verifiers, independent errors or universally tool-free children Resolved model identity enforcement and deployment authority evidence; independence experiments for error claims
Retained identifiers and reasons do not guarantee recoverable evidence at consumption SRC-1; MEM-OBJ-capture-state, MEM-OBJ-wiki-index, MEM-OBJ-emission-ledger, RT-RTE-context-delivery Expiring exports, external transcript pointers, hash-only emissions and evidence-stripping excerpts Universal replay, complete DB reconstruction from Markdown or reasons accompanying every supplied claim Versioned body retention, reconstruction checks and actual consumer payloads/reload traces
Adaptation is wired, but theory-specific iteration and improved capacity are unestablished SRC-1; MEM-RTE-feedback-fold, EPI-RTE-affinity-update, epistemic conclusion Standing feedback/selection architecture and criticism procedures without linked run comparison Exercised theory building, criticism-caused capacity gain, exercised self-improvement or successful improvement Theory/criticism/revision lineage into a next round; identified update and later causal use; objective-relative controlled outcomes