lllin000_PaperForge/scripts/dev
LLLin000 3cda942f96 fix: appendix numbering cross-cutting bugs (TABLE regex, int block_id, table alpha prefix, weak-caption tie-break)
3 distinct bugs found and fixed:

1. TABLE in figure regex (_FIGURE_NUMBER_PATTERN)
   Removed TABLE/Table from figure regex — caused table captions to be
   extracted as figure numbers and roadmapped into figure inventory.
   Added unit tests (table_numeric_caption_is_not_a_figure_number,
   table_appendix_caption_marker_has_no_figure_number).

2. int block_id type mismatch in cross-page lookup
   CrossPageSettlementPass and PrimarySamePagePass compared block_id
   with === but deduped_legends use int keys while ResourceRef stores
   str.  Fixed by casting both to str.  Table continuation lookup
   missed page filter, picking wrong page's same block_id.  Added
   page filter + int_block_id tests.

3. Table appendix support gaps
   - Table prefix regex only accepted digits/roman, not 'TABLE A1'.
     Added [A-Z]\d+ token and strip-leading-alpha in parse.
   - _is_validation_first_table_candidate didn't cover figure_title
     raw_label blocks with table_caption_like style.  Added second
     gate.
   - _is_weak_explicit_table_caption only checked table_caption roles.
     Extended to include validation-first candidates.
   - Same-page tie-break didn't apply for weak-explicit captions.
     Ported _bare_table_tie_break into vnext pass.
   - figure_caption_candidate not excluded from note attachment.
   - Continuation merge stripped leading duplicate table marker.

M84CTEM9 vault verification: 6/6 figures matched (3 main + 3
appendix + assets), 4/4 tables (Table 1,2 + Table A1,A2 + assets),
0 false positives, 0 figure asset leakage.
2026-07-04 01:29:06 +08:00
..
batch_comparison_errors.json fix: appendix numbering cross-cutting bugs (TABLE regex, int block_id, table alpha prefix, weak-caption tie-break) 2026-07-04 01:29:06 +08:00
batch_comparison_results.json fix: appendix numbering cross-cutting bugs (TABLE regex, int block_id, table alpha prefix, weak-caption tie-break) 2026-07-04 01:29:06 +08:00
caption_pattern_analysis.json fix: appendix numbering cross-cutting bugs (TABLE regex, int block_id, table alpha prefix, weak-caption tie-break) 2026-07-04 01:29:06 +08:00
caption_pattern_analysis.py fix: appendix numbering cross-cutting bugs (TABLE regex, int block_id, table alpha prefix, weak-caption tie-break) 2026-07-04 01:29:06 +08:00
caption_pattern_full.json fix: appendix numbering cross-cutting bugs (TABLE regex, int block_id, table alpha prefix, weak-caption tie-break) 2026-07-04 01:29:06 +08:00
compare_figure_inventory_corpus.py fix(ocr): fix verdict false positives - 26->8 regression, add noise_cleanup/consolidated verdicts 2026-07-03 18:20:00 +08:00
compare_figure_inventory_legacy_vs_vnext.py fix(ocr): fix verdict false positives - 26->8 regression, add noise_cleanup/consolidated verdicts 2026-07-03 18:20:00 +08:00
compare_figure_inventory_vnext_baseline.py test(ocr): lock figure vnext extraction baseline 2026-07-03 19:38:19 +08:00
compare_table_inventory_legacy_vs_vnext.py fix(ocr): unblock pairing framework merge 2026-07-03 22:50:15 +08:00
figure_truth_audit_results.json fix: appendix numbering cross-cutting bugs (TABLE regex, int block_id, table alpha prefix, weak-caption tie-break) 2026-07-04 01:29:06 +08:00
ocr_deep_dive_analysis.py fix: complete reference detection fixes — 5 problem families 2026-07-03 01:46:27 +08:00
ocr_rebuild_paper.py docs: update PROJECT-MANAGEMENT with rebuild script docs, review fixes, table ordering 2026-06-14 23:20:01 +08:00
ocr_rebuild_verify.py chore: remove root debug scripts, relocate rebuild_verify to scripts/dev 2026-06-08 12:15:17 +08:00
ocr_reference_zone_audit.py fix: complete reference detection fixes — 5 problem families 2026-07-03 01:46:27 +08:00
ocr_render_annotated_pages.py test: lock OCR readiness baseline and restore coverage ledger 2026-06-18 22:10:52 +08:00
ocr_zone_role_audit.py fix: complete reference detection fixes — 5 problem families 2026-07-03 01:46:27 +08:00