9.0 KiB
9.0 KiB
06-决策记录
本文件记录已经做出的工程、产品和流程决策。后续若要改变决策,需要新增记录说明原因,不直接覆盖旧记录。
D001 - 当前基线按静态单文件 mockup 记录
- 日期:2026-07-06
- 决策:当前以
doc/index.html作为项目基线,而不是假设已有完整前端工程。 - 原因:
- 当前目录未发现
package.json、构建配置或后端代码。 doc/index.html已包含页面、样式和路由脚本。- 用户本轮要求是在
working中编写推进文档。
- 当前目录未发现
- 影响:
- 当前验收以静态页面可打开、路由可渲染、视觉可检查为主。
- 表单、部署、测试、工程化都作为后续任务单独推进。
D002 - 表单不按真实功能验收
- 日期:2026-07-06
- 决策:
start和ask当前只能记为表单视觉 mockup,不能记为真实线索收集功能。 - 原因:
- 字段是
<div>,不是输入控件。 - 提交按钮是跳转链接,不会提交数据。
- 没有后端、第三方表单服务、文件上传或校验逻辑。
- 字段是
- 影响:
T012、T013、T014保持TODO。- 上线前必须实现真实提交,或在页面明确标注不可提交。
D003 - 任务推进以任务矩阵为唯一入口
- 日期:2026-07-06
- 决策:后续开发先查
04-任务矩阵.md,每个任务必须有编号、状态、验收标准和依赖。 - 原因:
- 用户明确要求防止重复做。
- 当前项目范围包含内容、前端、表单、法务、部署和证据留存,容易混线。
- 影响:
- 新工作不得只写在聊天记录里。
- 完成任务必须同步推进台账和验收证据。
D004 - 法务内容按草稿处理
- 日期:2026-07-06
- 决策:Terms、Privacy、Disclaimer 当前按草稿记录,正式上线前需要法务或负责人确认。
- 原因:
- 页面涉及 non-law-firm statement、attorney-client relationship、refund、privacy、file upload、attorney referral、immigration outcome guarantee 等高风险内容。
- 页面曾使用
Last updated: July 10, 2026,晚于当前日期2026-07-06;R007 已修正日期,但内容仍需审核。
- 影响:
T016标为BLOCKED,等待法务/负责人输入。T017后续已完成日期修正;法务内容审核仍不关闭。
D005 - 本轮不改 doc/index.html
- 日期:2026-07-06
- 决策:R002 只补强
working文档,不修改doc/index.html。 - 原因:
- 用户要求是在
working中编写文档体系。 - 当前还没有要求开始代码修复或工程化迁移。
- 用户要求是在
- 影响:
T029虽已识别,但仍为TODO。- 后续修复死链时应单独开一轮并记录证据。
D006 - 长期文档不保存明文服务器密码
- 日期:2026-07-06
- 决策:用户提供的 SSH 密码只视为临时交接信息,不写入
working长期文档。 - 原因:
working文档会作为后续推进资料,可能被复制、上传或纳入版本控制。- 明文密码进入项目文件会扩大泄露面。
- 影响:
- 服务器信息保留 host、user、port、domain。
T030要求改用 SSH key、部署密钥或受控密钥库。
D007 - 目标部署端口采用 8082
- 日期:2026-07-06
- 决策:部署方案默认内部服务监听
8082,HTTPS 由域名和反向代理对外提供。 - 原因:
- 用户明确给出端口号
8082。 - 用户说明
8080-8099已开放。 - HTTPS 通常由 Nginx/Caddy/负载均衡终止,再转发到本地应用端口。
- 用户明确给出端口号
- 影响:
T024验收服务器本地127.0.0.1:8082。T025验收https://paprikalaw.com/。
D008 - Services 的 contact 路由判定为缺陷
- 日期:2026-07-06
- 决策:Services 页面 04/05/06 CTA 指向
contact是缺陷,不按设计接受。 - 原因:
pageData没有contact页面。- 当前路由逻辑会把未知页面回退到
home。 - CTA 文案是 Start Here,合理目标应为
start,除非新增真实 Contact 页面。
- 影响:
- 新增
T029。 - 修复前
T006只能保持VERIFY,不能标为DONE。
- 新增
D009 - Outlet/network 名称正式发布前需确认
- 日期:2026-07-06
- 决策:Press 和 Judging 页面中的 outlet/network 名称上线前必须由负责人确认,或改成示例类型表达。
- 原因:
- 页面列出大量媒体和 judging/network 名称,可能被理解为合作关系、可保证 placement 或背书。
- 这类陈述涉及商业真实性和法律风险。
- 影响:
- 新增
T031,状态BLOCKED。 - 未确认前不建议直接正式上线。
- 新增
D010 - 完全对标必须包含视觉和源码结构
- 日期:2026-07-06
- 决策:后续提到“完全对标
doc/index.html”时,不能只记录页面文案,还必须覆盖 CSS token、组件类、函数清单、CTA 映射、FAQ 编号、Legal section、未调用模块和源码缺陷。 - 原因:
doc/index.html是 3423 行单文件 mockup,页面内容、视觉规范和路由逻辑耦合在一起。- 如果只记录页面功能,工程化拆分时容易丢失视觉细节或保留隐藏缺陷。
- 影响:
01-项目功能内容.md增加源码级对标附录。02-项目程序开发详细步骤.md增加完全对标核验清单。- 新增
T034和E016。
D011 - 正式开发架构采用 Next.js + React + PostgreSQL
- 日期:2026-07-06
- 决策:正式开发技术架构采用 Next.js + React,数据库使用 PostgreSQL。
- 默认补充决策:
- 使用 TypeScript。
- 使用 Next.js App Router。
- 使用 Prisma 作为 PostgreSQL ORM。
- 使用 Next.js Route Handlers 或 Server Actions 处理表单提交。
- 生产服务监听
8082,HTTPS 由反向代理处理。
- 原因:
- 用户明确指定
Next+ React和PostGreSQL。 - 项目需要真实表单、数据持久化、后续可能的文件上传和后台线索管理,单纯静态站不够。
- Next.js 可同时承接页面、API、SEO、构建和生产服务。
- 用户明确指定
- 影响:
02-项目程序开发详细步骤.md中工程化路线改为 Next.js + PostgreSQL。- 新增
T035-T039。 - 后续不再优先推进 Vite/纯静态拆分,除非另有新决策。
D012 - PostgreSQL 已安装但仍需远程验证
- 日期:2026-07-06
- 决策:将服务器 PostgreSQL 状态记录为“用户确认已安装,待远程验证”,不直接视为已完成数据库接入。
- 原因:
- 用户已明确说明 PostgreSQL 在服务器安装完成。
- 但尚未执行服务状态、版本、数据库列表、应用数据库、应用用户和连接字符串验证。
- 影响:
- 新增
T040远程验证 PostgreSQL 安装。 T037PostgreSQL + Prisma 接入仍保持TODO。- 继续执行不保存明文密码的凭据规则。
- 新增
D013 - 邮箱账号统一记录但不保存初始密码
- 日期:2026-07-06
- 决策:记录
paprikalaw.com邮箱入口、管理员账号和 10 个普通邮箱账号,但不在长期文档保存用户提供的统一初始密码。 - 原因:
- 邮箱账号属于项目基础设施,网站联系、表单通知和法务联系需要引用。
- 多账号共用初始密码存在安全风险,进入文档会扩大泄露面。
- 影响:
- 新增
T041-T043。 - 创建或确认邮箱后,应尽快改为独立强密码并记录验证证据。
- Next.js SMTP 凭据只能放服务器环境变量或受控密钥库。
- 新增
D014 - 保留 doc/index.html 作为对标基线,同时以 Next.js 为正式工程
- 日期:2026-07-06
- 决策:不删除
doc/index.html,正式代码在根目录 Next.js 工程中维护。 - 原因:
doc/index.html是既有视觉、文案和路由逻辑的完整基线。- 新工程需要持续对标旧 mockup,避免内容迁移漂移。
scripts/extract-legacy-pages.mjs可从旧基线重新生成静态页面 CSS 和 HTML 数据。
- 影响:
- 静态内容页面暂由
lib/legacy-pages.ts和LegacyPage渲染。 /start、/ask、/thanks已由 React 页面接管,不再使用旧 mockup 表单。
- 静态内容页面暂由
D015 - 文件上传暂不启用
- 日期:2026-07-06
- 决策:Start/Ask 表单当前不启用 CV/resume 上传。
- 原因:
- 文件上传涉及存储位置、大小限制、访问权限、隐私保留期限和删除策略。
- 未确认前收集 CV 会扩大敏感数据风险。
- 影响:
SubmissionFile表作为未来能力预留。- 前端表单明确说明 file upload 暂停,直到存储和隐私方案获批。
D016 - 表单入库任务不在缺少 DATABASE_URL 时关闭
- 日期:2026-07-06
- 决策:虽然
/api/submissions已实现 Prisma 写入代码,但在没有真实 PostgreSQLDATABASE_URL和成功submission_id证据前,T038/T044 不标为DONE。 - 原因:
- API 代码通过构建不等于数据已经成功持久化。
- 生产数据库连接、migration、权限和网络策略都可能导致运行时失败。
- 影响:
- T012/T013/T038 保持
VERIFY。 - 新增 T044,专门记录真实 PostgreSQL 入库验收。
- T012/T013/T038 保持