mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-30 23:37:39 -04:00
verify(phase-33): A5 THE RECORDED RUN — PASS on commit:4028: check-all 218/218 from a clean fleet (157 s), sdk-dual OK both legs, tools-health OK (0 PHANTOM/TRUNCATED/PAD-TAIL, 0 warns), audit-frontier 1,258 stubs all in main's LINKED regions / 0 game-code, audit-disc UNCLAIMED 0, report 363214/363214 · 13492113/13492113 · 5820205/5820205 · main 45150/45150, stubs 0, backlog 0; every step EXIT=0 with its contract line; logs + maps + SUMMARY tracked under .run/P33/verify/, SUMMARY pasted into docs/verification.md §2; checkpoint -> NEXT = B9/C3
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
# tree
|
||||
# cmd: step_tree
|
||||
# started: 2026-09-07T02:58:29Z
|
||||
HEAD commit:4028 2026-09-06 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the reference v
|
||||
porcelain -uno clean apart from ghidra/ (3 churn lines); untracked: 1 paths
|
||||
EXIT=0 wall=1s finished: 2026-09-07T02:58:30Z
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
|
||||
# family-hseq
|
||||
# cmd: step_family
|
||||
# started: 2026-09-07T02:58:30Z
|
||||
fleet (OVERLAYS ONLY — not comparable to `make report`; excludes main + resident): 100.0% fn / 100.0% instr / 100.0% distinct
|
||||
tailcheck: 0 families ≥2, 0 substantial / 0 ins [Task-2 snapshot 2026-07-11: 663 / 186 / 1.85M — this number SHRINKS as banking proceeds; it is a point-in-time reference, NOT an invariant to match]
|
||||
frontier: 0 target families (0 substantial, 0 w/ matched sib) + 0 singletons
|
||||
-> .run/family_hseq.json + docs/family-hseq.md
|
||||
family_hseq regenerated: 217 binaries scanned, 0 open instances
|
||||
EXIT=0 wall=11s finished: 2026-09-07T02:58:41Z
|
||||
@@ -0,0 +1,478 @@
|
||||
# r22-clean-fleet
|
||||
# cmd: step_fleet
|
||||
# started: 2026-09-07T02:58:41Z
|
||||
clean: removed build/, expected/, and the regenerated splat tree (asm/, assets/, undefined_*_auto.txt).
|
||||
disc-extract: up to date — extracted/retail/ matches the committed manifest (sha1 e5c6019249dec3c71bb2cf40658a78439dddb037)
|
||||
splat 0.41.0 (powered by spimdisasm 1.41.0)
|
||||
|
||||
0%| | 0/1096 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us): 0%| | 0/1096 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us): 100%|██████████| 1096/1096 [00:00<00:00, 212851.65it/s]
|
||||
|
||||
0%| | 0/47 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us.ram): 0%| | 0/47 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us.ram): 100%|██████████| 47/47 [00:00<00:00, 631834.26it/s]
|
||||
|
||||
0%| | 0/2 [00:00<?, ?it/s]
|
||||
Scanning header: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Scanning main: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Rodata segment '800' may belong to the text segment '800'
|
||||
Based on the usage from the function LzssDecodeSector to the symbol jtbl_80072A38
|
||||
|
||||
The rodata segment '800' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0x6324C, .rodata]
|
||||
- [0x63388, .rodata]
|
||||
- [0x633FC, .rodata]
|
||||
|
||||
|
||||
Rodata segment '800_b' may belong to the text segment '800_b'
|
||||
Based on the usage from the function func_8002B0B4 to the symbol jtbl_80072E44
|
||||
|
||||
Rodata segment '800_b_2' may belong to the text segment '800_b_2'
|
||||
Based on the usage from the function func_8002DC68 to the symbol jtbl_80072F3C
|
||||
|
||||
The rodata segment '800_b_2' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0x63920, .rodata]
|
||||
|
||||
|
||||
Rodata segment '800_c' may belong to the text segment '800_c'
|
||||
Based on the usage from the function func_80035270 to the symbol jtbl_800732A0
|
||||
|
||||
Scanning main: 100%|██████████| 2/2 [00:01<00:00, 1.72it/s]
|
||||
Scanning main: 100%|██████████| 2/2 [00:01<00:00, 1.72it/s]
|
||||
|
||||
0%| | 0/2 [00:00<?, ?it/s]
|
||||
Splitting header: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Splitting main: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Splitting main: 100%|██████████| 2/2 [00:00<00:00, 2.82it/s]
|
||||
Splitting main: 100%|██████████| 2/2 [00:00<00:00, 2.82it/s]
|
||||
|
||||
0%| | 0/2 [00:00<?, ?it/s]
|
||||
Linker script header: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Linker script main: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Linker script main: 100%|██████████| 2/2 [00:00<00:00, 100.52it/s]
|
||||
Split 340 KB (82.28%) in defined segments
|
||||
header: 2 KB (0.50%) 1 split, 0 cached
|
||||
c: 338 KB (81.78%) 85 split, 0 cached
|
||||
unknown: 0 B (0.00%) from unknown bin files
|
||||
ld_interleave --order: .main island = 8 pieces [53198.data.o, 800.o, 63470.data.o, 800_b.o, 800_b_2.o, 63940.data.o, 800_c.o, 63C4C.data.o]; pre=0 text=85 empties=166 bss=85
|
||||
[ OK ] resident
|
||||
[ OK ] ov_SC05_000
|
||||
[ OK ] ov_SC01_000
|
||||
[ OK ] ov_SC04_000
|
||||
[ OK ] ov_SC06_000
|
||||
[ OK ] ov_SC01_005
|
||||
[ OK ] ov_SC01_006
|
||||
[ OK ] ov_SC03_002
|
||||
[ OK ] ov_SC04_019
|
||||
[ OK ] ov_SC02_003
|
||||
[ OK ] ov_SC01_077
|
||||
[ OK ] ov_SC04_018
|
||||
[ OK ] ov_SC02_000
|
||||
[ OK ] ov_SC01_001
|
||||
[ OK ] ov_SC03_001
|
||||
[ OK ] ov_SC03_006
|
||||
[ OK ] ov_SC01_004
|
||||
[ OK ] ov_SC01_074
|
||||
[ OK ] ov_SC01_008
|
||||
[ OK ] ov_SC07_000
|
||||
[ OK ] ov_SC02_004
|
||||
[ OK ] ov_SC02_015
|
||||
[ OK ] ov_SC02_021
|
||||
[ OK ] ov_SC01_080
|
||||
[ OK ] ov_SC01_084
|
||||
[ OK ] ov_SC01_009
|
||||
[ OK ] ov_SC02_016
|
||||
[ OK ] ov_SC02_031
|
||||
[ OK ] ov_SC02_005
|
||||
[ OK ] ov_SC02_039
|
||||
[ OK ] ov_SC02_028
|
||||
[ OK ] ov_SC02_026
|
||||
[ OK ] ov_SC02_035
|
||||
[ OK ] ov_SC03_003
|
||||
[ OK ] ov_SC02_027
|
||||
[ OK ] ov_SC02_011
|
||||
[ OK ] ov_SC02_017
|
||||
[ OK ] ov_SC02_041
|
||||
[ OK ] ov_SC03_012
|
||||
[ OK ] ov_SC03_010
|
||||
[ OK ] ov_SC03_011
|
||||
[ OK ] ov_SC03_013
|
||||
[ OK ] ov_SC03_023
|
||||
[ OK ] ov_SC03_007
|
||||
[ OK ] ov_SC03_024
|
||||
[ OK ] ov_SC03_031
|
||||
[ OK ] ov_SC03_089
|
||||
[ OK ] ov_SC03_029
|
||||
[ OK ] ov_SC03_015
|
||||
[ OK ] ov_SC03_014
|
||||
[ OK ] ov_SC03_092
|
||||
[ OK ] ov_SC03_090
|
||||
[ OK ] ov_SC03_095
|
||||
[ OK ] ov_SC03_030
|
||||
[ OK ] ov_SC03_028
|
||||
[ OK ] ov_SC03_096
|
||||
[ OK ] ov_SC03_093
|
||||
[ OK ] ov_SC03_091
|
||||
[ OK ] ov_SC03_094
|
||||
[ OK ] ov_SC03_097
|
||||
[ OK ] ov_SC03_101
|
||||
[ OK ] ov_SC03_109
|
||||
[ OK ] ov_SC03_098
|
||||
[ OK ] ov_SC03_108
|
||||
[ OK ] ov_SC03_110
|
||||
[ OK ] ov_SC03_102
|
||||
[ OK ] ov_SC03_099
|
||||
[ OK ] ov_SC03_112
|
||||
[ OK ] ov_SC03_100
|
||||
[ OK ] ov_SC03_103
|
||||
[ OK ] ov_SC03_104
|
||||
[ OK ] ov_SC03_115
|
||||
[ OK ] ov_SC03_105
|
||||
[ OK ] ov_SC03_113
|
||||
[ OK ] ov_SC03_111
|
||||
[ OK ] ov_SC03_114
|
||||
[ OK ] ov_SC03_116
|
||||
[ OK ] ov_SC03_126
|
||||
[ OK ] ov_SC04_008
|
||||
[ OK ] ov_SC04_003
|
||||
[ OK ] ov_SC03_121
|
||||
[ OK ] ov_SC04_009
|
||||
[ OK ] ov_SC04_006
|
||||
[ OK ] ov_SC03_117
|
||||
[ OK ] ov_SC04_004
|
||||
[ OK ] ov_SC03_125
|
||||
[ OK ] ov_SC03_118
|
||||
[ OK ] ov_SC03_119
|
||||
[ OK ] ov_SC04_007
|
||||
[ OK ] ov_SC04_002
|
||||
[ OK ] ov_SC04_005
|
||||
[ OK ] ov_SC04_010
|
||||
[ OK ] ov_SC03_124
|
||||
[ OK ] ov_SC04_012
|
||||
[ OK ] ov_SC04_021
|
||||
[ OK ] ov_SC04_016
|
||||
[ OK ] ov_SC05_006
|
||||
[ OK ] ov_SC05_002
|
||||
[ OK ] ov_SC05_007
|
||||
[ OK ] ov_SC05_004
|
||||
[ OK ] ov_SC05_009
|
||||
[ OK ] ov_SC04_020
|
||||
[ OK ] ov_SC05_001
|
||||
[ OK ] ov_SC04_015
|
||||
[ OK ] ov_SC05_008
|
||||
[ OK ] ov_SC05_003
|
||||
[ OK ] ov_SC05_005
|
||||
[ OK ] ov_SC04_011
|
||||
[ OK ] ov_SC05_011
|
||||
[ OK ] ov_SC05_010
|
||||
[ OK ] ov_SC05_019
|
||||
[ OK ] ov_SC06_013
|
||||
[ OK ] ov_SC06_015
|
||||
[ OK ] ov_SC06_008
|
||||
[ OK ] ov_SC06_016
|
||||
[ OK ] ov_SC06_011
|
||||
[ OK ] ov_SC06_014
|
||||
[ OK ] ov_SC06_010
|
||||
[ OK ] ov_SC05_017
|
||||
[ OK ] ov_SC05_018
|
||||
[ OK ] ov_SC06_020
|
||||
[ OK ] ov_SC06_018
|
||||
[ OK ] ov_SC06_025
|
||||
[ OK ] ov_SC06_027
|
||||
[ OK ] ov_SC06_006
|
||||
[ OK ] ov_SC06_022
|
||||
[ OK ] ov_SC06_024
|
||||
[ OK ] ov_SC07_008
|
||||
[ OK ] md_MAIN_013
|
||||
[ OK ] ov_SC07_002
|
||||
[ OK ] md_MAIN_014
|
||||
[ OK ] md_MAIN_016
|
||||
[ OK ] md_MAIN_015
|
||||
[ OK ] md_MAIN_017
|
||||
[ OK ] ov_SC07_001
|
||||
[ OK ] md_MAIN_018
|
||||
[ OK ] md_MAIN_021
|
||||
[ OK ] md_MAIN_019
|
||||
[ OK ] ov_SC06_030
|
||||
[ OK ] md_MAIN_020
|
||||
[ OK ] md_MAIN_023
|
||||
[ OK ] md_MAIN_022
|
||||
[ OK ] md_MAIN_024
|
||||
[ OK ] md_MAIN_025
|
||||
[ OK ] md_MAIN_026
|
||||
[ OK ] ov_SC07_009
|
||||
[ OK ] md_MAIN_029
|
||||
[ OK ] md_MAIN_028
|
||||
[ OK ] md_MAIN_027
|
||||
[ OK ] md_MAIN_030
|
||||
[ OK ] ov_SC06_032
|
||||
[ OK ] md_MAIN_031
|
||||
[ OK ] md_MAIN_032
|
||||
[ OK ] md_MAIN_033
|
||||
[ OK ] md_MAIN_035
|
||||
[ OK ] md_MAIN_034
|
||||
[ OK ] md_MAIN_036
|
||||
[ OK ] ov_SC06_033
|
||||
[ OK ] ov_MAIN_012
|
||||
[ OK ] md_MAIN_037
|
||||
[ OK ] md_MAIN_038
|
||||
[ OK ] ov_SC07_011
|
||||
[ OK ] md_MAIN_039
|
||||
[ OK ] md_MAIN_040
|
||||
[ OK ] ov_SC06_029
|
||||
[ OK ] md_MAIN_042
|
||||
[ OK ] md_MAIN_041
|
||||
[ OK ] md_MAIN_043
|
||||
[ OK ] md_MAIN_045
|
||||
[ OK ] md_MAIN_044
|
||||
[ OK ] md_MAIN_046
|
||||
[ OK ] md_MAIN_047
|
||||
[ OK ] md_MAIN_008
|
||||
[ OK ] ov_SC07_010
|
||||
[ OK ] md_MAIN_001
|
||||
[ OK ] md_MAIN_011
|
||||
[ OK ] ov_SC03_107
|
||||
[ OK ] md_SC03_073
|
||||
[ OK ] md_SC03_078
|
||||
[ OK ] md_SC03_074
|
||||
[ OK ] md_SC03_075
|
||||
[ OK ] md_SC03_077
|
||||
[ OK ] ov_SC07_007
|
||||
[ OK ] md_SC03_076
|
||||
[ OK ] md_SC03_132
|
||||
[ OK ] md_SC03_133
|
||||
[ OK ] md_SC03_079
|
||||
[ OK ] md_SC03_137
|
||||
[ OK ] md_SC03_134
|
||||
[ OK ] md_SC03_135
|
||||
[ OK ] md_SC03_136
|
||||
[ OK ] md_SC03_138
|
||||
[ OK ] md_SC04_024
|
||||
[ OK ] md_SC04_025
|
||||
[ OK ] md_SC04_029
|
||||
[ OK ] md_SC04_026
|
||||
[ OK ] md_MAIN_003
|
||||
[ OK ] md_SC04_028
|
||||
[ OK ] md_SC05_023
|
||||
[ OK ] md_SC04_027
|
||||
[ OK ] md_SC04_030
|
||||
[ OK ] md_SC05_024
|
||||
[ OK ] md_SC05_028
|
||||
[ OK ] md_SC05_025
|
||||
[ OK ] md_SC05_027
|
||||
[ OK ] md_MAIN_007
|
||||
[ OK ] md_MAIN_009
|
||||
[ OK ] md_SC05_026
|
||||
[ OK ] md_SC03_053
|
||||
[ OK ] md_SC03_056
|
||||
[ OK ] md_SC03_054
|
||||
[ OK ] md_SC05_029
|
||||
[ OK ] ov_SC02_037
|
||||
[ OK ] md_SC02_009
|
||||
[ OK ] ov_SC07_006
|
||||
[ OK ] md_SC07_004
|
||||
[ OK ] md_SC07_003
|
||||
extract-all: 217 extracted, 0 failed of 217 (+ main, serial)
|
||||
[ OK ] resident
|
||||
[ OK ] ov_SC01_005
|
||||
[ OK ] ov_SC06_000
|
||||
[ OK ] ov_SC05_000
|
||||
[ OK ] ov_SC03_006
|
||||
[ OK ] ov_SC04_000
|
||||
[ OK ] ov_SC01_001
|
||||
[ OK ] ov_SC03_002
|
||||
[ OK ] ov_SC02_000
|
||||
[ OK ] ov_SC01_006
|
||||
[ OK ] ov_SC01_000
|
||||
[ OK ] ov_SC04_018
|
||||
[ OK ] ov_SC01_077
|
||||
[ OK ] ov_SC02_003
|
||||
[ OK ] ov_SC04_019
|
||||
[ OK ] ov_SC03_001
|
||||
[ OK ] ov_SC07_000
|
||||
[ OK ] ov_SC01_008
|
||||
[ OK ] ov_SC01_004
|
||||
[ OK ] ov_SC02_004
|
||||
[ OK ] ov_SC01_074
|
||||
[ OK ] ov_SC01_080
|
||||
[ OK ] ov_SC01_009
|
||||
[ OK ] ov_SC01_084
|
||||
[ OK ] ov_SC02_015
|
||||
[ OK ] ov_SC02_017
|
||||
[ OK ] ov_SC02_026
|
||||
[ OK ] ov_SC02_016
|
||||
[ OK ] ov_SC02_021
|
||||
[ OK ] ov_SC02_011
|
||||
[ OK ] ov_SC02_005
|
||||
[ OK ] ov_SC02_027
|
||||
[ OK ] ov_SC02_039
|
||||
[ OK ] ov_SC02_028
|
||||
[ OK ] ov_SC02_031
|
||||
[ OK ] ov_SC02_035
|
||||
[ OK ] ov_SC02_041
|
||||
[ OK ] ov_SC03_003
|
||||
[ OK ] ov_SC03_007
|
||||
[ OK ] ov_SC03_012
|
||||
[ OK ] ov_SC03_010
|
||||
[ OK ] ov_SC03_011
|
||||
[ OK ] ov_SC03_023
|
||||
[ OK ] ov_SC03_013
|
||||
[ OK ] ov_SC03_014
|
||||
[ OK ] ov_SC03_015
|
||||
[ OK ] ov_SC03_024
|
||||
[ OK ] ov_SC03_089
|
||||
[ OK ] ov_SC03_031
|
||||
[ OK ] ov_SC03_030
|
||||
[ OK ] ov_SC03_090
|
||||
[ OK ] ov_SC03_028
|
||||
[ OK ] ov_SC03_029
|
||||
[ OK ] ov_SC03_092
|
||||
[ OK ] ov_SC03_096
|
||||
[ OK ] ov_SC03_091
|
||||
[ OK ] ov_SC03_093
|
||||
[ OK ] ov_SC03_094
|
||||
[ OK ] ov_SC03_097
|
||||
[ OK ] ov_SC03_098
|
||||
[ OK ] ov_SC03_095
|
||||
[ OK ] main
|
||||
[ OK ] ov_SC03_099
|
||||
[ OK ] ov_SC03_100
|
||||
[ OK ] ov_SC03_101
|
||||
[ OK ] ov_SC03_102
|
||||
[ OK ] ov_SC03_108
|
||||
[ OK ] ov_SC03_109
|
||||
[ OK ] ov_SC03_104
|
||||
[ OK ] ov_SC03_103
|
||||
[ OK ] ov_SC03_113
|
||||
[ OK ] ov_SC03_111
|
||||
[ OK ] ov_SC03_112
|
||||
[ OK ] ov_SC03_110
|
||||
[ OK ] ov_SC03_105
|
||||
[ OK ] ov_SC03_115
|
||||
[ OK ] ov_SC03_114
|
||||
[ OK ] ov_SC03_116
|
||||
[ OK ] ov_SC03_117
|
||||
[ OK ] ov_SC03_118
|
||||
[ OK ] ov_SC03_119
|
||||
[ OK ] ov_SC03_121
|
||||
[ OK ] ov_SC03_126
|
||||
[ OK ] ov_SC03_124
|
||||
[ OK ] ov_SC03_125
|
||||
[ OK ] ov_SC04_006
|
||||
[ OK ] ov_SC04_003
|
||||
[ OK ] ov_SC04_002
|
||||
[ OK ] ov_SC04_005
|
||||
[ OK ] ov_SC04_008
|
||||
[ OK ] ov_SC04_004
|
||||
[ OK ] ov_SC04_009
|
||||
[ OK ] ov_SC04_010
|
||||
[ OK ] ov_SC04_007
|
||||
[ OK ] ov_SC04_012
|
||||
[ OK ] ov_SC04_011
|
||||
[ OK ] ov_SC04_015
|
||||
[ OK ] ov_SC04_016
|
||||
[ OK ] ov_SC04_021
|
||||
[ OK ] ov_SC04_020
|
||||
[ OK ] ov_SC05_003
|
||||
[ OK ] ov_SC05_002
|
||||
[ OK ] ov_SC05_008
|
||||
[ OK ] ov_SC05_006
|
||||
[ OK ] ov_SC05_009
|
||||
[ OK ] ov_SC05_001
|
||||
[ OK ] ov_SC05_005
|
||||
[ OK ] ov_SC05_007
|
||||
[ OK ] ov_SC05_010
|
||||
[ OK ] ov_SC05_004
|
||||
[ OK ] ov_SC05_011
|
||||
[ OK ] ov_SC05_018
|
||||
[ OK ] ov_SC05_017
|
||||
[ OK ] ov_SC05_019
|
||||
[ OK ] ov_SC06_008
|
||||
[ OK ] ov_SC06_006
|
||||
[ OK ] ov_SC06_010
|
||||
[ OK ] ov_SC06_011
|
||||
[ OK ] ov_SC06_015
|
||||
[ OK ] ov_SC06_014
|
||||
[ OK ] ov_SC06_013
|
||||
[ OK ] ov_SC06_020
|
||||
[ OK ] ov_SC06_016
|
||||
[ OK ] ov_SC06_025
|
||||
[ OK ] ov_SC06_022
|
||||
[ OK ] ov_SC06_018
|
||||
[ OK ] ov_SC06_024
|
||||
[ OK ] ov_SC06_027
|
||||
[ OK ] md_MAIN_013
|
||||
[ OK ] md_MAIN_014
|
||||
[ OK ] ov_SC06_029
|
||||
[ OK ] md_MAIN_015
|
||||
[ OK ] md_MAIN_016
|
||||
[ OK ] ov_SC06_030
|
||||
[ OK ] md_MAIN_017
|
||||
[ OK ] md_MAIN_018
|
||||
[ OK ] md_MAIN_019
|
||||
[ OK ] md_MAIN_020
|
||||
[ OK ] md_MAIN_021
|
||||
[ OK ] md_MAIN_022
|
||||
[ OK ] md_MAIN_024
|
||||
[ OK ] ov_SC06_032
|
||||
[ OK ] md_MAIN_025
|
||||
[ OK ] md_MAIN_026
|
||||
[ OK ] md_MAIN_027
|
||||
[ OK ] md_MAIN_029
|
||||
[ OK ] md_MAIN_028
|
||||
[ OK ] md_MAIN_023
|
||||
[ OK ] md_MAIN_030
|
||||
[ OK ] md_MAIN_031
|
||||
[ OK ] md_MAIN_033
|
||||
[ OK ] md_MAIN_034
|
||||
[ OK ] md_MAIN_036
|
||||
[ OK ] md_MAIN_035
|
||||
[ OK ] ov_SC06_033
|
||||
[ OK ] ov_SC07_001
|
||||
[ OK ] md_MAIN_037
|
||||
[ OK ] md_MAIN_032
|
||||
[ OK ] md_MAIN_040
|
||||
[ OK ] md_MAIN_039
|
||||
[ OK ] md_MAIN_038
|
||||
[ OK ] md_MAIN_042
|
||||
[ OK ] ov_SC07_007
|
||||
[ OK ] md_MAIN_043
|
||||
[ OK ] md_MAIN_045
|
||||
[ OK ] md_MAIN_046
|
||||
[ OK ] md_MAIN_044
|
||||
[ OK ] ov_SC07_006
|
||||
[ OK ] md_MAIN_047
|
||||
[ OK ] md_MAIN_001
|
||||
[ OK ] md_MAIN_008
|
||||
[ OK ] md_MAIN_041
|
||||
[ OK ] md_MAIN_011
|
||||
[ OK ] ov_SC07_002
|
||||
[ OK ] md_MAIN_003
|
||||
[ OK ] md_SC07_003
|
||||
[ OK ] md_SC03_076
|
||||
[ OK ] md_SC03_077
|
||||
[ OK ] ov_SC07_009
|
||||
[ OK ] ov_SC07_010
|
||||
[ OK ] ov_SC07_008
|
||||
[ OK ] ov_SC07_011
|
||||
[ OK ] ov_MAIN_012
|
||||
[ OK ] md_SC03_079
|
||||
[ OK ] ov_SC02_037
|
||||
[ OK ] md_SC03_132
|
||||
[ OK ] ov_SC03_107
|
||||
[ OK ] md_SC03_136
|
||||
[ OK ] md_SC03_135
|
||||
[ OK ] md_SC04_024
|
||||
[ OK ] md_SC04_025
|
||||
[ OK ] md_SC07_004
|
||||
[ OK ] md_SC04_026
|
||||
[ OK ] md_SC04_028
|
||||
[ OK ] md_SC03_074
|
||||
[ OK ] md_SC04_027
|
||||
[ OK ] md_SC03_073
|
||||
[ OK ] md_SC03_075
|
||||
[ OK ] md_SC04_029
|
||||
[ OK ] md_SC04_030
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,17 @@
|
||||
# audit-frontier
|
||||
# cmd: make audit-frontier
|
||||
# started: 2026-09-07T03:07:42Z
|
||||
.venv/bin/python tools/audit_frontier.py
|
||||
audit-frontier: reference = corpus.stubs over 218 binaries -> 1258 open stubs
|
||||
family_hseq {'claimed_unmatched_instances': 0, 'members_still_open_per_corpus': 0}
|
||||
worklist {'claimed_n_stubs': 79, 'rows': 79, 'rows_already_banked': 0}
|
||||
backlog {'rows': 0, 'rows_already_banked': 0}
|
||||
fuel_manifest {'targets': 23, 'targets_already_banked': 0}
|
||||
|
||||
All views agree with the corpus oracle.
|
||||
|
||||
DENOMINATOR (R34/R36): agreement above says nothing about code never onboarded, so:
|
||||
stubs 1258 total, 1258 inside main's LINKED (Sony-object) regions by design, 0 game-code stubs open
|
||||
disc: 0 UNCLAIMED of 220 code payloads (docs/disc-ledger.md, from make audit-disc)
|
||||
main's build-derived boundary sig: present (.run/sig.main.jsonl; the Ghidra sig is the second, independent oracle)
|
||||
EXIT=0 wall=9s finished: 2026-09-07T03:07:51Z
|
||||
@@ -0,0 +1,29 @@
|
||||
# audit-disc
|
||||
# cmd: make audit-disc
|
||||
# started: 2026-09-07T03:07:51Z
|
||||
.venv/bin/python tools/disc_audit.py
|
||||
disc: 416,021,760 bytes across 4 tracks; onboarded payload hashes: 213
|
||||
ISO root files: 27
|
||||
! LIST.CD: TOC walk failed (sub-file 0 [2048:24576] out of bounds (.CD is 4096 bytes)) — whole file booked as data
|
||||
onboarded-code 50,878,697
|
||||
unclaimed-code 0
|
||||
classified-data 134,017,708
|
||||
audio-video 184,338,000
|
||||
filesystem-metadata 46,787,355
|
||||
TOTAL 416,021,760 disc 416,021,760 residue 0
|
||||
L2 disagreements (review queue): 80
|
||||
SC06.CD/6 entry=0 type=4 854,543 B L1=data L2=code fns=3 0.87/0.0118
|
||||
SC03.CD/6 entry=0 type=4 849,759 B L1=data L2=code fns=3 0.87/0.0130
|
||||
SC07.CD/6 entry=1 type=4 844,311 B L1=data L2=code fns=3 0.84/0.0116
|
||||
SC01.CD/9 entry=0 type=4 832,263 B L1=data L2=code fns=3 0.85/0.0121
|
||||
SC01.CD/1 entry=0 type=4 831,599 B L1=data L2=code fns=3 0.74/0.0119
|
||||
SC04.CD/11 entry=0 type=4 824,663 B L1=data L2=code fns=3 0.79/0.0136
|
||||
SC02.CD/17 entry=0 type=4 818,143 B L1=data L2=code fns=3 0.89/0.0134
|
||||
SC03.CD/28 entry=0 type=4 804,015 B L1=data L2=code fns=3 0.88/0.0133
|
||||
SC02.CD/11 entry=0 type=4 801,063 B L1=data L2=code fns=3 0.89/0.0145
|
||||
SC03.CD/7 entry=0 type=4 799,087 B L1=data L2=code fns=3 0.88/0.0131
|
||||
SC03.CD/14 entry=0 type=4 798,439 B L1=data L2=code fns=3 0.87/0.0135
|
||||
SC03.CD/15 entry=0 type=4 798,439 B L1=data L2=code fns=3 0.87/0.0135
|
||||
UNCLAIMED code payloads: 0
|
||||
ledger -> docs/disc-ledger.md
|
||||
EXIT=0 wall=36s finished: 2026-09-07T03:08:27Z
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,16 @@
|
||||
# .run/P33/verify/SUMMARY.md — the recorded contract run (generated by tools/verify_contract.sh; never edit)
|
||||
|
||||
- **Tree:** `commit:4028` (2026-09-06) · **Host:** Linux 6.18.33.1-microsoft-standard-WSL2, 32 CPUs, JOBS=16 · **Run:** 2026-09-07T03:11:58Z
|
||||
- **Verdict:** PASS — every step EXIT=0 with its contract line
|
||||
|
||||
| # | Step | EXIT | wall | contract line |
|
||||
|---|---|---|---|---|
|
||||
| 00 | `tree` | 0 | 1s | HEAD commit:4028 2026-09-06 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the refer |
|
||||
| 01 | `check-env` | 0 | 0s | check-env: OK — Phase-4 toolchain ready. |
|
||||
| 02 | `family-hseq` | 0 | 11s | family_hseq regenerated: 217 binaries scanned, 0 open instances |
|
||||
| 03 | `r22-clean-fleet` | 0 | 157s | check-all: 218 passed, 0 failed of 218 |
|
||||
| 04 | `sdk-dual` | 0 | 28s | sdk-dual: OK — main 143dbb89f34491258bbc27810d0a12ec8b43a8dd byte-identical WITH and WITHOUT the PsyQ objects (maps: .run/P33/verify/main_ |
|
||||
| 05 | `tools-health` | 0 | 356s | tools-health: OK — sigs fresh; corpus(+resident) + cdecl + binaries + report(lint+dedup) + cookbook-index all green. |
|
||||
| 06 | `audit-frontier` | 0 | 9s | audit-frontier: reference = corpus.stubs over 218 binaries -> 1258 open stubs |
|
||||
| 07 | `audit-disc` | 0 | 36s | UNCLAIMED code payloads: 0 |
|
||||
| 08 | `report` | 0 | 211s | FLEET distinct-code(uniq): 5820205 / 5820205 = 100.0% (90984/90984 unique fns; the DISTINCT-RE number) |
|
||||
@@ -0,0 +1,21 @@
|
||||
verify_contract: recorded run -> /home/musashi/bfm-decomp/.run/P33/verify (HEAD commit:4028)
|
||||
verify_contract: step 00 tree: step_tree
|
||||
verify_contract: step 00 tree OK (rc=0, 1 s)
|
||||
verify_contract: step 01 check-env: make check-env
|
||||
verify_contract: step 01 check-env OK (rc=0, 0 s)
|
||||
verify_contract: step 02 family-hseq: step_family
|
||||
verify_contract: step 02 family-hseq OK (rc=0, 11 s)
|
||||
verify_contract: step 03 r22-clean-fleet: step_fleet
|
||||
verify_contract: step 03 r22-clean-fleet OK (rc=0, 157 s)
|
||||
verify_contract: step 04 sdk-dual: step_sdk_dual
|
||||
verify_contract: step 04 sdk-dual OK (rc=0, 28 s)
|
||||
verify_contract: step 05 tools-health: step_tools_health
|
||||
verify_contract: step 05 tools-health OK (rc=0, 356 s)
|
||||
verify_contract: step 06 audit-frontier: make audit-frontier
|
||||
verify_contract: step 06 audit-frontier OK (rc=0, 9 s)
|
||||
verify_contract: step 07 audit-disc: make audit-disc
|
||||
verify_contract: step 07 audit-disc OK (rc=0, 36 s)
|
||||
verify_contract: step 08 report: step_report
|
||||
verify_contract: step 08 report OK (rc=0, 211 s)
|
||||
verify_contract: SUMMARY written: /home/musashi/bfm-decomp/.run/P33/verify/SUMMARY.md
|
||||
verify_contract: PASS
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -5,7 +5,7 @@
|
||||
|
||||
> Generated by `tools/family_hseq.py` from the 217 binary sigs + per-binary src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.
|
||||
>
|
||||
> **Scope (217 binaries): 141 location overlays + 75 md_* modules + the resident · MAIN IS EXCLUDED** · generated at HEAD `commit:4027` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
|
||||
> **Scope (217 binaries): 141 location overlays + 75 md_* modules + the resident · MAIN IS EXCLUDED** · generated at HEAD `commit:4028` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
|
||||
|
||||
**Fleet (overlays):** 100.0% fn / 100.0% instr / 100.0% distinct-code matched. Unmatched: 0 instances / 0 ins (0 distinct classes).
|
||||
|
||||
|
||||
+15
-3
@@ -63,9 +63,21 @@ The project's own full run is recorded, log by log, under `.run/P33/verify/` (tr
|
||||
`EXIT=<rc>` and a timestamp, plus `SUMMARY.md`), produced by `tools/verify_contract.sh` on the committed tree. The table
|
||||
below is copied from that `SUMMARY.md`; regenerate it with the script, never by hand.
|
||||
|
||||
| # | Step | Result | Log |
|
||||
|---|---|---|---|
|
||||
| — | *(pending: filled by the Phase-33 A5 run — see `phase-ends/CURRENT_PHASE.md`)* | | |
|
||||
- **Tree:** `commit:4028` (2026-09-06) · **Host:** Linux 6.18.33.1-microsoft-standard-WSL2, 32 CPUs, JOBS=16 · **Run:** 2026-09-07T03:11:58Z
|
||||
|
||||
| # | Step | EXIT | wall | contract line |
|
||||
|---|---|---|---|---|
|
||||
| 00 | `tree` | 0 | 1s | HEAD commit:4028 2026-09-06 fix(phase-33): audit_frontier's LINKED-stub count reads the Stub records (the refer |
|
||||
| 01 | `check-env` | 0 | 0s | check-env: OK — Phase-4 toolchain ready. |
|
||||
| 02 | `family-hseq` | 0 | 11s | family_hseq regenerated: 217 binaries scanned, 0 open instances |
|
||||
| 03 | `r22-clean-fleet` | 0 | 157s | check-all: 218 passed, 0 failed of 218 |
|
||||
| 04 | `sdk-dual` | 0 | 28s | sdk-dual: OK — main 143dbb89f34491258bbc27810d0a12ec8b43a8dd byte-identical WITH and WITHOUT the PsyQ objects (maps: .run/P33/verify/main_ |
|
||||
| 05 | `tools-health` | 0 | 356s | tools-health: OK — sigs fresh; corpus(+resident) + cdecl + binaries + report(lint+dedup) + cookbook-index all green. |
|
||||
| 06 | `audit-frontier` | 0 | 9s | audit-frontier: reference = corpus.stubs over 218 binaries -> 1258 open stubs |
|
||||
| 07 | `audit-disc` | 0 | 36s | UNCLAIMED code payloads: 0 |
|
||||
| 08 | `report` | 0 | 211s | FLEET distinct-code(uniq): 5820205 / 5820205 = 100.0% (90984/90984 unique fns; the DISTINCT-RE number) |
|
||||
|
||||
Every `NN_<step>.log` is tracked under `.run/P33/verify/`; the tools-health log also carries `sig-main-oracle: main is now INDEPENDENT — 0 in-domain stubs, 0 PHANTOM, 0 TRUNCATED, 0 PAD-TAIL` and the report `INCLUDE_ASM stubs : 0`, `Open near-misses: 0`. Total wall 14 min on 32 CPUs.
|
||||
|
||||
The same run was performed after every banked batch of Phases 30–32 (218/218 at every one; the P32 close run is
|
||||
`.run/P32/t4e/r22_check.log`) and the history-rewrite of the public flip is followed by one more (C8) on the adopted tree —
|
||||
|
||||
+37
-21
@@ -59,7 +59,7 @@ one-time snapshot, `CLAUDE.md` gains "never `git clean -x`" (R20 amendment propo
|
||||
- [x] **B6** `dumps/CHECKSUMS.sha1` + INDEX.md rewrite + memory-map Source-index row — Low/xHigh — see Log 2026-09-06 B6
|
||||
- [x] **B7** No-ROM CI (`no-rom.yml`, `audit_public.py`, `compile_only.py`) — xHigh — see Log 2026-09-06 B7
|
||||
- [x] **B8** SETUP.md rows/sections (R21) + `docs/verification.md` — xHigh — see Log 2026-09-06 B8
|
||||
- [ ] **A5** THE RECORDED RUN (`tools/verify_contract.sh` → `.run/P33/verify/`, SUMMARY all EXIT=0) — run Low, read Max
|
||||
- [x] **A5** THE RECORDED RUN (`tools/verify_contract.sh` → `.run/P33/verify/`, SUMMARY all EXIT=0) — run Low, read Max — see Log 2026-09-06 A5
|
||||
- [ ] **B9/C3** The preparatory commit (`git rm --cached` purge set; psyq CHECKSUMS moved; zip sha256s; runbook;
|
||||
decision-log entry) — Max (P5c-class)
|
||||
- [ ] **C1** filter-repo 2.47.0 + `tools/public_rewrite/` — design Max, execution xHigh
|
||||
@@ -219,21 +219,32 @@ Mid-phase rules check after every 4 completed tasks (P6). Commit banked artifact
|
||||
current digest: 363,214 / 13,492,113 / 5,820,205 / main 45,150), what is NOT our C (1,256 LINKED + 5 verbatim), the
|
||||
last-recorded-run table (placeholder until A5 fills it from `SUMMARY.md`), what CI proves without the disc, the
|
||||
regenerable RE artifacts. `tools/verify_contract.sh` is A5's (next). Commit: see below.
|
||||
- **2026-09-06 (S87) — A5 THE RECORDED RUN: PASS.** `tools/verify_contract.sh` on HEAD `commit:4028` → `.run/P33/verify/`
|
||||
(tracked): 00 tree · 01 `check-env: OK` · 02 family_hseq 217 scanned / 0 open · **03 `check-all: 218 passed, 0 failed of
|
||||
218` (157 s, clean fleet)** · 04 `sdk-dual: OK — main 143dbb89… WITH and WITHOUT` (28 s) · 05 `tools-health: OK` (356 s;
|
||||
`sig-main-oracle: 0 PHANTOM, 0 TRUNCATED, 0 PAD-TAIL`; zero `[warn]`) · 06 audit-frontier (1,258 stubs = all in main's
|
||||
LINKED regions, 0 game-code) · 07 `UNCLAIMED code payloads: 0` · 08 report `363214/363214 · 13492113/13492113 ·
|
||||
5820205/5820205 · main 45150/45150`, `INCLUDE_ASM stubs : 0`, backlog 0. Every step EXIT=0 with its contract line;
|
||||
SUMMARY.md pasted into `docs/verification.md` §2. Total wall 14 min (32 CPUs, JOBS=16). Two false starts recorded: the
|
||||
porcelain check tripped on the run's own untracked logs (→ `-uno`), and audit_frontier's derived LINKED count read 0
|
||||
twice (the reference view keys addresses, not Stub records) — each fix gated on a control before its commit (R66).
|
||||
Gotcha ×2: `pkill -f '<pattern>'` kills the calling shell when its own command line contains the pattern (exit 144) —
|
||||
bracket the pattern (`'verify_contrac[t]'`). Commit: see below.
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — A1–A4 ✓, B1–B8 ✓; NEXT = P6 rules check, then A5 THE RECORDED RUN (2026-09-06 ~22:20 MDT, written by session fa49faf3 "S87" after the B8 commit; SUPERSEDES the earlier blocks)
|
||||
## 🛑 SESSION CHECKPOINT — A1–A5 ✓, B1–B8 ✓; NEXT = B9/C3 the preparatory (purge) commit (2026-09-06 ~23:20 MDT, written by session fa49faf3 "S87" after the A5 commit; SUPERSEDES the earlier blocks)
|
||||
|
||||
### 0. How to use this block
|
||||
You are a FRESH SESSION that has read `PROJECT_CONTEXT.md`, `phase-ends/DIGEST.md`, `PhaseEnd_Phase30/31/32.md` and this file,
|
||||
and nothing else (R64). Replay this block verbatim, state phase / done / NEXT / effort, list the rules from the digest
|
||||
(R1–R73), then WAIT for Drew. **NEXT = the P6 rules check (12 tasks done), then A5 THE RECORDED RUN** (run Low, read Max). The harness task list must be REBUILT (Drew wants to monitor it —
|
||||
one TaskCreate per plan item A1…G2, 40 items, mark A1–A4 + B1–B8 completed; R28). The SessionStart hook restarts the headless
|
||||
(R1–R73), then WAIT for Drew. **NEXT = B9/C3** (Max, P5c-class — prompt Drew for `/effort max` per R27; he ran S87 at medium by choice). The harness task list must be REBUILT (Drew wants to monitor it —
|
||||
one TaskCreate per plan item A1…G2, 40 items, mark A1–A5 + B1–B8 completed; R28). The SessionStart hook restarts the headless
|
||||
MCP server when `ghidra/bfm.rep` exists (it did not stay up in S87 — `ss -tln` showed nothing on :8080; harmless): B6/B7/B8
|
||||
need no Ghidra; run `tools/ghidra_mcp_stop.sh` before any headless step (R23).
|
||||
|
||||
### 1. Where we are
|
||||
**Phase 33 — 100% verification + the public flip + Gen2 exit.** Gate 1 approved 2026-09-06 (plan mode, Max). R65–R73 ratified.
|
||||
**Done: A1 (`commit:4012`), A2 (`commit:4013`), A3 (`commit:4014`), A4 (`commit:4015`), B1 (`commit:4016`), B2 (`commit:4017`), B3
|
||||
(`commit:4018`), B4 (`commit:4019`), B5 (`commit:4022`), B6 (`commit:4023`), B7 (`commit:4024`), B8 (the S87 `docs(phase-33): B8 …` commit).** The approved plan is
|
||||
(`commit:4018`), B4 (`commit:4019`), B5 (`commit:4022`), B6 (`commit:4023`), B7 (`commit:4024`), B8 (`commit:4025`), A5 (`commit:4026` prep + `commit:4027`/`commit:4028` fixes + the S87 `verify(phase-33): A5 …` commit).** The approved plan is
|
||||
VERBATIM at the end of this file — Blocks A–G give every task's files, commands and verification; "Execution order and why"
|
||||
is the sequence. Effort: Drew ran S87 at **medium** by explicit choice (the plan says Max for B5); the plan's annotations
|
||||
still stand for the tasks ahead — restate them, Drew decides (R7/R27).
|
||||
@@ -250,29 +261,34 @@ still stand for the tasks ahead — restate them, Drew decides (R7/R27).
|
||||
in the psx_ldr extension, the built ELF, the extracted payload — protos need `extracted/proto/*` from
|
||||
`tools/bfm_extract/extract_proto_exe.py`). The delta filter's three drift classes are documented in SETUP (P33 B5). The
|
||||
live `ghidra/` project is untouched and still on disk (leaves git at B9/C3; the archive repo keeps its history).
|
||||
- **Verification state:** `.run/P32/t4e/r22_check.log` 218/218 (P32 close); B2 re-gated 15 binaries, B3 fresh-clone 218/218,
|
||||
A3/B4 `sdk-dual` OK; no fleet-wide R22 since P32 — **A5 is that run** (after B8). `make tools-health` has NOT been run
|
||||
since A4 (the roster check is new in it) — run it in B8 or A5 and read it.
|
||||
- **Verification state:** **A5 PASS on `commit:4028`** (`.run/P33/verify/SUMMARY.md`: 218/218 clean fleet, sdk-dual both legs,
|
||||
tools-health OK with 0 PHANTOM/TRUNCATED/PAD-TAIL and zero warns, UNCLAIMED 0, report 100.00/100.0/100.0, stubs 0, backlog 0).
|
||||
C8 re-runs it on the adopted (rewritten) tree; a `--cached` removal (B9/C3) changes no tracked-content bytes.
|
||||
- **Environment:** `gh` not authenticated; `git filter-repo` NOT installed; disk ≈ 13 GB free of 75 (`.run/` 38 GB —
|
||||
`build/ghidra_rebuild/` and `.run/ghidra_rebuild/` are scratch, ~1 GB, safe to delete); no `/tmp` (R12).
|
||||
`.run/ghidra_export/` (139 MB, 129 live exports from S86) is the input for any future re-derivation of a candidate.
|
||||
|
||||
### 3. NEXT — in order
|
||||
0. **Preflight:** `git status --short | grep -v ghidra/` (empty) · `git log -1 --format='%h %s'` · `df -h ~`.
|
||||
1. **P6 rules check** (12 tasks done): re-read CLAUDE.md's rules + DIGEST §3, state "Rules check — re-read complete. Continuing
|
||||
with A5."
|
||||
2. **A5 — THE RECORDED RUN** (run Low, read Max; ≈1 h wall): write `tools/verify_contract.sh` per the plan's A5 paragraph —
|
||||
steps 00 `git rev-parse HEAD` + porcelain (only the R23 `ghidra/` churn allowed) · 01 `make check-env` · 02 family_hseq
|
||||
regen · 03 `make clean && make extract-all JOBS=16 && make check-all JOBS=16` · 04 `make sdk-dual` (keep both `.map`s; the
|
||||
two from A3 are already in `.run/P33/verify/`) · 05 `make tools-health` (must contain `0 PHANTOM, 0 TRUNCATED, 0 PAD-TAIL`,
|
||||
zero `[warn]`) · 06 `make audit-frontier` · 07 `make audit-disc` (4-track disc present in `disks/`; residue 0) · 08
|
||||
`make report` (three 100 lines, `INCLUDE_ASM stubs : 0`, `Open near-misses: 0`) · 09 SUMMARY.md; each log ends `EXIT=<rc>`
|
||||
+ timestamp; abort on the first non-zero (R53); `.gitignore` allowlists `.run/P33/verify/` (`*.log *.map *.md *.txt`)
|
||||
exactly like `.run/P32/t4e/`; then paste SUMMARY's table into `docs/verification.md` §2 (replace the placeholder row).
|
||||
Runs on the COMMITTED tree (commit B8 first — done). Log, tick, refresh, commit (the logs are tracked).
|
||||
3. **B9/C3** (Max, P5c-class) → C1 → C2 → … per the task list.
|
||||
1. **B9/C3 — the preparatory commit** (Max, P5c-class; the plan's B9 + C3 paragraphs): `git rm --cached extracted/retail/
|
||||
SLUS_007.26 dumps/*.bin tools/brave-CUE/brave.exe tools/ghidra-ext/*.zip && git rm -r --cached ghidra tools/psyq "session
|
||||
archive"` — files stay on disk, already ignored (B1's `.gitignore`; `git check-ignore -q` each); `tools/psyq/CHECKSUMS.sha256`
|
||||
→ `tools/psyq_CHECKSUMS.sha256` is ALREADY done (B4); record the two ghidra-ext zip sha256s in SETUP §2.3/§2.4
|
||||
(`GhidrAssistMCP_2.8.0.zip` `983e2add88d70552596dc3160c1ece52ca6ba8ac006c6c61446a780696815dc1`, `ghidra_psx_ldr_2026.06.04.zip`
|
||||
`dc57cf1ad126c717f69be63f777d747c9cc0af3b2f833af83eeeac644f8e7c11`); write `docs/public-flip-runbook.md` (the C-block
|
||||
procedure for Drew: archive repo, bundle, rewrite, verify, adopt, force-push, Support ticket text, probe, flip, aftercare
|
||||
— from the Approved plan's Block C + risk register); a forward-only `docs/decision-log.md` entry (R31). Checks: `git
|
||||
ls-files -- <purge paths>` empty; `tools/audit_public.py` → OK (the first time; it FAILS today by design); `make check-env`
|
||||
0; the R22 logs of A5 stay valid (a `--cached` removal changes no tracked-content bytes — say so in verification.md).
|
||||
Commit immediately (R42). CAUTION: `.run/P33/verify/*.map` + logs are tracked now — never `git clean -x`.
|
||||
2. **C1** (design Max, exec xHigh): `.venv/bin/pip install git-filter-repo==2.47.0` (SETUP row) + `tools/public_rewrite/`
|
||||
(gate_scan.py with `--expect-fail`, hash_dict.py, scrub.py, run_filter.py, build_commit_map.py, resolve_tokens.py,
|
||||
verify_rewrite.py, absent_scan.py, probe_github.sh — the plan's C1 paragraph has every spec + the measured numbers:
|
||||
4,401 commits, 149,634 prefixes, 126 twins, 711 resolving citations, `commit:NNNN` tokens). `purge_set.txt` exists (B7).
|
||||
3. **C2** → **C4** (Drew: create `Druthulu/BFM-decomp-archive` EMPTY + private, `git push --mirror archive`) → C5 → C6 → C7 → C8
|
||||
→ C9 (Drew force-pushes) → the Support wait (D/E/F land) → C10 flip.
|
||||
### 4. Files S87 touched
|
||||
B8: `docs/verification.md` (new), `docs/SETUP.md` (§4.4/§4.6/§4.8/§6.3 pointers, backup posture). B7: `.github/workflows/no-rom.yml`, `tools/audit_public.py`, `tools/compile_only.py`, `tools/public_rewrite/purge_set.txt` (all new), `docs/SETUP.md`. B6: `dumps/CHECKSUMS.sha1` (new), `dumps/INDEX.md`, `docs/memory-map.md`. B5: `tools/ghidra_scripts/ImportAnnotations.java` (3 compile fixes + the `/undefined` resolver), `tools/ghidra_rebuild.sh`
|
||||
A5: `tools/verify_contract.sh` (new), `tools/audit_frontier.py` (derived denominator lines), `.gitignore` (the `.run/P33/verify/` allowlist), `.run/P33/verify/*` (tracked evidence), `docs/verification.md` §2, regenerated `docs/family-hseq.md` + `docs/progress*.md`/`duplicates*.md`. B8: `docs/verification.md` (new), `docs/SETUP.md` (§4.4/§4.6/§4.8/§6.3 pointers, backup posture). B7: `.github/workflows/no-rom.yml`, `tools/audit_public.py`, `tools/compile_only.py`, `tools/public_rewrite/purge_set.txt` (all new), `docs/SETUP.md`. B6: `dumps/CHECKSUMS.sha1` (new), `dumps/INDEX.md`, `docs/memory-map.md`. B5: `tools/ghidra_scripts/ImportAnnotations.java` (3 compile fixes + the `/undefined` resolver), `tools/ghidra_rebuild.sh`
|
||||
(`.proof` markers; dies unless `failed=0`), `tools/ghidra_annotations_delta.py` (the three drift classes), new
|
||||
`tools/ghidra_roster.py`, `tools/ghidra_mcp_start.sh` (silent no-op guard), `.claude/settings.json` (relative hooks),
|
||||
`Makefile` (roster check in tools-health), `docs/SETUP.md` (P33 B5 section, 5 inventory rows, §2.8), `config/ghidra/*`
|
||||
|
||||
Reference in New Issue
Block a user