Synapptic report verification
Type: agentic-system-analyses/types/agentic-system-verification.md
Verification
The reports support a bounded implementation account. I independently read the consequential producer, admission, persistence and consumer code under SRC-1, rather than accepting the analysts' checks as verification. The checkout HEAD matches the reviewed revision. Its top-level tracked tree agrees with the boundary coverage. No target code, tests, examples, hooks or providers were executed. The supplied report check reports no structural findings; the four correction-answer files are empty. No correction disposition is therefore presumed.
Runtime, memory and delivery
I traced ingest, explicit/queued/all extraction, standalone merge and synthesis, the SessionEnd shell driver, integration and all nine output writers. SRC-1, src/synapptic/cli.py, src/synapptic/state.py, src/synapptic/filter.py, src/synapptic/extract.py, src/synapptic/profile.py, src/synapptic/synthesize.py, src/synapptic/integrate.py, src/synapptic/outputs.py, src/synapptic/bundle/hooks/synapptic-session-end.sh.
- RT-RTE-ingest-profile, its memory annotation and the workflow account preserve the actual ordering and selectors. Ingest reads but does not use the queue to choose sessions. Empty saved observations count as processed. Extraction context is global-profile-gated; filtering excludes tool evidence and uses an approximate character budget. The parser admits shape, not evidential truth. The separate EPI-RTE-extract-candidates, EPI-RTE-observation-admission and EPI-RTE-profile-curation correctly separate proposal, structural admission and heuristic updating. Their implementation statuses are supported; operation remains uninspected.
- I checked MEM-OBJ-observations, MEM-OBJ-observation-envelope, MEM-OBJ-profile-observations and MEM-OBJ-profile-metadata against the actual writer, constructor and consumers. Optional evidence survives in observation JSON but is not copied into newly constructed profile entries. Similarity reinforcement, longer-text replacement, source caps, decay, pruning and cross-project promotion support the reports' qualifications, not semantic contradiction resolution or independent corroboration. The same-session evidence-count example follows from the inspected loop without execution.
- RT-RTE-publish-archetypes, EPI-RTE-narrative-inputs, MEM-OBJ-archetype and the workflow's delivery account distinguish eligibility, generated prose, saving, publication and host acceptance. The actual constants are 0.3/one for ordinary dimensions; guards/failures use 0.5. Truthy narrative admission does not enforce grounding or word count. Saved text can outlive current eligibility. Integration writes combined saved narratives despite computing filtered counts, supporting RT-CLM-target-filtering. Its five-element updates conflict with ingest's three-name unpacking after writes. These are supported implementation deductions, not observed failures.
- RT-BAP-archetype-host correctly locates force at the external host's interpretation of instruction files. Claude's existing-index condition, Cursor's always-apply wrapper, marked-section writers and whole-file writers are distinguished. Neither local publication nor wrapper metadata establishes actual host loading or compliance.
- RT-RTE-session-hook is supported by the shell and its callees: explicit-session extraction, merge, then synthesis without integration or success chaining. Standalone synthesis always attempts global synthesis before selected projects. The hook therefore differs from ordinary ingest without losing the global update path. MEM-CLM-append-only correctly contrasts the bundled doctrine with replaceable per-session files.
- I checked rollback, reset and uninstall against MEM-RTE-state-maintenance and EPI-RTE-withdrawal-recovery. Global-only rollback, current-state reset, legacy uninstall state selection and surviving non-Claude copies support bounded recovery/withdrawal, not an all-consumer retraction. Per-file atomic replacement is not a transaction or concurrency guarantee.
Evaluators and epistemic license
Direct inspection of SRC-1, src/synapptic/benchmark.py, src/synapptic/benchmark_results.py and the benchmark CLI dispatch supports RT-RTE-benchmark-feedback, EPI-RTE-benchmark-judgment and EPI-RTE-benchmark-disposition. Per-guard mode removes a heuristic block or adds a missing guard; default batch mode varies the whole narrative. Respondent instructions, judge truncation, separate-judge configuration, condition-session reuse, cache-key differences and automatic verdict writes before global-exclusion confirmation are correctly retained. Compaction of missing batch verdict positions can shift later labels; the epistemic counterexample follows the scatter/compaction/aggregation sequence. Numerical categories are conditional derivations from labels, not causal identification of guard benefit. Re-inclusion deletes exclusions, not model verdicts.
MEM-OBJ-benchmark-cases, MEM-OBJ-benchmark-results and MEM-OBJ-claude-session distinguish reusable cases, detailed saved results, reduced selectors and opaque resumed context. The results CLI reads summaries rather than a matched experiment. Provider dispatch and payload inspection supports RT-CMP-call-llm's unpinned inference substrate and the runtime's bounded internal tool grant and retry account. SRC-1, src/synapptic/providers.py. Nothing inspected establishes provider weight changes, exact checkpoints or improved capacity.
I checked the claim passages in SRC-1, README.md, src/synapptic/bundle/skill/SKILL.md, src/synapptic/bundle/patterns/default/prompt.md and src/synapptic/synthesize.py. EPI-CLM-background-learning, EPI-CLM-individual-impact and EPI-CLM-failure-grounding accurately attribute doctrine and retain implementation counterconditions. RT-OBJ-pattern-prompt is supported by the user-first loader in SRC-1, src/synapptic/patterns.py. Prompted reasons and criticism are not demonstrated generated content. The epistemic ledger separates checks, disposition, retention and operational use; its indeterminate model transformations do not infer conjecture merely from unproved entailment. The separate theory-builder, learning, reflection and dispositional self-improvement qualifications do not overstate the evidence.
Relay and omission challenges
I traced forwarding, both provider handlers, session tracking, request serialization, database insertion/read-back, transcript indexing and browser fallback. SRC-1, src/synapptic/relay/app.py, src/synapptic/relay/forwarder.py, src/synapptic/relay/routers/anthropic.py, src/synapptic/relay/routers/openai.py, src/synapptic/relay/sessions.py, src/synapptic/relay/context.py, src/synapptic/relay/tokens.py, src/synapptic/relay/store.py, src/synapptic/relay/indexer.py, src/synapptic/relay/parse.py, src/synapptic/relay/routers/browser.py. These support RT-RTE-relay-forwarding, MEM-RTE-browser-readback, MEM-OBJ-request-log, MEM-OBJ-session-index and MEM-OBJ-session-bookkeeping. The OpenAI handler passes the tracker tuple to session persistence before forwarding. Raw-body transport is not the derived stored display, which is not the further-reduced browser view. Tool-identity grouping is not semantic session isolation. JSONL compaction-marker parsing is not implementation of host compaction.
The frozen tree and producer/consumer dependencies motivated three consequential omission questions. Could another shipped driver refresh outputs or retract them despite the reported gaps? The hook, explicit stages and maintenance callees do not invalidate the reported path distinctions. Could relay capture be an alternate automatic instruction-learning source? Profile/state-call searches under the relay returned no matches; the positive discovery and browser paths inspected support JSONL acquisition and operator read-back, not a new relay-to-profile route. This is not an exhaustive repository-wide absence finding. Could evaluator persistence or alternate treatment change the claimed warrant? Both modes, cache consumers and feedback were traced; their differences support the existing restrictions. An additional debug-trace retention surface is the local inventory omission below.
Further omission expansion stopped because these selected challenges have supported dispositions and no identified material challenge remains unresolved. Full WebSocket/dashboard fidelity, comprehensive metrics semantics, external host behavior and provider checkpoints remain outside the conclusions actually asserted. Their unassessed detail neither establishes absence nor defeats the positive profile and operator-reader routes.
Relations and reconciliation
I checked every declared record's referent, source anchors and evidence strength, including all Part of: relations. Epistemic proposal/admission/curation parts belong to ingest; narrative eligibility belongs to synthesis/publication; judgment/disposition belong to benchmark feedback; browser read-back belongs to the relay's observability portion. Cross-kind object-to-producing-route containment is explained and does not equate stored content with its driver.
The four supersessions in reconciliation correctly connect EPI-OBJ-profile-text, EPI-OBJ-profile-fields, EPI-OBJ-archetype and EPI-OBJ-benchmark-cases to their memory counterparts. Their identities and affected findings agree. The broader EPI-OBJ-observations and EPI-OBJ-benchmark-results remain valid containers alongside narrower retained parts; no false split or transfer of envelope semantics is needed. Maintenance and withdrawal overlap without whole-route identity. Workflow annotations add workflow-specific responsibility rather than duplicate declarations. All memory integration issues receive dispositions. No unresolved inter-report contradiction, unsupported supersession or missing material part requiring correction was established. Source-doctrine mismatches are not disagreements between analysts.
Blockers
none
Limits
- MEM-OBJ-benchmark-results, EPI-OBJ-benchmark-results and RT-RTE-benchmark-feedback do not inventory the batched evaluator's separate debug trace files under
benchmarks/traces. SRC-1,src/synapptic/benchmark.py, implements automatic retention of raw respondent and judge returns plus truncated prompt displays. Readers should withhold a complete inventory of evaluator trace retention, deletion and confidentiality surfaces. This omission does not change the supported case/result/profile-selector consumers or establish another behavior-shaping read-back route. The reports already withhold practical privacy guarantees; no emitted conclusion depends on this being the only evaluator store.
trace_dir = BENCHMARKS_DIR / "traces" trace_dir.mkdir(parents=True, exist_ok=True) ---
src/synapptic/benchmark.py:1147-1148tf.write(f"=== CHUNK {ci} WITH RAW ===\n{raw_with}\n\n") ---
src/synapptic/benchmark.py