Product Requirements
Section 05

Feature Freeze

This chapter records the v1 feature freeze packet. It should be updated only when the approval status changes or when an approved post-freeze exception changes the frozen scope.

The frozen-scope candidate is /prd/04-v1-feature-set-selection/. This chapter does not invent new features; it locks or unlocks the selected scope from that chapter.

5.1 — Freeze status

FieldValue
Freeze packetv1-feature-freeze-2026-05-20
Freeze statusReady for approval
Prepared timestamp2026-05-20 09:37 BST
Formal approval timestampPending
Frozen scope reference/prd/04-v1-feature-set-selection/
Canonical feature source/prd/02-feature-specification/
Canonical journey source/prd/03-user-journey-flows/
Binding architecture source/architecture/01-architecture-decisions/

The scope is not formally frozen until the required approvers in §5.2 mark the packet approved. Once approved, the formal approval timestamp becomes the freeze timestamp and all later scope changes require the exception process in §5.5.

5.2 — Approver list

RoleApprover (or named delegate)Approval stateNotes
Product ownerYayra - JudePendingConfirms the product scope, prioritisation, and monetisation model.
Engineering ownerTBD — owner-or-delegate required before formal approval can beginPendingConfirms feasibility, architecture alignment, phase gates, and implementation risk.
Design ownerTBD — owner-or-delegate required before formal approval can beginPendingConfirms onboarding, library, canvas, paywall, settings, and accessibility surface readiness.
Content and cultural review ownerTBD — owner-or-delegate required before formal approval can beginPendingConfirms launch-library readiness, review process, and publishing workflow.
Legal, privacy, and store compliance reviewerTBD — owner-or-delegate required before formal approval can beginPendingConfirms child-mode, analytics, purchases, notifications, and platform policy constraints.

Approval threshold and delegate rule

  • Threshold: all five named owners (or their written delegates) must mark the packet approved for the freeze to take effect. A single dissent blocks the freeze; the dissent reason is recorded alongside the approval state, and the disagreement is resolved before the freeze can land.
  • Delegate rule: if an approver is unreachable for more than 72 hours after the packet is published for review, the Product owner may nominate a written delegate. The delegation must be recorded in the relevant row, and the delegate signs off in the same position.
  • Status messaging: while any row still shows TBD, the §5.1 freeze status remains “Ready for review” rather than “Ready for approval.” The status only advances to “Approved” when every row carries a real name and a positive approval state.

5.3 — Frozen scope reference and feature counts

Scope measureCountReference
In-scope user-facing v1 feature records53/prd/04-v1-feature-set-selection/ §4.2
Supporting infrastructure feature records14/prd/02-feature-specification/ “Supporting infrastructure dependencies”
Total feature records bound by the freeze67Sum of the two rows above
Explicit post-v1 feature records10/prd/04-v1-feature-set-selection/ §4.4
Additional out-of-scope MVP classes3Full admin dashboard, multiplayer, and heavy animation from /spec/19-mvp/.
Primary journeys supported5JRN-P01 to JRN-P05 in /prd/03-user-journey-flows/.
Alternate journeys supported8JRN-A01 to JRN-A08 in /prd/03-user-journey-flows/.
Failure journeys supported10JRN-F01 to JRN-F10 in /prd/03-user-journey-flows/.

The user-facing count is grouped as follows; area labels match /prd/04-v1-feature-set-selection/ §4.2 exactly.

AreaFeature count
Onboarding and retention10
Library and artwork decisioning6
Download, cache, and offline reliability5
Canvas, palette, and accessibility9
Progress and identity6
Content-pack monetisation4
Settings and notifications4
Content pipeline, cultural review, and admin tooling5
Observability and release gates4
Supporting infrastructure (non-user-facing)14

5.4 — Scope locked at freeze

When approved, the following statements become binding for v1. Most of them are restatements of decisions already locked in the architecture and the spec; the freeze repeats them here so a single packet approval locks them into the v1 commitment. Where wording differs, the authoritative source listed in parentheses wins.

5.5 — Post-freeze change policy

Post-freeze changes require a Six-Dimension Change Exception (sometimes shortened to 6d) when they do any of the following:

  • Add, remove, or materially change a v1 feature.
  • Move a post-v1 item into v1, or move an in-scope v1 feature into post-v1.
  • Change the catalogue Release lane of an existing feature record (e.g. bumping an MVP feature to Post-v1 or vice versa in /prd/02-feature-specification/).
  • Change a journey outcome, acceptance gate, or user-visible surface.
  • Add a runtime dependency that changes the approved stack or trust boundaries.
  • Change monetisation, analytics, child-mode, accessibility, cultural review, or offline guarantees.
  • Relax a Phase 0 or release-gate constraint.

The six dimensions

Every approved exception must record the impact across the same six dimensions. The name comes from the six dimensions, not from a six-day deadline.

  1. User value or risk — what the change does for or to the user; any new compliance, accessibility, or cultural exposure.
  2. Scope — affected FEAT-*, journey, ADR, and spec references, including any catalogue lane changes.
  3. Schedule — phase, milestone, and release-date implications.
  4. Architecture and dependencies — runtime dependency changes, trust-boundary effects, and ADR impact.
  5. Compliance — legal, privacy, child-mode, accessibility, and cultural-review implications.
  6. Release gates and rollback — Phase 0 and release-readiness impact, plus the rollback plan if the change ships and needs to be reversed.

A Six-Dimension Change Exception must record one entry per dimension above, plus the decision metadata: final decision (accept / reject), approvers (per §5.2 threshold and delegate rule), approval timestamp, and any deviation from the rollback plan.

flowchart TD
    Request["Change requested after freeze"] --> Classify{"Changes frozen scope or catalogue lane?"}
    Classify -->|No| Normal["Normal review and implementation"]
    Classify -->|Yes| Exception["Create Six-Dimension Change Exception"]
    Exception --> Assess["Assess all six dimensions: user value, scope, schedule, architecture, compliance, release gates"]
    Assess --> Decide{"Approved by all required owners per §5.2?"}
    Decide -->|No or any dissent| Reject["Keep frozen scope unchanged"]
    Decide -->|Yes| Update["Update feature selection, freeze record, catalogue lane, and affected source docs"]
    Update --> Implement["Implement under revised scope"]

5.6 — Changes allowed without a scope exception

The following changes do not require a Six-Dimension Change Exception, provided they stay inside the frozen feature set:

  • Copy edits that do not change journey sequence, promise, or compliance meaning.
  • Accessibility, performance, reliability, and security improvements that preserve the same user-visible scope.
  • Bug fixes and acceptance-criteria clarifications.
  • Internal implementation changes that do not introduce new runtime dependencies or trust-boundary changes.
  • Content corrections inside an already approved publication and review workflow.

5.7 — Freeze operating rule

The freeze is a product and architecture boundary, not a ban on learning. New information can still change v1, but it must do so openly through the exception process. Any approved exception updates this chapter and the selection chapter in the same change so future implementation work has one clear source of truth.