Date: 2026-04-09 Status: active current-state checkpoint
This 2026-04-09 checkpoint is still useful for the broader benchmark map, but the active cross-repo runtime decision has moved forward:
- the latest head-to-head offline
ProductMemorycomparison betweensummary_synthesis_memoryanddual_store_event_calendar_hybridis tied at1156/1266 - the latest clean live Builder full validation root is
$SPARK_HOME\artifacts\memory-validation-runs\20260412-023241 - the latest clean live Builder full-run pointer is
$SPARK_HOME\artifacts\memory-validation-runs\latest-full-run.json - the chip-side freshness against that Builder baseline is
clean - the latest clean live Builder soak is
14/14,0failed and still favorssummary_synthesis_memory - the latest clean live Builder timings are benchmark
13.543s, regression23.724s, soak339.130s, total376.594s - Builder therefore repinned the runtime selector to
summary_synthesis_memory
For the current source-of-truth program connecting this repo to Builder live validation, use NEXT_PHASE_SPARK_MEMORY_KB_BENCHMARK_PROGRAM_2026-04-10.md.
This document is the shortest honest answer to five questions:
- where the memory system stands right now
- what is already benchmark-strong
- what is still incomplete
- how aligned the current Spark KB layer is with the Karpathy LLM knowledge-base pattern
- what should happen next
For the more comprehensive 2026-04-10 handoff that connects Spark intake, KB buildup, benchmark closure, and the next few days of work into one ordered program, see NEXT_PHASE_SPARK_MEMORY_KB_BENCHMARK_PROGRAM_2026-04-10.md.
The recent benchmark checkpoint commits are not arbitrary artifact dumps.
They are the judged outputs of the current memory architecture on the official-public BEAM evaluation path:
- the memory system first produces
domain_chip_memory_answers.json - the official-public evaluator then judges those answers category by category
- when one conversation finishes cleanly, that judged evaluation file is committed
- when a whole tranche finishes, the top-level official-eval manifest is reconstructed from the completed judged files and committed
So each checkpoint is evidence that the current memory system is surviving live benchmark evaluation, not only unit tests or local scorecards.
Important honesty note:
- the current judged
BEAMclosure is on the alternate openai-compatible MiniMax judge path, not the exact upstream OpenAI judge path - it is still strong official-public evidence, but it should be described as alternate judged evidence, not exact-official final closure
- local
ProductMemory:1266/1266 LongMemEval_s:500/500- local official-public
BEAM 128Klatest checked-in leader variants:400/400
Interpretation:
- current-state reconstruction is strong
- correction and contradiction handling are strong
- temporal and multi-session recall are strong
- the current
summary_synthesis_memory + heuristic_v1architecture is real, not speculative
- bounded clean
LoCoMo- first active slice:
24/25raw with one known inconsistency - later
conv-26slices throughq126-150: repeated25/25clean reruns
- first active slice:
Interpretation:
- conversational linkage is strong on the measured lane
- broader clean
LoCoMoclosure is still not honest to claim yet
This scale is fully closed on the alternate judge path:
conv1-5: completed,0.8349conv6-10: completed,0.7094conv11-15: completed,0.7598conv16-20: completed,0.7559
Completion:
20/20conversations judged complete- tranche completion:
100%
This scale is now fully closed on the alternate judge path:
conv1-5: completed,0.915conv6-10: completed,0.9139conv11-15: completed,0.8889conv16-20: completed,0.9058
Completion:
20/20conversations judged complete- tranche completion:
100%
This scale is now fully closed on the alternate judge path:
conv1-5: completed,0.8394conv6-10: completed,0.9108
Completion:
10/10conversations judged complete- tranche completion:
100%
Interpretation:
- the alternate judged official-public
BEAMstory is no longer partial at500K,1M, or10M - the alternate judged official-public
BEAMstory is now also closed at128K - the remaining
BEAMwork is now exact-official judge parity, not MiniMax-path artifact cleanup
- broader clean
LoCoMo- move beyond the bounded
conv-26lane
- move beyond the bounded
- first canonical
GoodAIrun- still not meaningfully closed
- exact-official upstream OpenAI judge closure
- the current
BEAMjudged story is now strong alternate evidence across128K,500K,1M, and10M - exact-judge parity is still a separate evidence class
- the current
- direct runtime metrics
- latency
- token cost
- memory growth
- drift rate
- correction success rate
- deletion reliability
- real Spark shadow traces
- replayable batches from actual traffic
- failure taxonomy from product traces
- full knowledge-base product layer
- current scaffold exists
- the full compile/query/filing loop does not yet exist
The honest answer is:
- already strong enough to call concrete
- not yet finished enough to call complete
Why it is strong:
- it closes local
ProductMemory - it closes
LongMemEval_s - it is strong on bounded
LoCoMo - it now has alternate judged official-public
BEAMclosure at128K - it now has full alternate judged official-public
BEAMcoverage at500K,1M, and10M
Why it is not finished:
- exact-official judge parity is still open
- the broad
LoCoMoand canonicalGoodAIsurfaces remain open - the user-visible KB layer is still early
Current verdict: partially aligned, not fully there yet.
The repo now has a real Spark KB scaffold that matches the shape of the Karpathy idea in the following ways:
raw/exists as the intake shelfwiki/exists as the compiled markdown layerCLAUDE.mdis generated as an LLM-facing schema- the KB is downstream of governed memory, not a second truth store
- the vault is Obsidian-friendly
- query outputs have a reserved filing location under
wiki/outputs/ - health checks exist
SparkMemorySDK.export_knowledge_base_snapshot()in sdk.py- KB scaffold in spark_kb.py
- CLI entrypoints in cli.py
- integration contract in spark_integration.py
- compiled session source pages in
wiki/sources/ - compiled timeline synthesis in
wiki/syntheses/timeline-overview.md - explicit repo-native ingest into
raw/repos/plus compiled repo source pages - filed KB maintenance report in
wiki/outputs/maintenance-report.md - filed KB answer pages in
wiki/outputs/query-*.md - contradiction and stale-state signals inside the KB maintenance report
- real
build-spark-kbsupport for explicit filed-output JSON inputs - real
build-spark-kbsupport for repo-source manifest JSON inputs - real
build-spark-kbsupport for filed-output manifest JSON inputs - real
validate-spark-kb-inputspreflight support for snapshot, manifest, and filed-output validation - compile results now expose both
repo_source_countandfiled_output_count - checked-in Spark KB example inputs now exist under
docs/examples/spark_kb/ - the checked-in Spark KB example bundle now has a real validate-build-health smoke test path
- the checked-in Spark KB example bundle is now self-described in
docs/examples/spark_kb/README.md - a checked-in invalid Spark KB validator fixture now exists under
docs/examples/spark_kb_invalid/ docs/examples/README.mdnow indexes the checked-in fixture bundlesdocs/examples/spark_kb/run_smoke.pynow runs the checked-in valid Spark KB example end-to-enddocs/examples/spark_kb_invalid/run_validate_failure.pynow runs the checked-in invalid Spark KB validator flowdocs/examples/run_smokes.pynow runs the checked-in valid and invalid Spark KB wrappers together.github/workflows/example-smokes.ymlnow runs the checked-in top-level example smoke runner in CI
- benchmark closure is no longer the only credible product story in the repo
- the KB layer is now the clearest remaining user-visible gap
- the next KB work should be real compilation and filing, not only scaffold maintenance
The system is still not fully Karpathy-complete because it does not yet have:
- incremental ingest of external articles, repos, papers, and datasets into
raw/ - cross-source concept/entity pages beyond runtime memory pages
- broad filed query answers generated against the wiki itself
- automated contradiction and gap-filling passes over mixed runtime-plus-research sources beyond the first maintenance heuristics
- Obsidian-native dashboards or Dataview views
- scheduled compilation or maintenance loops
The KB flow should be validated with the real CLI, not only by reading code.
Minimum live checks:
python -m domain_chip_memory.cli validate-spark-kb-inputs <snapshot_file> [--repo-source ...] [--repo-source-manifest ...] [--filed-output-file ...] [--filed-output-manifest ...]python -m domain_chip_memory.cli build-spark-kb <snapshot_file> <output_dir> [--repo-source ...] [--repo-source-manifest ...] [--filed-output-file ...] [--filed-output-manifest ...]python -m domain_chip_memory.cli spark-kb-health-check <output_dir>python -m domain_chip_memory.cli demo-spark-kb <output_dir>
Success means:
- the vault is scaffolded
- the source pages and synthesis pages exist
- input manifests and filed-output payloads validate cleanly before compile
- health checks pass cleanly, including repo-source/raw-copy parity and required filed-output sections
Current live result on 2026-04-09:
build-spark-kbnow exists as a real non-demo compiler path for snapshot JSON inputsbuild-spark-kb-from-shadow-replaynow exists as a first bridge from Spark-style shadow traffic into governed memory snapshot export plus visible KB compilationnormalize-spark-builder-exportandrun-spark-builder-intake-batchnow exist as the Builder-export bridge into that same governed memory plus visible KB pathnormalize-spark-telegram-exportandrun-spark-telegram-intake-batchnow exist as the Telegram-bot bridge into that same governed memory plus visible KB pathrun-spark-builder-telegram-intakenow exists as the direct Builder-home bridge for.tmp-telegram-*.jsonruntime artifacts, so live Telegram testing can flow into the same report, taxonomy, and KB surfaces without manual file curationrun-spark-builder-state-telegram-intakenow exists as the direct Builderstate.dbbridge fortelegram_runtimeevents, so live Telegram conversations can be reconstructed from Builder's persisted runtime trace instead of only temp JSON artifactsbuild-spark-kb-from-shadow-replay-batchnow exists as the first batch bridge from Spark shadow slices into one governed memory snapshot plus one compiled KB vaultnormalize-spark-builder-exportnow exists as an explicit Builder-export adapter that maps common Builder aliases such asthreads,messages,threadId,speaker, andtextinto the shadow replay contractnormalize-spark-builder-export-batchnow exists as the first batch Builder-export normalization path, so a directory of Builder exports can be normalized and validated together before replay or KB compilerun-spark-shadow-report-from-builder-exportnow exists as a direct Builder-export inspection path, so one Builder export can be normalized and replayed into an aggregate shadow report without compiling a KB vaultrun-spark-shadow-report-from-builder-export-batchnow exists as the first batch Builder-export inspection path, so a directory of Builder exports can produce one aggregate shadow report before KB compilebuild-spark-shadow-failure-taxonomy-from-builder-exportnow exists as a compact Builder-export failure diagnosis path, so one Builder export can be replayed into issue buckets, dominant unsupported reasons, and next-action guidance without compiling a KB vaultbuild-spark-shadow-failure-taxonomy-from-builder-export-batchnow exists as the first batch Builder-export failure-taxonomy path, so a directory of Builder exports can produce one compact Spark-facing failure dossier before KB compilebuild-spark-kb-from-builder-exportnow exists as the first Builder-export-to-KB bridge, so Builder conversation exports can be normalized, replayed through governed memory, and compiled into a visible KB without hand-editing them into replay JSON firstbuild-spark-kb-from-builder-export-batchnow exists as the first batch Builder-export-to-KB bridge, so a directory of Builder conversation exports can accumulate into one governed memory snapshot, one aggregate shadow report, and one compiled KB vaultrun-spark-builder-intake-batchnow exists as the top-level Builder batch entrypoint, so normalization, aggregate replay report, failure taxonomy, and KB compile can all run in one command against a real Spark export directoryvalidate-spark-kb-inputsnow exists as a real preflight for snapshot, manifest, and filed-output bundlesbuild-spark-kbcan now merge explicit--repo-sourcefiles with manifest-driven repo-source listsbuild-spark-kbcan now merge explicit--filed-output-fileinputs with manifest-driven filed-output lists- the shadow-to-KB bridge now files replay summary pages into
wiki/outputs/, so Spark shadow evidence and the compiled memory vault can be inspected together instead of as separate tools - the batch shadow-to-KB bridge now lets a directory of Spark replay slices accumulate into one inspectable KB surface instead of leaving each replay file isolated
- the batch Builder-export-to-KB bridge now gives Spark Intelligence Builder the same batchable product-shaped path without requiring an intermediate hand-normalized replay directory
- the Builder-export inspection commands now let Spark-side operators inspect accepted writes, rejected writes, skipped turns, and unsupported reasons before they decide to compile a KB vault
- the Builder-export failure-taxonomy commands now turn those same batch diagnostics into compact issue labels, hotspots, and next-action recommendations instead of requiring manual interpretation of the aggregate report
- the Spark shadow and Builder-export KB compile paths now file that same failure taxonomy into
wiki/outputs/, so the visible vault carries the compact integration dossier alongside the replay summaries and conversation pages - the new top-level Builder intake command now packages the full Spark-facing workflow into one structured payload instead of requiring operators to stitch together four separate JSON outputs by hand
- the new Builder
state.dbTelegram intake command now reads the actualtelegram_runtimeevent stream, which is a stronger live-chat bridge than.tmp-telegram-*.jsonbecause it includes both committed inbound user text and delivered outbound replies - manifest entries now resolve relative to the manifest file location, not only the current shell directory
docs/examples/spark_kb/now provides a checked-in validator fixture bundledocs/examples/spark_kb/now also supports a checked-in build plus health-check smoke flowdocs/examples/spark_kb/run_smoke.pynow wraps that valid example flow in one commanddocs/examples/spark_kb_invalid/now provides a checked-in failing validator fixture bundledocs/examples/spark_kb_invalid/run_validate_failure.pynow wraps that failing validator flow in one commanddocs/examples/run_smokes.pynow acts as the top-level checked-in examples smoke runner.github/workflows/example-smokes.ymlnow executes that checked-in examples smoke runner on pushes and PRsdemo-spark-kbran successfully against a real local vault scaffoldspark-kb-health-checkreturnedvalid: true- no missing required files
- no broken wikilinks
- repo-source pages are now checked against
raw/repos/copies, and stray raw repo files are surfaced explicitly - filed query pages are now checked for required
Question,Answer, andProvenancesections - source, synthesis, and output surfaces now include session pages, timeline overview, repo-source ingest, maintenance report output, filed answer pages, and first contradiction/staleness signals
- only
wiki/log.mdremains orphaned, which is acceptable for now because it is an append-only activity surface rather than a navigational page
ProductMemoryLongMemEval_s- bounded
LoCoMolane - alternate judged official-public
BEAM 128K - alternate judged official-public
BEAM 500K - alternate judged official-public
BEAM 1M - alternate judged official-public
BEAM 10M - first Spark KB scaffold
- first Spark KB health checks
- first Karpathy-alignment upgrade to the Spark KB scaffold
- broader clean
LoCoMo - canonical
GoodAI - exact-official judge parity for
BEAM - runtime metrics
- real Spark traces
- KB compiler v2 with query filing and cross-source syntheses
- keep the closed alternate judged
BEAMlanes as regression gates instead of reopening them casually - use
python -m domain_chip_memory.cli benchmark-runs-git-report --benchmark-runs-dir artifacts/benchmark_runs --repo-root . --only-noisy --summary-only --top-series-limit 5before treating residual artifact churn as a real regression signal- current live residual noise in
artifacts/benchmark_runs/is60untracked JSON files across3noisy families - split:
6debug files,23longmemevalfiles,31scorecards - the same noisy surface collapses to
35series instead of a flat60-file list - current top-series slice is capped in the payload by
top_series_limit summary_onlynow keeps the counts and ranked series while omitting the giantpathsarrays and fullnoisy_filesdump- add
--family longmemevalor--family scorecardwhen the full noisy surface is still too mixed to reason about cleanly - add
--series-prefix <series>when one noisy cluster still needs a tighter read; current live example:--family longmemeval --series-prefix longmemeval_summary_synthesis_offset225_limit25 - the payload now includes
recommended_focus, so the next best follow-up command is explicit instead of inferred - the payload now includes
recommended_drilldown, so the broad summary can expose the deepest recommended slice directly instead of making callers pick the last item fromrecommended_followups - the payload now also includes
recommended_sequence, so callers can consume the ordered focus -> drilldown -> next-step guidance as one deduplicated list instead of stitching those top-level fields together by hand - the payload now also includes
recommended_sequence_targets, so callers can consume that same ordered path as compact machine-readable family/series/top-series references without parsing labels or shell strings - the payload now also includes
recommended_sequence_labels, so callers can render that same ordered path as concise readable labels without parsing shell commands or nested command arrays - the payload now also includes
recommended_sequence_preview, so callers can render the whole ordered path as one joined human-readable summary string without formatting the label list themselves - the payload now also includes
recommended_sequence_commands, so callers that want raw argv-style commands can consume the same deduplicated path without parsing shell strings or unpacking nested recommendation objects - the payload now also includes
recommended_sequence_shells, so callers that only need runnable commands can consume the same ordered path as a deduplicated shell-command list without walking nested command arrays - the payload now also includes
recommended_sequence_steps, so callers can consume one numbered ordered path that bundles each step's semantic phase, label, target ref, raw argv command, and shell command together - the payload now also includes
recommended_sequence_by_phase, so callers can jump straight to thefocus,drilldown, ornext_steprow without scanning the numbered sequence - the payload now also includes
recommended_sequence_summary, so callers can read the sequence length, explicit command-step and non-command-step counts, normalized command coverage, a categorical command-coverage label, runnable-phase order, report-only-phase order, joined runnable/report-only phase signatures, phase order, compact phase signature, explicit entry/terminal step indices, entry phase, terminal phase, entry label, terminal label, entry target, terminal target, entry/terminal commands, explicit entry/terminal command-availability flags, the joined preview, and drilldown/next-step presence flags from one compact object - the payload now also includes
recommended_sequence_endpoints, so callers that only care about the entry hop and terminal action can read the first and last sequence rows directly - the payload now also includes
recommended_sequence_transitions, so callers can read the ordered edges between the sequence phases without diffing adjacent step rows themselves - the payload now also includes
recommended_sequence_transition_summary, so callers can read compact transition counts split into fully runnable, mixed, and non-runnable edges, plus a nestedtransition_mode_countsblock, a nestedtransition_mode_competitionblock for dominant-vs-runner-up comparison,dominant_transition_mode,dominant_transition_mode_count,dominant_transition_mode_gap,dominant_transition_mode_gap_share,dominant_transition_mode_share, runner-up mode/count/share accessors, a full deterministictransition_mode_rank_order, an orderedtransition_mode_rankingslist with rank/count/share rows, a directtransition_mode_rank_maplookup by mode, and compact count/share leaderboard signatures, plus both boolean and categorical contested-vs-clear signals, a compact competition signature and gap label, normalized runnable-edge coverage, a categorical coverage label, an ordered transition-mode list, a joined transition-mode signature, the compact set of transition modes present, a joined present-mode signature, the complementary absent-mode list, a joined absent-mode signature, its count, the absent-mode count, a full-coverage flag, a categorical transition-mode coverage label, a normalized transition-mode coverage ratio, a normalized absent transition-mode coverage ratio, a categorical absent transition-mode coverage label, an absent-mode presence flag, a normalized transition-mode coverage gap, a categorical transition-mode coverage-gap label, a signed transition-mode coverage balance, a categorical transition-mode coverage-balance label, a direct coverage-deficit flag, a direct balanced-coverage flag, a direct coverage-surplus flag, a normalized total coverage-partition sum, a total-coverage label, a direct unit-total flag, a direct complete-partition flag, a categorical coverage-partition label, a direct broken-partition flag, a uniformity flag, and per-mode phase-signature lists alongside the overall phase-signature list - the payload now also includes
recommended_sequence_transition_summary, so callers can read the transition count and compact phase signatures without walking the full edge list - the payload now includes
recommended_family, so the active family recommendation resolves to the enriched family row instead of only exposing a command wrapper - the payload now includes
recommended_family_gap, so the report can say how far ahead the current recommended family is from the next noisy candidate without recomputing margins recommended_family_gapnow also carries both the exact runner-up family command and that family's top-series drilldown, and that runner-up series is resolved from the full noisy-series universe rather than only the current filtered slice- the payload now includes
recommended_family_comparison, so callers can read the current leader hotspot, runner-up hotspot, and the already-computed family gap from one block instead of stitching togetherfamily_hotspotsandrecommended_family_gap; unlike the currently filteredfamily_hotspotsview, those comparison hotspots are resolved from the full noisy-family universe so the leader and runner-up stay directly comparable - the payload now includes
family_competition, so the broad report exposes a ranked noisy-family leaderboard with per-family leader gaps, local previous/next competition gaps, nearest-competitor routing, explicit nearest rank/top-series identity, clean family-only jump commands, direct top-series drilldown commands, the nearest competitor's own family jump, and the nearest competitor's own drilldown command instead of forcing callers to infer those comparisons fromfamily_commandsandrecommended_family_gap - the payload now includes
recommended_family_competition_window, so callers can read the current recommended family's competition row plus its immediate neighbors without scanning the wholefamily_competitionarray - the payload now includes
recommended_family_competition_summary, so callers can read the current family rank, dominant series, nearest-competitor comparison, both sides' exact family and top-series jump commands, and a compactrecommended_next_steprouting hint with explicit target rank and series identity in one block without unpacking the broader window or leaderboard structures - the payload now also includes a top-level
recommended_next_step, so callers that only need the next action do not need to unpackrecommended_family_competition_summaryfirst - the payload now includes
recommended_followups, so the broad report can emit a two-step drilldown path instead of only the first hop - the payload now includes
family_hotspots, so each noisy family carries its own dominant series and exact jump command - family rows now carry
reported_file_share,dominance_label, andfamily_rank, so the broad summary says how much of the current noisy surface each family actually owns and where it sits in the current family ordering family_hotspotsnow also carries concentration signals viatop_series_shareandaverage_series_sizefamily_hotspotsnow also carriesconcentration_labelandfocus_mode, so the report says whether to jump directly to the top series or stay at the family slice first- the payload now also includes
recommended_hotspot, so the report can point at the hotspot row that best matches the current recommended focus instead of making callers recompute that mapping - the payload now includes exact
series_commandsfor the ranked top-series slice, so the summary view can jump straight into a concrete series command - the payload now includes exact
family_commandsso the next focused slice can be copied directly instead of reconstructed by hand - largest live series:
longmemeval_summary_synthesis_offset225_limit25(4),longmemeval_summary_synthesis_offset275_limit25(4),official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5(4),_debug(3),_debug_gpt4(3) - current live
recommended_focuspoints to--family scorecard, because scorecards are the largest remaining noisy family at31files - current live
recommended_drilldownpoints directly to--family scorecard --series-prefix official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5 - current live
recommended_sequencenow packages that same path directly as[--family scorecard, --family scorecard --series-prefix official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5, compare nearest competitor top series] - current live
recommended_sequence_targetsnow renders that path structurally as[family scorecard, series scorecard / official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5, nearest competitor top series longmemeval / longmemeval_summary_synthesis_offset225_limit25] - current live
recommended_sequence_labelsnow renders that path readably as[focus family scorecard, focus series scorecard / official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5, compare longmemeval rank 2 / longmemeval_summary_synthesis_offset225_limit25] - current live
recommended_sequence_previewnow joins that same path into one string:focus family scorecard -> focus series scorecard / official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5 -> compare longmemeval rank 2 / longmemeval_summary_synthesis_offset225_limit25 - current live
recommended_sequence_commandsnow exposes those same three steps as raw argv arrays in the same order - current live
recommended_sequence_shellsnow flattens that path into three runnable commands: jump to thescorecardfamily, drill intoofficial_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5, then compare the nearest competitor top series - current live
recommended_sequence_stepsnow packages those same three steps as numbered rows with explicit phases (focus,drilldown,next_step), so the report has one ordered structure that already ties each label to its target ref and command forms - current live
recommended_sequence_by_phasenow exposes that same structure as a direct phase-indexed map, sofocus,drilldown, andnext_stepcan be read without iterating the steps array - current live
recommended_sequence_summarynow compresses that same path tostep_count = 3,command_step_count = 3,non_command_step_count = 0,command_coverage = 1.0,command_coverage_label = full,command_phase_order = [focus, drilldown, next_step],non_command_phase_order = [],command_phase_signature = focus->drilldown->next_step,non_command_phase_signature = "", phase order[focus, drilldown, next_step], phase signaturefocus->drilldown->next_step, explicitentry_step = 1andterminal_step = 3,entry_phase = focus,terminal_phase = next_step,entry_label = focus family scorecard,terminal_label = compare longmemeval rank 2 / longmemeval_summary_synthesis_offset225_limit25, matching entry/terminal targets and commands for those same endpoints, explicitentry_has_command = trueandterminal_has_command = trueflags for that broad path, the joined preview string, and flags showing that both a drilldown hop and a next-step comparison are present - current live
recommended_sequence_endpointsnow exposes the firstfocusrow and the lastnext_steprow directly, so the starting hop and terminal comparison can be read without scanning the full ordered path - current live
recommended_sequence_transitionsnow renders the same path as ordered edgesfocus -> drilldownanddrilldown -> next_step - current live
recommended_sequence_transition_summarynow compresses that edge view totransition_count = 2,command_transition_count = 2,mixed_transition_count = 0,non_command_transition_count = 0,transition_mode_counts = {command: 2, mixed: 0, non_command: 0},transition_mode_competition = {dominant_mode: command, dominant_count: 2, dominant_share: 1.0, runner_up_mode: mixed, runner_up_count: 0, runner_up_share: 0.0, gap: 2, gap_share: 1.0, competition_signature: command>mixed, gap_label: decisive, competition_label: clear, is_contested: false},dominant_transition_mode = command,dominant_transition_mode_count = 2,dominant_transition_mode_gap = 2,dominant_transition_mode_gap_share = 1.0,runner_up_transition_mode = mixed,runner_up_transition_mode_count = 0,runner_up_transition_mode_share = 0.0,transition_mode_rank_order = [command, mixed, non_command],transition_mode_rankings = [{rank: 1, mode: command, count: 2, share: 1.0}, {rank: 2, mode: mixed, count: 0, share: 0.0}, {rank: 3, mode: non_command, count: 0, share: 0.0}],transition_mode_rank_map = {command: {rank: 1, mode: command, count: 2, share: 1.0}, mixed: {rank: 2, mode: mixed, count: 0, share: 0.0}, non_command: {rank: 3, mode: non_command, count: 0, share: 0.0}},transition_mode_ranking_signature = command:2 > mixed:0 > non_command:0,transition_mode_share_signature = command:1.0 > mixed:0.0 > non_command:0.0,is_contested_transition_mode = false,dominant_transition_mode_share = 1.0,command_transition_coverage = 1.0,command_transition_coverage_label = full,transition_mode_order = [command, command],transition_mode_signature = command->command,present_transition_modes = [command],present_transition_mode_signature = command,absent_transition_modes = [mixed, non_command],absent_transition_mode_signature = mixed|non_command,absent_transition_mode_count = 2,is_full_transition_mode_coverage = false,transition_mode_coverage_label = partial,transition_mode_coverage = 0.3333,absent_transition_mode_coverage = 0.6667,absent_transition_mode_coverage_label = partial,has_absent_transition_modes = true,transition_mode_coverage_gap = 0.6667,transition_mode_coverage_gap_label = open,transition_mode_coverage_balance = -0.3333,transition_mode_coverage_balance_label = deficit,has_transition_mode_coverage_deficit = true,has_balanced_transition_mode_coverage = false,has_transition_mode_coverage_surplus = false,transition_mode_coverage_total = 1.0,transition_mode_coverage_total_label = unit,is_unit_transition_mode_coverage_total = true,has_complete_transition_mode_coverage_partition = true,transition_mode_coverage_partition_label = complete,is_broken_transition_mode_coverage_partition = false,present_transition_mode_count = 1,is_uniform_transition_mode = true,command_phase_signatures = [focus->drilldown, drilldown->next_step],mixed_phase_signatures = [],non_command_phase_signatures = [], and phase signatures[focus->drilldown, drilldown->next_step] - current live
recommended_sequence_transition_summarynow compresses that edge view totransition_count = 2and phase signatures[focus->drilldown, drilldown->next_step] - current live
recommended_familyisscorecard, withreported_file_share = 0.5167anddominance_label = dominant - current live
recommended_family_gapshowsscorecardahead oflongmemevalby8noisy files and0.1334noisy-share points, which classifies as aclearlead - the same live
recommended_family_gapnow includes the exact runner-up jump command--family longmemevaland the runner-up top-series drilldown--family longmemeval --series-prefix longmemeval_summary_synthesis_offset225_limit25, even when the current report view is narrower than the full noisy-family competition - current live
recommended_family_comparisonpackages that same leader-versus-runner-up view directly: leader hotspotscorecard -> official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5(4noisy files across23scorecard series), runner-up hotspotlongmemeval -> longmemeval_summary_synthesis_offset225_limit25(4noisy files across10longmemeval series), plus the existingrecommended_family_gapblock - current live
family_competitionnow ranks the same noisy-family race directly:scorecardrank1at31files /0.5167share (leader),longmemevalrank2at23files /0.3833share (cleargap), anddebugrank3at6files /0.1000share (widegap); each row now carries previous/next family gap context, nearest-competitor routing, explicit nearest competitor rank/top-series identity, plus both a family-only command, a dominant-series drilldown command, the nearest competitor's family jump, and the nearest competitor's own top-series drilldown command - current live
recommended_family_competition_windownow lifts the local neighborhood aroundscorecarddirectly: current rowscorecard, no previous competitor, next competitorlongmemeval - current live
recommended_family_competition_summarynow compresses that same view to the essentials:scorecardrank1, dominant seriesofficial_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5, nearest competitorlongmemevalrank2, nearest share gap0.1334, plus direct family-jump and top-series drilldown commands for both the current family and that nearest competitor; because the live position label iscontested_leader, the summary's newrecommended_next_stepnow points at comparing the nearest competitor top series instead of only re-opening the current family top series, and it names that exact target as longmemeval rank2/longmemeval_summary_synthesis_offset225_limit25 - that same live comparison target is now exposed again at top level via
recommended_next_step, so the report's best next action can be read directly without unpacking the summary block - current live
recommended_hotspotpoints at thescorecardhotspot row, which jumps directly to--family scorecard --series-prefix official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5 - current live
recommended_followupsthen drills from--family scorecardinto--family scorecard --series-prefix official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5 - current live family shares are
debug: 0.1000 / minor,longmemeval: 0.3833 / major,scorecard: 0.5167 / dominant - current live
family_hotspotsaredebug -> _debug(3across2series),longmemeval -> longmemeval_summary_synthesis_offset225_limit25(4across10series), andscorecard -> official_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5(4across23series) - current live hotspot concentration is
debug: 0.5000 share / 3.0000 avg series size,longmemeval: 0.1739 / 2.3000,scorecard: 0.1290 / 1.3478 - current live hotspot classification is
debug: concentrated / series_first,longmemeval: diffuse / family_first,scorecard: diffuse / family_first - current live
series_commandsstarts withlongmemeval_summary_synthesis_offset225_limit25,longmemeval_summary_synthesis_offset275_limit25, andofficial_beam_500k_summary_synthesis_memory_heuristic_v1_conv1_5 - current live
--family longmemevalslice is23files across10series, with top clusters at offsets225,275,325,350, and300 - current live
--family longmemeval --series-prefix longmemeval_summary_synthesis_offset225_limit25slice collapses to4files in exactly1series
- current live residual noise in
- decide whether the next
BEAMevidence task is exact-official judge parity or a different scale/provider validation lane - choose and close the next clean
LoCoMolane - lock the first canonical
GoodAIrun
- keep the current scaffold green under live CLI checks
- feed real Spark shadow batches through the new batch bridge so the KB starts reflecting product-shaped replay traces instead of only synthetic single-file demos
- broaden filed query outputs beyond the current demo answer page
- deepen the maintenance report beyond the first contradiction/staleness heuristics into richer gap and contradiction analysis
- broaden repo-native ingest from explicit file picks into a more complete research and benchmark artifact path
- start measuring runtime metrics on the actual Spark-style memory surface
- connect real shadow traces into the KB as inspectable source material
- turn benchmark failure clusters into mutation dossiers inside the KB
The current memory architecture is already benchmark-serious.
The current KB layer is real but still early.
The remaining work is no longer "figure out whether this works." The remaining work is:
- preserve the now-closed judged proof surface honestly
- finish the remaining benchmark evidence classes that are still open
- turn the Spark KB from a correct scaffold into the visible external-brain product layer