--- phase: 07 slug: phase-06-mention-upload status: verified nyquist_compliant: true wave_0_complete: true created: 2026-04-17 --- # Phase 07 — Validation Strategy > Per-phase validation contract for feedback sampling during execution. --- ## Test Infrastructure | Property | Value | |----------|-------| | **Framework** | Vitest + Playwright(frontend) | | **Config file** | `frontend/vitest.config.ts`, `frontend/playwright.config.ts` | | **Quick run command** | `cd frontend && pnpm -s test -- --run src/core/threads` | | **Full suite command** | `cd frontend && pnpm -s lint && pnpm -s typecheck && pnpm -s test:e2e --grep "input|compose|mention"` | | **Estimated runtime** | ~240 seconds | --- ## Sampling Rate - **After every task commit:** Run `cd frontend && pnpm -s test -- --run src/core/threads` - **After every plan wave:** Run `cd frontend && pnpm -s lint && pnpm -s typecheck` - **Before `/gsd-verify-work`:** Full suite must be green - **Max feedback latency:** 300 seconds --- ## Per-Task Verification Map | Task ID | Plan | Wave | Requirement | Threat Ref | Secure Behavior | Test Type | Automated Command | File Exists | Status | |---------|------|------|-------------|------------|-----------------|-----------|-------------------|-------------|--------| | 07-01-01 | 01 | 1 | P7-01, P7-02 | T-07-01 | 发送前拼接且消息区不回显拼接文案 | unit + e2e | `node --test frontend/src/core/threads/hooks.test.ts` + `cd frontend && pnpm -s test:e2e --grep "DF-INPUT-008A"` | ✅ | ✅ green | | 07-01-02 | 01 | 1 | P7-03 | T-07-02 | 附件/Skill 名来源、顺序与去重规则一致 | unit | `node --test frontend/src/core/threads/hooks.test.ts` | ✅ | ✅ green | | 07-01-03 | 01 | 1 | P7-04 | T-07-03 | 所有发送入口行为一致,不出现分叉 | e2e | `cd frontend && pnpm -s test:e2e --grep "DF-INPUT-003|DF-INPUT-005|DF-INPUT-008A"` | ✅ | ✅ green | *Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky* --- ## Wave 0 Requirements - [x] `frontend/src/core/threads/hooks.test.ts` — 已覆盖提交态增强文本、顺序与去重断言 - [x] `frontend/src/components/workspace/input-box.test.tsx` — 由 E2E 发送入口链路覆盖,无独立缺口 - [x] `frontend/tests/e2e/input-and-compose.spec.ts` — 已包含“消息区不显示拼接文案”回归(DF-INPUT-008A) --- ## Manual-Only Verifications | Behavior | Requirement | Why Manual | Test Instructions | |----------|-------------|------------|-------------------| | 多语言文案下拼接语句可读性 | P7-01 | 文案自然性主观 | 在中文/英文 UI 下分别发送含附件+Skill消息,人工检查生成文本 | --- ## Validation Sign-Off - [x] All tasks have `` verify or Wave 0 dependencies - [x] Sampling continuity: no 3 consecutive tasks without automated verify - [x] Wave 0 covers all MISSING references - [x] No watch-mode flags - [x] Feedback latency < 300s - [x] `nyquist_compliant: true` set in frontmatter **Approval:** verified 2026-04-17 --- ## Validation Audit 2026-04-17 | Metric | Count | |--------|-------| | Gaps found | 0 | | Resolved | 0 | | Escalated | 0 |