# QA 验收报告 - videocompressor.online

- Task: t_c4f93f53
- Tenant: site-videocompressor-20260603
- URL: https://videocompressor.online/
- 日期: 2026-06-04 CST
- 验收人: 墨测
- 结论: ⚠️ QA_CONDITIONAL_GO

## 结论

videocompressor.online 最终真实用户任务 QA 通过核心上线门槛：生产固定域名可访问，核心压缩流程为真实浏览器本地处理，MP4/H.264/AAC 输出可下载，移动端无横向溢出，SEO P0 已修复，合规 P0=0。

不建议写成无条件 QA_GO。仍有 4 个上线前/上线即刻 P1 风险需要 Owner 接受或交给 launch checklist：support@ 邮件路由 MX 未验证、Plausible dashboard/真实用户事件回收未验证、首页 Lighthouse LCP 3.04s 超过 2.5s 目标、axe 检出 2 个 serious color-contrast 节点。

## 上游 Gate 读取

| 上游 | 文件 | Verdict | QA 处理 |
|---|---|---|---|
| Product Acceptance | `/root/.hermes/reports/site-videocompressor-20260603/product-acceptance.md` | PM_NO_GO（原因是旧 SEO_NO_GO） | 已读取；核心产品流此前已通过，旧 SEO blocker 已由后续 SEO_GO 覆盖 |
| Compliance Recheck | `/root/.hermes/reports/site-videocompressor-20260603/compliance-recheck.md` | COMPLIANCE_CONDITIONAL_GO | P0=0；复核时发现 privacy/terms 主要 P1 已修复，MX/Plausible dashboard 仍需 follow-up |
| SEO Final Recheck | `/root/.hermes/reports/site-videocompressor-20260603/seo-final-recheck-after-pm-remediation.md` | SEO_GO | 可进入 Final QA；GSC/Bing/IndexNow 不在该 SEO_GO 证据范围内 |
| Frontend SEO remediation | `/root/.hermes/reports/site-videocompressor-20260603/frontend-seo-remediation.md` | deployed | commit `26ed23d2868103ad67b469b9cb2113a83362b1fe` |

## 功能验收

| 项目 | 状态 | 备注 |
|---|---|---|
| 生产固定域名 | PASS | `curl -A 'Mozilla/5.0 QA'` 验证 `/`、5 个 P0 SEO/工具页、`/privacy/`、`/terms/`、`/favicon.ico`、`/og-image.png` 均 200 |
| 核心上传/选择 | PASS | Playwright 设置本地文件 `qa-input-720p.mp4`，页面显示 `SELECTED`、文件名、7.3MB、`video/mp4`，Start Compression 启用 |
| 预设 | PASS | Discord/WhatsApp/Email/Instagram 按钮实际点击后 target size 分别为 10/16/25/35MB |
| 压缩 | PASS | 7.65MB 720p MP4 在生产站压缩完成，用时约 12.0s，UI 显示 SUCCESS、Original/Output/Reduced by、Preset、Download MP4 |
| 下载 | PASS | 下载产物 `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/downloaded-compressed.mp4`，681,650 bytes |
| 输出格式 | PASS | `ffprobe`: container `mov,mp4,m4a,3gp,3g2,mj2`，video `h264`，audio `aac`，1280x720，duration 6.01s |
| no-upload 边界 | PASS | 压缩期间未观察到非 Plausible POST；实际记录中 POST=0；ffmpeg engine 从 unpkg GET 加载 JS/WASM，不上传媒体 |
| unsupported/error | PASS | 上传 `unsupported.txt` 后 UI 出现 `UNSUPPORTED`，提示 “This video is not supported yet. The first version focuses on MP4/H.264 sharing workflows.” |
| 登录/支付 | N/A | v0 无登录、无支付、无订阅，不纳入本次 E2E |

## UI/UX / 响应式

| 项目 | 状态 | 备注 |
|---|---|---|
| 桌面视觉 | PASS | 真实浏览器视觉复核：hero 与 compressor workbench 同屏可见，CTA、预设、输入、footer/nav 清晰；未见占位图/调试面板/明显 AI 壳 |
| 移动 390px | PASS | 真实浏览器视觉复核：单列布局，hero、CTA、workbench、预设、输入、FAQ、footer 可读；无两栏挤压 |
| 横向溢出 | PASS | Playwright 390px 检查 `/`、`/mp4-compressor/`、`/compress-video-for-discord/`、`/privacy/`、`/terms/`，`scrollWidth == clientWidth` |
| 移动导航 | PASS | 390px 有 Menu，header/nav 链接可见；无重复 hamburger 阻断 |
| 视觉/可访问性 | P1 | axe 检出 `color-contrast` serious，2 nodes；Lighthouse Accessibility 97，未阻断但应修 |

