mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 13:33:34 -04:00
docs(phase-33.5): task 14.5 close — log entry (the record 56 files / 358 copies; kit_coverage 83 rules + 59 entries, 0 uncovered; the mining pass 777/634/143 → DK-69–DK-80; dry-run 5 PASS 20/20; the two instrument findings) + checkpoint (NEXT = task 15, Max, Tier 1)
This commit is contained in:
File diff suppressed because one or more lines are too long
+79
-15
@@ -54,7 +54,7 @@ in-tree links to `docs/wiki/<Page>.md`. 8. `.run/`: only what git tracks; no sca
|
||||
- [x] **13** Dry-run install under D6's guardrails; fix; re-run to green; fixture + expected manifest + logs tracked under `.run/P33.5/kit-dryrun/` — xHigh — see Log 2026-09-07 Task 13
|
||||
- [x] **13.5** *(added 2026-09-07 by Drew — plan amendment, P5d; AMENDED the same day after the dry-run: the dictionaries, in-tree)* **Tools audit + the derived tool index + the two corpora as dictionaries:** `tools/tool_census.py` — for every file under `tools/` outside submodules/vendored code: the docstring line, its consumers (Makefile/`.mk` targets, CI, the wave playbook, its SETUP row, other tools by import or subprocess), its class (LIVE · REFERENCED · ORPHAN; PORTABLE vs PROJECT-ONLY) and its ladder phase; coverage-asserted against `find` (R32) → the generated `docs/tool-index.md` (KEEP-GEN, `--check` in tools-health, a Reference-index row, linked from The-matching-workflow + Toolchain-setup, one pointer line in how-to ch.04/05/10) whose rows are **dictionary entries keyed by the NEED they answer** (what · when the need shows up · why — the SETUP row's incident · what proved it — its consumer/control · what to adapt — the hard-codes); the kit's `tools/MANIFEST.md` RE-DERIVED from the census (`--manifest`, byte-equality asserted); the hand review of the no-consumer class (91 of 326 at S91) under **Drew's criterion: a tool that served a purpose and was REQUIRED to complete the decomp is judged on its value to a FUTURE decomp — still needed (stays live and/or becomes a port task), superseded by a better tool (retired, the row NAMING the successor), or a one-off (retired, the row naming what it produced)**; retirement = `git mv` → `tools/sunset/` only after the census proves 0 consumers, an archive-index-style row per tool, its SETUP row moved to a retired section; Drew reviews and deletes later. **The dictionaries (Drew, 2026-09-07, confirmed in-tree now):** `tool_census.py --corpus` materialises the tools VERBATIM into `decomp-architect/corpus/tools/<phase>/` (LIVE + REFERENCED portable tools and the project-only shape references; retired one-offs out; superseded ones as a pointer file naming the successor) and the knowledge base VERBATIM into `decomp-architect/corpus/cookbook/` (the cookbook, its symptom index, the codegen map) behind one front page stating what transfers (gcc 2.7.2 family = direct use, re-proven on the new bytes; other compilers = the symptom → the named pass → read the same pass in your compiler → a five-line reproducer → your lever); both copies regenerated by a `make kit-corpus` target and asserted EQUAL to the live files in tools-health (no drift, R51); `kit_lint` exempts `corpus/tools/` and `corpus/cookbook/` from the de-specialisation check (evidence, verbatim) and asserts coverage (every corpus file has an index entry) — the ROM audit covers them like everything else; the new project installs only the index + the front page + an ops-setup row naming the corpus (SETUP Step 6; its row count derived from the manifest header, no typed 325). **Two memory seeds + two registry rules** in the kit: consult-the-tool-dictionary-first (before designing or debugging a tool, look the need up; the proven implementation is the jumping-off point, its incident row the failure mode to avoid) and translate-the-source-idiom (a symptom + a named pass + a lever + a byte proof; translate through the pass, never copy the lever; re-prove on your bytes) — G66/G67 in `registry-E.decomp.md`, cited from the ladder's Phase 7 row and the methodology. **A five-tool layout-contract probe** (the corpus oracle, `match_one`, `rtu_match`, `harvest_verify`, `dedup_propagate`: count the layout assumptions — paths, aliases, config names, make targets) → `decomp-architect/templates/layout-contract.md` (a draft; stamping it at Step 4 is a split-phase decision) — xHigh (the ORPHAN review draft is breadth-shaped: one read-only Explore agent, verified against the consumer list) — verify: rows == `find` count; `tool-index --check` green; every retired tool has 0 consumers AND a named successor or product; MANIFEST regenerated byte-equal; the two corpora equal to their sources; `kit_lint` OK; `doc_links --strict` rc 0; the dry-run's Step 6 re-verified by a resume on the run-3 throwaway; `make tools-health` OK (detached) — see Log 2026-09-07 Task 13.5
|
||||
- [x] **14** Wiki `Start-a-new-decomp-project.md` + README/`Tools-from-this-project.md` rows + SETUP rows (R21) + decision-log entry (R31) + accelerators entry if earned — xHigh — **AMENDED S91 (Drew): also implement the types hindsight into the kit per `docs/decision-log.md` "P33.5 S91-b" items (a)–(e): DK-65, the Phase-6 milestone's canonical type layer, G62 extended (or G68), the type tools' need-keys re-pointed at Phase 6, the cookbook front page's width sentence, one paragraph in the methodology; then `make kit-corpus` + `tool_census --check` + `kit_lint`** — see Log 2026-09-07 Task 14
|
||||
- [ ] **14.5** *(added 2026-09-07 by Drew — plan amendment 3, P5d, S92: "do all three")* **The record as the third dictionary + the two coverage checks + the phase-log mining pass.** (1) `decomp-architect/corpus/record/` — the how-to (13 chapters), `docs/decision-log.md`, `docs/accelerators.md`, `docs/retrospective.md`, `docs/story.md`, `docs/wave-playbook.md`, `docs/effort-map.md`, `docs/gen3-standards.md`, `docs/gen3-handoff.md`, `phase-ends/DIGEST.md` and every `phase-ends/PhaseEnd_*.md` — VERBATIM behind an authored front page (what each is, how to read it, that the phase logs are NOT in it — R19 — and that item 3 is their distillation), regenerated by `make kit-corpus`, asserted sha1-equal by `tool_census --check`, lint-exempt like the other two corpora; SETUP Step 6 installs the front page (`docs/inherited-record.md`); every "two dictionaries" → three (kit README/tree, ops-setup rows, the methodology, the wiki page, the Tools page, README, the SETUP row). (2) `tools/kit_coverage.py` + `config/kit_coverage_map.tsv` (the authored residue): every R1–R83 is cited by a registry provenance line OR has a disposition row (the G-ids it became / ENV = environment-specific, not portable / PA = ProjectArchitect's own / FOLDED into a named G); every `## ` entry of `docs/accelerators.md` is cited by a kernel provenance line OR has a row; unknown ids refused; denominators printed; wired into tools-health after `tool_census --check`; SETUP row + dictionary row (R21/R32). (3) the phase-log mining pass — the 26 logs under `phase-ends/logs/` (30,510 lines) as 22 read-only slices (the three giants split by line range), one Opus agent each in two batches of ≤11, briefed by `.run/P33.5/log-mining/BRIEF.md`: extract ONLY lessons that appear in no cookbook section, decision-log entry, accelerator, kernel, rule, playbook or how-to chapter — with the greps that prove it — into `.run/P33.5/log-mining/<slice>.md` (deliverable early, one JSON line last, R67); my review verifies each against the cited log lines (R14) and banks the real ones as DK-66+ / accelerator entries / decision-log entries, with a harvest table (candidate · verdict · where banked) in this log. (4) Step 6 changed → re-verify by a resume on the run-4 throwaway (`.run/P33.5/kit-dryrun/repo/`, from Step 6); `expected-manifest.txt` +1 (`docs/inherited-record.md`); the judge re-run — xHigh (item 3 is breadth: Opus agents) — verify: `tool_census --check` OK incl. the record; `kit_lint` OK; `kit_coverage` OK with its denominators; the resume PASS + judge PASS; `doc_links --strict` rc 0; render selftest 32/0; every mined candidate banked or dispositioned
|
||||
- [x] **14.5** *(added 2026-09-07 by Drew — plan amendment 3, P5d, S92: "do all three")* **The record as the third dictionary + the two coverage checks + the phase-log mining pass.** (1) `decomp-architect/corpus/record/` — the how-to (13 chapters), `docs/decision-log.md`, `docs/accelerators.md`, `docs/retrospective.md`, `docs/story.md`, `docs/wave-playbook.md`, `docs/effort-map.md`, `docs/gen3-standards.md`, `docs/gen3-handoff.md`, `phase-ends/DIGEST.md` and every `phase-ends/PhaseEnd_*.md` — VERBATIM behind an authored front page (what each is, how to read it, that the phase logs are NOT in it — R19 — and that item 3 is their distillation), regenerated by `make kit-corpus`, asserted sha1-equal by `tool_census --check`, lint-exempt like the other two corpora; SETUP Step 6 installs the front page (`docs/inherited-record.md`); every "two dictionaries" → three (kit README/tree, ops-setup rows, the methodology, the wiki page, the Tools page, README, the SETUP row). (2) `tools/kit_coverage.py` + `config/kit_coverage_map.tsv` (the authored residue): every R1–R83 is cited by a registry provenance line OR has a disposition row (the G-ids it became / ENV = environment-specific, not portable / PA = ProjectArchitect's own / FOLDED into a named G); every `## ` entry of `docs/accelerators.md` is cited by a kernel provenance line OR has a row; unknown ids refused; denominators printed; wired into tools-health after `tool_census --check`; SETUP row + dictionary row (R21/R32). (3) the phase-log mining pass — the 26 logs under `phase-ends/logs/` (30,510 lines) as 22 read-only slices (the three giants split by line range), one Opus agent each in two batches of ≤11, briefed by `.run/P33.5/log-mining/BRIEF.md`: extract ONLY lessons that appear in no cookbook section, decision-log entry, accelerator, kernel, rule, playbook or how-to chapter — with the greps that prove it — into `.run/P33.5/log-mining/<slice>.md` (deliverable early, one JSON line last, R67); my review verifies each against the cited log lines (R14) and banks the real ones as DK-66+ / accelerator entries / decision-log entries, with a harvest table (candidate · verdict · where banked) in this log. (4) Step 6 changed → re-verify by a resume on the run-4 throwaway (`.run/P33.5/kit-dryrun/repo/`, from Step 6); `expected-manifest.txt` +1 (`docs/inherited-record.md`); the judge re-run — xHigh (item 3 is breadth: Opus agents) — verify: `tool_census --check` OK incl. the record; `kit_lint` OK; `kit_coverage` OK with its denominators; the resume PASS + judge PASS; `doc_links --strict` rc 0; render selftest 32/0; every mined candidate banked or dispositioned — see Log 2026-09-07 Task 14.5
|
||||
- [ ] **15** Close: real render; tools-health foreground; `doc_links --strict`; `audit_public`; `PhaseEnd_Phase33.5.md` + DIGEST §0/§2 + log archive; left for Drew — Max (Tier 1, WAIT for gate 2)
|
||||
|
||||
## Blockers
|
||||
@@ -738,12 +738,65 @@ has a skeleton with an empty measurement column —, the digest); memories 18 of
|
||||
in PA's seed, 1 off-project). Recommended three items; Drew: **"do all three, add task 14.5"**. Inserted after task 14 (the wiki
|
||||
page will describe three dictionaries), before the close. Harness task list 17 → 18 (R28).
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — Tasks 0–14 ✓; NEXT = task 15 (the close: real render, tools-health, `doc_links --strict`, `audit_public`, the P7 walk, `PhaseEnd_Phase33.5.md` + DIGEST §0/§2 + the log archive; **Max — Tier 1, prompt Drew (R27) and WAIT for gate 2**)
|
||||
### 2026-09-07 — Task 14.5 — The record as the third dictionary, the coverage check, the phase-log mining pass, dry-run 5 (xHigh; S92; three commits `0c29c9e16` / `8a698e1b7` / `8594081d8` + this one)
|
||||
**(1) The record** — `decomp-architect/corpus/record/`: the 13 how-to chapters, `decision-log.md`, `accelerators.md`, `retrospective.md`,
|
||||
`story.md`, `wave-playbook.md`, `effort-map.md`, `gen3-standards.md`, `gen3-handoff.md`, `phase-ends/DIGEST.md` and every
|
||||
`PhaseEnd_*.md` (34) — 56 files VERBATIM behind an authored front page (what each is and how to read it; what is NOT there — the
|
||||
worklogs, R19 — and that the mining pass is their distillation; the vocabulary caveat). `tool_census.py`: `RECORD_SOURCES` +
|
||||
`record_dest` + the third corpus in plan/write/check → **358 copies + 28 pointers, `--check` OK**; `kit_lint` exempts it; the kit's
|
||||
SETUP Step 6 gains 2c (`docs/inherited-record.md`, verify line extended); ops-setup "The three dictionaries" + the record row; the
|
||||
kit README table/tree, the methodology, the wiki page, Home, the Tools page, README, the SETUP row: two → three.
|
||||
**(2) The coverage check** — `tools/kit_coverage.py` (+ `config/kit_coverage_map.tsv`, the authored residue; a dictionary row; SETUP row;
|
||||
tools-health after `tool_census --check`): derives R1..R83 from DIGEST §3 (asserted contiguous) and the accelerator entries at
|
||||
numbered-item granularity (58 then, 59 now), and refuses an entry no registry/kernel `provenance:` line cites unless the map dispositions
|
||||
it (`G<id>` / `DK-<n>` / `FOLDED:G<id>` / `ENV` / `PA` / `SEED:<file>` / `KIT:<path>` / `RECORD` / `COOKBOOK` / `NOT-PORTABLE`; unknown
|
||||
ids refused; an un-numbered entry must be cited by its FULL group text). **First run: 26 uncited rules + 21 uncited entries.** Three
|
||||
were genuine gaps → **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 → 9; the intake's "part 8" → 9); 41 dispositions authored (rules: 15 PA, 3 ENV, folds into G6/G18,
|
||||
DK-22/66/68, 1 KIT template; accelerators: folds into DK-12/19/20/25/26/31/35/44/45/46/57/61, G38/G66, 1 COOKBOOK). **Now 0 UNCOVERED
|
||||
on both populations** (rules 57 cited + 26 dispositioned / 83; accelerators 42 cited + 15 dispositioned / 59).
|
||||
**(3) The mining pass** — `.run/P33.5/log-mining/BRIEF.md` (read-only; the "already banked?" grep protocol over every distilled record
|
||||
with the greps recorded; deliverable early; one JSON line last); **21 Opus slices over the 26 worklogs** (batch 1 eleven small slices,
|
||||
batch 2 the giants split by line range: P29 ×4, P30 ×2, P31 ×3, P33) — **777 candidates considered, 634 ALREADY-BANKED (82%), 143 NEW,
|
||||
30,540 lines read (of 30,510 + overlaps)**; `harvest.py` printed every candidate's cited log line VERBATIM (R14: 0 unparsable, 0 out of
|
||||
range; every quote read and on-topic); `bank.py` clustered them by theme into **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 their proofs; the search harness + the compiler as evidence;
|
||||
maintaining the knowledge base; hosts and services) with a GENERATED `provenance:` line per kernel naming every worklog line (142 banked;
|
||||
1 dropped on the miner's own verdict — `HARVEST_TABLE.md` has all 143 with verdict and home); Coverage "In all: DK-1 … DK-80"; every
|
||||
DK cite resolves (80/80). `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 — one in five here) — cited by the twelve kernels so the coverage
|
||||
check stays green; `docs/decision-log.md` **"P33.5 S92"** (R31: the question, the measurement, the pivot, the 82/18 why, the hindsight
|
||||
path). **Cost (R41):** 21 agents ≈ 4.3M tokens, 8–15 min each, two batches; the coordinator's cost was the brief, the two scripts, the
|
||||
clustering prose (~20 KB) and the provenance generation. **Evidence tracked** under `.run/P33.5/log-mining/` (dated `.gitignore`
|
||||
block): BRIEF, 21 slice reports, HARVEST.md, HARVEST_TABLE.md, harvest.py, bank.py.
|
||||
**(4) Dry-run 5** — Step 6 changed, so a FRESH full run (rule from task 13), not a resume: `repo/` re-initialised (run 4's throwaway
|
||||
→ `repo-run4/`, its evidence → `*.run4.*`), PA 2.0 + the final kit copied in, `BRIEF-run5.md`, one Opus agent: **PA §1–§9 + kit Steps
|
||||
0–10, 4 trailer-free commits, `stopped_at: null`, `failed_verify_lines: []`**; judge **PASS 20/20** (manifest 57 == 57 incl.
|
||||
`docs/inherited-record.md`; G 67; seeds 34/34; probes 9/9 + 5/5; audit OK in the throwaway; tree clean; every guardrail unchanged).
|
||||
Acted on from its notes: SETUP Steps 6/8 named `pa-overlays.md` without `templates/` → `$KIT/templates/pa-overlays.md`; the agent's
|
||||
own write-scope slip (two staging files under /tmp, deleted before the verdict — outside the measured guardrails; recorded); the
|
||||
manifest rule's silence on a file the installer creates and deletes itself (noted, no change). **Two instrument findings of my own
|
||||
(R40/R57):** my BEFORE snapshot `.strip()`-ed the porcelain output and ate the first line's status space, so a deletion under the dry-run's
|
||||
own directory (`after.txt`, renamed for run 4) read as `run/…` and escaped the exclusion → the judge's first FAIL was the snapshot's;
|
||||
re-FILTERED the recorded value (not re-snapshotted); and the judge's reader crashed on an empty dirty set (a one-token line, never seen
|
||||
in runs 1–4) → tolerated. The second judge pass flagged exactly my six post-run edits (the wording fix + the run-5 rows) — attributed,
|
||||
committed as part 3a, judged again on the tree the agent left: PASS.
|
||||
**Verify (literal):** `tool_census --check` OK (358 copies + 28 pointers, 0 gaps) · `kit_coverage` OK (0 UNCOVERED ×2) · `kit_lint` OK
|
||||
(0 leaks over 436 files; 389 corpus files exempt) · `doc_links --strict` OK · `wiki_render --selftest` 12/12, 32 pages / 0 unlisted ·
|
||||
`audit_public --paths` OK on the new files · judge PASS 20/20. `make tools-health` NOT run (task 15's gate; it now carries
|
||||
`kit_coverage`). No build input changed.
|
||||
**Deviations:** three commits for one task (parts 1/2/3a) + this close commit — each a bank, each before the next command that could
|
||||
touch the tree (R42); the giants' slices read 30 lines of overlap for context (counted in "lines read", hence 30,540 > 30,510); the
|
||||
first BEFORE snapshot's parse defect and the judge's empty-value crash are recorded above rather than hidden.
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — Tasks 0–14 and 14.5 ✓; NEXT = task 15 (the close: real render, tools-health, `doc_links --strict`, `audit_public`, the P7 walk, `PhaseEnd_Phase33.5.md` + DIGEST §0/§2 + the log archive; **Max — Tier 1, prompt Drew (R27) and WAIT for gate 2**)
|
||||
|
||||
### 0. How to use this block
|
||||
You are a FRESH SESSION (or this one, continuing) that has read `PROJECT_CONTEXT.md`, `phase-ends/DIGEST.md`, `PhaseEnd_Phase31/32/33.md`
|
||||
and this file, and nothing else (R64). Replay this block verbatim, state phase / done / NEXT / effort, list the rules from the digest
|
||||
(R1–R83), then WAIT for Drew. Rebuild the harness task list (17 rows incl. task 13.5, R28) marking tasks 0–14 completed and task 15
|
||||
(R1–R83), then WAIT for Drew. Rebuild the harness task list (18 rows incl. tasks 13.5 and 14.5, R28) marking tasks 0–14 and 14.5 completed and task 15
|
||||
in progress. Task 15 is **Max** — state the Tier 1 prompt and wait for `/effort max` before starting it.
|
||||
|
||||
### 1. Where we are
|
||||
@@ -751,14 +804,20 @@ in progress. Task 15 is **Max** — state the Tier 1 prompt and wait for `/effor
|
||||
task 0 = `39d524991`; task 1 = `a0cf302e5`; task 2 = `d06923a06`; task 3 = `5d10a0d12`; task 4 = `9970f1e62`; task 5 = `a0d4ae836`;
|
||||
task 6 = `6ec4786bd`; task 7 = `21c98ed5a`; task 8 = `ae71efe56`; task 9 = `caefe9872`; S90 checkpoint = `e1463d430`; task 10 =
|
||||
`83de29c02`; task 11 = `9235800fb`; amendment 1 = `6fb2bc7f8`; task 12 = `4c1d5d9f7`; task 13 = `a291c2b47`; amendment 2 = `3307775e5`;
|
||||
task 13.5 = `827295e24`; S91-b decision-log entry = `3c4e185fe`; **task 14 = the commit after this block (S92, 2026-09-07)**. No build
|
||||
input has changed in this phase; the fleet is 218/218 at the Phase-33 close; the last `make tools-health` OK on this tree was at
|
||||
task 13.5 (`.run/P33.5/tools_health_t135.log`) — task 14 changed docs + the kit + `config/tool_dictionary.tsv` + the generated
|
||||
`docs/tool-index.md` only, every per-tool check green (task-14 log). `doc_links --strict` rc 0; pending list EMPTY; `kit_lint` OK;
|
||||
`tool_census --check` OK; render selftest 32 pages / 0 unlisted. **Every plan task except the close is done:** the wiki is the
|
||||
task 13.5 = `827295e24`; S91-b decision-log entry = `3c4e185fe`; task 14 = `9937fd7e3`; amendment 3 = `ecd1c2f51`; task 14.5 =
|
||||
`0c29c9e16` (the record + kit_coverage) / `8a698e1b7` (the mining pass banked) / `8594081d8` (dry-run 5) / the commit after this
|
||||
block (S92, 2026-09-07). No build input has changed in this phase; the fleet is 218/218 at the Phase-33 close; the last `make tools-health` OK on this tree was at
|
||||
task 13.5 (`.run/P33.5/tools_health_t135.log`) — tasks 14 and 14.5 changed docs + the kit + `config/` (tool_dictionary,
|
||||
kit_coverage_map) + `tools/` (tool_census, kit_lint, the new kit_coverage) + the Makefile (kit_coverage wired into tools-health after
|
||||
tool_census --check), every per-tool check green (the task-14 and task-14.5 logs); **task 15's tools-health is the first run that
|
||||
exercises kit_coverage in the chain.** `doc_links --strict` rc 0; pending list EMPTY; `kit_lint` OK;
|
||||
`tool_census --check` OK; render selftest 32 pages / 0 unlisted. **The kit now carries THREE dictionaries** (tools 302+28, cookbook, the record 56 files — `tool_census --check` 358 copies), **80
|
||||
kernels** (DK-66–68 from the coverage check, DK-69–80 from the worklog mining pass: 777 candidates / 634 already banked / 143 new),
|
||||
`tools/kit_coverage.py` green (83 rules, 59 accelerator entries, 0 uncovered), and **dry-run 5 PASS 20/20** on the final kit.
|
||||
**Every plan task except the close is done:** the wiki is the
|
||||
source of truth (five new pages: conventions, firewall, reference index, direction, start-a-new-project; the archive index), 59
|
||||
docs + 34 tools sunset with indexes, tracked `.run/` 1,086 → 868, the memory store reconciled, the kit complete with the two
|
||||
dictionaries and DK-65 / the type layer (S91-b) — dry-run-proven four times. **Phase 34's gate is OPEN** (the purge probe PASSED
|
||||
docs + 34 tools sunset with indexes, tracked `.run/` 1,086 → 868, the memory store reconciled, the kit complete with the three
|
||||
dictionaries, DK-1–DK-80 and the type layer (S91-b) — dry-run-proven five times. **Phase 34's gate is OPEN** (the purge probe PASSED
|
||||
2026-09-07, `.run/P33.5/probe_github_s91.log`, untracked). Nothing runs in the background; the headless Ghidra MCP was never used
|
||||
(no RE work; nothing under `ghidra/` is tracked). The plan file `~/.claude/plans/max-effort-set-plan-encapsulated-muffin.md` is a copy
|
||||
of the "Approved plan" section below — this file is the one that counts.
|
||||
@@ -783,8 +842,9 @@ of the "Approved plan" section below — this file is the one that counts.
|
||||
`git ls-files -ci --exclude-standard .run | wc -l` = 0; `git status --porcelain .run | grep -c '^??'` = 0; the two listings named
|
||||
in `tools/public_rewrite/untracked_after_rewrite.txt`; `purge_set.txt` unchanged since `80d45b29b` (`git diff 80d45b29b --
|
||||
tools/public_rewrite/purge_set.txt` empty); `gate_scan.py --all --worktree` PASS (73 s at task 8 — re-run or cite); (4)
|
||||
`kit_lint` OK + the run-4 judge verdict (`.run/P33.5/kit-dryrun/verdict.json` PASS 10/10, manifest 56 == 56) — the S91-b kit
|
||||
edits changed no SETUP step, so NO fresh dry-run is owed (a resume on `repo/` is optional, not required); (5) `ls
|
||||
`kit_lint` OK + `tool_census --check` OK + `kit_coverage` OK + the run-5 judge verdict (`python3 .run/P33.5/kit-dryrun/judge.py`
|
||||
→ PASS 20/20 on the tree the agent left; `verdict.json` run 5, 0 failed verify lines) — the final kit is dry-run-proven; no
|
||||
further run is owed unless a SETUP step changes; (5) `ls
|
||||
~/.claude/projects/-home-musashi-bfm-decomp/memory/*.md | wc -l` == the `MEMORY.md` row count (80 == 80 at task 9; re-count) and
|
||||
`decomp-architect/memory-seed/` 18 files == its index rows; (6) this item is the PhaseEnd itself.
|
||||
5. **`phase-ends/PhaseEnd_Phase33.5.md`** — the constitution's format + the narrative axis (Build Log with every file/tool, the
|
||||
@@ -797,7 +857,11 @@ of the "Approved plan" section below — this file is the one that counts.
|
||||
(v) re-run `doc_links --strict` after ANY untrack or archive move, not only after a docs edit; (vi) an unattended installer's
|
||||
manifest is specified as a derivable SET, or two honest agents produce two honest sizes; (vii) a governance system that keeps
|
||||
transcripts in the repository needs the firewall's class-7 line (a decomp's transcripts quote the target); (viii) a foreign
|
||||
project's path is named in prose, never as a backticked `docs/…` citation (the checker reads every such citation as this repo's) —
|
||||
project's path is named in prose, never as a backticked `docs/…` citation (the checker reads every such citation as this repo's);
|
||||
(ix) a DISTILLATION ships with a coverage check against the populations it claims to distil (kit_coverage: 26 + 21 uncited on its
|
||||
first run, three genuine gaps); (x) the worklogs get one final read at the end of the project with an "already banked?" grep per
|
||||
candidate (one in five candidates was banked nowhere); (xi) a snapshot instrument never `.strip()`s a porcelain listing (the run-5
|
||||
false flag) —
|
||||
plus the S91-b doctrine as a candidate if Drew wants it as a rule: types are a banking and width lever, the canonical type file
|
||||
from the first bank; PhaseEnd Changelog v1.32.0 → v1.32.1; **the Plain-English Recap (R18/R25)**; 🛑 Stop Here).
|
||||
6. **DIGEST §0 + §2 append** (the P33.5 synopsis: what it delivered, the key findings, "R74–R83 ratified at gate 1", the candidates);
|
||||
@@ -807,8 +871,8 @@ of the "Approved plan" section below — this file is the one that counts.
|
||||
(that one goes in the task-15 prep commit BEFORE the PhaseEnd is written, so Drew's close commit carries only the close).
|
||||
8. Final message: the plain-English recap + "PhaseEnd file created. Commit the file and start a new Claude Code session for the
|
||||
next phase." HARD STOP — do not preview Phase 34 (its seed is `docs/phase34-seed.md`; plan mode, Max, fresh session).
|
||||
**P6 count:** rules checks were done after tasks 4, 8 and 12; tasks 13, 13.5 and 14 are three since — task 15 opens with the
|
||||
fourth check ("Rules check — re-read complete. Continuing with task 15.").
|
||||
**P6 count:** rules checks were done after tasks 4, 8 and 12; tasks 13, 13.5, 14 and 14.5 are FOUR since — task 15 opens with the
|
||||
check ("Rules check — re-read complete. Continuing with task 15.").
|
||||
|
||||
### 3. Standing facts for every task of this phase
|
||||
- One commit per task, after this file's log line (R8/R42 form); commit by explicit path; no trailers (R5); Drew pushes (R6).
|
||||
|
||||
Reference in New Issue
Block a user