SPEC §10 #9 RAM ceiling — user explicit ack 2026-05-20 to close on A32 scaffolding + alpha distribution coverage path (analogous Phase 2 T5 override; per saved memory feedback-trust-harness-over-manual-uat.md)
dimension
initial_status
override_to
rationale
accepted_by
accepted_at
SPEC §10 #9 RAM ceiling ≤ 50 MB
human_needed (Page.metrics page-realm only per RESEARCH Pitfall 2; SW heap genuinely unreachable in MV3 without research budget)
VERIFIED (best-effort coverage)
User explicit ack 2026-05-20 to close on the A32 best-effort scaffolding + alpha
distribution coverage path. Three independent coverage layers ship from Phase 3:
(a) A32 puppeteer.Page.metrics() = page-realm JS heap measurement (~1.82 MB at
harness baseline) with explicit "NOTE: page-realm only" diagnostic emitted on
every run — verifies the harness itself doesn't leak; informational lower-bound
(b) chrome://memory-internals operator instructions documented in 03-VERIFICATION.md
human_verification entry (preserved for any operator who wants to spot-check)
(c) Alpha distribution build covers real-world cross-profile RAM observation in
operators' actual usage patterns
D-P3-04 charter explicitly authorized best-effort + operator/alpha note for §10 #9;
programmatic SW-context measurement via chrome.devtools Memory API deferred to
Phase 4 hardening (in CONTEXT.md deferred list).
Mark (user explicit ack 2026-05-20 + D-P3-04 charter)
2026-05-20
must_have
reason
accepted_by
accepted_at
SPEC §10 #4 — rrweb DOM event capture on typical pages
Plan 03-01 A29 GREEN (cc13f31): 4 EventType-enum checks against rrweb/session.json from
probe-HTML-driven archive (Meta=4, FullSnapshot=2, IncrementalSnapshot=3, count>0).
Probe HTML includes form + table + modal + DOM-mutation trigger per RESEARCH Pitfall 1.
Harness coverage canonical per saved memory feedback-trust-harness-over-manual-uat.md
(user explicit delegation 2026-05-20). Operator UAT retired by delegation.
Plan 03-02 A30 GREEN (116432a): all 5 UserEvent.type literals verified (click, input,
navigation, js_error, network_error) via chrome.scripting.executeScript ISOLATED-world
on https://example.com probe tab (cs-injection-world pattern). Same delegation as #4.
Mark (user explicit delegation 2026-05-20)
2026-05-20T00:00:00Z
must_have
reason
accepted_by
accepted_at
SPEC §10 #8 — passwords do not appear in the log or rrweb snapshots
Plan 03-03 A31 GREEN (34b36fb): PARTIAL per D-P3-02 charter shift 2026-05-20 ("we don't
care about privacy hardening. At least here."). Existing minimum at src/content/index.ts:82
(target.type === 'password' early-return) verified via 3-check sentinel absence pattern:
A31.2 (0 UserEvent.value contains SENTINEL), A31.3 (0 UserEvent.target === '#probe-password'),
A31.4 (>=1 control-sentinel event proves listener alive — defense-in-depth). REQ-password-
confidentiality moved Out of Scope v1. Full rrweb v2 maskInputFn deferred to Phase 4.
Mark (charter shift 2026-05-20 + D-P3-02)
2026-05-20T00:00:00Z
test
expected
why_human
Navigate to chrome://memory-internals (or chrome://extensions → Service worker link → DevTools Memory tab). Find the Mokosh extension entry. Read the Service worker memory value.
Total extension background RAM < 50 MB after ≥ 5 minutes of idle recording.
puppeteer.Page.metrics() is page-realm only (RESEARCH Pitfall 2). The MV3 service worker is a separate Puppeteer target with its own V8 isolate; page.metrics() does not aggregate across workers/iframes. A32 (8c94bd5) provides informational scaffolding (page-realm heap ~1.82 MB) but the SPEC §10 #9 operator gate requires chrome://memory-internals observation per D-P3-04.
test
expected
why_human
Confirm ROADMAP.md Phase 3 row is flipped [x] and STATE.md completed_phases incremented to 3.
Worktree parallel-executor protocol deliberately deferred these doc-only flips to the orchestrator post Wave-5 merge (documented in 03-05-SUMMARY.md key-decisions). The omission is known and intentional, not a code gap. Orchestrator must perform or confirm these two doc updates.
Phase Goal: All 9 SPEC §10 acceptance criteria pass against an unpacked load of the build
into a real Chrome instance. ABSORBS DOM + event-log verification work (REQ-rrweb-dom-buffer
REQ-user-event-log) originally planned as Phase 2 per 2026-05-20 re-phasing.
This report extends and annotates the executor-created 03-VERIFICATION.md (authored by Plan 03-05
at a63a82117211086c4e976a664fead8e0b6fa0d28). All claims in the executor document were verified
against the actual codebase. The independent verification:
Confirmed all 4 Phase 3 feat commits exist and have correct file scopes
Confirmed src/content/index.ts was untouched (D-P3-02 charter; only 1 commit in its history — the initial Phase 1 import)
Confirmed REQUIREMENTS.md REQ-rrweb-dom-buffer + REQ-user-event-log show [x] markers
Identified the ROADMAP/STATE.md stale-marker gap (known per 03-05-SUMMARY.md worktree protocol)
Confirmed FORBIDDEN_HOOK_STRINGS stays at 12 entries
Confirmed all A29..A32 artifacts exist and are substantive (not stubs)
ROADMAP Success Criteria Verification
Phase 3 ROADMAP.md defines 5 success criteria (lines 199-213). These are verified against codebase HEAD:
#
ROADMAP SC (verbatim)
Phase Owner
Status
Evidence
SC-1
Extension installs into Chrome via "Load unpacked" against dist/ with no errors or warnings
Phase 1 (Plan 01-12)
VERIFIED (prior phase)
Operator brand-fit ack 2026-05-20 "all good"; tests/build/no-remote-fonts.test.ts + manifest-i18n.test.ts + locale-parity.test.ts GREEN; Phase 1 VERIFICATION.md GREEN
SC-2
Video buffer runs continuously across tab switches, never > 30 s
rrweb records on typical page (form+table+modal) without throwing; event log captures clicks/navigation/network errors
Phase 3
VERIFIED (override)
A29 GREEN cc13f31 (4 EventType checks); A30 GREEN 116432a (5 UserEvent.type checks via cs-injection-world); T5 override per feedback-trust-harness-over-manual-uat.md
Info — all refer to "Bug A placeholder icons" in A19 documentation, not code stubs
None — legitimate documentation references
One eslint-disable @typescript-eslint/no-explicit-any per driveA29/A30/A31
harness-page-driver.ts lines 1892, 2047, 2202
Info — documented pattern per Plan 02-04 baseline for page.evaluate context; matches existing A26/A27/A28 precedent
None — matches baseline; no regression
A32 page-realm caveat in diagnostics
harness-page-driver.ts line 2364
Info — intentional informational note per D-P3-04
None — by design
No blockers found. No new __MOKOSH_UAT__-gated symbols introduced. All Phase 3 code is substantive (not stubs).
Behavioral Spot-Checks
Step 7b: SKIPPED for individual spot-checks (UAT harness requires full Chrome launch; cannot run inline). Harness run evidence accepted from SUMMARY.md records per feedback-trust-harness-over-manual-uat.md delegation pattern — the 03-01 through 03-05 SUMMARYs each record verbatim UAT exit codes and assertion traces.
Evidence of last confirmed harness run: 03-05-SUMMARY.md §"vitest baseline preserved" + §"UAT harness 33/33 GREEN on second consecutive run" (vitest 171/171 GREEN at 10.23s; UAT 33/33 GREEN).
Human Verification Required
1. SPEC §10 #9 — Extension background RAM ≤ 50 MB
Test: Load extension from dist/ into Chrome (Load unpacked). Start a recording. Leave idle ≥ 5 minutes. Open chrome://memory-internals OR chrome://extensions → Service worker link → DevTools Memory tab. Find Mokosh extension entry. Read the "Service worker" memory value.
Expected: Total extension background RAM < 50 MB.
Why human: puppeteer.Page.metrics() is page-realm only (RESEARCH Pitfall 2). MV3 service worker is a separate V8 isolate not accessible via page.metrics(). A32 (8c94bd5) provides informational page-realm scaffold (~1.82 MB) but this does not close §10 #9.
Operator reply contract: Type "approved §10 #9 — observed RAM MB" or describe deviation. Route deviation via /gsd-debug per feedback-gsd-ceremony-for-fixes.md.
Test: Verify ROADMAP.md line 37 (- [ ] **Phase 3:) is updated to [x] with a CLOSED 2026-05-20 citation. Verify the Progress table row 3 status column updated. Verify STATE.md completed_phases: 2 incremented to 3.
Expected: ROADMAP Phase 3 row shows [x] with closure note; STATE.md completed_phases: 3.
Why human: Explicitly deferred to orchestrator per parallel-executor worktree protocol (documented in 03-05-SUMMARY.md key-decisions; same pattern as Phase 2 closure). This is a doc-only gap — all code and test artifacts are fully delivered.
Gaps Summary
No code gaps. The ROADMAP/STATE.md stale markers are the only pending items. These are:
Known and intentional per the 03-05-SUMMARY.md worktree-aware parallel-executor protocol
Not blocking Phase 3 goal achievement (all code, test artifacts, and requirement markers are complete)
Requiring orchestrator action to flip the two doc markers (ROADMAP Phase 3 progress table + STATE.md completed_phases)
The executor-created 03-VERIFICATION.md was substantively accurate. This independent verification report:
Confirms all artifact claims with direct codebase evidence
Adds ROADMAP SC-level verification (5 criteria vs the 9-criterion SPEC §10 scorecard)
Annotates the ROADMAP/STATE.md gap as a WARNING requiring orchestrator action
Elevates status from passed to human_needed due to SC-5 RAM criterion + ROADMAP doc gap
Forward-Looking Deferred Items (not gaps — carried from executor's VERIFICATION.md)