Commit Graph

1202 Commits

Author SHA1 Message Date
Drew T 8a698e1b79 kit+docs(phase-33.5): task 14.5 part 2 — the phase-log mining pass banked: DK-69–DK-80 from 143 worklog lessons; the S92 accelerators + decision-log entries
- 21 read-only Opus slices over the 26 worklogs (30,540 lines read; the three giants by line range), briefed by
  .run/P33.5/log-mining/BRIEF.md with the "already banked?" grep protocol: 777 candidates, 634 already banked, 143 NEW;
  every cited log line verified to exist by harvest.py and read; 142 banked + 1 dropped (the miner's own low-value verdict)
- decomp-kernels.md: twelve kernels DK-69–DK-80 (instrument blind spots; verdict staleness + the health suite; what earns
  belief; denominators/units/labels; leverage vs tractability + campaign scoping; models and prompts; the unattended run;
  agents and the tree; edits that keep proofs; the search harness + the compiler as evidence; maintaining the knowledge base;
  hosts and services), each provenance line generated from the slices' cited worklog lines (bank.py); section 8 retitled;
  Coverage "In all: DK-1 … DK-80"; every count mention → 80 (kit README, methodology, SETUP row, wiki page)
- docs/accelerators.md "P33.5 S92" (two accelerators: a distillation ships with a coverage check; the end-of-project worklog
  pass recovers the fixed-but-never-generalised lessons — 1 in 5 here) → cited by the twelve kernels (kit_coverage: 59 entries,
  42 cited + 15 dispositioned, 0 UNCOVERED; the matcher now requires an un-numbered entry's FULL group text);
  docs/decision-log.md "P33.5 S92" (R31: the question, the measurement, the pivot, the 82%/18% why, the hindsight path)
- evidence tracked under .run/P33.5/log-mining/ (BRIEF, 21 slice reports, HARVEST.md, HARVEST_TABLE.md, harvest.py, bank.py;
  a dated .gitignore block); expected-manifest +1 (docs/inherited-record.md); make kit-corpus regenerated the record copies
- verify: tool_census --check OK (358 copies); kit_coverage OK; kit_lint OK (0 leaks over 436 files); doc_links --strict OK;
  wiki_render --selftest 32/0; audit_public OK on the new files; 80 DK ids cited, 0 dangling
2026-09-07 23:24:14 -06:00
Drew T 0c29c9e16b tools+kit(phase-33.5): task 14.5 part 1 — the record as the third dictionary + kit_coverage (every rule and every accelerator entry cited or dispositioned)
- decomp-architect/corpus/record/: the how-to (13), decision-log, accelerators, retrospective, story, wave-playbook, effort-map,
  gen3-standards, gen3-handoff, DIGEST and every PhaseEnd (34) verbatim behind an authored front page (what each is, how to
  read it, what is NOT there — the phase logs, R19 — and that the mining pass is their distillation); tool_census: RECORD_SOURCES
  + record_dest + the third corpus in plan/write/check (358 copies + 28 pointers, --check OK); kit_lint exempts corpus/record;
  SETUP Step 6 gains 2c docs/inherited-record.md (+ the verify line; expected-manifest +1); ops-setup/README/tree/methodology/
  wiki page/Home/Tools page/README bullet/SETUP row: "two dictionaries" → three
- tools/kit_coverage.py (+ config/kit_coverage_map.tsv): derives R1..R83 from DIGEST §3 (asserted contiguous) and the 58
  accelerator entries (headings + numbered items), asserts each is cited by a provenance line of the registry seed / the
  kernels or dispositioned (G / DK / FOLDED:G / ENV / PA / SEED: / KIT: / RECORD / COOKBOOK / NOT-PORTABLE; unknown ids
  refused); first run: 26 uncited rules + 21 uncited entries → DK-66 (a ledger's tie-break, a checker's widening and a blanket
  commit are part of the instrument — R70/R80/R52), DK-67 (the ignore file's directory-form wall — S91 (1)), DK-68 (a
  summarised signal is a claim, not ground truth — R14/R66) in a new kernels section 8 (the museum is 9; "In all" 68) + 41
  dispositions (15 PA, 3 ENV, folds into G6/G18/G38/G66/DK-12/19/20/22/25/26/31/35/44/45/46/57/61, 1 KIT template, 1 COOKBOOK);
  now 0 UNCOVERED on both populations; wired into tools-health after tool_census --check; SETUP row + dictionary row
- verify: tool_census --check OK; kit_coverage OK (rules 57 cited + 26 dispositioned / 83; accelerators 41 + 15 / 58);
  kit_lint OK; doc_links --strict OK; wiki_render --selftest 32 pages / 0 unlisted
2026-09-07 23:03:34 -06:00
Drew T 9937fd7e39 docs+kit(phase-33.5): task 14 — the S91-b types hindsight implemented in the kit + the wiki page Start-a-new-decomp-project.md + the rows
- 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)
2026-09-07 22:40:17 -06:00
Drew T 3c4e185feb docs(phase-33.5): decision-log 'P33.5 S91-b' — hindsight on types (Drew's question): Phase 17 measured struct context byte-neutral (0/10/2) so types are not a codegen lever, but banking was the bottleneck and 1,232 drafter-invented definitions + the width/signedness near-miss class say types are a BANKING and WIDTH lever — the achievable early form is a canonical type file from the first bank (one definition per shape, widths proven at bank time, no duplicate definition or raw cast banked); task 14 amended to implement items (a)–(e) in the kit (DK-65, the Phase-6 milestone, G62 extended, the type tools' need-keys, the cookbook front page, the methodology); checkpoint updated 2026-09-07 22:19:25 -06:00
Drew T 827295e241 tools+docs(phase-33.5): task 13.5 — the tools audit + the two dictionaries: tools/tool_census.py (two agreeing enumerations of 327 tool files; docstring/SETUP row/consumers/class derived from the tree; the authored half in config/tool_dictionary.tsv — phase · portability · the NEED each tool answers · what · adapts · verdict — with coverage asserted both ways) → docs/tool-index.md (need-keyed, KEEP-GEN, Reference-index row, wiki + how-to pointers), the kit's tools/MANIFEST.md regenerated (header states live 293 + superseded 28 = 321 rows), and the two verbatim corpora in-tree (Drew, confirmed S91): decomp-architect/corpus/tools/<phase>/ (302 copies + 28 superseded pointers + INDEX) and corpus/cookbook/ (the cookbook, its symptom index, the codegen map, a front page stating what transfers per compiler) — sha1-equal to their sources by tool_census --check in tools-health, regenerated by make kit-corpus; kit_lint exempts the corpus dirs (verbatim evidence) but syntax-checks them; G66 (consult the tool dictionary first) + G67 (translate an inherited idiom through its pass) + two memory seeds (34 at install); SETUP Step 6 installs docs/knowledge-corpus.md and checks the manifest against its own stated total; the ops-setup dictionary rows; the intake's Phase 7 cites G66/G67 and Phase 10 + Part C name the raw-cast → declared-symbol step; templates/layout-contract.md (the five-tool probe, a draft for the split). The review under Drew's criterion: 93 no-consumer tools (one Opus agent's draft, verified: 0 defects, every successor live, 0 live consumers, 0 collisions; four one-off verdicts overturned to STILL-NEEDED) → 34 retired by git mv to tools/sunset/ (28 superseded, 6 one-offs; README review table; SETUP rows moved; Archive-index group). Run 4 (fresh throwaway, the final kit): stopped on my Step-6 check (321 vs the live 293) → both sides derived → resumed → PASS 10/10, manifest 56 == 56, 4 commits, guardrails held (the one foreign path was the timeline regenerated by the detached tools-health). tools-health OK; doc_links --strict rc 0; audit_public OK over 6,842 paths; the purge probe PASSED (Phase 34's gate open). decision-log "P33.5 S91" + accelerators "P33.5 S91" banked; log + checkpoint (NEXT = task 14, xHigh, fresh session) 2026-09-07 22:09:15 -06:00
Drew T 4c1d5d9f7c docs(phase-33.5): task 12 — kit part 3: decomp-architect/SETUP.md (Step 0 contract with the write-scope guardrails; Step 1 the PA-2.0 pin, the ladder-in-constitution check, the §E precondition, Path A only, the Phase-0.5 phase file; Step 2 the interview + the answers: file contract; Step 3 the firewall with the planted-fixture negative control and the check-ignore probes; Step 4 layout; Step 5 bootstrap + the checkpoint commit; Step 6 the flywheel documents that outlive the package; Step 7 the registry seed inserted before §E′ with the renumber fallback; Step 8 the overlays by marker + config templates instead of a live settings/mcp merge + the skeletons; Step 9 the memory seed; Step 10 the leftover-placeholder audit, the sorted install manifest, PhaseEnd_Phase0.5, the close commit, the five-part final message, hard stop; install manifest; troubleshooting); class 7 of the firewall gains /.claude-state/transcripts/ (a decomp's transcripts quote the target) and the scratch block re-includes .run/README.md — wiki fence + template re-extracted (75 lines identical); pa-overlays Block 7 → config/decomp-hooks.snippet.json + config/mcp.json.template (no comment keys in JSON); PLACEHOLDERS "Filled" wording aligned with the steps; verify: kit_lint OK over 44 files, doc_links --strict rc 0, 19/19 PA installer mechanisms with counterparts, 12/12 markers present in their templates, all placeholders named, every Step reference resolves; log + checkpoint (NEXT = task 13, the dry-run, xHigh) 2026-09-07 19:42:41 -06:00
Drew T 9235800fb7 tools+docs(phase-33.5): task 11 — kit part 2: the firewall pack (templates/gitignore.decomp extracted byte-for-byte from the wiki fence — gitignore_template_check now runs in tools-health; firewall.txt with purge:/glob:/required:/pending:/fixture: rules; audit_public.template.py generalised from the repo's audit with its sources in the config, refusing zero sources; firewall-fixture/ = 16 synthetic bytes + sha1, the planted negative control), no-rom.template.yml, the docs/.run READMEs, ops-setup.decomp.md, bootstrap.template.sh (skeleton), CLAUDE.decomp-overlay.md (the four fail-safes + session-start extras), pa-overlays.md (7 fenced blocks: DIGEST, the 🛑 checkpoint block, the PhaseEnd narrative axis, effort rows, cookbook entry shape + triage table, wave-playbook skeleton, settings/mcp), the LICENSE/NOTICE/README/CONTRIBUTING skeletons, .clang-format + make-format.snippet.mk; tools/MANIFEST.md (325 tool files by ladder phase from one read-only survey, coverage 325/325, as Phase-N tasks); tools/kit_lint.py (fence-aware leak grep, the PLACEHOLDERS set-diff, in-memory compile / bash -n / JSON+YAML, the gitignore diff, TODO counts, coverage; --selftest = the R39 control) wired into tools-health; decomp-architect/README.md in doc_links DEFAULT; SETUP row; PLACEHOLDERS Used-in cells reconciled; make tools-health OK on this tree (detached run, .run/P33.5/tools_health_t11.log); story-timeline regenerated by the report step; log + checkpoint (NEXT = task 12, Max) 2026-09-07 19:22:51 -06:00
Drew T 83de29c023 docs(phase-33.5): task 10 — kit part 1: decomp-architect/README.md (the three install steps, what it installs and does NOT, the PA-2.0 pin, new-projects-only), intake.decomp.md (PA Mode-1's twelve items pre-answered + the 11-row phase ladder with a machine-checkable milestone, the tools built, the G-rules in force and the DK-kernels that earned each row + the six readability inversions + the §E-empty instruction for PA's generation step), decomp-architect.md (the methodology, 13 sections), templates/registry-E.decomp.md (G1–G65 in seven groups, each with a provenance line), corpus/decomp-kernels.md (DK-1…DK-64 + the failure museum condensed), templates/PLACEHOLDERS.md (the 22-placeholder contract kit_lint diffs against); fence-aware lint 0 hits over 23 files, placeholders 22 == 22, ladder 11/11 rows cite a kernel, 0 dangling G/DK cites; The-ROM-firewall.md residue paragraph re-pointed to the tracked untracked_after_rewrite.txt (doc_links exited 1 in BOTH modes at e1463d430 — the citation went UNTRACKED at task 8's git rm --cached; strict rc 0 now); log + checkpoint (NEXT = task 11, xHigh) 2026-09-07 18:44:49 -06:00
Drew T e1463d4300 docs(phase-33.5): S90 checkpoint — decision-log entry 'P33.5 S90' (the re-charter, the three audits + the adversarial review, the six owner decisions, what tasks 0–9 measured, the hindsight path); CURRENT_PHASE checkpoint refreshed for a fresh session (tasks 0–9 done, NEXT = task 10 at Max; the decision-log item of task 14 already banked) 2026-09-07 18:12:31 -06:00
Drew T ae71efe56f chore(phase-33.5): task 8 — tracked .run/ pruned to flip-ready: 218 paths untracked (172 tracked-but-ignored inertia files, 39 uncited t3s3 session logs + 5 duplicate close logs, the two fable_cd4 disassembly listings) — all still on disk; .gitignore re-includes narrowed under dated comments; tools/public_rewrite/untracked_after_rewrite.txt (audit-only sibling of the purge set, which stays byte-unchanged so gate_scan stays PASS); audit_public check 4 CONTENT (longest contiguous run of disassembly-shaped lines, cap 64; controls: 398/179 fail, the 40-line fixtures pass; 0 offenders among 6,443 paths after); runbook §11 residue paragraph; four tool comments annotated; SETUP row; log + checkpoint; P6 rules check 2026-09-07 18:04:15 -06:00
Drew T 21c98ed5a5 tools(phase-33.5): task 7 — the checkers: doc_links.py six checks (links + pending; the archive refusal; the wiki-first allow-list derived from the Reference index + README; docs/ coverage 64/64; TRACKED/UNTRACKED citations by git with --disk and the '(not kept)' declaration; wiki-first warnings), wiki_render --selftest reachability (31 pages, 0 unlisted), timeline.py wired into report/audit-digest (was stale: 72 -> 73 rows), gitignore_template_check.py behind a loud skip in tools-health; the cookbook control 13 -> 0 dangling (5 archived-doc cites re-pointed to docs/sunset, 8 scratch cites declared not kept); SETUP rows; log + checkpoint 2026-09-07 17:55:59 -06:00
Drew T 6ec4786bda docs(phase-33.5): task 6 — 59 documents archived into docs/sunset/ with git mv (25 closed-phase plans/studies, distill 2, history 4, tool-designs 11, generated-snapshots 17); docs/wiki/Archive-index.md (every file: what it was, what came of it, where it lives now — paths, never links) + docs/sunset/README.md (the owner's review checklist); DIGEST §4 rewritten around the wiki, §1 gen2-roadmap marked archived; history README + SETUP row refreshed; family-hseq.md stays (regenerated by the contract run) and joins the Reference index; pending list empty; checks: 59 rows == 59 files, archive coverage 0 missing, docs coverage 0 uncovered, doc_links 56 docs / 429 links / 0 broken; log + checkpoint 2026-09-07 17:48:52 -06:00
Drew T a0d4ae8368 docs(phase-33.5): task 5 — the six INTEGRATE documents folded into the wiki and how-to (three agent diffs): 'Matching by hand' in The-matching-workflow (two decompiles + the asm as arbiter, the loop, THE FIVE SIGNATURE MOVES, choosing targets, running it as a wave); ch.07 'Levers from the hand-matching era'; ch.02 conflicts-before-the-gate + the red-gate diagnosis + propagation as a gate; ch.09 'A wave, priced' / 'Instruction weight, not head count' / 'The gate's cost is paid in wall-clock' + yield rows with denominators; ch.05 the banked twin, face vs delivered mass, pipeline vs batch, gate the directory, step 6b Reconcile, the harvest yield series; the S37 execution block into wave-playbook §5; ch.03 the permuter-failures paragraph + the band attribution; ch.04 cites tooling-audit; 11 referrers re-pointed (0 links to the four leavers remain); 12 stale classes and 2 superseded figures deliberately not folded; log + checkpoint 2026-09-07 17:43:56 -06:00
Drew T 9970f1e628 docs(phase-33.5): task 4 — wiki: Reference-index (48 rows + 4 directory rows; the only sanctioned wiki→docs link site), Where-the-project-goes-next (Phase 34, then Gen3: the floor, the bar, the census with one pin count, the invariant, the order, the levers, conduct, shiftability, parked ideas), Contributing 'AI use — conduct', Home rewritten with the source-of-truth statement, sidebar sections Reference / Where next / History; gen3-handoff §8 R1–R83 + 43,925; Reference-index pending entry cleared; coverage check: uncovered == the task-6 leavers; log + checkpoint; P6 rules check 2026-09-07 17:32:09 -06:00
Drew T 5d10a0d126 docs(phase-33.5): task 3 — wiki 'Working conventions': Docs-and-scratch-conventions (where each kind of knowledge goes, authored vs generated, the link policy, the archive, .run/ ignored-by-contents with dated exceptions, the per-session layout) and The-ROM-firewall (the rule with no private exemption, the nine classes with their tracked forms, the copyable .gitignore template, the three enforcement layers + the one-list rule, the rewrite lessons as R76–R82, the one recorded residue); sidebar section; Repository-layout/Contributing/how-to ch.11 cross-links; two forward links registered PENDING (Reference-index task 4, Archive-index task 6); log + checkpoint 2026-09-07 17:25:30 -06:00
Drew T d06923a06c docs(phase-33.5): task 2 — unblock, doc side: six status banners corrected in place (concurrency-design implemented; gen2-mips model built; psyq-worklist COMPLETE; distill ledgers LANDED as §265–§269; hindsight-study HISTORICAL + supersession table); SETUP §1a rewritten (.run/ ignored by contents, allowlisted by dated exception); the pin count = 43,925 from one command in both Gen3 docs (44,243 counted comment lines, 43,857 missed the bare-name form); log + checkpoint 2026-09-07 17:19:09 -06:00
Drew T 39d5249917 chore(phase-33.5): OPEN — gate 1 (Drew, 2026-09-07, plan mode, Max): docs consolidation + the wiki as source of truth + the tracked-.run/ prune + the day-one decomp kit (v1.32.0 -> v1.32.1)
- R74–R83 ratified at gate 1 (the PhaseEnd_Phase33 candidates (a)–(j)), full text in DIGEST §3; DIGEST §0 notes the open sub-phase
- phase-ends/CURRENT_PHASE.md: milestone, effort map, the nine owner decisions, 16 tasks, the three audit ledgers (docs/ per-file
  classification; tracked .run/ groups incl. the 172 tracked-but-ignored and the two fable_cd4 disassembly listings; the memory-store
  classes), the 🛑 checkpoint, and the approved plan verbatim
- docs/phase34-seed.md: candidates (a)–(j) now R74–R83; Phase 33.5 runs before Phase 34 and touches no flip step
- harness task list built (16 rows, R28)
2026-09-07 17:06:45 -06:00
Drew T b46358f279 docs(phase-33): the Gen3 charter docs/gen3-standards.md (accuracy met + stricter than the field; sotn STYLE.md adopted + four rules of ours; the use-of-AI conduct; the measured gap; a definition of done), README 'Standards, and how the AI was used', docs/phase34-seed.md (RE-CHARTER, Drew 2026-09-07: P33 closes now at v1.32.0; the flip-gated remainder = Phase 34 = the flip + Gen2 exit at v2.0.0; Gen3 = Phase 35+); doc_links + SETUP rows; checkpoint §0a + header; log 2026-09-07 14:46:53 -06:00
Drew T aa73085a6b docs(phase-33): gen3-handoff §2.2 — the standard to meet (sotn STYLE.md + CONTRIBUTING AI clause, decomp.me FAQ, rood-reverse), the community's gripe decomposed, the tree's readability gap measured (1,094 named vs 16,335 func_; 43,857 pins; 5,147 macro bodies in one 8.4 MB header; 3,558 carve-split files), and the Gen3 sequencing against P33; log 2026-09-07 14:36:55 -06:00
Drew T c05c6081bd docs(phase-33): README 'Tools from this project' section + wiki page (sidebar, Home row): xsig, the permuter driver (upstream pinned unmodified + our class swap; the only copy lives here), the codegen map, the decomp.me replica, the drafter write-up, the how-to; docs/outreach/tools-announcement.md stored for post-flip (developer's voice); checklist 5/5b (the wiki can be pushed NOW while private; xsig topics, fork deletion, the post); wiki_sync message corrected; SETUP rows; doc_links default 2026-09-07 14:20:05 -06:00
Drew T 7696b856e5 docs(phase-33): rule candidate (j) + decision-log pivot reworded to Drew's decision (developer's voice, no AI disclosure) 2026-09-07 14:08:42 -06:00
Drew T 642107493d docs(phase-33): Drew's decision on outward text — no AI acknowledgement; write the way a developer writes (rewritten from the facts, not de-telled model prose; the dense code-span formatting was the likely giveaway): E1 preset request + E2 Archipelago message rewritten in a developer's voice; rule candidate (j), decision log P33 S89, failure museum row 37, how-to §11 and the checklist reworded 2026-09-07 14:08:15 -06:00
Drew T a5943af98c docs(phase-33): E5 outcome — permuter PR #213 + issue #214 closed unmerged by the maintainer (wildcard rule intentional; rename symbols in the asm; nonzero floors fine interactively; the model-drafted text read as LLM-written) — recorded in permuter-ils §2/§3, SETUP row, decision log P33 S89, failure museum, how-to §11; binding lesson + rule candidate (j): outward text in Drew's own words or disclosed — the pending E1/E2 texts and the checklist re-labelled 2026-09-07 14:01:47 -06:00
Drew T 8fefb5f4c5 docs(phase-33): gen3-handoff §2.1 — external labels vs derived structure (owner Q&A at E2): the AP world labels ~342 globals and carries no structs; structure comes from our own source under the byte gate; names from observation, cited; Gen3 ordering caution (unify duplicate structs before naming; pins mechanical; naming = judgment + evidence) 2026-09-07 13:39:13 -06:00
Drew T bb290a5d3d checkpoint(phase-33): Drew's consolidated post-flip checklist (probe → flip → E1 → E2 → D3 outward → wiki → C11/G2) as checkpoint §0b + runbook §11 2026-09-07 13:36:46 -06:00
Drew T a30b80b600 docs(phase-33): E2 — docs/outreach/archipelago.md: the Archipelago note with the decomp's answers to the BFM AP world's data (dow byte 0x80078EBA CONFIRMED via func_8014B084 — our dayCounter row corrected u8->u16 and 'dow not yet separable' resolved; their patch sites + Time-Sanity hook resolved to shared engine functions by a 141-image sig scan; the town-ID patch retired as historic; memory-map Q#13 ANSWERED: BASLUS-00726MUSASHI at 0x80072DFC in EXE .data, the client's 0x072e02 fallback is +4 off); GitHub-issue text + Discord short form, plain style, SEND AFTER THE FLIP; SETUP row + E2 section; doc_links default; log + checkpoint (36 of 41: nothing left for Claude before the flip) 2026-09-07 13:29:48 -06:00
Drew T 630c05bafc checkpoint(phase-33): Drew's six post-flip E1 steps recorded in the checkpoint §3 flip chain + runbook §11 (bundle .run/decompme/drew_bundle/, regenerable) 2026-09-07 13:19:38 -06:00
Drew T 95c142d2ae docs+tools(phase-33): E1 — docs/decompme-preset.md + tools/decompme_replica.sh: the decomp.me preset proven through decomp.me's OWN toolchain locally (old-gcc 0.13 + maspsx 86ccd7d8 rebuilt from decompme/compilers' Dockerfile; func_80018F20 26/26 words BYTE-IDENTICAL, control identical, cc1/maspsx deltas text-identical; -O1 and empty-TU negative controls; --upstream drift check); SETUP's stale 'decomp.me uses our maspsx pin' corrected (3 rows), §6.5 rewritten, E1 section + rows, ledger 14; presets are created by decomp.me's maintainers from an issue template (no UI create, no owner delete) — Drew's post-flip step = prove the scratch, file the request, the manual search; doc_links default; .run/P33/e1 log allowlisted; log + checkpoint (35 of 41) 2026-09-07 13:12:08 -06:00
Drew T 47d11e29b8 checkpoint(phase-33): C10 — GitHub Support ticket #4736982 filed by Drew via the Virtual Agent 'Clear cached views' flow (the route recorded in runbook §11 with the 'Deletes' trap); checkpoint §1/§2/to-do updated; daily probe until PASS 2026-09-07 12:50:48 -06:00
Drew T 87169e184c docs(phase-33): C10 preflight — the Activity-view leak measured (157 activity rows expose both pre-force-push tips; the old tip still serves the EXE, dumps and archive; probe 31/33 ALIVE, S76 lineage 4 days un-GC'd); runbook §11 ticket text names both tips + filing route, delete+recreate promoted to the deterministic alternative, enable Wikis before the push; rule candidate (i); log 2026-09-07 12:27:34 -06:00
Drew T 78857d7ca6 checkpoint(phase-33): PR simonlindholm/decomp-permuter#213 opened and issue #214 filed by Drew (recorded in permuter-ils.md §2–§3 + SETUP); NEXT for the next session = step 6, the flip chain, Claude walking Drew through it (probe → flip → E1/E2 docs + Drew's outward actions → D3 outward → wiki push → C11 → G2); the E1/E2 documents may be drafted even before the probe passes 2026-09-07 12:11:21 -06:00
Drew T ec6db382db checkpoint(phase-33): S88 update after the outward pushes — the nine commits are pushed and both workflows ran green on them (incl. the new gccmap_cites + xsig audit steps); the gc ran (one 80 MB pack); probe_github's positive control now checks origin/main, not the local main (an unpushed commit failed it); the block's to-do, repo state and file inventory reconciled 2026-09-07 11:54:25 -06:00
Drew T a00907040d chore(phase-33): the outward pushes — Druthulu/xsig created public and pushed (c8d862c); decomp-permuter forked and reloc-masked-scorer pushed (f276733: the scorer + a USAGE note sharing the restart recipe); a plain contributor-style pass on the PR content (docstring/comments/help/docs/commit message, 0 AI or em-dash tells) and on tools/xsig/README.md + docs/permuter-ils.md; the tracked patch regenerated (2 commits, git am OK); SETUP rows; log + to-do (Drew: open the PR, file the issue) 2026-09-07 11:51:12 -06:00
Drew T 583ec85d6e docs(phase-33): G1 — docs/gen3-handoff.md: where Gen2 ends, the owner's next intent (casts -> structs, pins off, names), the starter census DERIVED from the tree with its commands (143 raw address casts, 61,898 D_ symbols, 16,335 func_ names — the plan's numbers reproduced — plus 44,243 register pins, 1,258 Sony tiles, 1,083 symbol-file entries, 1,232 struct defs, 2,220 dedup groups), the one invariant (every edit byte-gated; shared bodies change every member; types are comprehension not bytes), the inherited levers, shiftability honestly scoped, the parked Gen3 ideas, governance for a new generation; SETUP row + P33 G1 section; doc_links default; log + checkpoint (34 of 41: everything Claude can do before the flip is done — NEXT = the probe-gated chain on Drew's side, then C11, then G2); G1 pulled ahead of the plan's C11 -> G1 order (recorded) 2026-09-07 11:35:50 -06:00
Drew T 98e5846662 docs(phase-33): E6 — docs/matching-drafter-pipeline.md: the fine-tuned local matching drafter written up from the Phase 22–25 records (the toolchain-agnostic pipeline export_pairs → format_finetune → train_lora → eval_lora → serve_local → api_draft/lora_grind/bulk_harvest → the byte gate; the measured arc as one table — stock floor ~0, corpus-v2 85% on 6–15 ins, the 0/222 harness bugs, corpus-v3 57.5% held-out + ~352 production banks at $0, bulk_harvest 65% at 0.4 s/fn, GLM5.2 10/18 bodies but 3/18 banks = the def-side wall, v4 discarded; the portable lessons; hardware; a five-step recipe; what is NOT published — the ROM-derived pair dataset and the adapter weights, both gitignored); SETUP row + P33 E6 section; doc_links default; log + checkpoint (Block E complete; NEXT = G1, pulled ahead of the probe-gated items) 2026-09-07 11:32:42 -06:00
Drew T bf002f84d2 tools(phase-33): E5 — the permuter upstream PR branch (reloc-masked-scorer: src/reloc_scorer.py RelocMaskedScorer as a Scorer subclass, --score-mode {mnemonic,reloc-masked} + score_mode setting, -J refusal, docs, test/test_reloc_scorer.py 10/10 on an embedded gcc-2.7.2 listing; black clean, mypy at upstream's baseline; the real permuter: a swapped-operand base 4 -> 0 in 256 iterations where the default scorer read 3,585) tracked as tools/permuter/upstream/0001-reloc-masked-scorer.patch (git am clean onto upstream main 41bd0bfc); docs/permuter-ils.md (why the stock scorer floats, the scorer + PR, the symbol_regex issue text for PR-2, the ILS warm-restart recipe and its five guards); SETUP row + P33 E5 section; doc_links default; log + checkpoint (NEXT = E6); Drew pushes the branch to his fork and opens the PR + issue 2026-09-07 11:29:35 -06:00
Drew T 9c4d32d651 tools(phase-33): E4 — xsig packaged: tools/xsig/ (xsig.py library + CLI sign-s | sign-objdump | cross | verify | selftest, from the Phase-21 .run/xdedup probe; README with the recorded worked example — BFM × Xenogears + Vagrant Story 103 hits all PsyQ library/BIOS, BFM × Tomba 126 hits 124 library: the decision log's clean negative; MIT LICENSE; tests/ from a game-free fixture compiled with the pinned triple and linked at two addresses with --emit-relocs, relocation records merged into the listings, 8/8) in tools-health + CI + doc_links; SETUP row + P33 E4 section; the standalone copy at .run/P33/xsig-repo/ (one commit, noreply identity, system-python tests OK) for Drew to push as Druthulu/xsig; log + checkpoint (NEXT = E5, a cut candidate for Drew) 2026-09-07 02:51:02 -06:00
Drew T 50c1b69e4d docs(phase-33): E3 — docs/gcc-2.7.2-map/README.md (the five files by pass group, the condensed §31 triage table, the byte-proof method, the provenance legend: vanilla 2.7.2 subset from the GNU tarball sha256 7cd8bce5… vs pmret/gcc-papermario = gcc 2.8.1, the +611-line drift caveat, the S23 audit 119/40/7/4) + tools/gccmap_cites.py: every file.c:NNN cite in the map tagged [2.7.2]/[2.8.1 pm]/[repo] from the trees (quoted snippets → function extents → nearest occurrence → the author's cues → cite_overrides.tsv, 20 rows with reasons → a tie is a valid 2.7.2 line; a contradiction leaves [?]); 135 cites: 79/55/1, --verify 0 disagreements, --controls 6/6, idempotent; three tagger defects caught by its own controls before any tag landed (window span pairing, code fences, self-read cues); --check (textual) in tools-health + CI audits; doc_links default; SETUP row + P33 E3 section; log + checkpoint (NEXT = E4); 8 orphaned 49h permuter workers stopped 2026-09-07 02:32:57 -06:00
Drew T 0cf971d1f4 docs(phase-33): F3 CLOSE — the wiring: wiki_render --selftest in make tools-health (run: OK, 12/12 inside it), SETUP rows + the P33 F3 section (25 pages / 264 links / 1,896 lines; sources named), runbook §11 gains the post-flip wiki step (first page in the UI, then tools/wiki_sync.sh --push — Drew); CURRENT_PHASE: F3 ticked, the S88 F3 log entry, the checkpoint rewritten for the successor (NEXT = E3; Drew's pending gc + ticket status; rule candidate (h): a probe never writes into the repository it guards) 2026-09-07 02:05:45 -06:00
Drew T 954362c81e docs(phase-33): F3 the wiki + how-to-AI-decomp, authored in-repo — docs/wiki/ (Home, Build from your own disc, Toolchain setup, Repository layout, The matching workflow, The dedup engine, Overlays and modules, Ghidra rebuild from text, Verification and progress, Contributing and the no-ROM policy, How-to-AI-decomp index, _Sidebar) + docs/how-to-ai-decomp/ chapters 00–12 (governance, byte gate, bootstrap order, oracles and instruments, cards/lanes/waves, knowledge base, compiler source, models and budgets, economics, integration and propagation, publishing, failure museum); tools/wiki_render.py (link rewrite to GitHub-wiki page names, dead link = error, 12-case selftest) + tools/wiki_sync.sh (render → clone → replace → diff; --push is Drew's, R6; dry-run works before the wiki repo exists); doc_links checks both directories by default (DEFAULT_GLOBS); pending list EMPTY, --strict PASS: 40 documents / 290 links / 0 broken; 25 pages rendered, 264 links rewritten 2026-09-07 01:57:24 -06:00
Drew T 214d0dd15b fix(phase-33): probe_github.sh fetches into a throwaway scratch repo (R57) — the S87 baseline + first S88 probe runs had imported 5.97 GiB / 30 packs of the purged history into ~/bfm-decomp as unreachable objects (a successful git fetch of an old sha pulls its whole closure); now --filter=blob:none --depth=1 into .run/public_rewrite/probe_scratch.git (deleted on exit) + a self-check naming any sampled old commit the working repo still holds + the gc recipe (control: count-objects identical before/after, verdict unchanged 31/33 ALIVE); runbook §11 + SETUP row; S88 preflight logged (Drew pushed; no-rom + progress workflows GREEN on first run; F3 = FULL) 2026-09-07 01:41:08 -06:00
Drew T 5e57e88de2 docs(phase-33): F2 the retrospective — tools/mine_hindsight.py (19 hindsight items over 79 decision-log entries, 2 believed-sections, 237 deviation rows, file:line anchored) -> docs/retrospective.md (belief-vs-truth table, eight failures and why they looked right, costs with denominators, ten 'sooner' items, what stayed hard); doc_links pending list EMPTY (--strict PASS); SETUP row; S87 closes at 87% context — checkpoint rewritten for the successor: NEXT = F3 (scope = Drew's call) 2026-09-07 01:16:08 -06:00
Drew T 5b03ae1d5a docs(phase-33): F1 the timeline + the story — tools/timeline.py (72 dated rows from the committed digests' history, keyed by date, PhaseEnd ticks, self-check == progress.json; the 07-22 denominator note computed from the rows, not asserted) -> docs/story-timeline.md + .svg; docs/story.md (the narrative from the first commit to the flip, every section citing its PhaseEnd / decision-log / timeline sources); pending list -> 1; SETUP row; checkpoint -> NEXT = F2 2026-09-07 01:10:48 -06:00
Drew T 2cbedf5878 docs(phase-33): D5 governing-docs consistency — CLAUDE.md fail-safe names every purged path (H1 in force), DIGEST §1 H1/R1/R20 + the Phase-14→P33 in-place flip, roadmap-to-100 'Status at Phase 33' block, gen2-roadmap Phase-14 SUPERSEDED banner; tools/doc_links.py (relative-link checker with a tracked pending list that gate 2 refuses; negative control rc 1) in tools-health; SETUP row; checkpoint -> NEXT = F1 (Block D done) 2026-09-07 01:05:53 -06:00
Drew T f679d4deeb docs(phase-33): D4 the SETUP.md public-clean pass — public-from-P33 header refresh, the remote (origin + the private archive), generic dump path, §4.7 tarballs tracked, §6.5 the decomp.me preset line, the backup section rewritten as the PUBLIC posture with the private era as a dated note (two-repo mirror plan superseded), ledger row 11 closed / 14 → E1, the one missing R21 row (verify_contract.sh); checkpoint -> NEXT = D5 2026-09-07 01:03:41 -06:00
Drew T ecf67e6ff3 feat(phase-33): D3 progress publishing — per-binary instruction totals in docs/progress.json, docs/badges/*.json (shields endpoint), --check covers JSON + README block + badges (in make audit-digest), tools/objdiff_report.py (report.proto v2; validated with objdiff-cli 3.8.1 incl. a mutated-unit control), tools/frogress_upload.py (dry-run default), .github/workflows/progress.yml (artifact SLUS_007.26_report, no rebuild); SETUP rows + P33 D1–D3 section; checkpoint -> NEXT = D4 2026-09-07 01:01:28 -06:00
Drew T 848f294fc8 docs(phase-33): D1 the README rewrite — the claim and the contract, a GENERATED numbers block (tools/progress.py --json -> docs/progress.json, --readme rewrites the marked block, --check asserts freshness; wired into make report), what is not our C, build-from-your-own-disc, layout, how it was made (ProjectArchitect), about the history (tokens + commit-map), license split, no-ROM policy, special thanks; forward references to D2/D3/F1/F2 files recorded in the checkpoint 2026-09-07 00:51:24 -06:00
Drew T 16ecca474d chore(phase-33): C9 — the rewritten history is on origin (force-pushed by Drew, 176,052 objects); local gc: archive remote removed, 12 stale campaign worktrees removed (they pinned 3,729 old commits: a linked worktree's HEAD is reachable), reflog expired, repacked to one 80 MB pack (.git 1.5 GB -> 93 MB), fresh commit-graph, fsck clean; absent_scan + gate_scan --all --worktree PASS; probe baseline 31 of 33 old hashes still alive on GitHub (422 now counts as gone); runbook §10/§12 measured; checkpoint -> C10 (Drew) in parallel with D1 2026-09-07 00:44:27 -06:00
Drew T e821833986 verify(phase-33): C8 — the recorded contract run on the REWRITTEN tree: check-all 218/218 from a clean fleet (176 s), sdk-dual OK both legs, tools-health OK (0 PHANTOM/TRUNCATED/PAD-TAIL), audit-disc UNCLAIMED 0, report 363214/363214 · 13492113/13492113 · 5820205/5820205 · main 45150/45150, stubs 0; a content-preserving rewrite changed no tracked-content byte — proven; SUMMARY into docs/verification.md §2; checkpoint -> NEXT = C9 (Drew's force-push) 2026-09-06 23:45:48 -06:00
Drew T 4f7c3b64a3 docs(phase-33): commit-map + citations resolved to the rewritten history (C4–C7 — the tip commit)
- docs/commit-map.tsv: 4,032 rows (ordinal of the ORIGINAL main -> rewritten hash, author/committer dates, subject);
  1 pruned row of zeros (ordinal 1712, "session archive update"); 0 old hashes asserted; ordinal 1 unchanged by the
  rewrite (byte-identical)
- resolve_tokens: 1,238 commit:NNNN tokens -> shortest-unique new hashes in 98 files (docs, phase-ends, logs, tool
  docstrings, 2 C comments, the A5 evidence logs); residue left as tokens: commit:1712 x4 (the pruned commit),
  commit:orphan-24 x2, commit:orphan-26, commit:orphan-35 (cited commits that exist in no lineage)
- the rewrite (C4): filter-repo 2.47.0 on a bare clone of the C2 tip, 311 s, exactly 1 pruned, main 4,032 -> 4,031;
  the pre-rewrite history is mirrored in the private archive repo and in the local bundle
- the proof (C5): verify_rewrite 4,031 pairs / 0 failures; absent_scan 0 offenders; gate_scan 0 offenders on the clone
- adoption (C6): 100 text files differ at the tip, 0 purge paths, 0 added/deleted; leftover refs dropped; no gc yet
- resolver skips tools/public_rewrite/ (its self-test fixtures are the token grammar, not citations); repo-local
  identity is the GitHub noreply address from here on; CURRENT_PHASE: C4–C7 logged, checkpoint -> NEXT = C8
2026-09-06 23:28:39 -06:00