Files
MeetPaprika/working/01-项目功能内容.md

772 lines
30 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 01-项目功能内容
## 1. 项目基线
- 项目名称MeetPaprika / Paprika
- 当前对标文件:`/home/mes123456/MeetPaprika/doc/index.html`
- 原始对标形态:单文件静态网站 mockupHTML、CSS、页面数据、页面渲染脚本全部内联在 `doc/index.html`
- 品牌主张Attorney Curated Evidence Building for O-1 Talent
- 业务定位:面向 O-1 人才的证据建设服务,帮助 founders、engineers、researchers、executives、creators 等提前建设媒体报道、评审机会、学术文章和完整证据包
- 页面运行方式:读取 URL 查询参数 `?page=...`,将对应页面 HTML 字符串写入 `<main id="app"></main>`
## 2. 技术路线基准
### 当前静态实现
- 入口文件:`doc/index.html`
- 样式:内联 `<style>`
- 脚本:内联 `<script>`
- 状态:作为旧版静态 mockup 和视觉对标基线保留;正式工程已在根目录新增
- 路由:查询参数路由,不依赖 History API
### 已落地的正式开发技术架构
已明确采用:
- 前端框架Next.js + React
- 数据库PostgreSQL
- 数据访问层Prisma ORM
- 表单处理Next.js Route Handler `POST /api/submissions` 承接 Start Here 和 Ask a Question
- 部署端口Next.js 服务或反向代理后的应用服务监听 `8082`
- HTTPS由 Nginx/Caddy/云服务反向代理终止 TLS转发到本机 `8082`
架构目标:
- 将当前 `doc/index.html` 的视觉和内容完整迁移到 Next.js 页面/组件。
-`start``ask` 从视觉 mockup 改为真实表单。
- 将提交数据保存到 PostgreSQL。
- 预留 CV/resume 文件上传能力,但必须先明确存储方案、文件大小、访问权限和隐私规则。
- 保留所有 legal disclaimer防止用户误以为提交表单会创建 attorney-client relationship。
当前代码状态:
- 根目录已存在 Next.js App Router 工程。
- `app/[page]/page.tsx` 渲染从 `doc/index.html` 抽取的静态页面内容。
- `app/start/page.tsx``app/ask/page.tsx` 已替换为真实 React 表单。
- `app/api/submissions/route.ts` 已实现 JSON 提交、Zod 校验和 Prisma 写入。
- `prisma/schema.prisma``prisma/migrations/20260706120000_init/migration.sql` 已建立 `Submission``SubmissionFile` 表。
- `.env.example` 已提供 `DATABASE_URL``NEXT_PUBLIC_SITE_URL` 模板,不包含真实密码。
- 成功入库尚需生产或本地 PostgreSQL `DATABASE_URL`
建议工程结构:
```text
app/
page.tsx
press/page.tsx
judging/page.tsx
scholarly/page.tsx
services/page.tsx
why/page.tsx
resources/page.tsx
faq/page.tsx
start/page.tsx
ask/page.tsx
thanks/page.tsx
terms/page.tsx
privacy/page.tsx
disclaimer/page.tsx
api/
submissions/route.ts
components/
SiteHeader.tsx
SiteFooter.tsx
Hero.tsx
ServiceCard.tsx
ServicesCta.tsx
LegalPage.tsx
forms/
StartForm.tsx
AskForm.tsx
lib/
db.ts
validators.ts
submissions.ts
prisma/
schema.prisma
```
### 目标发布环境
- 目标域名:`https://paprikalaw.com/`
- 云服务器:`170.106.192.152`
- 登录用户:`ubuntu`
- 目标端口:`8082`
- 可用端口段:`8080-8099`
- PostgreSQL用户确认已在服务器安装完成待验证服务状态、版本、应用数据库和应用用户
- SSH 凭据:用户已在交接信息中提供;长期文档不保存明文密码,后续应改为 SSH key、部署密钥或受控密钥库
- 目标发布形态HTTPS 对外访问,服务内部监听 `8082` 或由反向代理转发至 `8082`
### 邮箱系统需求
- 普通用户网页登录:`https://mail.paprikalaw.com/webmail/`
- 管理员网页登录:`https://mail.paprikalaw.com/admin/`
- 管理员邮箱:`admin@paprikalaw.com`
- 普通公司邮箱:
- `info@paprikalaw.com`
- `contact@paprikalaw.com`
- `support@paprikalaw.com`
- `sales@paprikalaw.com`
- `marketing@paprikalaw.com`
- `hr@paprikalaw.com`
- `finance@paprikalaw.com`
- `billing@paprikalaw.com`
- `legal@paprikalaw.com`
- `service@paprikalaw.com`
- 凭据规则:用户已提供统一初始密码;长期文档不保存明文密码。创建后应要求首次登录修改,或为每个邮箱生成独立强密码。
邮件系统与网站的关系:
- 表单通知邮箱建议使用 `support@paprikalaw.com``contact@paprikalaw.com`
- 法务和隐私页面中的联系邮箱目前是 `support@meetpaprika.com`,上线前需统一为 `paprikalaw.com` 域名邮箱或保留现状并记录理由。
- 若 Next.js 表单提交后发送邮件通知,需要配置 SMTP 凭据、发件地址、收件地址和退信策略。
## 3. 当前页面路由清单
| 路由 | 页面 | 导航入口 | 当前用途 | 状态 |
| --- | --- | --- | --- | --- |
| `?page=home` | Home | 品牌 logo 默认入口 | 品牌主张、三大核心服务、提前建设证据、工作流程、价格起点 | 已实现 mockup |
| `?page=press` | Press | 顶部导航 Press | 媒体报道服务、证据标准、应避免的 press 类型、代表性 outlet 网络 | 已实现 mockup |
| `?page=judging` | Judging | 顶部导航 Judging | 评审机会服务、哪些 judging counts、judging network、证据包内容 | 已实现 mockup |
| `?page=scholarly` | Scholarly Articles | 顶部导航 Scholarly Articles | 学术文章服务、发表策略、证据包价值 | 已实现 mockup |
| `?page=services` | Services | 顶部导航 Services | 6 类服务卡片和服务转化 CTA | 已实现 mockup |
| `?page=why` | Why Paprika | 顶部导航 Why Paprika、footer About | 差异化说明、证据质量、时间节奏、完整证据记录 | 已实现 mockup |
| `?page=resources` | Resources / O-1A Criteria | Resources 下拉 | 8 项 O-1A criteria 的 plain-English overview | 已实现 mockup |
| `?page=faq` | FAQ | Resources 下拉、footer FAQ | Paprika、O-1、timeline、pricing/refund FAQ | 已实现 mockup |
| `?page=start` | Start Here | 顶部 CTA、各页面 CTA | 背景资料提交视觉 mockup | 已实现视觉,未实现提交 |
| `?page=ask` | Ask a Question | 各页面 secondary CTA | 简短问题提交视觉 mockup | 已实现视觉,未实现提交 |
| `?page=thanks` | Thank You | 提交按钮跳转 | 感谢页 | 已实现 mockup |
| `?page=terms` | Terms | footer Terms | 服务条款草稿 | 已实现草稿,需法务确认 |
| `?page=privacy` | Privacy | footer Privacy | 隐私政策草稿 | 已实现草稿,需法务确认 |
| `?page=disclaimer` | Disclaimer | footer Disclaimer | 法律免责声明草稿 | 已实现草稿,需法务确认 |
| `?page=blog` | Blog | 无公开导航 | Field notes 文章卡片占位 | 代码存在,未公开 |
| `?page=about` | About | 无公开导航footer About 实际指向 `why` | 公司说明占位 | 代码存在,未公开 |
未识别路由会回退到 `home`,页面标题为 `Paprika - ${selected}`
## 4. 全站公共模块
### Header
- 品牌区:
- `Paprika`
- `Attorney Curated Evidence Building for O-1 Talent`
- 顶部导航:
- Press
- Judging
- Scholarly Articles
- Services
- Why Paprika
- Resources 下拉
- Start Here CTA
- Resources 下拉:
- Frequently Asked Questions -> `?page=faq`
- O-1A Criteria Overview -> `?page=resources`
- 当前页高亮:
- 根据 `data-page` 和当前 `selected` 页面添加 `active`
-`selected``faq``resources`Resources 触发器高亮
### Footer
- 链接:
- About -> `?page=why`
- FAQ -> `?page=faq`
- Terms -> `?page=terms`
- Privacy -> `?page=privacy`
- Disclaimer -> `?page=disclaimer`
- 固定声明:
- Paprika is not a law firm and does not provide legal advice or immigration representation.
- Use of our services does not create an attorney-client relationship.
## 5. 首页内容
### Hero
- H1O-1 evidence should not be built in a panic.
- Subhead帮助高成就人才提前建设 credible public recognition
- Primary CTASend Us Your Profile -> `?page=start`
- Secondary CTAAsk a Question -> `?page=ask`
- Microcopy提交 LinkedIn 或 CV 后 review background并推荐 evidence path
- 时间主张The only thing you cannot buy later is time.
### Core services
三张服务卡片:
1. PressEditorial feature in a recognized publication in your field.
2. JudgingOpportunities to judge work that matters.
3. Scholarly ArticlesScholarly articles in credible, peer-reviewed publications.
### Start Early
- 强调证据不能临近 filing 时集中出现
- 目标是构建 natural publication and judging timeline
- 输出给用户或 immigration attorney 使用的 stronger materials
### Our standard
提出推荐前要判断的 8 个问题:
1. 文章是否关于个人而不只是公司或产品
2. 是否连接特定专业领域和 O-1 criteria
3. outlet 是否 credible、independent、documentable
4. timing 是否自然
5. judging 是否真实 evaluative
6. authorship 是否体现 expertise
7. 是否能清晰整理进 evidence package
8. 是否补强其他 existing criteria
### How it works
四步流程:
1. Send us your profile
2. Assess background and recommend evidence path
3. Build credible public record
4. Receive documented evidence package
价格带:
- Packages start at `$1,699+`
- final pricing depends on outlet level, timeline, field, evidence goals
## 6. Press 页面内容
### 核心主张
- Attorney-Curated Press for O-1 Talent
- Press that works as evidence, not just visibility
- 关注 outlet、format、field relevance、documentation
### Cadence note
- 避免 filing 前突然集中出现的 uncurated evidence
- 构建 natural cadence of press over time
### What Paprika looks for
Press 推荐前检查:
1. 文章是否关于本人
2. headline 是否出现姓名并连接领域
3. 是否 genuine editorial coverage
4. outlet 是否有真实 readership、editorial standards、clean track record
5. 是否存在 contributor、sponsored、editorial-staff-not-involved 等 disclosure
6. timing 是否自然
7. 是否 complement other O-1 criteria
结论句The outlet name is not the evidence. The editorial independence is.
### What to avoid
当前展示三类不推荐 press
- Contributor content
- Editorial staff not involved
- Sponsored or promotional placement
原因:
- outlet 没有 editorially choose to cover this person
- third party produced or paid for content
- 不体现 independent recognition
### Representative outlets
页面列出代表性 outlet 网络,包括 Forbes、Bloomberg、Vogue、Business Insider、USA Today、TechCrunch、VentureBeat、Los Angeles Times、Newsweek、Fast Company Mexico、Time 等。正式上线前需要确认是否拥有真实合作网络、是否允许展示、是否需要增加免责声明。
## 7. Judging 页面内容
### 核心主张
- Judging roles should show that your field trusts your expertise.
- 服务目标source and vet selective evaluation opportunities
### What counts as judging
当前列出 6 类:
1. Startup pitch competitions
2. Hackathon & innovation judging
3. Industry award committees
4. Academic & conference peer review
5. Grant review panels
6. Research competition judging
### Judging network examples
当前展示示例 chipsY Combinator Demo Day Adjacent、TechCrunch Disrupt、SXSW Pitch、Web Summit、Slush、Collision、Startup Grind Global、MassChallenge、Plug and Play、500 Global、Berkeley SkyDeck、Techstars、Founder Institute、academic journal review、conference TPCs、design competition juries、arts award panels、research grant committees 等。
正式上线前需要确认名称使用风险、真实性、合作关系或改为“示例类型”。
### Evidence package
Judging package 当前包含:
- Signed organizer recommendation letter
- Judge selection documentation
- Organizer correspondence
- Agenda & event page
- Panel agenda & bio listing
- Ready-to-use packet
## 8. Scholarly Articles 页面内容
核心内容:
- Scholarly articles in credible, peer-reviewed publications
- 服务覆盖 peer-reviewed、Scopus-indexed、Google-verified journals
- 两个 panel
- Attorney-curated strategy
- Complete evidence packet
正式上线前需确认:
- 是否能承诺具体 indexing 或 journal 类型
- 是否需要补充 publication ethics、authorship、conflict disclosure
- 是否避免暗示 pay-to-publish 或不当 authorship arrangement
## 9. Services 页面内容
六张服务卡:
| 编号 | 服务 | 当前标题 | CTA |
| --- | --- | --- | --- |
| 01 | Press | Editorial feature in a recognized publication in your field. | Explore Press |
| 02 | Judging | Opportunities to judge work that matters. | Explore Judging |
| 03 | Scholarly Articles | Scholarly articles in credible, peer-reviewed publications. | Explore Articles |
| 04 | Expert consultation | Know where you stand before you commit. | Start Here |
| 05 | Agency representation | Useful when you have multiple engagements or no single employer. | Start Here |
| 06 | Attorney Referral | The right attorney, when you need one. | Start Here |
注意:服务 04、05、06 曾经传入不存在的 `contact` 路由R007 已改为 `start`
## 10. Why Paprika 页面内容
五个差异化理由:
1. Attorney-curated. Built to matter.
2. Built before you need it.
3. A coherent profile, tailored to you.
4. A complete evidence record.
5. Everything in one place.
结尾 peace of mind
- You do not have to second-guess what you are building.
- You just build.
## 11. Resources / O-1A Criteria 页面内容
页面解释 O-1A 8 项 criteria
1. Awards
2. Memberships
3. Published Material About You
4. Judging the Work of Others
5. Original Contributions of Major Significance
6. Scholarly Articles
7. Critical or Essential Role
8. High Salary or Remuneration
每项都包含:
- subtitle
- plain-English body
- stronger examples
- watch out for
- bottom line
页面有 disclaimer此 overview 是 general information不是 legal advicePaprika 不是 law firm。
## 12. FAQ 页面内容
FAQ 分组:
- About Paprika
- O-1 Basics
- Timeline
- Pricing, scope, and refunds
关键问答覆盖:
- Paprika 是否 law firm
- Paprika 做什么
- 适合谁
- process 如何工作
- 何时开始
- 是否 guarantee visa approval
- 是否需要 immigration attorney
- evidence-building 是否 legitimate
- 信息安全
- O-1A 基础
- 更多证据是否总是更好
- top-tier outlet 是否必须
- hackathon judging 是否有帮助
- timeline 和 rush concerns
- pricing、refund、scope
## 13. Start Here 表单现状
当前不是实际 `<form>`,只是视觉字段。
字段视觉:
- Name required
- Email required
- LinkedIn
- Company Website
- Current Role / Company
- Field or Industry
- Attach Resume or CV optional
- What brings you to Paprika? required
- What recognition have you already built, if any?
- Is there a timeline on your mind?
提交按钮:
- `<a class="button primary" href="?page=thanks">Submit Profile</a>`
边界:
- 无输入控件
- 无校验
- 无上传
- 无提交接口
- 无邮件通知
- 无 CRM/数据库记录
## 14. Ask a Question 表单现状
当前不是实际 `<form>`,只是视觉字段。
字段视觉:
- Name required
- Email required
- LinkedIn optional
- Attach Resume or CV optional
- Your question required
提交按钮:
- `<a class="button primary" href="?page=thanks">Send Question</a>`
边界同 Start Here。
## 15. Legal 页面内容
已有页面:
- Terms of Service
- Privacy Policy
- Disclaimer
当前固定日期:
- `Last updated: July 6, 2026`
风险:
- 日期已修正为当前工作日期;正式发布前仍需确认是否应改为实际发布日期。
- 法务文本涉及 immigration、attorney referral、not a law firm、privacy、refund、payment、third-party services 等高风险内容,必须由负责人或法律顾问确认。
## 16. 当前已知缺陷和风险
| 编号 | 问题 | 影响 | 建议 |
| --- | --- | --- | --- |
| RISK-001 | Services 中 04/05/06 CTA 指向不存在的 `contact` 页面 | 点击后回退首页,转化断点 | 改为 `start` 或新增 `contact` |
| RISK-002 | Start/Ask 不是表单 | 无法收集线索 | 改成真实 `<form>` 并接后端或第三方表单服务 |
| RISK-003 | 法务页面日期晚于当前日期 | 发布可信度和合规风险 | 发布前确认日期 |
| RISK-004 | outlet/network 名称可能暗示合作关系 | 法律和商业陈述风险 | 确认授权或改为“representative examples/types” |
| RISK-005 | 无 SEO/OG/sitemap/robots | 正式站收录和分享效果弱 | 上线前补齐 |
| RISK-006 | 无截图回归和移动端验收 | 可能存在响应式问题 | 引入 Playwright 或人工截图台账 |
| RISK-007 | 无部署配置 | 不能可重复发布 | 建立服务、反向代理、HTTPS 和部署脚本 |
| RISK-008 | PostgreSQL schema 尚未设计 | 表单无法稳定入库和追踪 | 建立 `submissions``submission_files` 等数据表 |
| RISK-009 | 文件上传存储未定 | CV/resume 涉及隐私和访问控制 | 先确定本地磁盘、对象存储或禁用上传 |
| RISK-010 | 邮箱统一初始密码 | 多账号共用弱初始密码有安全风险 | 首次登录强制修改或生成独立强密码 |
| RISK-011 | 网站联系邮箱域名不一致 | `support@meetpaprika.com``paprikalaw.com` 品牌不统一 | 上线前统一 contact/support/legal 邮箱 |
## 17. 视觉设计对标
`doc/index.html` 的视觉风格不是通用模板,而是一套完整的 Paprika 品牌 mockup。后续重构或拆分必须保持以下基线除非在 `06-决策记录.md` 新增变更决策。
### 17.1 CSS 变量
| 变量 | 值 | 用途 |
| --- | --- | --- |
| `--red` | `#d9432f` | 主品牌红、按钮、kicker、编号 |
| `--deep-red` | `#a9372d` | 深红强调、active、结论句 |
| `--ink` | `#241b14` | 主文字色 |
| `--text` | `#5c5249` | 正文灰褐色 |
| `--muted` | `#8d847a` | 次级文字 |
| `--line` | `#e9e1d8` | 边线 |
| `--paper` | `#fffdfa` | 页面底色 |
| `--panel` | `rgba(255,255,255,.86)` | 卡片背景 |
| `--green` | `#4f7d61` | 少量绿色标签 |
| `--header-text` | `#41505a` | 导航文字 |
### 17.2 字体和排版
- 全站主字体:`Avenir`, `"Avenir Next"`, system sans-serif。
- 强调语句和 italic accent 使用 `Georgia`, `"Times New Roman"`, serif。
- 页面不使用图片资源,视觉主要由排版、红色强调、浅纸色背景、网格纹理、卡片阴影组成。
- `h1` 首页字号范围为 `clamp(54px, 6.3vw, 74px)`
- 子页 `h1` 字号范围为 `clamp(44px, 5.2vw, 66px)`
- 主要 section title 使用 `clamp(34px, 4vw, 46px)` 或更大的 `clamp(48px, 6vw, 74px)`
### 17.3 背景和布局
- `body` 背景由两层浅网格线、中心 radial glow 和 `--paper` 组成。
- Header 高度 `92px`sticky top半透明纸色背景`backdrop-filter: blur(14px)`
- 主内容容器常用:
- `.hero``width: min(1040px, calc(100% - 56px))`
- `.cards/.section/.form-wrap``width: min(1160px, calc(100% - 72px))`
- `.legal-doc``width: min(920px, calc(100% - 72px))`
- 卡片圆角主要是 `4px``8px`,按钮和 chip 使用 `999px`
### 17.4 响应式规则
唯一显式断点:`@media (max-width: 1080px)`
断点内行为:
- Header 允许换行,`.nav` 占满宽度并 flex-wrap。
- `.cards``.two-col``.grid``.split-feature``.avoid-grid``.why-v2-grid``.criteria-grid``.faq-section``.form-wrap``.questions``.steps` 等多列布局统一变为单列。
- `.field.large``.form-note` 从跨两列改为单列。
- `.pricing-band` 改为单列并居中。
- `.press-check-item``46px 1fr` 调整为 `38px 1fr`
注意:当前只有一个 1080px 断点,未针对窄屏 header 高度、FAQ hero nowrap、长 outlet chip、法务长段落做更细处理移动端必须截图验收。
## 18. 组件和 CSS 类对标
| 模块 | 关键类 | 当前用途 |
| --- | --- | --- |
| Header | `.site-header`, `.brand`, `.brand-name`, `.brand-tag`, `.nav`, `.nav-dropdown`, `.resources-menu`, `.start` | 顶部品牌、导航、下拉和 CTA |
| Hero | `.hero`, `.subpage`, `.hero-kicker`, `.subhead`, `.actions`, `.button`, `.microcopy`, `.time-line` | 首页和子页首屏 |
| 服务卡 | `.cards`, `.card`, `.meta`, `.num`, `.label`, `.explore` | 首页和 Services 入口 |
| 通用内容 | `.section`, `.section-head`, `.section-title`, `.section-copy`, `.two-col`, `.grid`, `.panel`, `.mini`, `.article` | 双栏、四栏、文章卡片 |
| CTA | `.services-cta`, `.services-cta-inner`, `.button-arrow` | 服务转化横幅 |
| Why | `.why-v2`, `.why-v2-grid`, `.why-card`, `.why-v2-peace`, `.why-card-line` | Why Paprika 页面 |
| Resources | `.criteria-page`, `.criteria-intro`, `.criteria-grid`, `.criterion-card`, `.criterion-block`, `.criteria-disclaimer` | O-1A criteria 页面 |
| FAQ | `.faq-page`, `.faq-section`, `.faq-section-head`, `.faq-list`, `.faq-item`, `.faq-num` | FAQ 页面 |
| Press | `.press-cadence`, `.press-standard`, `.press-check-card`, `.outlet-network`, `.outlet-grid`, `.avoid-section`, `.avoid-card`, `.avoid-explain` | Press 页面 |
| Judging | `.judging-counts`, `.judging-counts-grid`, `.judging-network`, `.judging-network-chip`, `.judging-package`, `.check-dot` | Judging 页面 |
| Process | `.process-section`, `.steps`, `.step`, `.step-num`, `.pricing-band` | 首页四步流程和价格 |
| Form mockup | `.form-wrap`, `.field`, `.upload`, `.upload-inline`, `.large`, `.question-field`, `.start-question-field`, `.form-note`, `.req` | Start/Ask 视觉表单 |
| Legal | `.legal-doc`, `.legal-doc-head`, `.legal-date`, `.legal-sections`, `.legal-section` | Terms/Privacy/Disclaimer |
| Footer | `footer`, `.footer-links` | 底部链接和固定声明 |
已存在但当前页面未使用或未公开使用的样式/函数相关模块:
- `.resource-hub`, `.resource-tabs`, `.resource-group`, `.resource-card`:对应 `resourcesHub()`,当前 `pageData.resources` 使用的是 `o1CriteriaPage()`,未使用 hub。
- `.why-proof`, `.why-reason`, `.why-closing`:疑似旧版 Why 结构,当前 `whyPaprikaProof()` 使用 `.why-v2`
- `pressQuality()`:旧版 press 对比区块,当前 `pressPage()` 未调用。
- `standardGrid()`:标准 mini grid当前未调用。
## 19. JavaScript 函数对标
| 函数/常量 | 当前状态 | 作用 |
| --- | --- | --- |
| `serviceCards` | 使用中 | 首页三张服务卡 HTML 片段 |
| `pageData` | 使用中 | 所有路由页面数据表 |
| `hero()` | 使用中 | 通用子页 hero含 Start/Ask CTA |
| `heroWithKicker()` | 使用中 | 带 kicker 的 hero可关闭 actions |
| `servicesCta()` | 使用中 | 红色服务 CTA 横幅 |
| `card()` | 使用中 | 服务卡片 |
| `panel()` | 使用中 | 双栏 panel |
| `productPage()` | 当前未调用 | 通用产品页工厂 |
| `judgingPage()` | 使用中 | Judging 页面组合 |
| `scholarlyPage()` | 使用中 | Scholarly 页面组合 |
| `productPageWithKicker()` | 当前未调用 | 带 kicker 的产品页工厂 |
| `pressPage()` | 使用中 | Press 页面组合 |
| `pressHero()` | 使用中 | Press 专属 hero |
| `judgingCounts()` | 使用中 | Judging counts 区块 |
| `judgingCountCard()` | 使用中 | Judging count card |
| `judgingNetwork()` | 使用中 | Judging network chips |
| `judgingNetworkGroup()` | 当前未调用 | 分组 network chips |
| `judgingPackage()` | 使用中 | Judging evidence package |
| `judgingPackageCard()` | 使用中 | Package card |
| `pressLookFor()` | 使用中 | Press standards checklist |
| `outletNetwork()` | 使用中 | Representative outlet chips |
| `pressCheck()` | 使用中 | Press checklist item |
| `pressCadenceNote()` | 使用中 | Press cadence note |
| `pressAvoidSection()` | 使用中 | Press avoid section |
| `avoidCard()` | 使用中 | Avoid card |
| `miniGrid()` | 使用中 | mini card grid |
| `articleGrid()` | 使用中 | blog article grid |
| `o1CriteriaPage()` | 使用中 | O-1A 8 criteria 页面 |
| `criterionCard()` | 使用中 | Criteria card |
| `faqPage()` | 使用中 | FAQ 页面 |
| `faqGroup()` | 使用中 | FAQ 分组 |
| `faqItem()` | 使用中 | FAQ 单项 |
| `resourcesHub()` | 当前未调用 | Resource hub 草稿 |
| `resourceGroup()` | 当前未调用 | Resource group 草稿 |
| `legalPage()` | 当前未调用 | 旧版 legal page 工厂 |
| `legalTermsPage()` | 使用中 | Terms 页面 |
| `legalPrivacyPage()` | 使用中 | Privacy 页面 |
| `legalDisclaimerPage()` | 使用中 | Disclaimer 页面 |
| `disclaimerSection()` | 使用中 | Disclaimer section |
| `disclaimerPart()` | 使用中 | Disclaimer p/ul 渲染 |
| `whyEarlySection()` | 使用中 | 首页 Start Early |
| `servicesIntro()` | 使用中 | 首页 Core services intro |
| `standardPreview()` | 使用中 | 首页标准问题 |
| `question()` | 使用中 | 标准问题 item |
| `howItWorks()` | 使用中 | 首页四步流程和价格 |
| `step()` | 使用中 | 流程 step |
| `standardGrid()` | 当前未调用 | 标准 grid 草稿 |
| `whyPaprikaProof()` | 使用中 | Why 页面 v2 内容 |
| `whyV2Card()` | 使用中 | Why card |
| `pressQuality()` | 当前未调用 | 旧版 Press quality 对比 |
最终渲染逻辑:
```js
const params = new URLSearchParams(window.location.search);
const page = params.get("page") || "home";
const selected = pageData[page] ? page : "home";
document.title = `Paprika - ${selected}`;
document.getElementById("app").innerHTML = pageData[selected].body;
```
active 逻辑:
- `[data-page]``selected` 相同时添加 `.active`
- `selected``faq``resources` 时,额外给 `.nav-trigger` 添加 `.active`
## 20. CTA 和链接全量映射
| 位置 | 文案 | 目标 |
| --- | --- | --- |
| Header brand | Paprika | `?page=home` |
| Header nav | Press | `?page=press` |
| Header nav | Judging | `?page=judging` |
| Header nav | Scholarly Articles | `?page=scholarly` |
| Header nav | Services | `?page=services` |
| Header nav | Why Paprika | `?page=why` |
| Header Resources | Resources | `?page=resources` |
| Resources menu | Frequently Asked Questions | `?page=faq` |
| Resources menu | O-1A Criteria Overview | `?page=resources` |
| Header CTA | Start Here | `?page=start` |
| Footer | About | `?page=why` |
| Footer | FAQ | `?page=faq` |
| Footer | Terms | `?page=terms` |
| Footer | Privacy | `?page=privacy` |
| Footer | Disclaimer | `?page=disclaimer` |
| Home hero | Send Us Your Profile | `?page=start` |
| Home hero | Ask a Question | `?page=ask` |
| 通用 hero | Start Here | `?page=start` |
| 通用 hero | Ask a Question | `?page=ask` |
| Services CTA | Send Us Your Profile | `?page=start` |
| Home pricing band | See Services | `?page=services` |
| Start mockup | Submit Profile | `?page=thanks` |
| Ask mockup | Send Question | `?page=thanks` |
| Thanks | Back to Homepage | `?page=home` |
| Service card 01 | Explore Press | `?page=press` |
| Service card 02 | Explore Judging | `?page=judging` |
| Service card 03 | Explore Articles | `?page=scholarly` |
| Service card 04 | Start Here | 原为 `?page=contact`,已修复为 `?page=start` |
| Service card 05 | Start Here | 原为 `?page=contact`,已修复为 `?page=start` |
| Service card 06 | Start Here | 原为 `?page=contact`,已修复为 `?page=start` |
## 21. FAQ 完整编号对标
当前 FAQ 共 4 组、20 个问题。
| 编号范围 | 分组 kicker | 分组标题 | 问题数量 |
| --- | --- | --- | --- |
| 01-09 | About Paprika | How Paprika works. | 9 |
| 10-14 | O1 Visa | O-1 Basics | 5 |
| 15-18 | Timeline | How long things take. | 4 |
| 19-20 | Pricing Structure | Pricing, scope, and refunds | 2 |
需要注意的原文问题:
- `O1 Visa` kicker 少了 hyphen是否改为 `O-1 Visa` 需产品确认。
- FAQ 15 中原文 `Coverage spaced out over time demonstrate...` 主谓可能不一致。
- FAQ 20 写了 “If we are unable to secure the agreed-upon media placements...” 可能只覆盖 media placements不覆盖 judging/scholarly应由法务或产品确认。
## 22. Legal 页面逐项结构对标
### Terms of Service
当前 Terms 共 18 个 section但编号为 1-16、18、19缺少 17。
| 编号 | 标题 |
| --- | --- |
| 1 | Agreement to These Terms |
| 2 | What Paprika Provides |
| 3 | Not a Law Firm — No Legal Advice |
| 4 | No Attorney-Client Relationship |
| 5 | No Guarantee of Immigration Outcomes |
| 6 | Attorney Referrals |
| 7 | Fees, Payment, and Refunds |
| 8 | Client Responsibilities and Accuracy of Information |
| 9 | Evidence Integrity |
| 10 | Third-Party Decisions |
| 11 | Your Materials |
| 12 | Work Product |
| 13 | Prohibited Uses |
| 14 | Disclaimer of Warranties |
| 15 | Limitation of Liability |
| 16 | Changes to These Terms |
| 18 | Governing Law |
| 19 | Contact |
### Privacy Policy
当前 Privacy 共 12 个 section
1. Introduction
2. Information We Collect
3. How We Use Your Information
4. How We Share Your Information
5. Data Storage and Security
6. Data Retention
7. Your Rights
8. Cookies
9. Children's Privacy
10. International Users
11. Changes to This Policy
12. Contact
### Disclaimer
当前 Disclaimer 共 9 个 section
1. Not a Law Firm
2. What "Attorney-Curated" Means
3. No Attorney-Client Relationship
4. Independent Counsel
5. Attorney Referral Disclosure
6. No Outcome Guarantee
7. User Responsibility
8. General Information Only
9. Questions
需要注意的原文问题:
- Disclaimer 中 `Paprika's evidence-building services is shaped...` 主谓不一致。
- Disclaimer 中 `Use of Paprika's does not create...` 语句不完整。
- 三个 legal 页面日期已由 `Last updated: July 10, 2026` 修正为 `Last updated: July 6, 2026`
- 当前日期为 `2026-07-06`,发布前仍需法务确认文本内容和最终发布日期。
## 23. 源码级对标结论
- `doc/index.html` 共 3423 行。
- 前 2261 行主要是 CSS 和 HTML shell。
- 2262 行后进入 body、header、main、footer、script。
- 2300 行后定义 `serviceCards``pageData`
- 2428 行后定义组件/页面函数。
- 3410 行后执行路由选择、渲染和 active 状态设置。
- 当前没有外部依赖、图片、字体文件、构建脚本、后端接口或测试。
## 24. 后续推进入口
- 任务领取:`04-任务矩阵.md`
- 每轮记录:`03-推进台账.md`
- 验收证据:`05-验收证据.md`
- 决策依据:`06-决策记录.md`
- 开发步骤:`02-项目程序开发详细步骤.md`