# pfpmaker.online — Design Acceptance Gate

- Task: t_82d65ef6
- Date: 2026-06-03
- Reviewer: 墨策
- Input design package: `/root/.hermes/reports/site-pfpmaker-20260603/design`
- Verdict: `DESIGN_ACCEPTANCE_CONDITIONAL_GO`

## 0. 结论

设计包可以交给前端实现，但必须带 2 个上线前条件：

1. 前端不得直接使用 Stitch 生成的人脸 / 真人照片 / anime-like 占位图；必须替换为抽象 initials、几何头像、裁切示意图或真实产品截图。
2. `/templates` 不能作为 index 页面实现，除非已有 12+ 个原创/授权、可应用的模板；否则按 `noindex,follow` 或暂不暴露为 SEO 页面。

这不是 Stitch 证据不足导致的 NO-GO。官方 Stitch 包、HTML、截图、状态覆盖和 handoff 结构满足进入开发的最低要求。

## 1. 验收依据

读取并对照：

- PRD: `/root/.hermes/reports/site-pfpmaker-20260603/prd-v1.md`
- Copy package: `/root/.hermes/reports/site-pfpmaker-20260603/copy-package.md`
- Compliance boundary: `/root/.hermes/reports/site-pfpmaker-20260603/compliance-boundary.md`
- Page matrix: `/root/.hermes/reports/site-pfpmaker-20260603/page-matrix.md`
- Design handoff: `/root/.hermes/reports/site-pfpmaker-20260603/design/HANDOFF.md`
- Stitch index: `/root/.hermes/reports/site-pfpmaker-20260603/design/stitch/screen-index.json`
- Verification: `/root/.hermes/reports/site-pfpmaker-20260603/design/VERIFICATION.json`
- Visual strips: `screens/key-desktop-strip.png`, `screens/key-mobile-strip.png`

## 2. 自动检查结果

检查脚本：`/root/.hermes/kanban/boards/site-factory/workspaces/t_82d65ef6/design_acceptance_checks.py`

关键输出：

```text
screen_count 20
source official-stitch-sdk
fallback none
projectId 4998158325019968850
missing_or_tiny []
CHECK pfpmaker_com hits 0
CHECK ai_overclaim hits 0
CHECK absolute_privacy hits 0
CHECK checkout_auth hits 0
```

说明：

- Stitch 证据齐：20 个 screen，`projectId/screenId/htmlUrl/imageUrl/localHtml/localScreenshot` 均存在。
- 不是 local fallback：`fallback_status=none`。
- HTML 和 PNG 均非空，无缺文件。
- 未发现 pfpmaker.com 社证/品牌混淆文案。
- 未发现 AI headshot/photoshoot、Generate AI PFP Now、unlimited 等 P0 误导承诺。
- 未发现 100% private / never leaves your device 等绝对隐私承诺。
- 未发现 Sign In / Checkout / Stripe / Buy Now 等 MVP 禁止入口。

可接受的命中：

- `official/endorsed/sponsored` 仅出现在 no-affiliation disclaimer 中，是合规必需文案，不是官方背书。
- `LinkedIn.png` 出现在 profile-picture export filename 示例文本中，不是平台 logo asset 引用；前端实现时仍应避免输出平台官方 logo 文件。

## 3. PRD / 产品对齐

| 检查项 | 状态 | 备注 |
|---|---|---|
| 首页首屏工具优先 | PASS | Hero 是上传/编辑器证明，不是纯营销大标题。 |
| P0 定位：Free PFP Maker + Platform Toolkit | PASS | 文案和布局围绕 upload → crop/style/preview → download。 |
| 不做重 AI headshot/photoshoot | PASS | AI 页为 planned/coming-next feature-state。 |
| no signup / no watermark / PNG/WebP | PASS | 首页和状态页有对应口径。 |
| 平台 preset | PASS | Discord、profile、AI bridge 和 editor states 均覆盖；具体 8 平台 preset 由前端实现时补齐。 |
| 首屏工具比例 | PASS_WITH_NOTE | 桌面 split hero 中右侧工具存在感足够；前端实现不得把工具缩成小 mockup 或把营销文案压过工具。 |
| 移动端可用 | PASS_WITH_NOTE | 移动端截图为单列，上传/编辑入口靠前；前端需按真实 390/430px 复测触控区域和滚动密度。 |

