metrics

paper_figuers/ — figures for the write-up

Generated by reporting/make_report_figures.py; do not edit by hand, and do not add a figure here that no generator can rebuild.

figure what it is evidence for built from
funnel_coverage_to_sres.png co-firing proposes far more edges than survive the strict test 6 gemma + 4 PCFG layers with second_pass.json
edge_survival_by_block_pair.png what each filter removes, by block pair and by depth 6 gemma layer reports
depth_profile_across_layers.png no measure is monotonic in depth once BOS is excluded 6 gemma layer reports
multiparenting_by_layer.png the graph is not a tree — the one claim BOS exclusion left standing 6 gemma + 4 PCFG layer reports
shared_input_moved_every_metric.png five of six metrics share an input and failed together — the battery’s own failure mode 5 layers graded both before and after BOS exclusion
base_rate_vs_frequency_capture.png the over-connection is base rate, not frequency capture — the hypothesis’s premise, tested 6 gemma layer reports
superparent_fanout_vs_firing.png the superparent gate reads fan-out; firing rate is handled per edge 6 gemma layer reports
calibration_synthetic_toy_scorecard.png every metric scored against a known tree, plus two demonstrated blind spots outputs/synthetic_toy_calibration.json
calibration_toy_world_before_after.png which gate removed which injected pathology, on the world where the answer was fixed first computed from validation/synthetic_toy_world.py (no cache needed)
calibration_toy_world_gate_verdicts.png the same gate verdicts in one panel — blocks as rows, the declared world kept as the faded edges computed from validation/synthetic_toy_world.py (no cache needed)
calibration_toy_corpus_firing.png the corpus the Tier-1 calibration runs on — firing per feature, and where the token mass sits computed from validation/synthetic_toy_world.py — 48 features over 2,635 tokens
calibration_gate_funnel_by_role.png what each composed gate removes, counted by the structure it was planted as computed from validation/synthetic_toy_world.py — 63 candidates through three gates
calibration_reverse_coverage.png what reverse coverage proposes at full resolution, and the true edge it structurally cannot computed from validation/synthetic_toy_world.py — 15×33 coverage matrix
calibration_seed_sweep.png the Tier-1 scorecard re-run per seed — whether 14/14 is a result or one draw 8 seeds × 17 scorecard rows, re-run from validation/calibrate_on_synthetic_toy.py
calibration_trained_toy_recovery.png the same tree after a real training run, and the nesting control outputs/trained_toy_calibration.json
calibration_toy_tree_recovered.png the tree drawn: which edges the metrics returned, and which features were never learned outputs/trained_toy_calibration.json
cross_source_funnel_shares.png one unchanged metric set across two SAE sources 6 gemma + 4 PCFG layer reports
cross_source_layer_response.png the shape of B0→B1 is the same on both base models at the layers both graded; its strength is not 10 graded runs across 2 sources, layers 1, 3 on both
cross_source_alignment_check.png which alignment across two models of different depth the data prefers — block index or relative depth the same 10 runs under both alignment rules
in_block_relations.png same-level structure concentrates in B0 on both sources, read as a per-pair rate 10 runs with in_block_edges.json
sres_null_rate_vs_dictionary_size.png a top-k rank rule is only as strict as D is large config (k=5) + 10 measured pass rates
tangle_lives_in_top_block_pair.png every metric, every column, on both sources with one untuned instrument 6 gemma + 4 PCFG layer reports, all block pairs
metrics_result_mid_layers.png every metric at one fixed depth per source, so the axis carries architecture and not depth gemma layer_12 + PCFG layer_02 metrics_report.json, all block pairs
battery_questions_gemma.png   6 gemma layer reports + 6 second passes
recovered_graph_toy_vs_pcfg_vs_gemma.png   trained_toy_calibration.json + gemma layer_12 + PCFG layer 2 second_pass.json
one_parent_owns_the_block.png   gemma layer_12 second_pass.json
a_slice_of_the_tangle.png   gemma layer_12 second_pass.json + feature_labels.json
one_child_many_parents.png   gemma layer_12 second_pass.json (single-child twin of the slice)
pcfg_formatting_sweep.png   12 fmt_* runs across 4 delimiter densities

Every number in every title is read from the JSON being plotted, so a caption cannot outlive the data under it – the previous generator quoted layer-6 figures that had been withdrawn.