ReadViewSDK/.planning/phases/06-page-geometry-and-interaction-hit-layer/06-VALIDATION.md
2026-05-22 14:20:33 +08:00

3.7 KiB

phase slug status nyquist_compliant wave_0_complete created
6 page-geometry-and-interaction-hit-layer draft true false 2026-05-22

Phase 6 — Validation Strategy

Per-phase validation contract for page geometry and selection overlay work.


Test Infrastructure

Property Value
Framework none — simulator build/run and manual UAT
Config file none
Quick run command xcodebuild -workspace ReadViewDemo/ReadViewDemo.xcworkspace -scheme ReadViewDemo -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 17' build
Full suite command xcodebuild -workspace ReadViewDemo/ReadViewDemo.xcworkspace -scheme ReadViewDemo -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 17' build && build_run_sim
Estimated runtime ~180 seconds

Sampling Rate

  • After every task commit: run the quick build command.
  • After every plan wave: run the full simulator build/run path and confirm reader startup.
  • Before execution handoff: confirm the selection overlay and offset preservation checks below.
  • Max feedback latency: 180 seconds.

Per-Task Verification Map

Task ID Plan Wave Requirement Threat Ref Secure Behavior Test Type Automated Command File Exists Status
06-01-01 06-01 1 LAYOUT-01 N/A build xcodebuild ... build pending
06-01-02 06-01 1 LAYOUT-03 N/A build xcodebuild ... build pending
06-02-01 06-02 2 LAYOUT-02 N/A simulator build_run_sim pending
06-02-02 06-02 2 LAYOUT-03 N/A simulator build_run_sim pending
06-03-01 06-03 3 LAYOUT-01 N/A manual simulator inspection pending
06-03-02 06-03 3 LAYOUT-02 N/A manual simulator inspection pending
06-03-03 06-03 3 LAYOUT-03 N/A manual simulator inspection pending

Status: pending · green · red · ⚠️ flaky


Wave 0 Requirements

  • Existing build path covers the phase requirements; no new test target is required.
  • Manual checks must be available in the demo app using the native text sample books.

Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
Selection overlay appears and tracks the selected text range LAYOUT-02 Overlay geometry is visible behavior, not a source-only assertion Open a native text sample, select text, verify overlay bounds follow the selected text and not the default UITextView selection chrome
Selection still serializes through RDEPUBTextOffsetRangeInfo LAYOUT-03 Offset continuity is best verified through persisted selection state and runtime logs Create a selection, refresh the page, and confirm restored selection points to the same absolute offsets
Geometry queries do not break page navigation / current location LAYOUT-01 Page geometry must be validated through runtime behavior and current-location flow Move between pages, search, and restore location after repagination; confirm page mapping stays stable

Validation Sign-Off

  • All tasks have <acceptance_criteria> or manual checks
  • Sampling continuity: no 3 consecutive tasks without a build or simulator check
  • Wave 0 covers missing infrastructure
  • No watch-mode flags
  • Feedback latency < 180s
  • nyquist_compliant: true set in frontmatter

Approval: pending