## 性能

Lighthouse command:

```bash
npx --yes lighthouse https://videocompressor.online/ --output=json --output-path=./lighthouse-home.json --chrome-flags='--headless=new --no-sandbox --disable-dev-shm-usage' --quiet
```

| 指标 | 结果 | 状态 |
|---|---:|---|
| Performance | 94 | PASS |
| Accessibility | 97 | PASS |
| Best Practices | 100 | PASS |
| SEO | 100 | PASS |
| LCP | 3043ms | P1：超过 2.5s 目标 |
| CLS | 0 | PASS |
| TBT | 43ms | PASS |
| Speed Index | 1103ms | PASS |

## SEO 基础复核

| 项目 | 状态 | 备注 |
|---|---|---|
| P0 routes | PASS | 6 个 P0 route 均 200 |
| title/meta | PASS | 每页 title/meta description 存在 |
| canonical | PASS | 6 个 P0 route 均为 self-referencing production canonical |
| H1 | PASS | 6 个 P0 route 均 1 个 H1 |
| 内容深度 | PASS | 生产 HTML visible word count：1176–1299（工具/SEO P0 页） |
| JSON-LD | PASS | 首页 WebSite/WebApplication/FAQPage；工具页 WebApplication/FAQPage/BreadcrumbList；privacy tool page CreativeWork/FAQPage/BreadcrumbList |
| robots/sitemap | PASS | `robots.txt` allow + sitemap；`sitemap.xml` 包含 8 URLs |
| forbidden claims | PASS | 未发现 unlimited/lossless/no quality loss/supports all formats/official 等正向高风险承诺；`sponsored` 只出现在 “not affiliated/endorsed/sponsored...” 否定免责声明中 |

## 安全 / 合规复核

| 项目 | 状态 | 备注 |
|---|---|---|
| HTTPS | PASS | TLS cert subject `videocompressor.online`，notAfter `Sep 1 15:20:15 2026 GMT` |
| no-upload / local-first | PASS | 无 upload/compress POST 观察；媒体下载为本地生成结果 |
| Privacy | PASS | 生产 `/privacy/` 已移除内部 “product compliance guidance” 文案；已披露 ffmpeg.wasm/unpkg runtime engine dependency |
| Terms | PASS | 生产 `/terms/` 已包含 as-is、liability limitation、Wyoming / Nextfield Labs LLC、平台 no-affiliation 口径 |
| support email | P1 | `dig +short MX videocompressor.online` 为空，`support@videocompressor.online` 可见但收信链路未验证 |
| npm audit | P2 | 源码 `npm ci` 仍报告 2 moderate vulnerabilities（Next/PostCSS 链路），静态站非 P0 |

## 埋点验收

| 项目 | 状态 | 备注 |
|---|---|---|
| Plausible script | PASS | HTML/script 中存在 `https://plausible.io/js/script.js`，`data-domain="videocompressor.online"` |
| 安全参数边界 | PASS | 上游合规已确认事件 props 为 bucketed/safe，不包含 filename/path/video content/blob URL/hash |
| 自动化事件回收 | NOT_VERIFIED | Playwright/Chrome headless 下 Plausible 脚本检测到 `navigator.webdriver` 后不发送事件；`window.plausible` 存在但请求被脚本反自动化逻辑跳过 |
| Dashboard receipt | P1 | 未拿到 Plausible dashboard 真实 page_view/核心事件截图或 API 证据；需要真实用户会话或 dashboard 侧确认 |
| GA4 / Clarity | N/A | 当前 v0 合规范围仅 Plausible；如后续添加 GA4/Clarity/ads/session replay，需重跑 cookie/consent/privacy QA |

## 源码 / 构建同步

在 QA workspace clone `https://github.com/mengjian-github/videocompressor` 后验证：

- HEAD: `26ed23d2868103ad67b469b9cb2113a83362b1fe`
- `npm ci`: passed，2 moderate vulnerabilities
- `npm run build`: passed，13 static pages generated
- `npm run verify`: passed，8 routes + static assets verified
- `npm run seo:audit`: passed for 6 P0 pages

## 阻断问题

| ID | 严重性 | 描述 | 责任人 |
|---|---|---|---|
| - | P0 | 无 P0 blocker | - |
| QA-P1-001 | P1 | `support@videocompressor.online` MX/email routing 未验证 | 墨运/Owner |
| QA-P1-002 | P1 | Plausible dashboard/真实用户事件回收未验证；自动化环境被 Plausible webdriver 逻辑跳过 | 墨运/Owner |
| QA-P1-003 | P1 | Lighthouse LCP 3043ms，超过 2.5s 目标，虽然 Performance 94 | 墨界 |
| QA-P1-004 | P1 | axe `color-contrast` serious 2 nodes | 墨影/墨界 |

## P2 / launch checklist

| ID | 描述 |
|---|---|
| QA-P2-001 | 保留 Next/PostCSS 2 moderate vulnerabilities 到依赖升级计划 |
| QA-P2-002 | GSC/Bing/IndexNow/webmaster submissions 是 SEO 后续流程；本次未验证 dashboard 提交证据 |
| QA-P2-003 | Cloudflare Crawler Hints 未用 Cloudflare API 复核；若上线流程把它列为硬要求，需要墨运/Owner 用 zone API 或 Dashboard 补证 |
| QA-P2-004 | 若要进一步强化 privacy/performance trust，可考虑 vendor `@ffmpeg/core` 到 first-party static assets |

## Evidence artifacts

- `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/final-qa-evidence.json`
- `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/final_qa_audit.mjs`
- `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/final_qa_audit.stdout.json`
- `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/lighthouse-home.json`
- `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/qa-input-720p.mp4`
- `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/qa-input-ffprobe.json`
- `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/downloaded-compressed.mp4`
- `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/downloaded-compressed-ffprobe.json`
- `/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/repo`

## Metadata

```json
{
  "qa_verdict": "QA_CONDITIONAL_GO",
  "p0_blockers": [],
  "p1_followups": [
    "Configure/verify MX or email routing for support@videocompressor.online; current dig MX output is empty.",
    "Verify Plausible dashboard receipt with a real non-webdriver browser session or dashboard/API evidence.",
    "Improve homepage LCP from 3043ms to under 2500ms target if launch policy keeps Core Web Vitals as P1 before distribution.",
    "Fix axe color-contrast serious findings on 2 nodes."
  ],
  "p2_followups": [
    "Track/remediate npm audit moderate Next/PostCSS advisory.",
    "Run GSC/Bing/IndexNow/webmaster submission workflow after Owner approval.",
    "Verify Cloudflare Crawler Hints via Cloudflare API/Dashboard if required by launch gate.",
    "Consider first-party vendoring of @ffmpeg/core static assets."
  ],
  "checks_run": [
    "kanban_show t_c4f93f53",
    "skill_view kanban-worker",
    "read product-acceptance.md, compliance-recheck.md, seo-final-recheck-after-pm-remediation.md, frontend-seo-remediation.md",
    "send START to telegram:-1003750190535:8032",
    "generated 7.3MB 720p MP4 fixture with ffmpeg and unsupported txt fixture",
    "Playwright production route/html/SEO/analytics scan",
    "Playwright production preset click checks for Discord/WhatsApp/Email/Instagram",
    "Playwright unsupported file error-state check",
    "Playwright real production compression and download check",
    "ffprobe downloaded compressed MP4",
    "Playwright mobile 390px checks for /, /mp4-compressor/, /compress-video-for-discord/, /privacy/, /terms/",
    "browser visual desktop homepage inspection",
    "browser visual 390px mobile homepage inspection",
    "Lighthouse homepage audit",
    "curl route smoke with browser UA",
    "DNS MX/TXT lookup and TLS certificate check",
    "git clone source repo, verify HEAD 26ed23d2868103ad67b469b9cb2113a83362b1fe, npm ci, npm run build, npm run verify, npm run seo:audit"
  ],
  "artifact_paths": [
    "/root/.hermes/reports/site-videocompressor-20260603/final-qa.md",
    "/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/final-qa-evidence.json",
    "/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/final_qa_audit.mjs",
    "/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/final_qa_audit.stdout.json",
    "/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/lighthouse-home.json",
    "/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/downloaded-compressed.mp4",
    "/root/.hermes/kanban/boards/site-factory/workspaces/t_c4f93f53/downloaded-compressed-ffprobe.json"
  ],
  "next_inputs": [
    "Owner may approve QA_CONDITIONAL_GO if P1 items are accepted into launch checklist.",
    "Before heavy distribution, verify support@ email routing and Plausible dashboard event receipt.",
    "If Owner requires strict Core Web Vitals/accessibility clean pass before launch, send QA-P1-003/QA-P1-004 back to frontend/design."
  ]
}
```
