# ============================================================ # ROM-content policy — see PROJECT_CONTEXT.md rule H1 # # While the repo is PRIVATE, ROM-derived content MAY be committed # (asm/, assets/, extracted/, decompressed .CD output). Compliance is # handled by a pre-public history scrub + a rom->decoder regeneration # tool. Two things stay ignored regardless: # 1. the raw multi-GB disc dump (GitHub rejects >100 MB files; it is # trivially reproducible from the disc), and # 2. pure regenerated build churn / large binary caches. # Re-add asm/ assets/ extracted/ to this list before going public. # ============================================================ # Raw disc dump — never committed (size + reproducible) /Brave Fencer Musashi (USA)/ /disks/ # RAM-dump corpus (dumps/*.bin) is COMMITTED while private (H1 relaxed; static, not regenerable; # off-machine backup). Joins the pre-public ROM-content scrub. INDEX.md documents each. # Project-local runtime scratch (MCP server log + stop sentinel) — replaces /tmp use. # Contents-exclude form (the /tools/bin/*.sha256 precedent) so the IRREPLACEABLE recon # commits while the regenerable bulk stays ignored (R20 backup vs R12 scratch; Phase-27 T3). # Rule of thumb: commit what a rerun CANNOT reproduce (hand/Fable5 analysis, harnesses, # ledgers); leave anything a script regenerates (RTL dumps, build logs, drafts) ignored. /.run/* # --- Preserved recon (R20) --- # Giant crack recon: the Phase-25 *.opus.{c,md} seeds, the byte-verified pf*.c # regression ladder, the dump/monitor harnesses, and — cited BY cookbook §45 as its # worked example — func_80133CD4.fable.{c,md} + the fable_cd4/ gdb oracle. # The d_pf*.i.* / *.s / dumps_*/ gcc RTL scratch beside them is regenerable via # dump.sh and stays ignored, as do the permuter/ILS .log files. !/.run/giants/ /.run/giants/* !/.run/giants/*.c !/.run/giants/*.md !/.run/giants/*.sh !/.run/giants/*.py # P30 S42 serial crack drafts — ~680k subagent tokens of work, both NEAR and both the best # base any future attempt has. They were gitignored, i.e. one `git clean` from gone (R20). !/.run/s42/ /.run/s42/* !/.run/s42/*/ !/.run/s42/*/*.c # P30 S43 — the permuter-ILS improvement on the same function (63 -> 42 mismatched), the best # base that exists for it. Same R20 reasoning as s42 above. !/.run/s43/ /.run/s43/* !/.run/s43/*.c !/.run/s43/*.log !/.run/s43/*.py !/.run/s43/*.json !/.run/probe_jtbl/ /.run/probe_jtbl/* !/.run/probe_jtbl/verdict.md !/.run/probe_jtbl/rodata_verbatim.objdump !/.run/probe_jtbl/rodata_filtered.objdump !/.run/giants/fable_cd4/ /.run/giants/fable_cd4/* !/.run/giants/fable_cd4/*.c !/.run/giants/fable_cd4/*.md !/.run/giants/fable_cd4/*.sh !/.run/giants/fable_cd4/*.gdb !/.run/giants/fable_cd4/*.txt # Phase-26 gdb-on-cc1 oracle harness + proof + draft ladder for func_80178004 (the # distilled output of a 477k-token Fable5 pass; the method §52 lever 6 depends on). # dumps_*/ are regenerable via runorc.sh + the .gdb scripts -> stay ignored. !/.run/fable_80178004/ /.run/fable_80178004/* !/.run/fable_80178004/*.c !/.run/fable_80178004/*.md !/.run/fable_80178004/*.gdb !/.run/fable_80178004/*.sh !/.run/fable_80178004/*.py !/.run/fable_80178004/*.lst # The frontier ledgers every survey, worklist and plan consumes. !/.run/backlog.jsonl !/.run/fuel_manifest.json # Phase-27 pin-crash characterization: the minimal repro + gdb harness (the irreplaceable ~KB # core; pin_crash_sigabrt.md above is already covered by giants/*.md). The 260M of RTL dumps + # bisection .s/.c beside them are regenerable via abort.gdb -> stay ignored (R33). !/.run/giants/pincrash/ /.run/giants/pincrash/* !/.run/giants/pincrash/minimal_repro.c !/.run/giants/pincrash/*.gdb !/.run/giants/pincrash/*.md # Regenerated build output (deterministic churn) /build/ /expected/ # Regenerated splat outputs — recreated by `make extract` from the committed # config/splat.us.exe.yaml + config/symbols.us.txt + the EXE. The durable RE record # is the symbol file, not these (build scaffolding, not committed work). /asm/ /assets/ /include/include_asm.h /include/macro.inc /include/labels.inc /include/gte_macros.inc /undefined_syms_auto.txt /undefined_funcs_auto.txt # Ghidra project — COMMITTED as the irreplaceable RE-work backup (private repo; rule R20, # Drew 2026-06-15). NOT regenerable by hand (annotations/types/structs beyond symbols.us.txt). # Track the project; exclude ONLY live-session transients so a running/restarted MCP server # doesn't dirty the tree. Re-commit after significant RE + a Ghidra save. (Ghidra pinned at # 12.1 -> the committed .rep restores directly.) Joins the pre-public ROM-content scrub list. /ghidra/*.lock /ghidra/**/*.lock /ghidra/*.lock~ /ghidra/**/*.lock~ /ghidra/**/tmp*.ps # Toolchain downloads & caches (not source) /.venv/ __pycache__/ # Compiler binaries are ignored (regenerable downloads); the committed *.sha256 # checksum record is re-included so a fresh clone can verify its download (sotn # pattern). Contents-exclude form (not /tools/bin/) so the !re-include can apply. /tools/bin/* !/tools/bin/*.sha256 # PsyQ SDK — Sony-copyrighted (stays PRIVATE; excluded from the public mirror, like ROM content). # Back up the SMALL gathered working artifacts (lib40/ *.LIB, lib40_elf/ *.a, the PsyQ *.EXE tools, # psyq-obj-parser, conv47/) — hard to re-source if the upstream archives go down (rule R20). Ignore # ONLY the >100MB raw source archives (GitHub rejects them; the working libs are already extracted # from them — the disc-dump-equivalent, re-sourceable from redump if ever truly needed). /tools/psyq/psyq40usa.zip /tools/psyq/*.bin /tools/psyq/*.cue /tools/pcsx-redux/ *.tar.gz # ...EXCEPT the old-gcc cc1 compiler tarballs — back them up (gathered compilers; small; verified by # tools/bin/CHECKSUMS.sha256). Extracted cc1 binaries stay ignored (regenerated by `tar xzf`, SETUP §4.7). R20. !/tools/bin/*.tar.gz # Cross-validation scratch: compiled brave oracle + its ROM-derived .dir output /tools/brave-CUE/_build/ # Phase-18 compiler-quirk research reference repos (gitignored; re-clonable from GitHub, exact SHA # recorded in docs/SETUP.md). pmret/gcc-papermario = the gcc-2.7.2 source (read the reload/CSE/ # scheduling/regalloc passes) + ladysilverberg/xenogears-decomp = our exact compiler's decomp (mine # transferable idioms). Research reference, not a build dependency — not committed (avoids repo bloat). /tools/reference/ # Editor / OS noise .vscode/ Thumbs.db # Asset/EXE extraction: commit the tooling + manifest + the retail EXE, NOT the # bulk payloads (deterministically regenerable from the dump; ~hundreds of MB # incl. FMV) and NOT the prototype EXEs. Per-ROM subfolders under extracted/: # extracted/retail/ — retail SLUS-00726 disc extraction (3 files committed) # extracted/proto/ — prototype main EXEs (ROM-derived; fully ignored) # Nested allowlist: ignore everything under extracted/, re-include only the 3 # retail committed files (EXE + manifest + manifest hash — always safe; sotn # precedent). This keeps the "zero ROM-derived bulk staged" guarantee. /extracted/* !/extracted/retail/ /extracted/retail/* !/extracted/retail/SLUS_007.26 !/extracted/retail/manifest.jsonl !/extracted/retail/manifest.sha1 # NOTE (H1 relaxed, private phase): assets/ and other ROM-derived content stay # committable while the repo is private. asm/ + the splat-generated include macros + # undefined_*_auto.txt are IGNORED above: `make extract` regenerates them deterministically # from the committed yaml + symbols, so they are build scaffolding, not durable RE work. # (Phase 5 refined the earlier "commit asm/" stance once the regeneration flow existed; # the durable record is config/symbols.us.txt.) # Gen2 matching-model corpus + weights (R20: large artifacts out of git) datasets/ models/ *.gguf *.safetensors .venv-train/ unsloth_compiled_cache/ .venv-serve/ .env # Phase 29 SESSION-22 — the wave22 UNBANKED drafts. 13 of the 18 (6 NEAR with precise residual # diagnoses + 7 that reached match_one MATCH but did not bank whole-binary) are the next session's # named fuel and cost ~2.59M subagent tokens. They lived only on disk, i.e. one `git clean -fdx` # from gone — the same exposure the .run/giants Fable5 cracks had before Phase 27 curated them. !/.run/wave22/ /.run/wave22/* !/.run/wave22/*.c !/.run/wave22_targets.json # Phase 29 SESSION-23 — the NEAR-6 measurement corpus + the improved ILS seeds. The two # permuter waypoints (func_80177B5C 11->7, func_80140958 10->6) are CPU-bought and second-oracle # verified; the f132F40_v*.c ladder is the byte-evidence for a NEGATIVE result (the §2 remat # recipe does not dissolve this hoist), which is exactly the kind of finding that gets re-derived # expensively if it is lost. near6_measure.{py,json} is the reproducer. !/.run/near6/ /.run/near6/* !/.run/near6/*.c !/.run/near6_measure.py !/.run/near6_measure.json !/.run/near6_ils_*.log # P30 S45 — the L3 tour's irreplaceable evidence (R20): the state-change tour log + hit records, # the watcher/derivation scripts, and the module rosters. The 104 ram_*.bin dumps (~208 MB) stay # LOCAL-ONLY: regenerable via another debug-menu tour; the byte-proofs live in the jsonl + docs. !/.run/s45/ /.run/s45/* !/.run/s45/*.py !/.run/s45/*.sh !/.run/s45/*.jsonl !/.run/s45/*.tsv !/.run/s45/onboard*.log