Files
mokosh/.planning/phases/04-harden-clean-up-optional
Mark f3baa3a9a8 docs(04-06): re-plan iter-2 — real inline-SVG coverage + corrected 184/184 baseline
Re-plan-checker iter-1 (commit deb68df) flagged 2 BLOCKERs against the
iter-1 re-plan (b59bd24). Both fixed below; 3 advisories fixed; iter-1
verified-correct items preserved. EVERY test-infrastructure claim
re-verified against actual code this session before being written into
the plan — extension-page-harness.ts, harness-page-driver.ts, launch.ts,
harness.test.ts, vitest.config.ts, vite.config.ts, vite.test.config.ts,
full vitest run. No third false premise.

BLOCKER 1 — fictitious A17.8 live-DOM delegation. The iter-1 re-plan
claimed live-DOM injection + currentColor cascade was "delegated to
A17.8 in real Chrome". Verified false: assertA17 reaches welcome.html
only via fetch + DETACHED DOMParser string-parse; A17.8 is 100%
string-grep on jsText; the harness opens exactly two pages (victimPage
file://, harnessPage extension-page-harness.html — launch.ts:473-542);
populateMark() never runs in the harness. Fixed: a NEW host-side
harness assertion A35 is added (Task 3, modeled on driveA32/33/34) —
opens welcome.html via browser.newPage() + page.goto, lets
populateMark() run at DOMContentLoaded, then querySelector
'.welcome-hero__mark svg' + getComputedStyle().stroke proves the
LIVE currentColor cascade. welcome.html is a real web-accessible
extension page (builds to dist-test/src/welcome/welcome.html);
launchHarnessBrowser returns browser + extensionId so the new tab is
cheaply reachable. A35 is genuine new harness work (new driver +
drivers-array entry + banner-string update + import). A17.8 is
narrowed honestly to a source-bundling check only. No fictitious
delegation.

BLOCKER 2 — DEFECT 3 named the wrong failing test. The iter-1 re-plan
claimed strict-meta-json-validation.test.ts "fails on a clean tree" and
hard-coded a Task 2 gate "failure set EXACTLY == {strict-meta-json}".
Verified false this session: strict-meta-json in isolation = 8/8 GREEN;
a full vitest run reproduced 183 passed / 1 failed where the RED was
tests/background/webm-remux.test.ts (ffprobe -count_frames, timeout) —
NOT strict-meta-json. webm-remux in isolation = 5/5 GREEN. The "1
failed" is a non-deterministic ffprobe/parallel-vitest timeout flake —
exactly 04-CONTEXT #9 + #10. Fixed: baseline corrected to 184/184 GREEN
when the flake doesn't fire; target after Plan 04-06 = 188/188 GREEN
(+4 new tests). Task 2 gate now: 188/188 -> pass; 1 RED that passes on
isolation re-run -> tolerate as the known flake; reproducible RED or
2+ RED -> regression. No test filename hard-coded. deferred-items.md
mis-diagnosis corrected (Task 3 Edit 5).

Advisories (all fixed):
- A1: Task 3 action and verify both use SKIP_PROD_REBUILD=0 (intentional
  — harness must rebuild dist-test against Task 2 source edits).
- A2: requirements:[] kept (Phase 4 has no new REQ-* per ROADMAP);
  charter linkage via the `charter-d-p4-03` tag — non-blocking.
- A3: Task 1 acceptance criterion reworded to grep only import
  statements + the @vitest-environment directive, so the file's header
  prose explaining "no DOM-emulation library" doesn't trip it.

Preserved (iter-1 verified-correct):
- DEFECT 2 back-patch line classification (22/47/82/135/205 flip;
  40/89/109/110 leave).
- welcome.css drop from files_modified (bare class selector matches
  <svg>; color is inherited).
- Thesis: currentColor Option A + cursor verification-only +
  operator-empirical Task 4 + PNG icons untouched.
- FORBIDDEN_HOOK_STRINGS stays at 12 (no new __MOKOSH_UAT__ symbols).
- Frontmatter shape (phase:04 / slug / plan:06 / type:execute / wave:5
  / autonomous:false / depends_on:[01..05]). files_modified extended by
  3 new entries (harness-page-driver.ts + harness.test.ts + the
  corrected deferred-items.md).

Validation:
- gsd-sdk frontmatter.validate --schema plan: valid:true (all 8
  required fields present).
- gsd-sdk verify.plan-structure: valid:true, 0 errors, 0 warnings,
  4 tasks each with Files+Action+Verify+Done; Task 4 is
  checkpoint:human-verify per autonomous:false.

Orchestrator: run the re-plan checker again on this iter-2 commit.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 17:24:17 +02:00
..