Vision Rules demo assets — built by scripts/vision_pack_assets.py
One folder per model under models/<id>/ (EfficientNet-B0 concept
bottleneck + two single-cut TT-Sparse rulebooks). Each checkpoint keeps
only backbone.* and concept_head.*: the label head is unused, the
verdict is the rulebook's.
Rulebooks of 2026-10-02: accurate = the "normal" book, compact = the "simple"
book, both taken as trained from a TT-Sparse network (its own truth tables and
head weights, no refit) by get_concept_into_rules/rules_battery.py
(get_concept_into_rules/sdk_handoff/vision_2026-10-01).

[gender] female / male — 39 celeba_all concepts
  run        get_concept_into_rules/runs/celeba/efficientnet_b0_sequential/exp_3
  checkpoint final/best_checkpoint.pt (neural head test accuracy 95.30%, unused)
  compact    b3_s43_dc0_t0.5.json (8 rules, test 94.77%) — exact nodes, no don't-care
  accurate   b3_s44_dc0_t0.25.json (10 rules, test 95.23%) — exact nodes, no don't-care

[age] under_20 / 20_plus — 11 age_cues_v4 concepts
  run        get_concept_into_rules/runs/fairface/efficientnet_b0_sequential/exp_4
  checkpoint final/best_checkpoint.pt (neural head test accuracy 91.97%, unused)
  compact    b3_s42_dc0_t0.25.json (3 rules, test 91.35%) — exact nodes, the same book in both slots
  accurate   b3_s42_dc0_t0.25.json (3 rules, test 91.35%) — exact nodes, no don't-care

[age-grounded] under_20 / 20_plus — 8 age_grounded concepts
  run        get_concept_into_rules/runs/fairface/efficientnet_b0_sequential/exp_6
  question   age (the cue set chosen first)
  checkpoint final/best_checkpoint.pt (neural head test accuracy 89.46%, unused)
  compact    b5_s44_dc0_t0.1.json (5 rules, test 88.11%) — exact nodes, the same book in both slots
  accurate   b5_s44_dc0_t0.1.json (5 rules, test 88.11%) — exact nodes, no don't-care

Gallery photos are the demo's test faces, EXIF-transposed and downscaled
to 640 px, shared by every model. Ids: carla, famous, haaland, harry, mbappe, pam, strangerthings
Regenerate one model: python scripts/vision_pack_assets.py <repo>/<run> --id <id>
