Synto report verification

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

Verification

The current reports support a bounded account of Synto's shipped knowledge-production and consumption lifecycle. Both previous epistemic blockers are repaired, including their dependent ledger and conclusion passages. No material blocker remains. The two partial-inventory limits below remain applicable; acceptance does not turn those inventories into complete comparisons.

I read the complete supplied members, correction answers, previous verification, types and contracts. The artifact check reports none, so there is no structural failure requiring routing. I assessed every declaration, source attribution, evidence status, explicit Part of: relation, annotation and reconciliation disposition. I did not repeat deterministic quotation-occurrence or link-resolution checks. Independent source reads and bounded searches used only SRC-1 under the Source register. HEAD was 91ac6a3681df0552b6c9baef159439c7ebd780c9 and status was clean. No target code, test, example, model or service was executed. Source inspection supports implementation and doctrine/design, not observed operation or causal benefit.

Corrections checked afresh

Ordinary saved Q&A and synthesis now have distinct consumer claims. EPI-RTE-answer-retention, its ledger row, and the bounded conclusion distinguish ordinary Q&A file persistence from synthesis registration and automatic catalogue admission. Independent reads of SRC-1, src/synto/pipeline/query.py (_save_query, _save_synthesis, _query_core, _find_page_unchecked) and src/synto/indexer.py (generate_index) establish that distinction. _save_query writes the file and refreshes the index without registering an article; the index enumerates concepts, source pages and up to 25 synthesis entries, not the queries tree. Recursive frontmatter-title resolution can nevertheless load an unindexed Q&A file if its title is supplied. The revised description, Later read-back, Activation or effect, ledger and conclusion preserve this possibility instead of asserting absolute Q&A unreachability. They agree with MEM-OBJ-synthesis, MEM-OBJ-index and the narrower later-selection wording in RT-RTE-query-answer. The first correction answer is supported.

Read-only source delivery is now correctly classified as read-back. EPI-RTE-verbatim-source now states that previously imported and persisted segments reach later MCP invocations. Independent reads of SRC-1, src/synto/cli.py (add) and src/synto/serve.py (read_source_segment and registration) confirm the acquisition-to-delivery chain described by MEM-OBJ-source-documents and MEM-RTE-source-passages. The field and bounded conclusion no longer require a read to write knowledge before it can count as read-back. They do not infer answer saving, downstream model consumption or source truth. The second correction answer is supported.

The revised reconciliation correctly removes the former indexing disagreement. Its statement about correction-answer availability describes its own supplied inputs; this verification separately received and judged the two epistemic answers. No declined objection or remaining substantive cross-report conflict was supplied or found.

Record and route dispositions

  • Runtime ownership and model state. RT-CMP-fast, RT-CMP-heavy and RT-CMP-embed distinguish role-selected inference from retained vault state. SRC-1, src/synto/client_factory.py and src/synto/protocols.py support configurable model strings and inference interfaces, not immutable weight pinning or training. src/synto/openai_compat_client.py confirms provider options are merged last. RT-RTE-pipeline-run gives Python, not a model, stage ownership. Direct inspection of src/synto/cli.py, src/synto/pipeline/orchestrator.py and src/synto/pipeline/lock.py supports caller-owned locking, changed-source priority fallback, lint before retries, separate truncation escalation, optional approval and nonfatal commit outcomes. Its guarantee strengths are appropriately conditional; a cooperating-caller lock is not global exclusion of external edits.
  • Acquisition and derived objects. MEM-OBJ-source-documents, MEM-OBJ-raw-notes, MEM-OBJ-source-summaries, EPI-OBJ-source-segment, EPI-OBJ-analysis-result and EPI-OBJ-single-article retain meaningful distinctions among original bytes, extracted source text, analysis metadata, rendered summaries and generated articles. SRC-1, src/synto/cli.py, src/synto/models.py and src/synto/pipeline/ingest.py support the dispatch, schemas and writes. Source summaries receive published status directly; the draft gate is not universal knowledge admission. Fidelity of PDF extraction and actual model compliance remain unestablished rather than falsely negative.
  • Graph and checks. MEM-OBJ-relations, EPI-OBJ-relation, EPI-RTE-candidate-filter and EPI-RTE-occurrence-lineage distinguish retained raw candidates, resolvable endpoint admission and chunk-wide provenance. SRC-1, src/synto/pipeline/ingest.py supports attribution to every segment in a unit, code-assigned occurrence confidence 1.0 and relation pointers to the unit's first segment. These mechanisms do not check paragraph entailment. EPI-OBJ-confidence, EPI-RTE-confidence-score and EPI-RTE-markdown-repair match the source-count/best-quality arithmetic and narrowly scoped unknown-link unwrapping in src/synto/pipeline/compile.py. Neither is a factual oracle. The non-ampliative classification is local to that formatting edge, not every cleanup helper.
  • Review, publication and feedback. RT-RTE-draft-publication, WF-RTE-interactive-review, MEM-OBJ-rejections and RT-BAP-rejection-guidance agree with SRC-1, src/synto/pipeline/compile.py, src/synto/cli.py and src/synto/state.py. Direct tracing confirms default interactive publication, optional verification, the 3,000-character initial preview, nonempty-feedback retention, three recent feedback strings delivered to a writer, the cap of five and unblock preserving history. Publication writes the destination and changes DB state before deleting the draft; this is ordered recovery protection, not cross-substrate atomicity. The workflow traces one coherent manual branch and its automatic alternative. Retained criticism delivery does not demonstrate effective revision, improved capacity or exercised self-improvement.
  • Context and restart. MEM-OBJ-ingest-chunks and MEM-RTE-checkpoint-resume correctly describe typed analysis checkpoints feeding merger code, with invalidation, corrupt-entry reanalysis, force purge and a short-note alternative. SRC-1, src/synto/pipeline/ingest.py supports the progression. MEM-OBJ-llm-cache and MEM-RTE-response-reuse match exact-key lookup before inference in src/synto/cache.py and src/synto/openai_compat_client.py; generation options are outside that adapter's key. Neither store is a private-reasoning transcript. MEM-OBJ-rag-embeddings correctly leaves the injected store's persistence and retrieval consumer unresolved. Source gathering and overflow retry in src/synto/pipeline/compile.py support budget sharing, progressively reduced evidence and degraded marking. Those are context-control mechanisms, not evidence of full-source coverage or successful writing.
  • Answers and retained indexes. RT-RTE-query-answer, EPI-OBJ-query-answer, MEM-OBJ-synthesis, MEM-RTE-synthesis-save, EPI-RTE-synthesis-guard and the corrected EPI-RTE-answer-retention preserve model relevance selection versus actual body delivery. SRC-1, src/synto/pipeline/query.py confirms per-page slicing, separate selector and answer calls, optional graph expansion, saving, duplicate strategies and chain/edit guards. Keep-existing can return before chain checking, as the epistemic record states. Selected names are not proof of loaded evidence. MEM-OBJ-index properly separates the Markdown routing catalogue, symbolic rebuild seed and exported index. The inspected catalogue and seed construction in src/synto/indexer.py support that distinction.
  • MCP and export. RT-RTE-mcp-answer, MEM-RTE-source-passages and EPI-RTE-verbatim-source match the separate selectors, policy gates and delivery budgets in SRC-1, src/synto/serve.py. I read all four verbatim handlers and the answer visibility callback. Article visibility, process-cached source-license grandfathering and the source-summary exception are different mechanisms. An answer's filtered page-name list cannot establish that every input passed the article gate. RT-RTE-pack-export and RT-BAP-pack-guidance agree with src/synto/pack_export.py: raw notes, drafts, Q&A and synthesis are copied independently of concept-article selection, managed trees are reset, and generated guidance preserves text outside managed blocks. Requested read-only/source-grounding behavior is not a host sandbox or observed compliance. Scoped searches of src/synto/readers.py support the separate cached catalogue and current file-body reads, not guaranteed live catalogue refresh.
  • Identity and recovery. MEM-OBJ-concept-entities, RT-RTE-concept-curation, MEM-RTE-identity-rebuild and EPI-RTE-state-recovery retain different mutation and recovery boundaries. SRC-1, src/synto/state.py, src/synto/pipeline/ingest.py, src/synto/pipeline/maintain.py and src/synto/cli.py support alias-denial persistence and clearing, denial-before-blessing restoration, explicit merge/split arguments and edit guards, bounded unmerge, clean preserving a seed, and Git undo not reverting DB state. These routes do not warrant universal rollback or distributed pack revocation.
  • Metrics, evaluation and claims. MEM-OBJ-metric-events matches operator-facing metrics/audit retention rather than an established automatic lesson writer. SRC-1, src/synto/metrics.py confirms separate detailed/rollup horizons and size-cap maintenance; CLI searches confirm backlog and item-report consumers. RT-RTE-compare-eval and EPI-RTE-offline-evaluation correctly distinguish available drivers from supplied runs. src/synto/pipeline/eval.py checks structure and nonempty source metadata, skips term recall and refuses live mode; src/synto/compare/runner.py builds isolated contestant vaults, publishes automatically and retains artifacts. The partial comparison-check inventory remains a limit below. EPI-CLM-wiki-synthesis, EPI-CLM-quality-evaluation and EPI-CLM-staged-review match SRC-1, README.md. Their comparisons appropriately withhold accepted ampliative knowledge, proposition-level citation support and mandatory sequential verification.

Across these records, wired implementation and uninspected operation are consistent with the epistemic ledger's implemented architectural status. No observed or causal claim is inferred from those labels. No report declares an evidenced-absence record. Route-local unknowns must not become system-complete negatives downstream.

I checked all explicit containment relations against their described responsibilities: pipeline objects and operations within production, synthesis saving/checks within query, interactive review within admission, and source primitives within the deliberately broad MCP container. Containment does not mean each part runs in every invocation. The reconciliation's broader-object/part and cross-route overlaps are not replacement identities. It therefore correctly preserves the records without amendments; there are no supersessions to validate. Its rejection-retention qualification is compatible with the conditional runtime account. No remaining unresolved conflict requires correction.

The omission questions were selected from the frozen tracked tree, alternate shipped paths and producer/consumer dependencies, not only cited anchors:

  1. Could alternate admission or resolution change later-memory conclusions? I followed source-summary publication, both answer-save branches, catalogue construction, recursive title resolution and export copying. The summary/synthesis bypasses hold. Ordinary Q&A lacks automatic queries-tree catalogue admission but remains title-resolvable and filesystem/export-accessible. Both corrected records preserve the necessary distinctions, so neither a broader positive nor an absolute recall absence is warranted.
  2. Could another evaluator change the checks or improvement account? I traced contestant execution into SRC-1, src/synto/compare/metrics.py, src/synto/compare/report.py and CLI report consumers. The advisor has expected-page, answer-substring and refusal checks and can recommend switching. Its output tells the human to edit configuration; it is not automatic production adoption. This supports the carried inventory limit, not a new factual-accuracy or causal-benefit claim.
  3. Could named-reference handling add consequential retained checks? I followed ingestion into SRC-1, src/synto/pipeline/items.py and searched items_audit/items_show in src/synto/cli.py. Deterministic quoted-title extraction and exact-evidence filtering of model-proposed references retain candidate items and mentions for later operator inspection. This is a real omitted detailed mechanism, but does not establish accepted factual propositions. Both specialist coverage accounts already leave item admission incomplete; the carried limit prevents treating their inventories as exhaustive.
  4. Could optional vector wiring or alternative disclosure overturn the consumer account? Tree and caller searches found optional RAG forwarding, while the ordinary orchestrator does not inject a store. The known vector write does not establish its persistence or later consumer. Reading the verbatim handlers and answer callback confirms distinct source and article policies. Export has independent copying. The reports retain these as bounded facts and unknowns, not complete absence or confidentiality claims.

Further optional expansion stopped because these consequential questions have supported dispositions and no identified material challenge remains without one. Uninspected extractor internals, relation aggregation and further maintenance inverses do not invalidate the existing qualified account. Their availability alone does not require an exhaustive audit. The frozen target and whole-system functional boundary remain supported.

Additional load-bearing evidence for carried limits

The following passages are implementation evidence from SRC-1, not executed results. The corrected save/read-back mechanisms already have checked passages in their cited records; they need no duplicate quotation here.

Comparison checks include answer content, unlike the separate offline evaluator's skipped term recall:

if spec.expected_contains: answer = result.answer.lower() hits = sum(1 for phrase in spec.expected_contains if phrase.lower() in answer) scores.append(hits / len(spec.expected_contains)) --- src/synto/compare/metrics.py

The switch output leaves installation to the operator:

"Edit synto.toml in your vault and set the challenger config:\n" f"toml\n{report.switch_config_toml}\n" --- src/synto/compare/report.py

Named-reference admission checks source-string evidence:

if not _has_exact_evidence(name, title, body, source_path): continue --- src/synto/pipeline/items.py

The retained object remains a candidate:

name=item.name, kind="ambiguous", subtype=item.subtype, status="candidate", confidence=item.confidence, --- src/synto/pipeline/items.py

Blockers

none

Limits

  • RT-RTE-compare-eval and EPI-RTE-offline-evaluation do not inventory the comparison advisor's distinct expected-page, answer-substring and refusal checks or switch recommendation. SRC-1, src/synto/compare/metrics.py, src/synto/compare/report.py, src/synto/compare/runner.py and CLI consumers in src/synto/cli.py establish those additional functions; minimum passages are retained above. The structural offline-evaluator findings and unobserved-benefit/no-automatic-installation conclusions remain supported. Withhold complete evaluator/oracle coverage comparisons; do not generalize skipped offline term recall into a claim that the comparison path never checks answer content. Its heuristic checks do not establish semantic truth or causal model benefit.
  • The item-helper coverage limits beside MEM-OBJ-raw-notes and EPI-OBJ-analysis-result leave named-reference and quoted-title retention outside the declared detailed inventory. SRC-1, src/synto/pipeline/items.py, dispatch in src/synto/pipeline/ingest.py, and items_audit/items_show in src/synto/cli.py establish exact-evidence filtering, candidate/mention persistence and later operator inspection; minimum passages are retained above. Main article, summary, identity and query routes remain valid. Withhold complete check/admission and retained-object inventory comparisons. Candidate names and evidence labels alone do not establish accepted factual claims.