llm-wiki synthesis
Type: agentic-system-analyses/types/agentic-system-synthesis.md
Bounded synthesis
llm-wiki combines deterministic session conversion, model-facing writing procedures and file-based retrieval. It claims to compile coding history into an interlinked knowledge base; it is not a single autonomous model loop. This account covers the shipped repository at commit b1088890ee0743810a92577aecad946c6b3eb2d2, with an analysis cutoff of 2026-10-16. SRC-1 supplies inspected implementation and doctrine/design, not observed runs or causal experiments. The whole-system boundary includes shipped producers, maintenance instructions, callers and consumers, but excludes external host scheduling and permissions, provider internals and private histories. No target command, test or provider was executed. See the boundary, Source register and RT-CLM-history-compilation.
From history to retained pages
The invoking user or host starts conversion. Python chooses adapters and changed files, filters and normalizes records, redacts/truncates their rendering, writes raw Markdown and persists mtime state for later selection. Raw files are therefore evidence renderings, not byte-identical native histories. Their contents can establish that something was recorded, not that every reported proposition is true. The converter's raw-write guard refuses selected existing outputs unless force is enabled; it does not constrain direct host/editor writes or establish filesystem immutability. See RT-RTE-session-conversion and EPI-OBJ-raw-sessions.
Semantic writing then takes distinct paths. Plain llmwiki sync does not perform foreground semantic ingest. The shipped /wiki-sync procedure asks an external foreground agent to ingest new raw files, read index/overview, create or revise source/entity/concept pages, preserve contradictory claims, maintain navigation and report its work. Above 20 new files it asks the user whether to process all or a subset. These are host-interpreted directions, not code-enforced claim checks. Saving a substantial query answer requires a separate user decision; ordinary ingest does not require approval of each claim. See RT-RTE-host-ingest and MEM-OBJ-wiki.
Separately, llmwiki synthesize selects changed raw files and a backend, then admits returned text into source-page files, index/log and state. Dummy is the default and the fallback for unknown backend names; an unavailable configured backend instead yields an error. Ollama receives metadata and the first 8,000 body characters through HTTP. Its loopback default is not a network prohibition: remote configuration is allowed with a warning. A user template override changes guidance, but prompt/model changes alone do not trigger regeneration under the mtime predicate. Backend force can replace previous bodies. Neither a successful counter nor the word synthesis establishes correct model reasoning or new knowledge. See RT-RTE-backend-synthesis, RT-OBJ-source-page and RT-CMP-ollama.
Deferred work changes owner, not model frame
The representative multi-step workflow is agent-backend staging followed by later foreground completion. Python writes a durable rendered prompt and a UUID-marked placeholder, then advances state and the synthesized counter before semantic completion. A separately invoked /wiki-sync asks the existing foreground agent to scan pending prompts even when conversion found no new files, process them serially, generate bodies and call the completion helper. The backend does not launch a worker or schedule that later turn. Its rendered task includes only an 8,000-character raw prefix; complete raw files remain separately readable, while delivery of all relevant existing wiki pages is not guaranteed. See RT-OBJ-pending-prompts, RT-RTE-agent-completion and the workflow account.
Completion checks target existence, a pending sentinel and UUID equality. A mismatch rejects before replacement and leaves staged files available for caller repair. This is association validation, not verification of quotations, provenance or contradictions. Pending UUID reuse searches by slug alone, although output paths also distinguish project/date. Successful delivery means the supplied body replaces the placeholder and the helper reports the retained page path; later use and publication are separate. Frontmatter survives, but arbitrary appended prior body edits do not, contrary to the docstring. Cleanup is best effort, and no transaction, lock or automatic body rollback is established. See RT-RTE-agent-completion, RT-CLM-append-preservation and workflow recovery and delivery.
Checks and disposition do not form a universal acceptance gate
Optional candidate promotion, merge and discard implement explicit file/status transitions. Promotion can overwrite a target; merge appends content and archives the candidate; discard can retain a separate reason file. Human-review doctrine calls a promotable candidate legitimate and nonduplicate, but the transition code neither authenticates a reviewer nor establishes evidence-consuming acceptance. Direct ingest and backend completion bypass this optional route. Cross-linking and overview revision are requested organization, not established integration following acceptance. See RT-RTE-candidate-admission, EPI-CLM-candidate-trust and the epistemic conclusion.
Checks have narrower domains than several names suggest. Semantic-named lint rules skip without a callback; with a non-None callback they inspect structural proxies without calling it. CLI supplies no callback. Freshness warns on age rather than withdrawing a page. Confidence is heuristic metadata arithmetic, not calibrated truth probability; lifecycle helpers return values rather than persisting transitions. Metadata tools display/filter stored assertions, and candidate status differs from lifecycle. Conditional lint failure affects command success, not page acceptance. See EPI-RTE-semantic-proxies, EPI-RTE-lint-return, EPI-RTE-freshness-check, EPI-RTE-lifecycle-helper and MEM-OBJ-quality-metadata.
Later consumption and publication
Retained files reach different consumers through different selections. Host query doctrine asks for index/overview and relevant full pages; Claude's schema additionally prescribes folder-context pre-reading, unlike the agent-agnostic schema. MCP query instead uses lexical ranking, bounded corpus scans, short snippets and an overview prefix. This is requested context delivery, not an LLM answer generator or truth oracle. Graph query reloads serialized nodes/edges and returns labels/paths under seed, depth and character limits, not full page evidence. These implemented or instructed pull routes establish available knowledge and ranking inputs, not demonstrated answer dependence. Proposed SessionStart, queue and special-cache delivery remain unresolved, so the boundary is not established as exhaustively pull-only. See RT-RTE-mcp-access, RT-BAP-wiki-context, MEM-RTE-graph-query, MEM-OBJ-navigation and MEM-OBJ-ingest-queue.
Archiving does not universally revoke availability: recursive Markdown query/search can return candidate or archived claims without adjacent rejection reasons. Read-page containment is endpoint-specific, not a universal host policy. MCP's default sync additionally constructs an unsupported --dry-run flag; live confirmed calls omit it, while the handler wraps child output without checking child success. These are inspected control-flow findings, not observed failures. See MEM-CLM-archive-visibility, MEM-OBJ-candidate-archive and RT-RTE-mcp-access.
Publication is another lineage: raw/session metadata feeds regenerated reader/search/export artifacts. Optional build-time Claude receives a capped metadata brief rather than full raw bodies and writes prose into reader HTML, not curated wiki Markdown. Output regeneration clears the old tree before rebuilding, so it is not atomic publication. This path does not demonstrate semantic traversal of the curated wiki. See RT-RTE-reader-build, EPI-OBJ-reader-overview and RT-CMP-claude.
What changes through use, and what remains unestablished
The strongest supported contribution is durable trace-to-context transformation: retained sessions and recorded tool material can feed automatic source-page/task production with later host/MCP consumers. This is an architectural trace-learning contribution, not measured improvement in future capacity. Requested routine host ingestion provides another affordance; human-approved method revision is a different admission mechanism. No inspected model request updates numerical parameters. See RT-RTE-backend-synthesis, MEM-OBJ-wiki and the profile verification.
The self-learn procedure offers a more direct method-change path: inspect session experience and method artifacts, propose lessons, show a diff, obtain human approval, then revise documentation/steering/skills for later loading. Reflection separately proposes wiki changes and requires approval before editing. These support improvement-directed affordances, not exercised benefit. Update/reflection implementation strength remains disputed between the reports; their agreed procedures and permission distinctions survive that disagreement. See MEM-RTE-self-learn, MEM-RTE-wiki-maintenance, EPI-RTE-page-update and EPI-RTE-wiki-reflection.
The accepted records do not establish an instantiated theory-builder meeting conditions 1–4: localized page text alone does not establish a formulated theory, decisions depending on its content, content-directed criticism with blame and changed reliance, or retention of criticism shaping another round. Nor do they demonstrate criticism improving future capacity. Two-way reflective operation and autonomous theory building remain separately unestablished; a procedure named reflection and human-gated self-learn are not evidence of either. This is not a system-wide absence claim. At the shipped boundary across later sessions, exercised self-improvement is likewise unestablished: the method-revision affordance does not show an actual objective-responsive update, its live loading and subsequent behavior causally depending on it. Successful improvement would additionally need outcome evidence. See MEM-RTE-self-learn, EPI-RTE-wiki-reflection and RT-BAP-wiki-context.
For retaining searchable session context, the evidence supports file production and several later-consumer routes. For provenance-sensitive answers or reliable withdrawal of rejected claims, instruction-only fidelity, narrow checks, selective delivery and archive visibility prevent a stronger guarantee. An inspected end-to-end trace linking source input, generated propositions, review evidence and later answer use would change the operation assessment. Independent before/after comparisons would be needed for capacity or benefit attribution. Implemented source-content checks on all admission paths, consumer-side exclusion with rationale delivery, and tested full-identity completion association would change the corresponding architectural assessments; none is assumed here.
Limitations
| limitation | affected SRC IDs and record citations | inspected boundary | conclusion prevented | evidence that would resolve it |
|---|---|---|---|---|
| Maintenance implementation strength is unresolved; both verification limits and the reconciliation conflict are retained. Memory assigns afforded; epistemic assigns claimed. | SRC-1; MEM-RTE-wiki-maintenance, EPI-RTE-page-update, EPI-RTE-wiki-reflection; report limit, profile limit | Shipped update/reflection procedures at the frozen commit; shared source reads and approval rules, no host execution. | A single settled implementation-strength value for these procedures; neither position establishes execution. | Evidence distinguishing declared instructions from an operative host affordance, followed by declaring-analyst reassessment. |
| No execution, private corpus or causal comparison is supplied. | SRC-1; Source register, RT-RTE-backend-synthesis, RT-BAP-wiki-context, MEM-RTE-self-learn | Source inspection and shipped doctrine only; external hosts/providers and user histories are outside evidence. | Successful end-to-end operation, actual fidelity/acceptance, answer dependence, learning benefit, exercised reflection/theory building/self-improvement, durability and performance in use. | Scoped provenance-linked runs, actual method-update/loading/dependence traces and independently designed outcome comparisons. |
| Special-memory automation and initialization remain unresolved. | SRC-1; MEM-OBJ-navigation, MEM-OBJ-ingest-queue, MEM-OBJ-quality-metadata, RT-RTE-candidate-admission | Scaffold/caller searches, queue library, missing registered hook, quality helpers and optional candidate transitions. | Complete admission/lineage inventory, automatic hot-cache/Auto Dream operation, complete push or pull-only classification, durable automatic quality updates. | Shipped producer/selector/consumer wiring and initialization/admission evidence for each unresolved part. |
| Included variants were not exhaustively traced. | SRC-1; boundary coverage, memory coverage, MEM-RTE-graph-query, report omission disposition | Native adapter losses, repair transformations, built-in/external graph details, vault/editor variants, evaluator and deployment paths. | Exhaustive route/form/curation comparisons, universal fidelity or admission guarantees, system-complete negatives and deployment conformance. | Focused inspection of material variants plus retained supporting records; execution evidence for operational claims. |
| Selective representations do not establish semantic warrant or complete withdrawal. | SRC-1; EPI-RTE-semantic-proxies, MEM-CLM-archive-visibility, RT-RTE-mcp-access, RT-RTE-agent-completion | Prefix-limited generation, snippets/graph summaries, optional review, structural lint and UUID association checks. | Correctness or novel accepted knowledge from synthesis labels; complete retained reasons, archive isolation, atomic recovery or universal semantic acceptance. | Input/output and evidence-consuming review records, complete consumer-selection tests, and inspected mechanisms enforcing the claimed scope. |