Files
MeetPaprika/working/05-验收证据.md

375 lines
13 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.
# 05-验收证据
本文件记录可复查证据命令、页面、job_id、report_id、PDF、截图、部署链接、提交记录等。
## E001 - 文档基线盘点
- 日期2026-07-06
- 关联任务T001、T002
- 类型:命令输出摘要
- 命令:
```bash
pwd
rg --files -g '!*node_modules*' -g '!*.png' -g '!*.jpg' -g '!*.jpeg' -g '!*.gif' -g '!*.pdf' | sed -n '1,160p'
sed -n '1,260p' doc/index.html
find working -maxdepth 2 -type f -print | sort
```
- 结果摘要:
- 当前工作目录为 `/home/mes123456/MeetPaprika`
- 参考文件存在:`doc/index.html`
- `working` 目录存在。
- `doc/index.html` 包含 `<main id="app"></main>`、内联 CSS、内联 JS。
- 页面通过 `?page=...` 查询参数选择内容。
## E002 - 当前路由证据
- 日期2026-07-06
- 关联任务T002
- 类型:源码证据
- 命令:
```bash
rg -n "const pages|function|data-page|render|page:|title:|href=|main.innerHTML|case|pages\\[|\\?page=|<body|<script|</html>|Services|Resources|FAQ|Privacy|Terms|Get Started|Application|Contact" doc/index.html
```
- 结果摘要:
- 导航显式链接:`press``judging``scholarly``services``why``resources``faq``start`
- Footer 链接:`why``faq``terms``privacy``disclaimer`
- `pageData` 中定义:`home``press``judging``scholarly``services``why``resources``faq``blog``start``ask``thanks``about``terms``privacy``disclaimer`
- 路由选择逻辑:未识别页面回退为 `home`
## E003 - 表单 mockup 证据
- 日期2026-07-06
- 关联任务T012、T013、T014、T015
- 类型:源码证据
- 文件:`doc/index.html`
- 结果摘要:
- `start` 页面字段使用 `<div class="field">`,提交入口是 `<a class="button primary" href="?page=thanks">Submit Profile</a>`
- `ask` 页面字段使用 `<div class="field">`,提交入口是 `<a class="button primary" href="?page=thanks">Send Question</a>`
- 当前没有 `<form>``input``textarea``file``method``action` 或提交接口。
- 因此当前只能证明视觉流程存在,不能证明真实提交能力。
## E004 - R002 源码复核证据
- 日期2026-07-06
- 关联任务T028
- 类型:命令输出摘要
- 命令:
```bash
sed -n '2262,2468p' doc/index.html
sed -n '2469,2765p' doc/index.html
sed -n '2766,3428p' doc/index.html
```
- 结果摘要:
- 复核 header、footer、`serviceCards``pageData``hero``heroWithKicker``pressPage``judgingPage``o1CriteriaPage``faqPage`、legal 页面和最终渲染逻辑。
- `document.getElementById("app").innerHTML = pageData[selected].body;`
- `if (["faq", "resources"].includes(selected))` 会高亮 Resources trigger。
- legal 页面当时日期写为 `Last updated: July 10, 2026`;后续已在 E024 修复。
## E005 - Services contact 路由缺陷证据
- 日期2026-07-06
- 关联任务T029
- 类型:源码证据
- 文件:`doc/index.html`
- 结果摘要:
- Services 页面卡片 04、05、06 调用:
- `card("04", ..., "Start Here", "contact")`
- `card("05", ..., "Start Here", "contact")`
- `card("06", ..., "Start Here", "contact")`
- `pageData` 没有 `contact`
- 当前路由逻辑会把未知 `contact` 回退到 `home`
- 结论:这是明确死链/误跳转缺陷;后续已在 E024 修复。
## E006 - Git 状态证据
- 日期2026-07-06
- 关联任务T033
- 类型:命令输出摘要
- 命令:
```bash
git status --short
```
- 结果摘要:
- 输出:`fatal: not a git repository (or any of the parent directories): .git`
- 结论:当前路径不是 Git 仓库,暂时无法记录 commit hash。
## E007 - Working 文档更新证据
- 日期2026-07-06
- 关联任务T028、T032
- 类型:文件证据
- 文件:
- `working/README.md`
- `working/01-项目功能内容.md`
- `working/02-项目程序开发详细步骤.md`
- `working/03-推进台账.md`
- `working/04-任务矩阵.md`
- `working/05-验收证据.md`
- `working/06-决策记录.md`
- 结果摘要:
- 已形成 README 索引。
- 已形成从项目功能、开发步骤、推进台账、任务矩阵、验收证据到决策记录的闭环。
## E016 - 源码级对标扫描证据
- 日期2026-07-06
- 关联任务T034
- 类型:命令输出摘要
- 命令:
```bash
wc -l doc/index.html working/*.md
rg -n 'function [A-Za-z0-9_]+\(|const [A-Za-z0-9_]+ =|^[[:space:]]+[A-Za-z0-9_]+: \{|href="\?page=|Last updated|Packages start|@media|--[a-z-]+:' doc/index.html
rg -n '^\s*\.[A-Za-z0-9_-]+|^\s*#[A-Za-z0-9_-]+|^\s*[a-z]+\s*\{|@media|grid-template-columns|width: min|border-radius|background:' doc/index.html
sed -n '2870,3035p' doc/index.html
sed -n '3070,3228p' doc/index.html
```
- 结果摘要:
- `doc/index.html` 共 3423 行。
- CSS token 包含 `--red``--deep-red``--ink``--text``--muted``--line``--paper``--panel``--green``--header-text`
- 唯一显式断点为 `@media (max-width: 1080px)`
- `pageData` 包含 `home``press``judging``scholarly``services``why``resources``faq``blog``start``ask``thanks``about``terms``privacy``disclaimer`
- FAQ 共 4 组 20 个问题。
- Terms 共 18 个 section但编号缺少 17。
- Privacy 共 12 个 section。
- Disclaimer 共 9 个 section。
- Legal 页面当时日期均为 `Last updated: July 10, 2026`;后续已在 E024 修复。
- 发现未调用函数/模块:`productPage``productPageWithKicker``judgingNetworkGroup``resourcesHub``resourceGroup``legalPage``standardGrid``pressQuality`
## E017 - 技术架构确认记录
- 日期2026-07-06
- 关联任务T035
- 类型:用户确认 + 文档证据
- 用户确认:
```text
Next+ React ,数据库使用 PostGreSQL
```
- 结果摘要:
- 正式开发技术架构已收敛为 Next.js + React + PostgreSQL。
- 文档默认 ORM 为 Prisma。
- 表单提交目标改为 Next.js API/Server Actions 写入 PostgreSQL。
- 生产启动方式改为 `npm run start -- -p 8082`
- 新增任务 T036-T039覆盖工程初始化、数据库接入、表单入库、Next.js 部署。
## E018 - 服务器 PostgreSQL 安装用户确认
- 日期2026-07-06
- 关联任务T040
- 类型:用户确认
- 用户确认摘要:
- PostgreSQL 已在云服务器安装完成。
- 服务器:`170.106.192.152`
- SSH 用户:`ubuntu`
- 可用端口:`8080-8099`
- 应用目标端口:`8082`
- 凭据处理:
- 用户在对话中提供了 SSH 密码。
- 长期文档不保存明文密码。
- 待验证命令:
```bash
ssh ubuntu@170.106.192.152
systemctl status postgresql --no-pager
psql --version
sudo -u postgres psql -c '\l'
```
- 结论:
- 当前状态为“用户确认已安装,待远程验证”。
## E019 - 邮箱系统账号需求用户确认
- 日期2026-07-06
- 关联任务T041、T042、T043
- 类型:用户确认
- 用户确认摘要:
- 普通用户入口:`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`
- 凭据处理:
- 用户在对话中提供了统一初始密码。
- 长期文档不保存明文密码。
- 待验证:
- 管理员登录。
- 普通邮箱 webmail 登录。
- MX/SPF/DKIM/DMARC。
- 内部互发、外部收信、外部发信。
- Next.js 表单通知 SMTP 配置。
## E022 - Next.js 工程初始化和构建证据
- 日期2026-07-06
- 关联任务T036、T022
- 类型:命令输出摘要
- 命令:
```bash
npm install
npm run generate:legacy
npm run lint
npx tsc --noEmit
npm run build
```
- 结果摘要:
- 依赖安装完成。
- `generate:legacy``doc/index.html` 生成 12 个页面数据。
- `lint` 通过。
- TypeScript `--noEmit` 通过。
- `next build` 通过,生成 `/``/[page]``/api/submissions``/ask``/start``/thanks``/robots.txt``/sitemap.xml`
## E023 - Prisma schema 和 migration 证据
- 日期2026-07-06
- 关联任务T037
- 类型:文件和命令证据
- 文件:
- `prisma/schema.prisma`
- `prisma/migrations/20260706120000_init/migration.sql`
- `.env.example`
- 命令:
```bash
npm run prisma:generate
npx prisma migrate diff --from-empty --to-schema-datamodel prisma/schema.prisma --script
```
- 结果摘要:
- Prisma Client 生成成功。
- schema 包含 `Submission``SubmissionFile`
- `.env.example` 只保留占位 `DATABASE_URL`,未写入真实密码。
- 待补:
- 生产 PostgreSQL 执行 `npx prisma migrate deploy`
- 成功入库后记录 `submission_id`
## E024 - Services CTA 和 legal 日期修复证据
- 日期2026-07-06
- 关联任务T017、T029
- 类型:源码和 HTTP 产物证据
- 命令:
```bash
rg -n "contact|Last updated" doc/index.html
curl -s http://localhost:8082/services | rg -n 'href="/start"|Expert consultation|Attorney Referral'
curl -s http://localhost:8082/terms | rg -n "Last updated: July 6, 2026"
```
- 结果摘要:
- `doc/index.html` 中 Services 04/05/06 已不再指向不存在的 `contact`
- `/services` 产物中 Expert consultation、Agency representation、Attorney Referral 的 CTA 均为 `href="/start"`
- legal 页面显示 `Last updated: July 6, 2026`
## E025 - 本地生产 8082 路由冒烟证据
- 日期2026-07-06
- 关联任务T003-T011、T015、T020、T039
- 类型HTTP 状态码证据
- 命令:
```bash
npm run start -- -p 8082
for p in / /press /judging /scholarly /services /why /resources /faq /start /ask /thanks /terms /privacy /disclaimer /robots.txt /sitemap.xml; do
code=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8082$p)
printf '%s %s\n' "$code" "$p"
done
```
- 结果摘要:
- 所有列出的路径均返回 `200`
- `robots.txt` 输出 `Sitemap: https://paprikalaw.com/sitemap.xml`
- `sitemap.xml` 包含核心公开路径。
- 备注:
- 这是本地生产服务验收,不等同于远程服务器和 HTTPS 验收。
## E026 - 表单 API 校验证据
- 日期2026-07-06
- 关联任务T012、T013、T038、T044
- 类型API 响应证据
- 命令:
```bash
curl -s -X POST http://localhost:8082/api/submissions \
-H 'Content-Type: application/json' \
-d '{"type":"ask","name":"","email":"bad","question":"","consentAccepted":false}'
```
- 结果摘要:
- 返回 `Validation failed`
- 字段错误包含 `name``email``consentAccepted``question`
- 待补:
- 配置 `DATABASE_URL` 后提交有效 `/start``/ask` 表单,记录 `submission_id` 和数据库查询结果。
- 未配置 `DATABASE_URL` 时,有效提交会返回 500不能作为入库成功证据。
## E027 - npm audit 结果
- 日期2026-07-06
- 关联任务T023、T036
- 类型:安全扫描摘要
- 命令:
```bash
npm audit --audit-level=moderate --json
```
- 结果摘要:
- 剩余 2 个 `moderate` vulnerability。
- 来源为 `next` 依赖链中的 `postcss <8.5.10` 公告。
- 当前项目已使用 registry 当前稳定版本 Next `16.2.10`
- npm 给出的 `fixAvailable` 会降级到 `next@9.3.3`,属于不合理破坏性修复,未执行。
- 后续:
- 等待 Next/PostCSS 依赖链发布可用修复版本后升级。
## 待补证据清单
| 编号 | 关联任务 | 需要补充的证据 |
| --- | --- | --- |
| E008 | T003-T011 | 桌面浏览器截图,覆盖 home、press、judging、scholarly、services、why、resources、faq |
| E009 | T018 | 移动端截图,至少 390px 宽度覆盖 home、services、faq、start |
| E010 | T012/T013 | 表单提交成功记录、submission id、后台记录截图或 webhook job_id |
| E011 | T016/T017 | 法务审核记录、确认人、确认日期 |
| E012 | T023 | 自动化测试命令和结果 |
| E013 | T024/T025 | 部署 URL、systemd 状态、Nginx 测试、证书、job_id、commit hash |
| E014 | T026 | PDF 或截图归档路径 |
| E015 | T030 | SSH key 或密钥管理方式确认,不能包含明文密码 |
| E020 | T041/T042 | 邮箱后台截图、DNS 查询输出、收发测试截图 |
| E021 | T043 | 表单通知邮件 message id 或测试截图 |
| E028 | T044 | PostgreSQL `DATABASE_URL` 配置后的真实表单提交、`submission_id` 和数据库查询结果 |
## 证据模板
### EXXX - 标题
- 日期:
- 关联任务:
- 类型:
- 命令或页面:
- 结果:
- 文件或链接:
- job_id/report_id/submission_id
- 备注: