LLM-WIKI-MCP report verification

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

Verification

The pinned reports support a bounded implementation account. Both previous blockers are repaired, including their dependent conclusions. I read all supplied reports, correction answers, reconciliation, structural findings, previous verification and governing contracts. The structural check reports none; there is no structural failure to route. I independently traced frozen source rather than treating correction answers or analysts' validation statements as verification. Git HEAD matches the revision in the Source register. No target, test, example or provider was executed. Source inspection below supplies SRC-1 implementation evidence; README, methodology and operating instructions supply separately attributed doctrine/design, not observed operation or causal benefit.

Runtime and workflow

Packaged entry points, interactive dispatch, one-shot dispatch, final ask/context/executor definitions, the saved executor predecessor, planner fallback, plain/store generation paths and second-pass helpers support the distinct routes RT-RTE-agentic-ask, RT-RTE-plain-ask, RT-RTE-store-ask and RT-RTE-mcp-dispatch. The final planner's unresolved base call falls through its exception handler; older planner bodies do not establish active planning. Code selects evidence and next steps; the inspected generation request asks for text, not model-selected tool calls. SRC-1: pyproject.toml, src/llm_wiki_mcp/cli.py, src/llm_wiki_mcp/context_api.py, src/llm_wiki_mcp/server.py.

The workflow account and annotation faithfully trace the selected interactive subject-question path. Blankness controls recovery rather than factual acceptance. The second helper builds a different prompt and can itself return deterministic fallback. The main return retains the first prompt and first model status; CLI display depends on answer truthiness, not that status or successful persistence. Thus delivered text, model success and durable retention remain distinct. RT-CLM-context-budget correctly limits its best-effort estimated-text controls to the first agentic pack. RT-CLM-ask-nonmutation does not imply a product-wide write ban or absence of history/config effects. The mutable model/endpoint and interpreted versus executable authority distinctions in RT-CMP-ollama-model, RT-BAP-answer-guidance and RT-BAP-config-control remain supported. SRC-1: src/llm_wiki_mcp/context_api.py, src/llm_wiki_mcp/cli.py, src/llm_wiki_mcp/server.py.

Correction checks: historical exposure and independent answer copies

Runtime correction accepted. The final history executor loads full rows; recursive sanitization preserves prompt keys. The pack's recognized history-tool branch serializes the resulting structure up to 6000 characters, then subjects it to source allocation and whole-pack trimming. Its separate recent-history renderer selects questions and shortened answers. RT-OBJ-context-pack, RT-RTE-agentic-ask, the runtime account and RT-CLM-context-budget now consistently distinguish these channels. The dedicated history budget and history_tokens_estimate no longer purport to measure all historical exposure. The correction preserves actual truncation controls without guaranteeing full prompt delivery. Memory's annotation agrees; EPI-RTE-history-reshape excludes verbatim stored prompts only from the recent-Q/A renderer. SRC-1: src/llm_wiki_mcp/context_api.py.

Memory correction accepted. I followed final agentic recording through the generation adapter, sanitizer, combined recorder, metrics writer, loader, summary, usage/self-access composition and registered diagnostic wrappers. Final agentic metadata can contain sanitized provider answer and raw response bodies, including nested second-pass results. Metrics persist this metadata and return recent complete rows. history_enabled gates append, not the subsequent metrics write when reached; history compression rewrites different files. MEM-OBJ-runtime-traces now states this independent retention surface and distinguishes provider text from the final normalized/fallback answer. Its compaction, write-side, withdrawal, reconstruction and diagnostic read-back descriptions preserve the same qualification. A history-recording exception can still prevent the later metrics write. CLI diagnostics expose selected fields rather than all returned metadata. The final pack's tool-evidence whitelist does not include these diagnostic names, so diagnostic host return is not automatic model delivery. SRC-1: src/llm_wiki_mcp/context_api.py, src/llm_wiki_mcp/server.py, src/llm_wiki_mcp/cli.py.

Retained objects, admission and withdrawal

Page writes/index rebuilding, final search, extraction/provenance predicates, note templates, transcript clipping, decision SQL/page writes, rename/delete, configuration saving and documentation consolidation support the retained-object and admission findings. MEM-OBJ-wiki is content storage; MEM-OBJ-pages-fts is derived access state; MEM-OBJ-provenance is change/lineage metadata, not old source payloads. MEM-OBJ-notes correctly identifies deterministic templates and ranking/snippet influence before editorial promotion. MEM-RTE-transcript-decision preserves separate transcript clipping and decision/rationale admission. None of these mechanisms certifies source truth. SRC-1: src/llm_wiki_mcp/server.py, src/llm_wiki_mcp/context_api.py.

RT-RTE-knowledge-write distinguishes invocation/apply permission from per-content human approval. MEM-RTE-page-withdrawal correctly limits deletion to active files and index rebuilding, not sidecars, provenance, historic prompts, metrics or external copies. RT-RTE-runtime-config and RT-RTE-docs-consolidate describe caller-triggered executable selection and static documentation transformations, not autonomous improvement. Temporary-file config replacement is not general rollback; archive moves do not back up every overwritten output. SRC-1: src/llm_wiki_mcp/server.py, src/llm_wiki_mcp/context_api.py.

MEM-OBJ-ask-history, MEM-OBJ-ask-history-compressed, MEM-RTE-history-compaction, MEM-RTE-recursive-context and MEM-RTE-cli-history retain the relevant consumer distinctions. Compression selects at most 500 live rows before destructive rewrite and appends lossy older-turn reductions to a separate archive. The archive has an exposed recursive-context reader, not automatic final-pack consumption. Prior questions can affect code-level intent resolution; CLI session copies support UI history rather than established model reload. These are implemented retention/use paths, not observed benefit. SRC-1: src/llm_wiki_mcp/context_api.py, src/llm_wiki_mcp/cli.py, src/llm_wiki_mcp/server.py.

Epistemic claims and checks

The README, methodology and generated-note passages support the attributed claims EPI-CLM-wiki-substrate, EPI-CLM-provenance-refresh, EPI-CLM-answer-fallback and EPI-CLM-note-suggestions. The report does not confuse storage authority, byte freshness, candidate suggestions or answer availability with factual warrant. SRC-1: README.md, METHODOLOGY.md, src/llm_wiki_mcp/context_api.py.

The final router, extractor and composer support EPI-RTE-fallback-compose: the readiness branch asserts release readiness without requiring supporting pages. The empty-evidence counterexample establishes non-entailment and therefore supports that branch's ampliative classification. Generic line extraction is separately assessed; model answer relations and sidecar semantic claims remain indeterminate where no concrete content/check establishes more. EPI-RTE-answer-check tests availability, not truth. The output and check-result objects EPI-OBJ-fallback-answer and EPI-OBJ-check-results do not imply a retained acceptance register. SRC-1: src/llm_wiki_mcp/context_api.py.

Lint, dry-run-write, repair, documentation reconciliation, context-window formatting, regression aggregation and the mocked history test support the bounded licenses in EPI-RTE-structure-check, EPI-RTE-diagnostic-check and EPI-RTE-regression-check. Structural predicates can guide applied edits and fixture predicates can control harness exit; neither establishes arbitrary answer correctness. Test source is not passing test evidence. The scoped no-factual-acceptance finding concerns inspected active answer/write paths, not every unassessed generator or diagnostic. Learning, theory criticism, self-improvement and provider-internal behavior are not inferred from mere persistence or missing run evidence. SRC-1: src/llm_wiki_mcp/server.py, src/llm_wiki_mcp/context_api.py, tests/ask_history_context_test.py.

I assessed every declaration, annotation, retained source anchor and supporting passage against its claim scope. No evidenced-absence records are declared. Route wired and ledger implemented are supported as architectural findings, separately from uninspected operation. No source layer supports observed model compliance or causal benefit. The reconciliation preserves these distinctions. Its three supersessions correctly identify the duplicate page corpus, sidecars and withdrawal route, without replacing epistemic qualifications. Combined history records remain valid alongside narrower objects/routes. Every Part of: relation is semantically supported: specialized writes belong to the broad writer; availability, composition and the explained cross-kind answer output belong to ask; compression is an ask subroute with additional triggers. No unsupported identity, containment or unresolved conflict remains. Memory integration issue 1 describes an earlier qualification, but its evidence and the corrected runtime now agree; the reconciliation correctly retires the prior conflict rather than choosing a stronger status.

The frozen root tree, packaged callers, exported handlers and producer/consumer dependencies guided omission questions, not just listed quotations: do alternate callers bypass ask/ingest controls; do history settings govern every answer copy; and does shipped guidance or another retained instruction surface change the scoped acceptance account? One-shot/store ask, plain dispatch, transcript/decision admission, recursive context, following-page search and the independent metrics chain have supported dispositions above. Following-page search reloads full Markdown before windowing, but its tool name is not recognized by the first-pack evidence whitelist. Shipped operating notes request inspection before reliance, not a recorded evidence-consuming factual acceptance decision. Schema/TOC retain the local inventory limit below. SRC-1: pyproject.toml, src/llm_wiki_mcp/cli.py, src/llm_wiki_mcp/server.py, src/llm_wiki_mcp/context_api.py, SKILLS.md, METHODOLOGY.md, examples/demo_commands.sh.

Further optional omission expansion stopped because these selected challenges have supported dispositions and no identified material contradiction remains. Uninspected evaluator bodies, document generators, extraction internals, malformed-input cases and cross-writer behavior prevent exhaustive correctness or route comparisons; the reports do not emit those broader conclusions. External host grants, populated deployment corpora, provider internals and actual runs remain outside the supplied evidence. These scoped uncertainties do not undermine the positive implementation account and are not evidence of absence.

Blockers

none

Limits

  • The retained-content inventory is not an exhaustive inventory of generated navigation and editable guidance. MEM-OBJ-wiki, RT-RTE-knowledge-write and memory's integration issues preserve the distinction: SRC-1 src/llm_wiki_mcp/server.py implements TOC page generation and a separate editable/default vault schema.md. The schema write/return body was independently checked, but its complete downstream instruction-consumption chain remains untraced. Withhold exhaustive instruction-surface and maintenance-route comparisons, and do not infer automatic final-model schema delivery. The established page, history, diagnostic-retention, configuration and retrieval findings remain supported. The memory integration issue retains the supporting schema passage; this is a local coverage limit, not an incorrect absence assessment or a reason to merge schema guidance into ordinary page identity.