Initial Paprika Next.js implementation

This commit is contained in:
2026-07-06 12:12:36 -04:00
commit 7d585484a6
38 changed files with 14824 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
# 04-任务矩阵
状态定义:
- `DONE`:已完成并有证据。
- `VERIFY`:源码看起来具备,但缺浏览器、截图、端到端或人工确认。
- `TODO`:尚未实现。
- `BLOCKED`被外部输入、账号、法律审核、DNS 或产品决策阻塞。
- `DEFER`:暂缓,不影响当前阶段交付。
## 任务总表
| 编号 | 任务 | 状态 | 验收标准 | 依赖 | 备注 |
| --- | --- | --- | --- | --- | --- |
| T001 | 建立 working 文档体系 | DONE | 6 份编号文档和 README 索引存在 | 无 | R001 |
| T002 | 盘点当前页面路由 | DONE | 路由清单覆盖公开路由、隐藏路由和回退逻辑 | T001 | 见 01 |
| T003 | 顶部导航可用 | VERIFY | 点击 Press/Judging/Scholarly/Services/Why/Start 能进入对应页面active 状态正确 | T002 | 需截图 |
| T004 | Resources 下拉可用 | VERIFY | hover/focus 显示 FAQ 和 O-1A Criteria Overview链接正确 | T002 | 需桌面验证 |
| T005 | 首页内容完整 | VERIFY | hero、三大服务、Start Early、标准问题、四步流程、价格 band 渲染正常 | T002 | 需截图 |
| T006 | Services 页面完整 | VERIFY | 6 张服务卡片和说明渲染正常 | T002 | 存在 T029 缺陷 |
| T007 | Press 页面完整 | VERIFY | press hero、cadence、standards、avoid、outlet network、CTA 渲染正常 | T002 | 需截图 |
| T008 | Judging 页面完整 | VERIFY | judging counts、network、evidence package、CTA 渲染正常 | T002 | 需截图 |
| T009 | Scholarly 页面完整 | VERIFY | hero、两栏说明、CTA 渲染正常 | T002 | 需截图 |
| T010 | Resources/O-1A criteria 页面完整 | VERIFY | 8 项 criteria 全部展示,免责声明展示 | T002 | 需内容抽查 |
| T011 | FAQ 页面完整 | VERIFY | FAQ 分组和问题渲染正常 | T002 | 需内容抽查 |
| T012 | Start Here 表单真实可用 | VERIFY | 真实 `<form>` 或等价组件;必填校验;提交后产生可追踪记录 | T037/T044 | React 表单和 API 已实现,待真实 PostgreSQL 入库证据 |
| T013 | Ask a Question 表单真实可用 | VERIFY | 真实 `<form>` 或等价组件;必填校验;提交后产生可追踪记录 | T037/T044 | React 表单和 API 已实现,待真实 PostgreSQL 入库证据 |
| T014 | 文件上传策略 | DEFER | 明确支持或不支持上传;若支持,限制类型、大小、存储、访问权限 | T012/T013 | 当前代码禁用上传,待隐私/存储方案确认 |
| T015 | Thanks 页面流程验收 | VERIFY | 成功提交后进入 thanks直接访问 thanks 不造成误导 | T012/T013 | 当前仅链接跳转 |
| T016 | 法务页面内容审核 | BLOCKED | Terms、Privacy、Disclaimer 经负责人或律师确认 | 法务输入 | 当前为草稿 |
| T017 | 法务日期修正 | DONE | 页面日期不晚于实际发布日,或明确未来生效逻辑 | T016 | 已改为 `July 6, 2026`,内容审核仍见 T016 |
| T018 | 响应式布局验证 | TODO | 1440、768、390 宽度核心页面无重叠、溢出、不可读 | T003-T011 | 需截图 |
| T019 | 无障碍基础检查 | TODO | heading 层级合理;交互元素可聚焦;颜色对比和表单标签达标 | T012/T013 | 当前表单不是 input |
| T020 | SEO 基础 | VERIFY | 每页 title/description、OG、favicon、robots/sitemap 有明确策略 | 内容确认 | 已有 metadata、robots、sitemapfavicon/逐页文案待确认 |
| T021 | 分析和隐私策略 | DEFER | 若添加 analyticsPrivacy 同步说明并记录供应商 | T016 | 当前未添加 analytics |
| T022 | 工程化拆分 | DONE | 从单文件拆为可维护结构,或明确保持单文件的理由 | T002-T011 | 已新增 Next.js App Router 工程,保留 doc 基线 |
| T023 | 自动化测试 | TODO | 至少覆盖核心路由冒烟、表单提交、未知路由回退 | T022 | 当前无测试框架 |
| T024 | 部署到云服务器 8082 | TODO | 服务器 `127.0.0.1:8082` 返回 200systemd 或等价进程可自恢复 | T022 或静态服务 | 目标主机 170.106.192.152 |
| T025 | HTTPS 域名发布 | BLOCKED | `https://paprikalaw.com/` 返回 200证书有效 | DNS/服务器权限/T024 | 需确认 DNS 指向 |
| T026 | 截图/PDF 验收资产 | TODO | 核心页面截图或 PDF 存档,路径写入 `05-验收证据.md` | T018 | 用于回归比较 |
| T027 | `blog``about` 去留确认 | TODO | 明确保留、隐藏或删除;导航和 footer 一致 | 产品输入 | 当前代码存在但未公开 |
| T028 | 完全对标补强 working 文档 | DONE | 01-06 和 README 覆盖页面、开发步骤、台账、任务矩阵、证据、决策 | T001/T002 | R002 |
| T029 | 修复 Services 中不存在的 `contact` 路由 | DONE | Services 04/05/06 CTA 指向存在页面,点击不回退首页 | T006 | 已改 `start`Next `/services` 产物确认 href `/start` |
| T030 | 服务器凭据安全处理 | TODO | 不在仓库保存明文密码;配置 SSH key 或受控密钥交接 | T024 | 用户已提供临时凭据 |
| T031 | Outlet/network 陈述风险确认 | BLOCKED | 负责人确认可展示 outlet/network 名称或改成示例类型 | 产品/法务输入 | Press/Judging 涉及名称 |
| T032 | README 索引维护 | DONE | README 能指向 01-06并说明后续入口 | T028 | 本轮更新 |
| T033 | Git 仓库状态确认 | TODO | 明确项目是否应纳入 Git若是初始化或进入正确仓库后记录 commit hash | 用户/仓库输入 | 当前 `git status` 失败 |
| T034 | 源码级对标附录完善 | DONE | 文档覆盖 CSS token、组件类、函数清单、CTA 映射、FAQ 编号、Legal 结构、核验命令 | T028 | R003 |
| T035 | 明确正式技术架构 | DONE | 文档明确采用 Next.js + React + PostgreSQL并记录 ORM、路由、API、部署方式 | 用户确认 | R004 |
| T036 | 初始化 Next.js + React 工程 | DONE | `npm run dev``npm run build` 可用,基础页面路由建立 | T035 | TypeScript + App RouterNext 16 + React 19 |
| T037 | PostgreSQL + Prisma 接入 | VERIFY | `schema.prisma``.env.example`、migration 存在,能连接数据库 | T035/T040 | 本地代码完成;真实连接待生产 `DATABASE_URL` |
| T038 | 表单入库实现 | VERIFY | `/start``/ask` 提交写入 PostgreSQL并返回 `submission_id` | T036/T037/T044 | API 写入代码完成;缺真实 DB 成功提交证据 |
| T039 | Next.js 部署到 8082 | VERIFY | `npm run start -- -p 8082` 生产可运行systemd 管理 | T036/T037 | 本地生产 8082 通过;远程 systemd 未做 |
| T040 | 远程验证 PostgreSQL 安装 | TODO | 服务器上 `systemctl status postgresql` 正常,`psql --version` 可用,应用数据库/用户确认 | 用户已确认安装 | 不记录明文密码 |
| T041 | 邮箱账号创建/确认 | TODO | admin 入口可登录10 个普通邮箱可通过 webmail 登录 | 邮件后台权限 | 不记录统一初始密码 |
| T042 | 邮件 DNS 与收发验证 | TODO | MX/SPF/DKIM/DMARC 检查完成,内外部收发测试通过 | T041/DNS 权限 | 记录 dig 输出和测试截图 |
| T043 | 表单邮件通知配置 | TODO | `/start``/ask` 入库后向指定邮箱发送通知,记录 message id | T038/T041 | SMTP 密码放环境变量 |
| T044 | 真实 PostgreSQL 入库验收 | TODO | 配置 `DATABASE_URL`Start/Ask 成功返回 `submission_id`,数据库可查记录 | T037/T040 | 本地未配置数据库,远程待执行 migration |
## 优先级建议
| 优先级 | 任务 | 原因 |
| --- | --- | --- |
| P0 | T029 | 明确死链,改动小,影响转化 |
| P0 | T017/T016 | 法务日期和文本影响正式发布可信度 |
| P0 | T012/T013/T014 | 当前无法真实收集线索 |
| P0 | T035/T036/T037/T038 | 正式架构已明确,需落地工程和数据库 |
| P0 | T040 | PostgreSQL 已安装,需验证后才能接 Prisma |
| P0 | T041/T042 | 公司邮箱是对外联系和表单通知基础设施 |
| P1 | T003-T011/T018/T026 | 页面上线前必须有截图证据 |
| P1 | T024/T025/T030 | 服务器发布和凭据安全 |
| P2 | T020/T021/T023 | SEO、analytics、自动化测试 |
| P2 | T022 | 工程化拆分取决于上线节奏 |
## 防重复规则
1. 开始任务前先查本表编号。
2. 已是 `DONE` 的任务不得重复做,除非新建变更任务并说明原因。
3. `VERIFY` 任务完成验证后改为 `DONE`,并在 `05-验收证据.md` 填证据。
4. 涉及法务、隐私、表单数据、部署凭据的任务必须有明确验收证据,不能只凭页面看起来正常关闭。
5. 每次新增任务必须使用下一个编号,并补齐状态、验收标准和依赖。