# AI Editor RSP Hero Optimization — SEO Recheck Pre-Implementation

- task_id: t_206101d6
- role: moyin / SEO Recheck
- project_slug: aieditorrsp
- repo: /root/projects/aieditorrsp
- production_url: https://aieditorrsp.net/
- generated_at_utc: 2026-06-03T08:00:05Z
- upstream_product_contract: /root/.hermes/reports/aieditorrsp-hero-optimization-20260603/product-scope-acceptance-t_b3582c36.md
- upstream_design_contract: /root/.hermes/reports/aieditorrsp-hero-optimization-20260603/design-acceptance.md
- prior_seo_contract: /root/.hermes/reports/aieditorrsp-hero-optimization-20260603/seo-recheck-pre.md

## 1. Verdict

`SEO_CONTRACT_GO_FOR_FRONTEND_IMPLEMENTATION`.

前端可以继续做 hero-only implementation，但必须把 SEO guardrails 当硬约束保留。产品合同和设计合同没有要求改动 title/canonical/schema/sitemap，也明确禁止把长 SEO copy 塞进 hero editor panel；这与 SEO 目标一致。

当前共享 repo 已出现未提交实现 diff：

- `M src/app/globals.css`
- `M src/components/ProductPreviewEditor.tsx`

我没有改代码。本次只做 SEO 合同复核与当前 workspace 静态检查；最终 SEO GO 仍需在 mojie commit/push/deploy 后重新跑生产检查。

## 2. Contract recheck

| Gate | Verdict | Evidence |
|---|---:|---|
| H1 semantics | PASS | `src/app/page.tsx:15` keeps `AI Image Editor With Prompt Templates`; covers `AI Image Editor` + `Prompt Templates` |
| Intro semantics | PASS | `src/app/page.tsx:16` keeps upload/source photo, reusable style prompt, portraits/product/social assets, prompt control |
| metadata helper | PASS | `src/app/page.tsx:6` keeps `export const metadata: Metadata = makeSeoMetadata("/")` |
| JSON-LD route | PASS | `src/app/page.tsx:10` keeps `<SeoJsonLd route="/" />` |
| SEO expansion route | PASS | `src/app/page.tsx:48` keeps `<SeoExpansion route="/" />` after product/safety sections, not inside hero editor |
| canonical | PASS | `src/lib/seo-data.json:8` keeps `https://aieditorrsp.net/`; helper maps it to canonical + OG URL |
| OG/Twitter | PASS | `src/lib/seoHelpers.tsx` continues to generate OpenGraph/Twitter from SEO data; no contract asked to alter it |
| sitemap | PASS | `src/app/sitemap.ts:2` includes `/` and core routes |
| robots/indexability | PASS | `src/app/robots.ts:2` allows `/`, declares sitemap, only blocks checkout/stripe API paths |
| SEO copy placement | PASS | `SeoExpansion route="/"` remains below primary content and before footer; not moved into `ProductPreviewEditor` |
| Hero editor SEO/compliance noise | PASS on current workspace diff | home branch no longer renders `{statePanel}` / `<CreditAccountPanel compact />`; hard-coded `2 free generations left today` absent |
| Provider/API wording in home hero | PASS on current workspace diff | home branch static render avoids `/api/credits`, `/api/generate-image`, `fal processing`; these remain in non-home/editor logic or fetch calls, not visible initial hero copy |

## 3. Checks run

1. Loaded `kanban-worker` skill.
2. Loaded `site-seo-review` skill.
3. Read Kanban context for `t_206101d6`.
4. Sent Telegram `[START]` to `telegram:孟健一人公司`, message_id `7960`.
5. Read upstream product contract: `/root/.hermes/reports/aieditorrsp-hero-optimization-20260603/product-scope-acceptance-t_b3582c36.md`.
6. Read upstream design contract: `/root/.hermes/reports/aieditorrsp-hero-optimization-20260603/design-acceptance.md`.
7. Read prior SEO contract: `/root/.hermes/reports/aieditorrsp-hero-optimization-20260603/seo-recheck-pre.md`.
8. Inspected source files:
   - `src/app/page.tsx`
   - `src/components/ProductPreviewEditor.tsx`
   - `src/app/globals.css`
   - `src/lib/seo-data.json`
   - `src/lib/seoHelpers.tsx` via search evidence
   - `src/app/sitemap.ts`
   - `src/app/robots.ts`
9. Ran targeted source search for SEO primitives and disallowed hero terms.
10. Ran `git diff -- src/app/page.tsx src/components/ProductPreviewEditor.tsx src/app/globals.css src/lib/seo-data.json src/lib/seoHelpers.tsx src/app/sitemap.ts src/app/robots.ts`.
11. Ran static guardrail script: 15/15 checks passed.
12. Ran `npm run seo:audit`: `ok: true`, `failures: []`; home `/` word_count `1285`, semantic_density_pct `12.14`, img_missing_alt `0`; all listed routes have no failures.
13. Captured git state: HEAD `ce2f1837c58e968d9ed84788f15dada803346ce4`, worktree dirty in `globals.css` and `ProductPreviewEditor.tsx`.

## 4. Residual risk

- Final SEO GO cannot be granted until frontend owns the current diff, commits/pushes/deploys, and production is rechecked.
- Current production may still reflect old hero until deploy; this precheck only confirms the contract and current workspace direction preserve SEO.
- Home meta description remains 125 chars from the prior SEO report; acceptable for this hero-only task, but still P1 content follow-up if final gate enforces 140–160 chars.
- Home branch still contains state text after user actions (`provider availability`, `credits checked`) and actual `/api/generate-image` fetch code. That is acceptable for functional behavior, but compliance must verify exact credit/provider wording after implementation.
- If frontend later compresses layout by hiding H1/intro, moving SEO copy into client-only state, or deleting `<SeoExpansion route="/" />`, this SEO_CONTRACT_GO is invalid.

## 5. Next inputs

For `t_108ef1f6` / mojie frontend implementation:

- Preserve `src/app/page.tsx` SEO primitives exactly unless SEO approves a copy update.
- Keep `ProductPreviewEditor surface="home"` compact: upload source image → prompt/template → generate.
- Do not render Account Credits, Pro monthly/yearly, Credit pack, hard-coded quota, full idle/result panel, or provider/API implementation copy in the initial home hero.
- Do not move `SeoExpansion route="/"` into the hero editor panel.
- After implementation: commit, push, deploy, then trigger final SEO/design/compliance/product rechecks with production screenshots.

## 6. Machine-readable handoff

```json
{
  "project_slug": "aieditorrsp",
  "seo_verdict": "SEO_CONTRACT_GO_FOR_FRONTEND_IMPLEMENTATION",
  "primary_keyword": "AI image editor with prompt",
  "artifact_paths": [
    "/root/.hermes/reports/aieditorrsp-hero-optimization-20260603/seo-recheck-pre-implementation-t_206101d6.md",
    "/root/.hermes/reports/aieditorrsp-hero-optimization-20260603/seo-recheck-pre.md",
    "/root/.hermes/reports/aieditorrsp-hero-optimization-20260603/product-scope-acceptance-t_b3582c36.md",
    "/root/.hermes/reports/aieditorrsp-hero-optimization-20260603/design-acceptance.md"
  ],
  "checks_run": [
    "read kanban context t_206101d6",
    "read product/design/prior SEO contracts",
    "source inspection for page.tsx/ProductPreviewEditor/globals.css/seo-data/sitemap/robots",
    "targeted source search for SEO primitives and disallowed hero copy",
    "git diff scoped to SEO-relevant files",
    "static guardrail script: 15/15 passed",
    "npm run seo:audit: ok true, failures empty"
  ],
  "residual_risk": [
    "current repo has uncommitted frontend/layout diff not owned by this SEO task",
    "final SEO GO requires deployed production recheck after mojie implementation",
    "home meta description remains 125 chars; P1 final content follow-up only",
    "post-action credit/provider wording still needs compliance verification"
  ],
  "next_inputs": [
    "mojie can implement hero-only simplification under this SEO contract",
    "preserve makeSeoMetadata('/'), SeoJsonLd route='/', SeoExpansion route='/', H1/intro semantics, canonical/OG/Twitter/sitemap/robots",
    "run final SEO recheck after commit/push/deploy and production screenshots"
  ],
  "next_assignee": "mojie"
}
```
