80 lines
3.7 KiB
Markdown
80 lines
3.7 KiB
Markdown
---
|
||
phase: 7
|
||
slug: wxread
|
||
status: draft
|
||
nyquist_compliant: true
|
||
wave_0_complete: false
|
||
created: 2026-05-22
|
||
---
|
||
|
||
# Phase 7 — Validation Strategy
|
||
|
||
> Per-phase validation contract for WXRead custom pagination-attribute closure.
|
||
|
||
---
|
||
|
||
## 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 the native text sample books still open.
|
||
- Before execution handoff: confirm the semantic-attribute and pagination-diagnostic 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 |
|
||
|---------|------|------|-------------|------------|-----------------|-----------|-------------------|-------------|--------|
|
||
| 07-01-01 | 07-01 | 1 | ATTR-01 | — | N/A | build | `xcodebuild ... build` | ✅ | ⬜ pending |
|
||
| 07-01-02 | 07-01 | 1 | ATTR-01 / ATTR-03 | — | N/A | build | `xcodebuild ... build` | ✅ | ⬜ pending |
|
||
| 07-02-01 | 07-02 | 2 | ATTR-01 / ATTR-02 | — | N/A | simulator | `build_run_sim` | ✅ | ⬜ pending |
|
||
| 07-02-02 | 07-02 | 2 | ATTR-03 | — | N/A | simulator | `build_run_sim` | ✅ | ⬜ pending |
|
||
| 07-03-01 | 07-03 | 3 | ATTR-02 / ATTR-03 | — | N/A | manual | simulator inspection | ✅ | ⬜ pending |
|
||
| 07-03-02 | 07-03 | 3 | ATTR-01 / ATTR-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.
|
||
- Demo validation must include at least one native text sample with images/attachments and one sample containing code/list/table/blockquote-like structure.
|
||
|
||
---
|
||
|
||
## Manual-Only Verifications
|
||
|
||
| Behavior | Requirement | Why Manual | Test Instructions |
|
||
|----------|-------------|------------|-------------------|
|
||
| `avoidPageBreakInside` / `pageBreakBefore` / `pageBreakAfter` 规则能在分页日志或诊断中看见 | ATTR-01 | 需要结合真实章节分页结果,而不是只看源码 | 打开 native text 样本,记录分页摘要,确认强制分页或 avoid-break 命中会出现在诊断输出 |
|
||
| 图片/附件垂直居中等语义在 page metadata 或展示侧可见 | ATTR-02 | 需要运行时确认附件语义没有在 attributed string 到分页器之间丢失 | 打开包含图片的章节,检查 demo 日志或调试输出是否显示 attachment semantic / vertical-center 信息 |
|
||
| 代码块、表格、列表、引用块分类可区分并进入分页诊断 | ATTR-03 | 这是复杂样本行为,必须在真实内容上确认 | 打开复杂图文章节,确认诊断摘要能区分 block kind,并能解释分页边界为何调整 |
|
||
|
||
---
|
||
|
||
## 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
|
||
|