## 4. SEO / 页面矩阵对齐

| 页面/状态 | 状态 | 备注 |
|---|---|---|
| `/` | PASS | 首页 primary keyword、上传入口、FAQ/短答案结构覆盖。 |
| `/discord-pfp-maker` | PASS | 有独立 Discord safe-crop 语境，不是简单换标题。 |
| `/profile-picture-maker` | PASS | 覆盖 social / creator / professional，不升级为 AI headshot。 |
| `/ai-pfp-maker` | PASS_WITH_CONDITION | 可以 index，但必须继续保持 AI planned/current editor CTA，不得写 live generation。 |
| `/templates` | CONDITIONAL | 设计包未独立生成 templates screen；按 page matrix，只有真实可应用模板满足条件后才 index。 |
| Legal/contact | PASS_FOR_DESIGN | 未独立 Stitch，但 handoff 要求共用 token/header/footer，开发补页面即可。 |
| Editor states | PASS | empty / upload / edit / result / download / error 均有 desktop + mobile。 |

## 5. Copy / compliance 对齐

| 风险项 | 状态 | 备注 |
|---|---|---|
| 平台官方背书 | PASS | 没有 official/approved 作为卖点；disclaimer 保留。 |
| 平台 Logo/IP 素材 | PASS_WITH_NOTE | 未发现明显平台 logo 资产；前端实现仍禁止平台 logo/UI/品牌色作为核心视觉。 |
| pfpmaker.com 混淆 | PASS | 未发现竞品社证、PFPMaker alternative 主叙事或视觉复制。 |
| 绝对隐私承诺 | PASS | 使用 “where possible” 边界。 |
| AI 功能误导 | PASS | AI 页面为 planned/coming-next。 |
| 儿童/名人/IP 风险 | P1_CONDITION | Stitch 视觉里有人脸、真人照片、anime-like 占位；必须替换后才能生产上线。 |

## 6. 视觉验收

桌面视觉：

- Warm ivory + ink UI + teal/orange accent 有清晰设计系统，不像默认紫蓝 AI SaaS 模板。
- Hero/editor/平台页/AI 页视觉方向一致，符合轻工具站定位。
- Discord 页有 safe crop 图和 controls，符合“平台 preset toolkit”。
- Profile 页有 export matrix/use cases，避免只有首页换皮。
- AI 页以 planned styles 和 disclosure 为中心，没有把 AI 生成功能伪装成已上线。

移动端视觉：

- 单列结构成立，上传按钮、预览、控制面板、FAQ/底部信息能顺序阅读。
- 移动端工具状态覆盖完整：empty、edit、result/error 等都可作为开发参考。
- 主要风险不是布局，而是图片素材：人脸/真人/anime-like placeholder 在移动端更显眼，必须替换。

## 7. Acceptance checklist

| 项目 | 结果 |
|---|---|
| Official Stitch SDK evidence | PASS |
| fallback_status none | PASS |
| 公开核心 route desktop/mobile | PASS |
| Editor 全状态 desktop/mobile | PASS |
| HTML/CSS 真源存在 | PASS |
| Screenshots 存在 | PASS |
| Logo/favicon/OG assets | PASS |
| Content-fit matrix | PASS |
| PRD P0 工具边界 | PASS |
| SEO 页面矩阵 | PASS_WITH_CONDITION |
| Copy freeze | PASS |
| Compliance red lines | PASS_WITH_CONDITION |
| 首屏工具比例 | PASS_WITH_NOTE |
| 移动端可用 | PASS_WITH_NOTE |
| Stitch placeholder production safety | FAIL_UNTIL_REPLACED |

## 8. 必须传给前端的实现条件

P1 / launch-before-fix：

