mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-02 16:00:27 -04:00
9937fd7e39
- kit: DK-65 "types are a banking lever and a width lever, not a byte lever" (kernel, when, cost, calibration fence, provenance; the kernels file now states its own total "In all: DK-1 … DK-65" and SETUP Step 6 compares grep -c against it instead of a typed 64); intake row 6's milestone gains the canonical type layer (one definition per shape, widths proven by the bytes at bank time, a bank refused for a duplicate definition or a raw address cast) + the type tools moved forward + G62/DK-65 in its columns; row 10 reads "short if Part C and Phase 6's type layer held"; G62 extended with the bank-time clause (G1–G67 kept); tool_dictionary: lift_types + canon_sig_reconcile P10 → P6 and the five type tools' need-keys name the type layer at Phase 6 (the phase column is one token — the corpus dir derives from it); the cookbook front page's type-verdict sentence (a NAME never moves a byte, a WIDTH or SIGNEDNESS is the one place a type does, the permuter cannot reach it); the methodology's "Types — the two-sided verdict" paragraph; the kit README's table + tree now name the two dictionaries and layout-contract.md; make kit-corpus regenerated the tool index, the MANIFEST and the corpora (302 copies + 28 pointers) - wiki: docs/wiki/Start-a-new-decomp-project.md — the three steps, what it installs / does not (the two dictionaries), the ladder (11 rows), the five AI-use rules, the six inversions (raw casts → declared symbols; DK-65), the compiler question, the accelerators one line each (58 rows), the four dry-runs, how it is kept honest; sidebar + Home rows; Tools-from-this-project rows for the kit and the tool index; README bullets for both; SETUP row for decomp-architect/ (R21); Where-the-project-goes-next links the page and records the probe PASS (2026-09-07); phase34-seed: task 0 PASSED, the kit carried whole through the flip and split later - verify: wiki_render --selftest 12/12 + reachability 32 pages / 0 unlisted; doc_links --strict 58 documents / 451 links / 0 pending / 0 broken / coverage 65 of 65 (one BROKEN on the first draft — a foreign project's docs/ path cited in backticks — reworded); kit_lint OK (leak 0 / placeholders 22 == 22 / syntax 0 / gitignore 75 identical); tool_census --check OK; 65 DK ids cited, 0 dangling; audit_public OK on the touched files; no build input changed - log + checkpoint (NEXT = task 15, Max, Tier 1 — prompt Drew and wait for gate 2)
64 lines
8.2 KiB
Markdown
64 lines
8.2 KiB
Markdown
# Phase 34 — the flip and the Gen2 exit (the post-flip half of Phase 33, re-chartered 2026-09-07)
|
||
|
||
> **Why this phase exists.** Phase 33 planned the contract verification, the history rewrite, the publishing surface, the
|
||
> releases, the writing, and the public flip as one phase. Everything that does not depend on GitHub Support is done (see §2).
|
||
> The flip is gated on Support purging the old objects (ticket #4736982, filed 2026-09-07; `tools/public_rewrite/probe_github.sh`
|
||
> must print PASS first), which is calendar time nobody controls. The owner's decision (2026-09-07): **close Phase 33 now on what
|
||
> is done, put the flip-gated remainder into Phase 34 as the last Gen2 phase, and open Gen3 at Phase 35.** Phase 33 therefore
|
||
> closes at v1.32.0; Phase 34 closes at **v2.0.0 = Gen2 EXIT**. This file is the seed for Phase 34's plan-mode session (Tier 1,
|
||
> Max): it carries every task, every document the task uses, and the milestone, so nothing from Phase 33 is lost.
|
||
|
||
## 1. Tasks (in order; effort per task; the actor)
|
||
|
||
| # | Task | Actor | Effort | The document that carries it |
|
||
|---|---|---|---|---|
|
||
| 0 | **Daily probe** until PASS: `tools/public_rewrite/probe_github.sh` (S89 baseline 31 of 33 old hashes still ALIVE). **PASSED 2026-09-07 during Phase 33.5** (`.run/P33.5/probe_github_s91.log`: every sampled old hash gone, the live control resolves) — the gate is open; run it once more immediately before task 1. Fallback if Support stalls past ~a week: delete and recreate the repository under the same name and push the same rewritten history (a new object network and a fresh Activity log; nothing else exists to lose). | Claude runs; Drew decides the fallback | Low | `docs/public-flip-runbook.md` §11 (the Activity-view leak, the ticket route, the fallback) |
|
||
| 1 | **C10 the flip:** Settings → General → Danger Zone → Change visibility → Public; then `gh api repos/Druthulu/BFM-decomp --jq .private` → `false`; `probe_github.sh --after-flip`; the Actions tab green; enable Settings → Features → Wikis (free plan: wikis need a public repo). | Drew | Max (decision) | runbook §11; checkpoint §0b |
|
||
| 2 | **E1 outward — the decomp.me preset:** the six steps (log in; scratch from `.run/decompme/drew_bundle/` → 100%; the preset-request issue on `decompme/decomp.me` in Drew's words; the manual search closing SETUP ledger row 14; report URLs). Regenerate the bundle with `tools/decompme_replica.sh` if `.run/` was pruned. | Drew | xHigh | `docs/decompme-preset.md` §5 |
|
||
| 3 | **E2 outward — the Archipelago note:** the GitHub issue on `AegeusEvander/Brave-Fencer-Musashi-AP-World` (or the Discord short form), in Drew's words; on reply, memory-map rows per its §5. | Drew | xHigh | `docs/outreach/archipelago.md` §4–§5 |
|
||
| 4 | **D3 outward — progress boards:** decomp.dev → log in → `decomp.dev/manage/new` → add the repo (reads the `SLUS_007.26_report` artifact `progress.yml` uploads); frogress: request slug `bfm` + key, then `FROGRESS_API_SECRET=… .venv/bin/python tools/frogress_upload.py --push`. | Drew | xHigh | SETUP P33 D1–D3 section; `tools/objdiff_report.py`, `tools/frogress_upload.py` |
|
||
| 5 | **F3 outward — the wiki:** Wiki tab → "Create the first page" → `tools/wiki_sync.sh --push` → check the sidebar links render. | Drew | Low | `tools/wiki_sync.sh`; `docs/wiki/`, `docs/how-to-ai-decomp/` |
|
||
| 6 | **Tool discoverability:** `gh repo edit Druthulu/xsig --add-topic decompilation --add-topic mips --add-topic playstation --add-topic psx --add-topic psyq --add-topic dedup --add-topic reverse-engineering -h https://github.com/Druthulu/BFM-decomp`; delete the fork `Druthulu/decomp-permuter` (the patch stays tracked in-tree); post the tools announcement in Drew's words. | Drew (or Claude on Drew's word) | Low | `docs/outreach/tools-announcement.md`; README "Tools from this project" |
|
||
| 7 | **C11 aftercare:** other clones `git fetch origin && git reset --hard origin/main && git reflog expire --expire=now --all && git gc --prune=now` (never `git pull`); `gh auth logout`; delete `.run/public_rewrite/` and `.run/objdiff/`; prune `.run/`; DIGEST §0/§1 and the decision-log entry for the flip. | Claude | xHigh | runbook §12 |
|
||
| 8 | **G2 — PhaseEnd_Phase34 v2.0.0 (Gen2 EXIT):** the PhaseEnd, `CURRENT_PHASE.md` → `phase-ends/logs/Phase34.md`, DIGEST §0/§2/§3 appended, the annotated `v2.0.0` tag; Drew pushes `main --tags`. Rule candidates (a)–(j) of Phase 33 were **ratified as R74–R83 at Phase 33.5 gate 1 (2026-09-07)**; any Phase 34 candidates are added here. | Claude, then Drew (gate 2, push) | Max, Tier 1 | this file; `phase-ends/PhaseEnd_Phase33.md` |
|
||
|
||
> **Phase 33.5 runs before this phase** (opened 2026-09-07; `phase-ends/CURRENT_PHASE.md`): docs consolidation into the wiki, the
|
||
> tracked-`.run/` prune, the memory reconciliation and the day-one decomp kit — v1.32.1. It changes no build input and no flip step;
|
||
> task 0's probe PASSED during it (2026-09-07). Phase 34 opens from this file once 33.5 closes. **The kit `decomp-architect/` is carried
|
||
> WHOLE through the flip** (its two corpora are generated in-tree by `make kit-corpus` and asserted equal in tools-health; nothing in it
|
||
> refers to this repository's paths) and split into its own repository afterwards, as xsig was — that split is a Phase-35+ task, not this phase's.
|
||
|
||
Every outward action is done by Drew or **explicitly recorded as pending** in the PhaseEnd (P9 — never claimed). Every outward
|
||
text is written by Drew the way a developer writes it (rule candidate (j); `docs/gen3-standards.md` §3).
|
||
|
||
## 2. What Phase 33 delivered (the record Phase 34 inherits — nothing here is redone)
|
||
|
||
Verification and instruments: `docs/verification.md` (the recorded contract run, 218 of 218), `tools/verify_contract.sh`, `make
|
||
sdk-dual`, `make disc-extract`, `tools/bootstrap.sh`, `tools/fetch_psyq.sh`, the ROM-free CI (`.github/workflows/no-rom.yml`,
|
||
`tools/audit_public.py`, `tools/compile_only.py`), `dumps/CHECKSUMS.sha1`, `config/ghidra/*.jsonl` + `ROSTER.md`
|
||
(`tools/ghidra_rebuild.sh --proof`). The history rewrite: `tools/public_rewrite/`, `docs/commit-map.tsv`,
|
||
`docs/public-flip-runbook.md`, the private archive `Druthulu/BFM-decomp-archive`, the force-pushed rewritten `main`. The
|
||
publishing surface: `README.md` (generated numbers, Special thanks, "Standards, and how the AI was used", "Tools from this
|
||
project"), `LICENSE`, `src/NOTICE.md`, `THIRD_PARTY.md`, `docs/progress.json` + `docs/badges/`, `tools/objdiff_report.py`,
|
||
`tools/frogress_upload.py`, `.github/workflows/progress.yml`, `tools/doc_links.py`. The releases: `docs/gcc-2.7.2-map/README.md`
|
||
+ `tools/gccmap_cites.py`; `tools/xsig/` + `github.com/Druthulu/xsig`; `docs/permuter-ils.md` + the tracked patch (offered
|
||
upstream, declined); `docs/matching-drafter-pipeline.md`; `docs/decompme-preset.md` + `tools/decompme_replica.sh`;
|
||
`docs/outreach/archipelago.md`; `docs/outreach/tools-announcement.md`. The writing: `docs/story.md` + `docs/story-timeline.md/.svg`
|
||
(`tools/timeline.py`), `docs/retrospective.md` (`tools/mine_hindsight.py`), `docs/wiki/` (13 pages) + `docs/how-to-ai-decomp/`
|
||
(13 chapters) + `tools/wiki_render.py` / `tools/wiki_sync.sh`. Gen3: `docs/gen3-handoff.md`, `docs/gen3-standards.md`. Memory
|
||
map: the S89 corrections (day-of-week, the patch-site functions, Q#13). Rules: R65–R73 ratified at gate 1; candidates (a)–(j)
|
||
recorded in the Phase 33 checkpoint and proposed at its close.
|
||
|
||
## 3. Milestone (gate 2 of Phase 34 — what Drew confirms; these are Phase 33's original items 2–4)
|
||
|
||
1. `gh api repos/Druthulu/BFM-decomp --jq .private` → `false`; `probe_github.sh` exit 0 (old hashes 404); `.github/workflows/
|
||
no-rom.yml` green on the public repo; the wiki live; the fresh-clone criterion met with the disc (B3's proof stands).
|
||
2. Every outward action done or recorded as pending: the decomp.me preset request, the Archipelago note, decomp.dev and
|
||
frogress, the wiki push, the xsig topics, the fork deletion, the tools post.
|
||
3. C11 done; `PhaseEnd_Phase34.md` v2.0.0 + DIGEST append + the `v2.0.0` tag pushed. **Gen2 EXIT.**
|
||
|
||
## 4. What comes after (not this phase)
|
||
|
||
Gen3 opens at Phase 35 in a fresh plan-mode session from `docs/gen3-handoff.md` and `docs/gen3-standards.md`: pins off, the
|
||
macro-body header into shared C files, struct unification, names with evidence, formatting — every step gated by the 218 hashes.
|