From af035564d3bbd920b00c733cbe29cddbc9163f9d Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 20 May 2026 16:09:07 +0200 Subject: [PATCH] =?UTF-8?q?docs(02-03):=20REQUIREMENTS=20=E2=80=94=20REQ-m?= =?UTF-8?q?eta-json-schema=20amended=20for=208-field=20shape=20with=20urls?= =?UTF-8?q?[]=20+=20schemaVersion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rewrite REQ-meta-json-schema block (lines ~106-119) to reflect the Plan 02-03 D-P2-02 + D-P2-03 cutover: * 8 fields exact (was 7); `url: string` REMOVED; `urls: string[]` + `schemaVersion: '2'` ADDED. * Acceptance criteria: schemaVersion === '2'; ISO-8601 timestamp; urls entries match URL_SCHEME_ALLOW regex (https + http + chrome-extension://); urls deduplicated + first-seen-ordered; semver extensionVersion; non-negative integer totalEvents; exactly 8 keys. * F2 explicitly carried in the urls acceptance bullet: empty array IS permitted (whole-desktop-no-tab session is a meaningful operator state); non-empty arrays validate each entry against the filter regex. * Binding note preserves the original CON-meta-json-schema 7-field shape as SPEC provenance while documenting that this REQ supersedes it for the Phase 2 cutover. - Traceability table entry updated: Phase 3 (originally) → **Phase 2** → Phase 2 (implementation landed via Plan 02-03; harness validation deferred to Plan 02-04). - Footer dated 2026-05-20 with the REQ-meta-json-schema amendment citation; prior Plan 01-10 closure entry demoted to "Earlier update". Verification gates per plan: - grep -c "schemaVersion" .planning/REQUIREMENTS.md → 3 (≥2 required ✓) - grep -c "urls.*string\[\]" .planning/REQUIREMENTS.md → 2 (≥1 required ✓) --- .planning/REQUIREMENTS.md | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 8c816eb..6b96f98 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -104,11 +104,13 @@ Requirements for the Phase 1 SPEC. Each maps to one phase in ROADMAP.md. - SPEC §10 acceptance criteria: #7. - [ ] **REQ-meta-json-schema**: `meta.json` inside the archive conforms to the - verbatim schema: + verbatim schema (D-P2-02 + D-P2-03 cutover; replaces the 7-field + `url: string` shape per audit P1 #10 amendment 2026-05-20): ```json { + "schemaVersion": "2", "timestamp": "2025-05-15T14:32:10Z", - "url": "https://...", + "urls": ["https://example.com/", "https://app.example.com/dashboard"], "userAgent": "Chrome/...", "extensionVersion": "1.0.0", "videoBufferSeconds": 30, @@ -116,7 +118,23 @@ Requirements for the Phase 1 SPEC. Each maps to one phase in ROADMAP.md. "totalEvents": 143 } ``` - All fields required. Binding: CON-meta-json-schema. + All 8 fields required. Acceptance: + - `schemaVersion === '2'` (marks the D-P2-02 url→urls cutover; future + schema bumps increment) + - `timestamp` ISO-8601 with `Z` suffix + - `urls` is a `string[]` whose entries each match + `/^(https?|chrome-extension):\/\//` (per CONTEXT.md `` + filter rules — exclude chrome://, about:, devtools://, file://). Empty + array IS permitted per F2 (whole-desktop-no-tab session is a + meaningful operator state); non-empty arrays validate each entry. + - `urls` is deduplicated; ordering is first-seen-first across the + rolling recording window + - `extensionVersion` matches semver + - `totalEvents` is a non-negative integer + - exactly 8 keys; no extras + Binding: CON-meta-json-schema (this REQ-text supersedes the original + CON-meta-json-schema 7-field shape — the original is preserved in the + SPEC for provenance; this REQ documents the Phase 2 cutover). ### Manifest & Install @@ -222,7 +240,7 @@ Which phase covers which requirement. See ROADMAP.md for phase details. | REQ-popup-ui | Phase 3 (originally) → **Phase 2** (renumbered) | Pending (largely shipped via Plan 01-09 SAVE-only popup + Plan 01-12 i18n; residual gaps in Phase 2) | | REQ-screenshot-on-export | Phase 3 (originally) → **Phase 2** (renumbered) | Pending | | REQ-archive-layout | Phase 3 (originally) → **Phase 2** (renumbered) | Pending (substantively shipped via Plans 01-08 webm-remux + JSZip; verification in Phase 2) | -| REQ-meta-json-schema | Phase 3 (originally) → **Phase 2** (renumbered) | Pending | +| REQ-meta-json-schema | Phase 2 | Pending (implementation landed via Plan 02-03; harness validation deferred to Plan 02-04) | | REQ-archive-export-latency | Phase 3 (originally) → **Phase 2** (renumbered) | Pending | | REQ-manifest-permissions | Phase 3 (originally) → Phase 1 closure via Plan 01-12 i18n migration | Complete (2026-05-20 — manifest __MSG_*__ + default_locale='en' + 16 i18n keys per locale; permissions DEC-011 baseline unchanged; operator brand-fit ack) | | REQ-install-clean | Phase 4 (originally) → Phase 1 closure via Plan 01-12 design integration | Complete (2026-05-20 — fresh build + load unpacked clean; zero remote-font CSP errors; branded icons rendering; en+ru manifest:name resolution; operator brand-fit ack) | @@ -245,6 +263,7 @@ RAM-ceiling check. --- *Requirements defined: 2026-05-15* -*Last updated: 2026-05-20 — Plan 01-10 closure (welcome tab; first-install activation; canonical mark + canonical tokens + canonical chrome.i18n welcomeHero; 24/24 UAT GREEN; operator cycle-2 ack "All good"). Plan 01-10 introduced no new functional REQs; it consumed REQ-video-ring-buffer (already Complete via Plan 01-07) by adding the first-install operator-facing activation surface that complements the always-on capture pipeline. Phase 1 final functional plan delivered; final-closure marker flip pending (REQUIREMENTS / ROADMAP / STATE markers + optional /gsd-verify-work 1).* +*Updated 2026-05-20 — REQ-meta-json-schema amended for Plan 02-03 (D-P2-02 + D-P2-03 8-field cutover: `url: string` → `urls: string[]`; new `schemaVersion: "2"` field; F2 empty-array permission). Traceability table entry flipped to "Pending (implementation landed via Plan 02-03; harness validation deferred to Plan 02-04)".* +*Earlier update: 2026-05-20 — Plan 01-10 closure (welcome tab; first-install activation; canonical mark + canonical tokens + canonical chrome.i18n welcomeHero; 24/24 UAT GREEN; operator cycle-2 ack "All good"). Plan 01-10 introduced no new functional REQs; it consumed REQ-video-ring-buffer (already Complete via Plan 01-07) by adding the first-install operator-facing activation surface that complements the always-on capture pipeline. Phase 1 final functional plan delivered; final-closure marker flip pending (REQUIREMENTS / ROADMAP / STATE markers + optional /gsd-verify-work 1).* *Earlier update: 2026-05-20 — REQ-install-clean + REQ-manifest-permissions marked Complete on Plan 01-12 closure (design integration + manifest i18n + operator brand-fit ack)* *Earlier update: 2026-05-15 — REQ-video-ring-buffer marked Complete on Phase 1 (Plan 01-07) closure*