1. 替换所有 Stitch 生成的人脸、真人照片、anime-like 头像占位。
   - 可用：abstract initials avatars、geometric/blob avatars、safe crop diagrams、实际产品截图。
   - 禁用：pfpmaker.com 视觉、平台 UI/logo、动漫/游戏/名人/IP、AI headshot/photoshoot 图。
2. `/ai-pfp-maker` 保持 feature-state：当前编辑器可用，AI styles/background removal 是 planned/coming next；未实现前 CTA 不得写 `Generate AI PFP Now`。
3. `/templates` 只有在 12+ 原创/授权、可应用模板存在时 index；否则 noindex 或延后。
4. 保留 privacy copy 的非绝对口径：`The core editor is designed to process basic edits in your browser where possible.`
5. MVP 不出现登录、支付、Pro checkout、账号中心假入口。
6. 全站 header/footer/token 统一；footer 必须是页面收尾。

## 9. 下游建议

给前端：

- 可按 Stitch HTML/CSS 实现，不要重新发挥成 generic Tailwind SaaS。
- 优先实现首页工具首屏、editor 状态、Discord preset、Profile/AI 子页。
- 素材替换是开发硬条件，不是 QA 建议。

给合规/QA：

- Final QA 时必须实际上传测试图并检查 Network，确认图片是否上传到 Worker/R2/第三方。
- 若实现接入服务端图片处理或 AI，需要回墨盾复审 Privacy/Terms。

## 10. Metadata

```json
{
  "design_acceptance_verdict": "DESIGN_ACCEPTANCE_CONDITIONAL_GO",
  "design_package_verdict": "DESIGN_CONDITIONAL_GO",
  "artifact_paths": [
    "/root/.hermes/reports/site-pfpmaker-20260603/design-acceptance.md",
    "/root/.hermes/reports/site-pfpmaker-20260603/design/HANDOFF.md",
    "/root/.hermes/reports/site-pfpmaker-20260603/design/content-fit-matrix.md",
    "/root/.hermes/reports/site-pfpmaker-20260603/design/stitch/screen-index.json",
    "/root/.hermes/reports/site-pfpmaker-20260603/design/VERIFICATION.json",
    "/root/.hermes/reports/site-pfpmaker-20260603/design/screens/key-desktop-strip.png",
    "/root/.hermes/reports/site-pfpmaker-20260603/design/screens/key-mobile-strip.png"
  ],
  "verification": {
    "official_stitch_sdk": true,
    "fallback_status": "none",
    "screen_count": 20,
    "html_count": 20,
    "png_count": 20,
    "missing_or_tiny_files": 0,
    "text_scan": {
      "pfpmaker_com_confusion": 0,
      "ai_overclaim": 0,
      "absolute_privacy_claim": 0,
      "checkout_auth_ui": 0
    },
    "visual_review": "key desktop/mobile strips inspected"
  },
  "acceptance_checklist": {
    "prd_alignment": true,
    "seo_matrix_alignment": true,
    "copy_alignment": true,
    "compliance_boundary_alignment": true,
    "hero_tool_ratio_acceptable": true,
    "mobile_design_usable_as_reference": true,
    "stitch_official_evidence_present": true,
    "editor_states_covered": true,
    "logo_favicon_og_present": true,
    "placeholder_faces_require_replacement": true,
    "templates_index_conditional": true
  },
  "residual_risk": [
    "Stitch-generated face/photo/anime-like placeholders must be replaced before production.",
    "/templates should remain noindex or deferred unless real original/licensed applicable templates exist.",
    "Final QA must verify real network behavior before accepting local-first privacy wording.",
    "Mobile implementation must be rechecked at 390/430px after React build; Stitch mobile screens are design reference, not runtime proof."
  ],
  "next_inputs": {
    "to_frontend": "Implement from Stitch HTML/CSS, preserve upload-first tool layout and replace risky placeholders with abstract/original/product assets before production.",
    "to_compliance": "Recheck if implementation uploads images server-side, enables AI, or introduces templates/assets beyond abstract originals.",
    "to_final_qa": "Verify upload/edit/download flow, network image handling, mobile breakpoints, legal/footer routes, SEO metadata and analytics after deployment."
  }
}
```
