# 03-推进台账 本文件按轮次记录工作。每轮结束必须写清楚:做了什么、改了哪些文件、验证了什么、下一步是什么。 ## R001 - 建立 working 文档体系 - 日期:2026-07-06 - 任务编号:T001、T002 - 做了什么: - 阅读 `doc/index.html` 的页面结构、导航、路由、表单 mockup、服务模块、FAQ、O-1A criteria、法务页面和渲染脚本。 - 建立 `working` 目录下 6 份编号文档和 README 索引。 - 初步记录当前项目是自包含静态 HTML mockup。 - 改了哪些文件: - `working/README.md` - `working/01-项目功能内容.md` - `working/02-项目程序开发详细步骤.md` - `working/03-推进台账.md` - `working/04-任务矩阵.md` - `working/05-验收证据.md` - `working/06-决策记录.md` - 验证了什么: - 确认 `doc/index.html` 是自包含静态 HTML。 - 确认页面通过 `?page=...` 查询参数切换。 - 确认 Start Here 和 Ask a Question 当前是视觉 mockup,不是真实表单。 - 证据链接或编号:E001、E002、E003 - 遗留问题: - 未做浏览器截图验收。 - 未做移动端回归。 - 未实现表单和部署。 - 下一步: - 按 `04-任务矩阵.md` 从 `VERIFY` 与 `TODO` 任务继续推进。 ## R002 - 完全对标 doc/index.html 补强 working 文档 - 日期:2026-07-06 - 任务编号:T028 - 做了什么: - 复读 `doc/index.html` 中 header、footer、`pageData`、页面组合函数、Press/Judging/Resources/FAQ/Legal/Form 模块。 - 补充 `01-项目功能内容.md`,把页面路由、内容模块、表单字段、服务卡片、O-1A criteria、法律页面、已知缺陷和发布环境写完整。 - 补充 `02-项目程序开发详细步骤.md`,形成阶段化路线:基线复现、静态修复、真实表单、工程化拆分、8082 端口部署、HTTPS、回归验收。 - 补强任务矩阵,新增服务器部署、凭据处理、contact 死链、outlet/network 陈述风险、README 索引维护等任务。 - 补强验收证据,记录本轮命令、源码发现和后续证据清单。 - 补强决策记录,明确不在长期文档保存明文密码、服务默认走 8082、Services 的 `contact` 路由是缺陷。 - 改了哪些文件: - `working/README.md` - `working/01-项目功能内容.md` - `working/02-项目程序开发详细步骤.md` - `working/03-推进台账.md` - `working/04-任务矩阵.md` - `working/05-验收证据.md` - `working/06-决策记录.md` - 验证了什么: - `rg --files` 确认项目当前主要文件为 `doc/index.html`、`doc/README.md` 和 `working/*.md`。 - `rg -n` 确认公开路由、隐藏路由、表单 mockup、legal 页面、动态路由逻辑均在 `doc/index.html`。 - `sed` 分段读取源文件,确认 Services 04/05/06 卡片指向不存在的 `contact` 页面。 - `git status --short` 失败,确认当前目录不是 Git 仓库或未在 Git 工作树内。 - 证据链接或编号:E004、E005、E006、E007 - 遗留问题: - 尚未改 `doc/index.html`。 - 尚未启动本地服务器或做截图。 - 尚未登录远端服务器。 - 用户提供了密码,但长期文档未写入明文密码。 - 下一步: - 优先处理 T029:修复 Services 页面不存在的 `contact` 路由。 - 继续 T003-T011:对核心页面做浏览器截图验收。 - 之后按产品选择推进 T012/T013 表单落地或 T022 工程化拆分。 ## R003 - 源码级对标附录完善 - 日期:2026-07-06 - 任务编号:T034 - 做了什么: - 重新扫描 `doc/index.html` 的 CSS token、响应式断点、路由链接、函数列表、FAQ、Legal sections 和渲染逻辑。 - 在 `01-项目功能内容.md` 增加视觉设计、组件 CSS 类、JavaScript 函数、CTA 全量映射、FAQ 完整编号、Legal 逐项结构和源码级结论。 - 在 `02-项目程序开发详细步骤.md` 增加“完全对标核验清单”,规定以后如何证明文档与源 HTML 对齐。 - 更新任务矩阵、验收证据和决策记录。 - 改了哪些文件: - `working/01-项目功能内容.md` - `working/02-项目程序开发详细步骤.md` - `working/03-推进台账.md` - `working/04-任务矩阵.md` - `working/05-验收证据.md` - `working/06-决策记录.md` - 验证了什么: - `doc/index.html` 共 3423 行。 - CSS 只有一个显式响应式断点:`@media (max-width: 1080px)`。 - `pageData` 包含公开路由、隐藏路由和 legal 页面。 - FAQ 共 4 组 20 个问题。 - Terms 编号缺少 17,Legal 日期均为 `July 10, 2026`。 - 多个函数和 CSS 模块存在但当前未调用。 - 证据链接或编号:E016 - 遗留问题: - 仍未修改 `doc/index.html` 源码。 - 仍未做浏览器截图和真实部署验收。 - 下一步: - 按 T029 修复 `contact` 缺陷,或按 T003-T011 做页面截图验收。 ## R004 - 明确正式开发技术架构 - 日期:2026-07-06 - 任务编号:T035 - 做了什么: - 根据用户确认,将正式开发路线从候选方案收敛为 Next.js + React + PostgreSQL。 - 将默认数据访问层定为 Prisma ORM。 - 补充 Next.js 路由迁移表、PostgreSQL 数据模型初稿、表单 API、环境变量、8082 启动方式和部署验收标准。 - 更新任务矩阵和决策记录。 - 改了哪些文件: - `working/01-项目功能内容.md` - `working/02-项目程序开发详细步骤.md` - `working/03-推进台账.md` - `working/04-任务矩阵.md` - `working/05-验收证据.md` - `working/06-决策记录.md` - `working/README.md` - 验证了什么: - 文档已不再把 Vite/静态拆分作为推荐路线。 - 部署命令已调整为 Next.js `npm run start -- -p 8082`。 - 数据库任务已进入矩阵。 - 证据链接或编号:E017 - 遗留问题: - 尚未实际创建 Next.js 工程。 - 尚未创建 PostgreSQL 数据库或 Prisma migration。 - 文件上传存储方案仍需单独确认。 - 下一步: - 执行 T036 初始化 Next.js 工程。 - 执行 T037 设计并迁移 PostgreSQL schema。 ## R005 - 记录服务器 PostgreSQL 安装状态 - 日期:2026-07-06 - 任务编号:T040 - 做了什么: - 根据用户反馈,记录 PostgreSQL 已在服务器 `170.106.192.152` 安装完成。 - 补充服务器 PostgreSQL 验证命令、应用数据库和受限用户创建建议。 - 保持凭据安全规则:不把明文 SSH 密码写入长期文档。 - 改了哪些文件: - `working/01-项目功能内容.md` - `working/02-项目程序开发详细步骤.md` - `working/03-推进台账.md` - `working/04-任务矩阵.md` - `working/05-验收证据.md` - `working/06-决策记录.md` - 验证了什么: - 本轮未登录服务器验证,仅记录用户确认。 - 证据链接或编号:E018 - 遗留问题: - 需要远程执行 `systemctl status postgresql`、`psql --version`、数据库列表检查。 - 需要创建或确认 `paprika` 数据库和 `paprika_app` 应用用户。 - 下一步: - 执行 T040 远程验证 PostgreSQL。 - 执行 T037 接入 Prisma schema 和 migration。 ## R006 - 记录邮箱系统账号需求 - 日期:2026-07-06 - 任务编号:T041 - 做了什么: - 记录普通用户 webmail 入口、管理员入口和 `admin@paprikalaw.com` 管理员账号。 - 记录 10 个普通公司邮箱账号清单。 - 补充邮件 DNS、收发验证、表单通知接入和凭据安全要求。 - 明确用户提供的统一初始密码不写入长期文档。 - 改了哪些文件: - `working/01-项目功能内容.md` - `working/02-项目程序开发详细步骤.md` - `working/03-推进台账.md` - `working/04-任务矩阵.md` - `working/05-验收证据.md` - `working/06-决策记录.md` - `working/README.md` - 验证了什么: - 本轮只记录需求,未登录邮件后台,未验证 DNS/MX/SPF/DKIM/DMARC。 - 证据链接或编号:E019 - 遗留问题: - 需要登录 `https://mail.paprikalaw.com/admin/` 确认账号是否已创建。 - 需要测试 webmail 登录、内外部收发和 DNS 记录。 - 需要决定网站表单通知使用哪个邮箱。 - 下一步: - 执行 T041 邮箱账号创建/确认。 - 执行 T042 邮件 DNS 和收发测试。 - 执行 T043 Next.js 表单邮件通知配置。 ## R007 - 落地 Next.js 工程、Prisma 和真实表单 - 日期:2026-07-06 - 任务编号:T012、T013、T017、T020、T022、T029、T036、T037、T038、T039、T044 - 做了什么: - 修复 `doc/index.html` 中 Services 04/05/06 CTA 指向不存在 `contact` 的缺陷,统一改为 `start`。 - 将 legal 页面日期从未来日期 `July 10, 2026` 改为当前工作日期 `July 6, 2026`。 - 在项目根目录初始化 Next.js + React + TypeScript App Router 工程。 - 编写 `scripts/extract-legacy-pages.mjs`,从 `doc/index.html` 抽取 CSS 和静态页面 HTML,生成 `app/globals.css` 与 `lib/legacy-pages.ts`。 - 建立 `app/[page]/page.tsx` 静态路由,迁移公开页面到 `/press`、`/judging`、`/services` 等路径路由。 - 建立 `/start`、`/ask` 真实 React 表单,提交到 `POST /api/submissions`。 - 建立 Prisma schema、初始化 migration、`.env.example`、数据库访问层和 Zod 校验。 - 增加基础 SEO metadata、`robots.txt` 和 `sitemap.xml`。 - 升级到 Next `16.2.10`、React `19.2.7`,并配置 ESLint 9 flat config。 - 改了哪些文件: - `doc/index.html` - `.env.example` - `.gitignore` - `package.json` - `package-lock.json` - `tsconfig.json` - `next-env.d.ts` - `next.config.mjs` - `eslint.config.mjs` - `scripts/extract-legacy-pages.mjs` - `app/*` - `components/*` - `lib/*` - `prisma/schema.prisma` - `prisma/migrations/20260706120000_init/migration.sql` - `working/README.md` - `working/01-项目功能内容.md` - `working/02-项目程序开发详细步骤.md` - `working/03-推进台账.md` - `working/04-任务矩阵.md` - `working/05-验收证据.md` - `working/06-决策记录.md` - 验证了什么: - `npm run generate:legacy` 成功生成 12 个旧页面数据。 - `npm run prisma:generate` 成功生成 Prisma Client。 - `npm run lint` 通过。 - `npx tsc --noEmit` 通过。 - `npm run build` 通过,生成 19 个 app route。 - `npm run start -- -p 8082` 本地生产服务可启动。 - `/`、`/press`、`/judging`、`/scholarly`、`/services`、`/why`、`/resources`、`/faq`、`/start`、`/ask`、`/thanks`、`/terms`、`/privacy`、`/disclaimer`、`/robots.txt`、`/sitemap.xml` 本地生产服务均返回 200。 - `/api/submissions` 对缺失必填字段和错误 email 返回 400 校验错误。 - 有效提交在未配置 `DATABASE_URL` 时返回 500,确认入库成功仍需真实 PostgreSQL。 - 证据链接或编号:E022、E023、E024、E025、E026 - 遗留问题: - 本地未配置 PostgreSQL `DATABASE_URL`,尚不能完成真实入库验收。 - 远程 PostgreSQL、应用数据库、应用用户、migration deploy 尚未验证。 - 邮箱后台、DNS、SMTP 通知未验证。 - 法务内容审核、outlet/network 名称确认、文件上传策略仍需外部确认。 - 尚未做浏览器截图/PDF 归档。 - 下一步: - 执行 T040/T044:远程验证 PostgreSQL,配置生产 `DATABASE_URL`,执行 migration,并提交 Start/Ask 获取 `submission_id`。 - 执行 T039/T024:部署 Next.js 到服务器 `8082` 并配置 systemd。 - 执行 T041-T043:验证邮箱和 SMTP 通知。 - 执行 T018/T026:补桌面和移动端截图证据。 ## 后续轮次模板 ### RXXX - 标题 - 日期: - 任务编号: - 做了什么: - 改了哪些文件: - 验证了什么: - 证据链接或编号: - 遗留问题: - 下一步: