# ============================================================ # 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 /.run/ # 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