mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-28 06:49:47 -04:00
docs(phase-34): task 7 part 2 — C11: ~9 GB of untracked campaign scratch pruned (46G→37G), public_rewrite kept to the probe inputs; DIGEST §0/§1/§4, decision-log P34 S93, accelerators, SETUP posture, direction page; README shows the generated timeline
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
== .run top-level sizes (largest 30)
|
||||
/bin/bash: line 1: /usr/bin/du: Argument list too long
|
||||
== untracked top-level dirs under .run (no tracked file inside)
|
||||
118M .run/wave_ei/
|
||||
118M .run/wave_ek/
|
||||
119M .run/wave_fa/
|
||||
119M .run/wave_fd/
|
||||
121M .run/wave_en/
|
||||
121M .run/wave_ep/
|
||||
121M .run/wave_es/
|
||||
122M .run/wave_eh/
|
||||
123M .run/wave_eo/
|
||||
123M .run/wave_ex/
|
||||
123M .run/wave_ez/
|
||||
124M .run/wave_et/
|
||||
129M .run/wave_eu/
|
||||
129M .run/wave_ev/
|
||||
131M .run/wave_eq/
|
||||
139M .run/ghidra_export/
|
||||
196M .run/c954/
|
||||
220M .run/audit/
|
||||
220M .run/crack3/
|
||||
222M .run/resolver/
|
||||
321M .run/rtu_shadow/
|
||||
357M .run/wave4/
|
||||
592M .run/permuter/
|
||||
1.1G .run/public_rewrite/
|
||||
4.1G .run/match/
|
||||
== disk
|
||||
/dev/sdd 73G 46G 24G 67% /
|
||||
@@ -0,0 +1,33 @@
|
||||
== before (2026-09-08)
|
||||
/dev/sdd 73G 46G 24G 67% /
|
||||
118M .run/wave_ei
|
||||
118M .run/wave_ek
|
||||
119M .run/wave_fa
|
||||
119M .run/wave_fd
|
||||
121M .run/wave_en
|
||||
121M .run/wave_ep
|
||||
121M .run/wave_es
|
||||
122M .run/wave_eh
|
||||
123M .run/wave_eo
|
||||
123M .run/wave_ex
|
||||
123M .run/wave_ez
|
||||
124M .run/wave_et
|
||||
129M .run/wave_eu
|
||||
129M .run/wave_ev
|
||||
131M .run/wave_eq
|
||||
196M .run/c954
|
||||
220M .run/audit
|
||||
220M .run/crack3
|
||||
222M .run/resolver
|
||||
321M .run/rtu_shadow
|
||||
357M .run/wave4
|
||||
592M .run/permuter
|
||||
4.1G .run/match
|
||||
1.1G .run/public_rewrite
|
||||
6.7M .run/objdiff
|
||||
== after
|
||||
old-to-new.tsv
|
||||
old_tag_tip.txt
|
||||
352K .run/public_rewrite
|
||||
keep-set present: 5/5, sig files 223, tracked .run files 952, tracked-but-missing 0
|
||||
/dev/sdd 73G 37G 33G 54% /
|
||||
@@ -28,6 +28,11 @@ originals; nothing "functionally equivalent" counts. What the repository claims
|
||||
_Generated by `tools/progress.py --readme` from `docs/progress.json` — numbers are never typed by hand._
|
||||
<!-- progress:end -->
|
||||
|
||||

|
||||
|
||||
The timeline is generated from the committed progress digests by `tools/timeline.py` (never drawn by hand); the dated rows behind
|
||||
it are in [`docs/story-timeline.md`](docs/story-timeline.md) and the narrative in [`docs/story.md`](docs/story.md).
|
||||
|
||||
Two things in those binaries are deliberately **not** our C, and are stated as such:
|
||||
|
||||
- **1,256 functions of the main executable are Sony's PsyQ library code** (libcd, libgs, libgte, libgpu, libspu/libsnd,
|
||||
|
||||
+6
-2
@@ -945,10 +945,14 @@ Every script under `tools/` (plus the two report make-targets), grouped by purpo
|
||||
|
||||
---
|
||||
|
||||
## Backup & repository posture (rules R20/R21) — PUBLIC since Phase 33
|
||||
## Backup & repository posture (rules R20/R21) — PUBLIC since 2026-09-08 (Phase 34)
|
||||
|
||||
The repository is **public** (`https://github.com/Druthulu/BFM-decomp`, AGPL-3.0 for `tools/`+`docs/`, `src/NOTICE.md`
|
||||
for the game sources, `THIRD_PARTY.md`). **H1 is in force:** no ROM-derived or proprietary bytes are in git or in its
|
||||
for the game sources, `THIRD_PARTY.md`) — **flipped 2026-09-08** (Phase 34 task 1) after `tools/public_rewrite/probe_github.sh`
|
||||
passed immediately before (33/33 sampled old hashes gone) and again after (`--after-flip`, incl. the unauthenticated commit pages);
|
||||
the **`protect-main` ruleset** (id 22564862: no deletion, no force-push of `main`, no bypass actors — edit the ruleset first if a
|
||||
rewrite is ever needed) guards the published history; the wiki (`docs/wiki/` + the how-to, 32 pages) is live and synced by
|
||||
`tools/wiki_sync.sh`; the progress card is `https://decomp.dev/Druthulu/BFM-decomp`. **H1 is in force:** no ROM-derived or proprietary bytes are in git or in its
|
||||
history — the retail EXE, the RAM dumps, the Ghidra project, the Sony SDK, the session archive, the extension zips and
|
||||
`brave.exe` were purged from every commit before the flip (`docs/public-flip-runbook.md`), and `tools/audit_public.py` +
|
||||
CI (`.github/workflows/no-rom.yml`) keep it that way. The disc dump (`disks/`), `extracted/`, `build/`, `asm/`, `expected/`
|
||||
|
||||
@@ -892,3 +892,17 @@ lessons that were fixed but never generalised; on this project one in five candi
|
||||
~4.3M tokens, ~13 min wall each in two batches; the coordinator's cost was the brief, the harvest script, the clustering and the
|
||||
provenance generation.
|
||||
|
||||
## P34 S93 (2026-09-08) — the flip day: a third-party step proven through the third party's toolchain, and the public-tree decisions
|
||||
|
||||
The one failure of the flip day was a browser step nobody could have exercised while the repository was private: `docs/decompme-preset.md`
|
||||
told the owner to paste the regenerated target listing into decomp.me, and decomp.me's assembler refused it (`invalid operands 'li a2,2'`).
|
||||
The listing is the project's word oracle — nothing on our side assembles it; its bare register names resolve only through `macro.inc` and
|
||||
its branch targets are absolute addresses — and the replica that had "proven the preset" compared words from the listing's comments,
|
||||
never the listing itself. **Accelerator: a step that hands a file to a third party is proven through that party's own toolchain, on the
|
||||
file itself, before the owner's browser session — and the tool that proves it writes the paste** (`verbatim_target_s.py --gas`;
|
||||
`decompme_replica.sh` steps D and E; the retry matched 100% first time). Two smaller ones from the same day. **A calendar gate is read
|
||||
the morning after the ticket, not "daily for a week":** the Support purge took one day; the probe passed during the previous sub-phase and
|
||||
the flip could have opened a day earlier. **Decide what a public tree carries before the flip:** the sent outreach drafts and the
|
||||
document archive were always going to leave (the owner removed both within hours of going public), and deciding at the consolidation
|
||||
sub-phase would have spared two untrack commits on a public history; the Archive-index rule that made the removal harmless — name
|
||||
archived files as paths, never links — held.
|
||||
|
||||
@@ -3645,3 +3645,41 @@ register lever (accelerators (16)), and treat "PROVED" as "proved against this l
|
||||
above any mid-campaign harvest's. Both are now the kit's own rules: the coverage check is in the kit's health target, and the record's
|
||||
front page tells the next project that its logs deserve one final read.
|
||||
|
||||
## P34 S93 (2026-09-08) — the flip: a calendar gate that opened early, and what a public tree carries
|
||||
|
||||
- **Context and belief.** Phase 33 closed re-chartered because the flip waited on GitHub Support purging the old objects (the Activity
|
||||
view served every pre-force-push tip). The seed planned a daily probe "until PASS, ~a week", with a delete-and-recreate fallback. The
|
||||
probe passed on 2026-09-07, during Phase 33.5 — the purge took a day, not a week — so Phase 34 opened with its gate already open and the
|
||||
fallback never needed. Gate 1 (plan mode, Max) ratified the twelve Phase-33.5 candidates as R84–R95 and added three things the seed did
|
||||
not have: repository metadata and a `protect-main` ruleset (no force-push, no deletion, no bypass actors) set by Claude on the owner's
|
||||
word, a GitHub Release for v2.0.0, and the finding that a Phase-1 relic clone of the OLD history still existed on the Windows
|
||||
filesystem — deleted by Drew during planning, so C11's clone-reset step became "not applicable, with evidence".
|
||||
- **What failed, once.** The decomp.me browser step failed on its first try: the doc told Drew to paste the regenerated target listing,
|
||||
which is the project's WORD ORACLE (nothing on our side assembles it — bare register names that resolve only through `macro.inc`,
|
||||
branch targets as absolute addresses). decomp.me's assembler refused it (`invalid operands 'li a2,2'`). The step had been written for a
|
||||
private repo and never exercised (R14). The fix went into the tools, not the doc alone: `verbatim_target_s.py --gas` (the assemblable
|
||||
form), the replica's step D (the paste itself through decomp.me's own `as` wrapper, 26/26 words) and step E (the bundle written from
|
||||
the proven run); the retry matched 100% first time. Lesson, the same as P33's: a step that talks to a third party is proven through
|
||||
that party's own toolchain before the owner sits down in the browser.
|
||||
- **The outward day.** Public at 11:2x MDT; the after-flip probe 33/33 gone; both workflows green on the public repo; decomp.dev
|
||||
registered (100.00% / 100.00%, hero image); the wiki pushed (32 pages; Claude ran the push on Drew's explicit one-off R6 waiver, the
|
||||
P33 xsig precedent); the preset request (decompme/decomp.me#2106); the Archipelago note (AegeusEvander/…#1); xsig topics + homepage;
|
||||
the tools post and Drew's own `#ai` reply in the decomp.me Discord; two Decompedia rows. frogress skipped on measurement: alive, 38
|
||||
projects, admin-created, and at 100% with generated badges and decomp.dev live it would add a list row only — pending by name.
|
||||
- **Two owner decisions about the public tree (the pivot in this entry).** After the notes were sent, Drew took `docs/outreach/` out of
|
||||
the tree ("just gitignore"), and then the document archive `docs/sunset/` ("remove sunset from the pushed repo … keep the old tools in
|
||||
the sunset folder for the index, but not the other stuff"). The 33.5 design had anticipated exactly this: nothing ever linked into the
|
||||
archive, the Archive index names each file as a path, so the removal broke no link — but the folder was still cited as PRESENT in four
|
||||
wiki pages, and a trial "untrack both" pass measured that the tool census `--check` needs the retired files (a fresh clone would have
|
||||
gone red), which is why the tools half stayed. Convention going forward (on the conventions page): a retired document gets its
|
||||
Archive-index row and is deleted in the same commit; history keeps it. No rewrite for either — the drafts and the archive are in the
|
||||
published history and contain nothing ROM-derived.
|
||||
- **Scratch.** The untracked `.run/` campaign scratch that the frontier's emptying made worthless — per-function draft trees, permuter
|
||||
work dirs, wave shards, resolver and rtu shadow trees, the P29/P32 crack scratch — was pruned after sampling each tree (≈9 GB; disk
|
||||
46 → 37 GB used); `.run/public_rewrite/` kept only the probe's two inputs (1.1 GB → 352 KB) so the probe stays runnable; every
|
||||
tracked `.run` file (952) and the keep-set (`obj40`, the sigs, `decompme`, `wiki`, `verbatim_targets`, `ghidra_export`) untouched.
|
||||
- **Hindsight — the better path.** (1) Exercise every third-party step through that party's own toolchain before the owner's browser
|
||||
session, and let the tool write the paste (done now for decomp.me; the same rule would have caught it in P33). (2) Decide what a
|
||||
public tree carries BEFORE the flip, not after: the outreach drafts and the archive were always going to leave; deciding at 33.5 would
|
||||
have spared two untrack commits on a public history. (3) A "daily probe for a week" should start the day the ticket is filed and be
|
||||
read the next morning — it passed in one day and the phase could have opened a day earlier.
|
||||
|
||||
@@ -90,4 +90,4 @@
|
||||
| 2026-09-06 | 36 | P32 (v1.31.0) | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | 789 / 2091 |
|
||||
| 2026-09-07 | 61 | P33 (v1.32.0) | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — |
|
||||
|
||||
73 dated rows · phase ticks from the 33 PhaseEnds · the chart: `docs/story-timeline.svg`.
|
||||
73 dated rows · phase ticks from the 34 PhaseEnds · the chart: `docs/story-timeline.svg`.
|
||||
|
||||
@@ -4,22 +4,22 @@ The matching is finished: 218 binaries rebuild byte for byte and the frontier is
|
||||
The first is short and mostly administrative — the public flip and the close of the second generation. The second is the
|
||||
third generation: making code that *matches* into code a maintainer would call *finished*.
|
||||
|
||||
## Phase 34 — the flip and the Gen2 exit
|
||||
## Phase 34 — the flip and the Gen2 exit (2026-09-08)
|
||||
|
||||
The repository's history was rewritten before publication to remove every game-derived byte and force-pushed in
|
||||
place. The flip itself waits on one thing outside the project's control: GitHub Support purging the old objects, which
|
||||
the host's Activity view still serves for every pre-force-push tip ([The ROM firewall](The-ROM-firewall.md)). A probe
|
||||
of the old hashes runs daily and the flip is gated on it printing PASS (or, if the purge stalls, on recreating the
|
||||
repository under the same name). **It printed PASS on 2026-09-07** — every sampled old hash gone, the live control still
|
||||
resolving — so the gate is open and Phase 34 can proceed; the probe is run once more immediately before the flip.
|
||||
The repository's history was rewritten before publication to remove every game-derived byte and force-pushed in place;
|
||||
the flip waited on GitHub Support purging the old objects, because the host's Activity view still served every
|
||||
pre-force-push tip ([The ROM firewall](The-ROM-firewall.md)). The probe of the old hashes printed PASS on 2026-09-07 and
|
||||
again immediately before the flip, and **the repository went public on 2026-09-08**, with a ruleset that forbids
|
||||
force-pushing or deleting `main` from then on.
|
||||
|
||||
After that, in order: the visibility change and the checks that follow it (the probe after the flip, the Actions tab
|
||||
green, the wiki enabled — GitHub offers wikis only on public repositories on the free plan); the outward actions the
|
||||
maintainer does in his own words — the decomp.me preset request, a note to the neighbouring Archipelago project whose
|
||||
RAM map cited this one, the progress boards (decomp.dev, frogress), the wiki push, the tool announcement and the
|
||||
topics on the released tool repositories; the aftercare (other clones reset to the rewritten history, the rewrite
|
||||
scratch deleted); and the Phase-34 close at **v2.0.0**, which is the Gen2 exit. The seed for that phase, with every
|
||||
task, actor and effort level, is [`docs/phase34-seed.md`](../phase34-seed.md).
|
||||
The same day, in order: the after-flip probe and the Actions runs on the public repository; the progress card on
|
||||
decomp.dev, read from the workflow's report artifact; this wiki, published from `docs/wiki/` and the how-to; the
|
||||
decomp.me preset request with a scratch that matches at 100%; the note to the neighbouring Archipelago project; the
|
||||
tool announcement and the Decompedia rows; and the maintainer's own decisions on what a public tree carries (the sent
|
||||
outreach drafts and the document archive left it — the Archive index is the record). The phase closes at **v2.0.0**,
|
||||
the Gen2 exit, with a PhaseEnd that lists by name what is still pending on third parties (the preset's creation, a
|
||||
reply from Archipelago, frogress). Its seed, with every task, actor and effort level, is
|
||||
[`docs/phase34-seed.md`](../phase34-seed.md).
|
||||
|
||||
## Gen3 — readability, on a byte-exact floor
|
||||
|
||||
|
||||
@@ -221,7 +221,26 @@ output) · `.run/P34/c11/` (the prune listing with sizes, `git worktree list`, t
|
||||
`audit_public` OK over 6,914 tracked paths · `kit_lint` OK · `make kit-corpus` regenerated (359 copies / 28 pointers).
|
||||
- The wiki pages changed (Reference-index, Archive-index, conventions, layout) → the C11 wiki re-sync (Drew's word).
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — PHASE 34 OPEN (S93, 2026-09-08): tasks 0a, 0–6 ✓; task 7 part 1 ✓ (outreach + docs/sunset out of the tree); NEXT = task 7 part 2 (the .run prune, DIGEST/decision-log/SETUP/wiki updates, checks, the wiki re-sync), then 8 (G2 — Tier 1, Max)
|
||||
### 2026-09-08 — Task 7 (part 2) — C11: the prune, the record, the README timeline (xHigh; S93)
|
||||
- **Other clones:** none — the relic Windows clone deleted by Drew during planning (verified twice: `ls` → No such file); the C4 archive
|
||||
mirror's remote re-read = `Druthulu/BFM-decomp-archive.git` (private, the surviving copy). `git worktree list` → one (R77). Runbook §12's
|
||||
reset recipe: not applicable, with this evidence.
|
||||
- **The prune (`.run/P34/c11/prune.txt`, `inventory_before.txt`):** the untracked campaign scratch, each tree sampled before deletion
|
||||
(per-function draft dirs with `.c`/`.o`, permuter work dirs, wave shards, resolver/rtu shadow trees, the P29/P32 crack scratch; newest
|
||||
2026-09-05; all superseded by the banked source): `.run/match` 4.1G, `permuter` 592M, `wave4` 357M, 15 × `wave_e*/f*` ≈1.8G,
|
||||
`rtu_shadow` 321M, `resolver` 222M, `crack3` 220M, `audit` 220M, `c954` 196M, `objdiff` 6.7M; `.run/public_rewrite/` 1.1G → 352K
|
||||
(only `old-to-new.tsv` + `old_tag_tip.txt` kept, so the probe stays runnable). **Disk 46G → 37G used (33G free).** Keep-set intact:
|
||||
`obj40`, `decompme`, `wiki`, `verbatim_targets`, `ghidra_export`, 223 sig files; **tracked `.run` files 952, missing 0.**
|
||||
- **The record:** `phase-ends/DIGEST.md` §0 (PUBLIC 2026-09-08; Phase 34 in progress), §1 (the flip date on the H1 bullet), §4 (the
|
||||
archive rows are the record); `docs/decision-log.md` "P34 S93 — the flip" (R31); `docs/accelerators.md` P34 S93 (three); `docs/SETUP.md`
|
||||
posture section (the flip date, the probe, the ruleset id, the wiki, decomp.dev); `docs/wiki/Where-the-project-goes-next.md` §Phase 34
|
||||
in the past tense. **README (Drew's ask):** the generated timeline SVG now sits right under the progress block with its provenance line;
|
||||
`tools/timeline.py` regenerated (its rows were stale against the digests since the 33.5 close) → `timeline --check` fresh.
|
||||
- Checks: `make audit-digest` OK · `doc_links --strict` OK · `wiki_render --selftest` 12/12, 32 pages (this and part 1's outputs).
|
||||
- **Open for the wiki:** five wiki pages changed in task 7 (Reference-index, Archive-index, conventions, layout, direction) → a re-sync
|
||||
push needs Drew's word (R6; the task-5 waiver was one-off). `gh auth logout` stays Drew's last command after the close push.
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — PHASE 34 OPEN (S93, 2026-09-08): tasks 0a, 0–7 ✓ (task 7's wiki re-sync awaits Drew's word); NEXT = task 8 (G2 — Tier 1, Max: tools-health detached, the P7 walk, gate 2, the PhaseEnd v2.0.0)
|
||||
|
||||
### 0. How to use this block
|
||||
A fresh session reads CLAUDE.md's load order, replays THIS block verbatim, and resumes at the first unchecked task above. Everything
|
||||
|
||||
@@ -19,8 +19,9 @@ database regenerable from `config/ghidra/`). The whole history was rewritten wit
|
||||
no license asserted over `src/`, NOTICE, THIRD_PARTY, badges, ROM-free CI), the releases (gcc-2.7.2 map, xsig, the permuter driver —
|
||||
offered upstream and declined, the drafter write-up, the decomp.me preset proven through decomp.me's own toolchain), the outreach notes,
|
||||
story, retrospective, wiki (13 pages) + how-to (13 chapters), and the **Gen3 charter** (`docs/gen3-handoff.md`, `docs/gen3-standards.md`)
|
||||
are written. **The repository is still PRIVATE:** GitHub Support must purge the old objects first (ticket #4736982; the Activity view
|
||||
publishes every pre-force-push tip, so a clean tree is not enough). **Phase 33.5 CLOSED 2026-09-08 (v1.32.1; `PhaseEnd_Phase33.5.md`):** the docs sub-phase before the flip — the wiki is the single
|
||||
are written. **The repository went PUBLIC on 2026-09-08 (Phase 34 task 1, Drew)** after the purge probe passed twice — 2026-09-07 and
|
||||
again immediately before the flip (33 of 33 sampled old hashes gone; Support ticket #4736982 had done its work) — with the `protect-main`
|
||||
ruleset (no force-push, no deletion) guarding the published history. **Phase 33.5 CLOSED 2026-09-08 (v1.32.1; `PhaseEnd_Phase33.5.md`):** the docs sub-phase before the flip — the wiki is the single
|
||||
source of truth (six new pages incl. the Reference index and the Archive index; 59 documents and 34 tools retired into indexed sunset
|
||||
folders; `doc_links` with six checks), the tracked `.run/` is flip-ready (1,086 → 868 + the phase's own evidence; the two ROM listings
|
||||
untracked under an audit-only rule + a content check), the memory store reconciled (80 == 80; an 18-file seed), and **the day-one decomp
|
||||
@@ -30,8 +31,9 @@ kit-corpus`, asserted equal in tools-health), `tools/kit_coverage.py` (every rul
|
||||
its first run found 26 + 21 uncited, three genuine gaps), and the worklog mining pass (777 candidates / 634 banked / 143 new → DK-69–80).
|
||||
R74–R83 ratified at its gate 1; candidates (i)–(xii) proposed for Phase 34 gate 1. **Phase 34's gate is OPEN: the purge probe PASSED
|
||||
2026-09-07.** **Phase 34 = the flip + the outward actions + C11 + the v2.0.0 PhaseEnd = Gen2 EXIT** (`docs/phase34-seed.md`).
|
||||
**Phase 34 OPENED 2026-09-08 (S93; gate 1 in plan mode at Max; R84–R95 ratified; the plan and the live state are in
|
||||
`phase-ends/CURRENT_PHASE.md`).** **Gen3 opens at Phase 35** — its seed now includes the S91-b types doctrine (R95, the canonical
|
||||
**Phase 34 IN PROGRESS (opened 2026-09-08, S93; gate 1 in plan mode at Max; R84–R95 ratified; the plan and the live state are in
|
||||
`phase-ends/CURRENT_PHASE.md`): the flip done, decomp.dev live, the wiki live (32 pages), the decomp.me preset requested, the
|
||||
Archipelago note sent, the tools announced; `docs/outreach/` and `docs/sunset/` left the tree on the owner's decision.** **Gen3 opens at Phase 35** — its seed now includes the S91-b types doctrine (R95, the canonical
|
||||
type layer).
|
||||
|
||||
## 1. Corrections and supersessions of PROJECT_CONTEXT.md recorded in PhaseEnds (P1: the constitution is never edited)
|
||||
@@ -42,7 +44,7 @@ type layer).
|
||||
backups → today: **one commit per completed task after CURRENT_PHASE.md is updated; a bank commits the moment it
|
||||
exists (R42)**. Claude commits; **Drew pushes** (R6); the PhaseEnd + archived log are left uncommitted for Drew's
|
||||
milestone-close commit; no `Co-Authored-By` (R5).
|
||||
- **H1** was relaxed while private (R1, 2026-06-10 → 2026-09-06) and is **IN FORCE again since Phase 33 C3 (2026-09-06)**: the ROM-derived and proprietary paths left the index and were purged from the whole history before the public flip (`docs/public-flip-runbook.md`); R1 is historical. **R20's backup home** is now the text export `config/ghidra/` (+ `tools/ghidra_rebuild.sh --proof`), `dumps/CHECKSUMS.sha1`, `tools/psyq_CHECKSUMS.sha256`, and the private archive repo `Druthulu/BFM-decomp-archive` (the pre-rewrite history); **never `git clean -x`** (CLAUDE.md fail-safe).
|
||||
- **H1** was relaxed while private (R1, 2026-06-10 → 2026-09-06) and is **IN FORCE again since Phase 33 C3 (2026-09-06)**: the ROM-derived and proprietary paths left the index and were purged from the whole history before the public flip (`docs/public-flip-runbook.md`); R1 is historical. **The flip itself happened on 2026-09-08 (Phase 34 task 1).** **R20's backup home** is now the text export `config/ghidra/` (+ `tools/ghidra_rebuild.sh --proof`), `dumps/CHECKSUMS.sha1`, `tools/psyq_CHECKSUMS.sha256`, and the private archive repo `Druthulu/BFM-decomp-archive` (the pre-rewrite history); **never `git clean -x`** (CLAUDE.md fail-safe).
|
||||
- **Environment:** all-in-WSL (R2); Ghidra runs **headless** (MCP server via `tools/ghidra_mcp_start.sh` / the
|
||||
SessionStart hook; symbols persist only via `tools/ghidra_apply_symbols.sh`, MCP renames do not); PCSX-Redux is
|
||||
Windows-native bridged over the web API (R11); no `/tmp`, scratch under `.run/` (R12).
|
||||
@@ -355,8 +357,8 @@ the binding text. R44–R63 one-liners are the P31 table, ratified at P32 gate 1
|
||||
## 4. Where things live (the doc map a session needs)
|
||||
**The wiki is the source of truth for documentation (Phase 33.5):** `docs/wiki/Reference-index.md` lists every live reference and
|
||||
generated file with how to read it — start there; `docs/wiki/Docs-and-scratch-conventions.md` says where each kind of knowledge goes;
|
||||
`docs/wiki/The-ROM-firewall.md` is the no-ROM policy; `docs/wiki/Archive-index.md` records every document retired to `docs/sunset/`
|
||||
(kept for the owner's review; nothing links into it). The files a session touches most: `docs/SETUP.md` (environment, every tool's
|
||||
`docs/wiki/The-ROM-firewall.md` is the no-ROM policy; `docs/wiki/Archive-index.md` records every document retired at Phase 33.5
|
||||
(the archive folder itself left the tree at Phase 34, 2026-09-08 — the rows are the record; nothing ever linked into it). The files a session touches most: `docs/SETUP.md` (environment, every tool's
|
||||
row, commands) · `docs/matching-cookbook.md` §1–§500 (idioms; 3.5 MB — grep by §, never read whole) + `docs/cookbook-index.md`
|
||||
(symptom-keyed, derived, 566 KB — grep) · `docs/gcc-2.7.2-map/` (the compiler map) · `docs/wave-playbook.md` (THE wave procedure;
|
||||
the OpenRouter-era `automation-runbook.md` is archived) · `docs/effort-map.md` · `docs/phase34-seed.md` (the next phase's seed;
|
||||
|
||||
Reference in New Issue
Block a user