Skip to content

engine: VDF slot-table scanner under-counts on metasd social-network-valuation fixtures #549

@bpowers

Description

@bpowers

VdfFile's Rust slot-table scanner (find_slot_table) under-counts the slot table on two metasd corpus fixtures added with the Vensim-macro design work:

  • test/metasd/social-network-valuation/optimistic.vdf
  • test/metasd/social-network-valuation/pessimistic.vdf

Both report slot_count=90 against block1[7]=113 -- a delta of -23, well outside the +/-2 diagnostic window enforced by test_block1_word7_matches_slot_count_within_small_delta in src/simlin-engine/tests/vdf_structural_invariants.rs.

This is the same class of gap already documented for econ/risk2.vdf and WRLD3-03/SCEN01.VDF: the Rust scanner's stricter min_stride >= 4 rule rejects valid leading-extra-slot layouts that the Python tools/vdf_xray.py parser accepts. But the magnitude here (-23) is much larger than the previously-observed under-counts (0 and 1), so it may be a distinct layout variant worth investigating.

Both fixtures have been added to the rust_slot_table_undercount_known() exemption list so the structural-invariant suite stays green; this issue tracks closing the parser gap. The format-level invariants (section1_data_head_structural_invariants, section6_field4_matches_ref_stream_skip, test_block1_word10_high_equals_word11_across_corpus, test_record_f1_138_view_header_exists_on_simulation_fixtures) still pass on both files.

Discovered while adding the metasd macro test corpus (design plan docs/design-plans/2026-05-13-macros.md).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions