Files
gaokao-volunteer-system/docs/CURRENT_STATE.md
Hermes Agent d773a2b879
Some checks failed
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled
fix(health+docs): P1-4 readiness语义修复 + P1-6 CURRENT_STATE矛盾消除
P1-4: /health 不再永远返回 status=ok/200
- 所有 checks 通过 → 200 + status=ok
- 任一 check 失败 → 503 + status=degraded
- K8s/systemd readiness probe 可正确判 HTTP status

P1-6: CURRENT_STATE §0.5 旧数字(7high/20usable)与新数字(31high)矛盾
- 旧数字标注为历史快照, 划线标记
- 顶部数字明确为唯一当前真相
2026-06-27 13:27:20 +08:00

394 lines
24 KiB
Markdown
Raw 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.
# CURRENT_STATE
最后更新: 2026-06-26
状态词: 本地验证完成v2.1 主链与 6/20/6/21 增量仍成立crowd_db 全国 31 省口径全部达 high当前 live 基线为 31 high / 0 usable / 0 skeletoncrowd_db 质量门槛已硬化为综合判定,防静默升级;本地服务启动 + integration/user_simulation E2E 已复跑通过;新增 30 组分段样例复核入口 E2E 已通过30 组中 26 组公开支持省份已完成完整用户全链路模拟)
本轮增量(当前工作区,基于 HEAD `dbb8fb7` 继续深度升级):
- crowd_db 当前 live 基线已实测为 `31 high / 0 usable / 0 skeleton`
- `data/crowd_db/*.json` 实存 31 个文件;`loader.py` 已支持全国 31 省级行政区
- `python -m data.crowd_db.quality_summary --human` 已确认最后 4 省(新疆 / 广西 / 西藏 / 宁夏)已落地并进入 high
- `pytest -q data/crowd_db/tests/test_score_distribution.py data/crowd_db/tests/test_subject_requirements.py data/crowd_db/tests/test_program_type.py data/crowd_db/tests/test_crowd_db_data_quality.py data/crowd_db/tests/test_provenance_query.py``57 passed`
- 2026-06-26 新增深度接入:`广西` / `宁夏` 已补 `score_distribution`(官方一分一档/一分段统计 + 本科线)
- 当前 `score_distribution` 覆盖已达 **31/31 省**;其中 `新疆 / 西藏` 已补齐官方最低控制分数线级别接入,但两省暂未检索到公开一分一段表
- 本轮本地验证附加证据:`GAOKAO_SKIP_INSTALL=1 bash scripts/dev-verify.sh` => `1302 passed, 3 skipped``scripts/integration_test.py` => `overall PASS``scripts/user_simulation.py` => `overall PASS`
- 新增 30 组分段样例 E2E`reports/score_range_e2e_2026_06_26.json` => `review_start 30/30 通过`,且对 6 组公开支持省份样例做了 `公开下单 -> portal status` 深层抽样,结果 `6/6 通过`
- 新增 30 组完整全链路样例 E2E`reports/score_range_fullchain_e2e_2026_06_26.json` => 在 30 组样例中,`26` 组属于当前公开下单支持省份,已全部走通 `下单 -> 支付模拟 -> payment-success -> portal info 提交 -> portal status -> review/start -> review/action(full_plan/cwb)`,结果 `26/26 通过`;其余 `4` 组因不在 `_public_supported_provinces()` 中按契约跳过完整下单链路
- 新增 100 分数真实用户验证:`reports/SCORE_RANGE_FULLCHAIN_100_VALIDATION_2026-06-26.md` => 全量入口 `100/100` 通过、公开支持省份完整主链路 `87/87` 通过、非公开支持省份合同边界 `13/13` 正确阻断;`scripts/dev-verify.sh` 已纳入 `12` 例 smoke E2E 回归
- 当前工作区未提交修改:`data/crowd_db/xinjiang.json``data/crowd_db/xizang.json``data/crowd_db/tests/test_score_distribution.py``docs/CURRENT_STATE.md``docs/CROWD_DB_NATIONALIZATION_SOURCE_OF_TRUTH.md``reports/score_range_e2e_2026_06_26.json``scripts/score_range_fullchain_e2e.py``reports/score_range_fullchain_e2e_2026_06_26.json``scripts/score_range_fullchain_100_e2e.py``reports/score_range_fullchain_100_cases_2026_06_25.json``reports/score_range_fullchain_100_batches_2026_06_26.json``reports/score_range_fullchain_100_batches_2026_06_26.csv``reports/score_range_fullchain_100_e2e_smoke_2026_06_26.json``reports/score_range_fullchain_100_e2e_2026_06_26.json``reports/score_range_fullchain_100_e2e_boundary_2026_06_26.json``reports/SCORE_RANGE_FULLCHAIN_100_VALIDATION_2026-06-26.md``reports/SCORE_RANGE_FULLCHAIN_100_EXEC_SUMMARY_2026-06-26.md``tests/test_score_range_fullchain_100_script.py``tests/test_score_range_fullchain_e2e_typing.py``tests/test_dev_verify_entrypoint.py`
真相源优先级:
1. 本文件
2. `reports/STRICT_SYSTEM_REVIEW_2026-06-24.md`6/24 最新严格系统复审汇总版149 passed, 1 warning当前建议作为最新审查结论
3. `reports/STRICT_SYSTEM_REVIEW_2026-06-23.md`6/23~6/24 历史滚动审查过程稿,保留发现/修复轨迹)
4. `docs/CROWD_DB_NATIONALIZATION_SOURCE_OF_TRUTH.md`(全国高信任建设当前口径与批次真相)
5. `docs/ACTIVE_REMEDIATION_2026-06-20.md`6/20 当前整改清单,**取代 6/19 历史快照**
6. `docs/ACTIVE_EXECUTION_BOARD_2026-06-20.md`6/20 当前执行板,**取代 6/19 历史快照**
7. `docs/ACTIVE_REMEDIATION_2026-06-19.md`**已降级为历史快照**
8. `docs/ACTIVE_EXECUTION_BOARD_2026-06-19.md`**已降级为历史快照**
9. `docs/plans/2026-06-23-national-high-trust-crowd-db-plan.md`(全国高信任建设详细计划)
10. `docs/plans/2026-06-19-production-readiness-remediation-plan.md`6/19 整改计划)
11. `reports/PRODUCTION_STRICT_REVIEW_2026-06-19.md`6/19 复审报告)
12. `docs/plans/2026-06-17-phase2-majors-catalog-implementation-plan.md`Phase 2 已收口快照)
13. `docs/DESIGN_RULES_TRUSTED_CLI_2026-06-16.md`设计快照Phase 编号需与执行口径消歧)
14. `docs/PROJECT_PLANNING_REALIGNMENT_2026-06-16.md`(历史规划/实现漂移审计)
15. `docs/RULES_SOURCE_OF_TRUTH.md`(规则真相源索引;待补建)
16. `docs/MAJOR_DATA_SOURCE_OF_TRUTH.md`(专业目录真相源索引)
17. `docs/CLI_API_MAPPING.md`CLI/API 映射索引)
18. `docs/P0_P1_P2_REMEDIATION_PLAN_2026-06-14.md`历史整改板§4 卡片以 §2.1 状态归一为准)
19. `docs/FRONTEND_UI_AUDIT_2026-06-16.md` / `docs/FRONTEND_UI_EXECUTION_BOARD_2026-06-16.md`
20. `docs/ACTIVE_REMEDIATION_2026-06-13.md`**已降级为历史快照**
21. `docs/ACTIVE_EXECUTION_BOARD_2026-06-13.md`**已降级为历史快照**
22. `product/PRD.md` / `product/ROADMAP.md` / `docs/IMPLEMENTATION_PLAN_v2.md`
23. `docs/PRODUCTION_DEPLOYMENT_CHECKLIST_2026-06-15.md`
24. `reports/PRODUCT_PLANNING_TECH_ALIGNMENT_REVIEW_2026-06-13.md`(历史评审快照)
---
## 0. 6/20 增量段(叠加在 6/19 真相源之上)
6/20 落地了 1 项 P1 整改 + 端到端本地 acceptance 步骤 + 1 项合规补录统一化
- 生产加固 + L-A 送审前修复 + crowd_db 质量契约 + 真相源分层。**本节是当前唯一增量**
### 0.1 T12-D retention cleanup conn ownership 修复P1
- 现象: `retention_cleanup.run_cleanup(apply=True)` 一次命中 ≥ 2 笔终端态订单时,第二笔起全部 `sqlite3.ProgrammingError: Cannot operate on a closed database`
- 根因: `OrdersDAO.__exit__` 不区分连接所有权,对外部 service 传入的 `self._conn``close()``deletion_service.anonymize_order` 把 service 持有的连接包成 `OrdersDAO(self._conn)` 走 with-block第一笔执行完就把连接关掉
- 修复: `OrdersDAO.__init__` 新增 `owns_conn: bool = False` 参数;`__exit__` 仅在 `owns_conn=True` 时 close`connect()` classmethod 创建的连接自动设 `owns_conn=True`(保持原行为);外部 service 包成 DAO 走 with-block 默认不 close
- 回归测试: `tests/test_retention_cleanup.py::test_retention_cleanup_apply_anonymizes_multiple_old_orders_in_sequence` 锁住多订单连续 anonymize 契约
- 端到端 smoke 实测: 4 笔订单2 笔旧 terminal + 1 笔 fresh pending + 1 笔 paid-in-window→ dry-run 报 2 candidates / 0 anonymizedapply 真把 2 笔匿名化pending/paid-in-window 严格不动deletion log 1 条被裁share events 2 条被裁
- runbook §8 新增 T12-D 本地端到端 acceptance 步骤 + 部署前 checklist + 历史 bug 背景
- 验证: 6 个 retention 测试 + 205 个直接相关子集全过ruff + mypy 通过
### 0.2 A-2 admin/外部渠道补录同意审计统一化P1
- 现象: `admin/routes/orders.py:543-590` `create_order` 路径不收任何 consent 字段
grep `consent` 0 命中),直接违反 `LEGAL_PRIVACY_BASELINE §6`
portal 路径早已自动落 `consent_channel=portal / consent_operator=guardian`
- 修复: `CreateOrderRequest.consent: ConsentInfo` 必填;`consent_method` 白名单
`verbal_chat / phone_recording / screenshot / written_form / self_declared`
- 落地: `Order` 模型 + DAO + schema 增量加 `consent_method / consent_given_at`
(冗余避免 join创建订单后同步写 `order_intakes` 记录(独立 `IntakeStore.for_db`
- `consent_channel` = source
- `consent_operator` 严格按基线白名单 `self / guardian / admin_import`:
- `web` 渠道: `guardian`(与 `intake_store.save` 默认值一致)
- 其他渠道: `admin_import`(后台代录,同意来源是渠道商)
- 验证: 25 个 admin orders + alias 测试全过ruff + mypy 通过;端到端 smoke 通过
- 测试: 4 个参数化 missing_consent_block + 3 个 audit 字段校验 + 1 个白名单校验
- 1 个 detail 返回值 + 1 个 update test_create_order_returns_masked_payload
### 0.3 生产加固6/20 v2.1.3
- **`/health` 端点增强**: 主键契约 `status: "ok"` 不变;增 `checks` 子对象
覆盖 `db_writable` / `disk_writable` / `settings_valid` 三项 readiness 指标
- **JWT secret fail-closed**: `_enforce_jwt_secret_policy``load_settings()`
post-load 校验中调用prod env 使用 dev 默认 JWT / 长度 < 32 → RuntimeError
- **admin password fail-closed**: `_enforce_default_admin_password_policy` 同样接入
post-load 校验prod env 使用 `admin123` 默认值 / 密码 < 10 字符 / 字符类 < 3 → RuntimeError
- 验证: 4 个 health/config 测试全过dev-verify 全量通过
### 0.4 L-A 送审前修复6/20 v2.1.3
- **R1**: `docs/LEGAL_PRIVACY_BASELINE.md` §6 移除 `consent_channel` 列表里
的孤儿 `admin` 渠道值(代码侧从未实际产生);增注释说明移除原因
- **R4**: `docs/LEGAL_PRIVACY_BASELINE.md` §7 "已具备/尚缺" 重写,显式归到 6/20 增量
- **R7**: admin 后台 dashboard.html (592 行) + ui.py 内联 orders/new 模板加 footer
隐私政策 + 数据删除说明 + 服务说明链接;与 portal 前台 `_render_footer_links()`
同口径
### 0.5 crowd_db 数据质量契约6/20 v2.1.3 Q-A 闭环)
> **⚠ 历史快照2026-06-20~25**:以下数字为 6/20~6/24 阶段的中间状态,**不再代表当前真相**。
> 当前真相以本文件顶部为准:`31 high / 0 usable / 0 skeleton`。
- 新增 `data/crowd_db/tests/test_crowd_db_data_quality.py` (CROWD_DB_DATA_QUALITY
§7 承诺的锁死文件,仓库此前缺失)
- ~~27 省总数 (23 省 + 4 直辖市)~~ → 已升级为 **31 省** (23 省 + 4 直辖市 + 4 自治区)
- ~~当前真实状态2026-06-25 实测7 high / 20 usable / 0 skeleton~~ → **已升级为 31 high / 0 usable / 0 skeleton**
- ~~high 白名单:湖南/广东/江苏/山东/河北/浙江/福建~~ → **当前 31 省全部 high7 省 S 级 + 24 省 A 级)**
- 所有 confidence ∈ [0, 1]
- 所有 data_year = 2025 (待 2026 录取数据正式公布后显式更新)
- 防止"27 省 crowd_db 均为高置信强推荐数据"合规假象回归
- **历史轨迹**仅供审计6/20 基线为 4 high + 3 usable + 20 skeleton6/23 升级到 5 high6/24 升级到 7 high / 20 usable / 0 skeleton6/25 升级到 31 high / 0 usable / 0 skeleton
- 详细质量分布与升级轨迹见 `docs/CROWD_DB_NATIONALIZATION_SOURCE_OF_TRUTH.md`
### 0.6 crowd_db 可信来源元数据补齐2026-06-21
- 27 个省级 JSON 统一补齐 `trusted_sources` / `quality_note`
- `source_url` 从仓库自引用改为可信公开入口 `https://gaokao.chsi.com.cn/`
- `SCHEMA.md` / loader / provenance tests 已同步
- 这补齐的是**可信来源治理口径**,不代表 26 个非湖南省已升级为高置信推荐数据
### 0.7 真相源分层与历史快照降级6/20 增量)
- 6/19 整改板/执行板顶部加"⚠ 历史快照"头注,指向 6/20
- 6/20 新建 `docs/ACTIVE_REMEDIATION_2026-06-20.md` + `docs/ACTIVE_EXECUTION_BOARD_2026-06-20.md`
- 本节作为 6/20 增量叠加在 6/19 真相源之上
### 0.8 用户端主链路真实 TestClient 覆盖收口2026-06-23
- 公开页与主流程已用真实 `TestClient` 证明:
- `/` / `/pricing` / `/checkout/*`
- `POST /api/public/orders`
- `POST /review/action`(真实 form + 303 redirect
- `/review/start`
- `/portal/{token}/info` / `/status` / `/report` / `/report.pdf`
- `/portal/{token}/cwb` / `/full-plan` / `/payment-success`
- `POST /pay/mock/{payment_id}/complete`
- `RouteClient` 已降级为辅助:
- 临时 app / 特殊 env缺 key、provider unavailable、prod 隐藏 mock
- `submit_order_info(...)` 这类直接函数级持久化断言
- 少量流程搭台用途
- 现状口径:主链路正确性不再依赖 `RouteClient` 自证,真实页面 / 真实协议 / 真实重定向已可回归验证
- 证据:`reports/TEST_CLIENT_COVERAGE_2026-06-23.md`
- 验证:`./.venv/bin/python -m pytest -q admin/tests/test_order_status_page.py admin/tests/test_web_public.py admin/tests/test_web_public_content_pages.py admin/tests/test_web_public_review_flow.py admin/tests/test_web_public_portal_info.py data/orders/tests/test_schema.py``89 passed, 1 warning`
### 0.9 法务协议与 crowd_db 可信来源补齐2026-06-21
- `docs/PRIVACY_POLICY_DRAFT.md` 补齐:未成年人、委托处理、用户权利、存储与删除、投诉联系方式、版本生效等条款
- `docs/SERVICE_TERMS.md` 补齐:服务边界、支付退款、知识产权、免责、争议解决、版本更新等条款
- `docs/LEGAL_PRIVACY_BASELINE.md` 补齐正式法务审核条款清单与待审状态说明
- `data/crowd_db/*.json` 统一补齐可信来源元数据(`trusted_sources` / `quality_note`),并将 `source_url` 切到可信公开入口
- 这两项仍处于**待法务 / 待内容深化**阶段,但已经从“缺文档/缺元数据”提升为“可审核、可复核、可继续推进”
---
6/19 落地了 3 项 P0/P1 整改 + 1 项真相源分层。**本节是当前唯一增量**
### 0.1 A1 — 删除/匿名化保留期门禁P0
- 错误码 `BIZ_ORDER_RETENTION_NOT_EXPIRED` (E02002) → HTTP 409
- 配置 `GAOKAO_RETENTION_DAYS`(默认 180
- 路由层 `_assert_retention_expired` 守卫,状态子集 paid/serving/delivered/completed/refunded 触发pending 直接放行
- 口径来源: `docs/DATA_RETENTION_AND_DELETION.md` §2
- 测试: 3 个新失败/放行用例 + `_expire_retention_window` helper
- 验证: dev-verify all checks passed1175 passed
### 0.2 B1 — 支付失败状态持久化P1
- `data.payments.service.handle_webhook`: 非 success 状态不再抛 PaymentError改为持久化 `payment.status='failed'` + `failed_at` + `failure_reason` + 完整 `callback_payload`
- schema 增量升级:`_ensure_column` 幂等 `ALTER TABLE payments ADD COLUMN failed_at / failure_reason`
- 幂等保证终态paid / refunded / failed后到达的失败 webhook 走 idempotent 路径
- 测试: `test_handle_webhook_persists_failed_status` 锁住新契约
- 验证: dev-verify all checks passed
### 0.3 A2 — 4 个产品/工程文档 Current/Target 校准P1
- `README.md` 顶部执行板指向 6/19 + 6/19 新增约束
- `product/PRD.md` 顶部"最后更新"升级为 6/19
- `product/ROADMAP.md` 顶部校准从 6/13 升级到 6/19
- `docs/TECH_ARCHITECTURE.md` 顶部 Current/Target 指向 6/19 执行板
### 0.4 B2 — 真相源分层与历史快照降级P1
- 6/13 整改板/执行板顶部加"⚠ 历史快照"头注
- 新建 `docs/ACTIVE_REMEDIATION_2026-06-19.md` + `docs/ACTIVE_EXECUTION_BOARD_2026-06-19.md`
- 本节作为 6/19 增量叠加在 6/13 真相源之上
### 0.5 T12-C — 前台删除工单 + 保留期外可申请P1本节落盘即收口
- 落地:
- `admin/routes/web_public.py``_resolve_retention_status` + `_next_step_for_retention`
- `DeletionRequestCreate` Pydantic 锁 `scope` 到白名单 + `confirm_guardian` 强制 bool
- `POST /portal/{token}/deletion-request` 根据订单保留期返回 3 种 next_step 文案
- `GET /portal/{token}/deletion-request` 在表单上方加"保留期状态"提示卡
- 测试: 4 个新测试 + 2 个 helper 复用
- 验证: 1179 passed, dev-verify all checks passed
---
## 0. 单一执行口径2026-06-17
为消除设计 Phase 编号与执行 Phase 编号漂移,本节是当前唯一口径:
| 设计层 PhaseDESIGN_RULES_TRUSTED_CLI_2026-06-16.md | 执行层 Phase当前真相 | 状态 |
| ------------------------------------------------------ | ------------------------------------------ | ---------------------------------------------- |
| Phase 1 规则真相源化 | 执行 Phase 1 | ✅ 已收口(`ae4835e` + `8a61b8f`,三仓同步) |
| Phase 2 统一审计引擎最小可用 | 执行 Phase 1.5verify + 旧 checker 迁移) | ✅ 已收口(同上) |
| Phase 3 专业目录接入 MVP | 执行 Phase 2 | ✅ 已收口(`36ad58a` + `6b1157f` + `edc5b11` |
| Phase 4 统一 CLI 命令面 | 执行 Phase 3 | ❌ 未启动 → 下一阶段 |
| Phase 5 智能体调度 + admin 整合 | 执行 Phase 4 | ❌ 未启动 → 等 Phase 3 收口 |
| Phase 6 文档/真相源索引收口 | 长期维护 | ⚠ 进行中docs-only 收口本轮同步) |
> 设计层 Phase ≠ 执行层 Phase。状态查询一律以本表 + 6/17 执行板为准。
---
## 1. 当前准确定位
项目当前准确定位为:
- 已完成: 人工服务运营增强系统(闲鱼 / 微信 / 学校渠道)
- 已完成: 管理后台、订单、分享、渠道同步、AI 审核基础校验、CI/CD、性能与安全加固
- 已完成/已验证:
- `Phase2 major_validation` 已接入 `AuditEngine`
- `gaokao-cli audit run --json` 当前只承认两类真实检查:省份规则 + 专业目录状态
- 规则/专业目录/CLI 三层都已具备可回归验证入口
- 当前仍在推进:
- 已完成且已本地验证: `mock` / `alipay_sim` / `alipay` 三层支付代码链与 notify/return 路由退款状态闭环、portal token secret 分离、payment webhook fail-closed、删除/匿名化扩围、分享 allowlist、channel_sync DB 隔离与 DAO 真相收敛
- 未完成且仍阻塞线上验收: 真实支付宝商户凭据、公网 notify_url、备案域名、真实支付 acceptance
一句话:
> 当前项目定位:人工服务运营增强系统;用户端 Web 自助闭环仅为本地 MVP/目标态,尚未达到可对外承诺的完整 SaaS 水位。当前版本已经完成 v2.1 的后台运营链路与 AI 审核增强闭环,但不是完整 Web 自助 SaaS。
---
## 2. 已完成模块
- T1 AI审核服务
- T2 反扎堆检测
- T3 数据溯源
- T4 订单管理
- T5 集成测试与发布
- T6 管理后台
- T7 分享功能
- T8 渠道集成
- T9 错误处理
- T10 CI/CD
- T11 性能与安全
覆盖率门槛证据:
覆盖率门槛证据:
- overall = 92.46%
- core = 100.00%
- 满足整体≥80%、核心≥100%
- 本地与 CI 的硬门禁统一收敛到 `scripts/check_coverage_gate.py`
- `dev-verify.sh` 与 GitHub CI 都执行同一组硬阈值检查
- `codecov.yml` 当前保持同值展示口径,但不是执行单源,也不是阻断门禁
三仓同步状态:
- gitea/main 已同步
- origin/main 已同步
- tksea/main 已同步
- tag v2.1 已推送
---
## 3. 尚未完成 / 不应误报为已完成
### T12 用户端 Web 自助 MVP
当前仅能说:
- 已启动 / 实施中
- 还不能说“已完成”
未完成主链路包括:
- 真实支付接入与回调验签的线上 acceptance
- `info_submitted -> serving` 自动处理主链 +本地自动桥接 `info_submitted -> serving` 已落地;仍缺真实 worker/生成服务/线上调度收口
- 站内通知发送器、真实邮件通知发送器与调度已落地;仍缺生产告警链与独立通知审计页
- 前台删除工单流程与更完整的产品化交互
因此:
- Web 自助购买场景 = **本地 MVP 主链已大部分落地,但线上闭环未完成**
- 完整教育 SaaS 化 = 未完成
---
## 4. 已修正的历史评审问题
以下问题在 2026-06-13 之后已被修正,不应继续按“当前未解决”表述:
1. PRD P2 / P3 功能编号冲突
2. ROADMAP 中已落地功能仍保持未勾选
3. TECH_ARCHITECTURE 仍标“设计中”
4. FINAL_COMPLETION_REPORT 仍写“条件完成”
5. 依赖清单未显式声明 Jinja2 / WeasyPrint / cairocffi / ruff / mypy
6. GitHub origin 凭据导致发布链阻塞
这些应被视为:
- 已修正的历史问题
- 不应再作为当前阻塞项重复引用
---
## 5. 仍然有效的评审问题
以下问题仍成立,应继续作为后续版本约束:
### P0 / P1 真实缺口
- 用户端 Web 自助支付闭环缺失
- 生产通知链已有底层 validated/delivered 状态机、portal 通知审计页、后台独立通知审计页、运维告警审计页与 watchdog alert sink已支持 SMTP/IM webhook sink 代码接入,但仍缺线上真实通道配置后的生产联调
- 前台入口已支持基础资料填写、最多 5 个附件上传与 5 步向导(基础信息 / 偏好与目标 / 已有方案与附件 / 协议确认 / 提交确认);仍缺更完整文件类型策略与更细粒度错误提示
- 2026-06-16 前端专项审计结论:用户端首页 / 定价页 / 结账页存在明显 AI 模板痕迹、开发术语外露与商业转化不足;后台 `/dashboard` 仍偏开发者自检页。当前执行板见 `docs/FRONTEND_UI_EXECUTION_BOARD_2026-06-16.md`
- 2026-06-16 第二轮本地整改已完成首页、定价页、结账页、portal 向导页 / 状态页、后台 `/dashboard` 已完成首轮产品化与去技术暴露重构;剩余前端工作聚焦 design token 基线与更强回归门禁
- 2026-06-16 第三轮本地整改已完成:`admin/static/portal-ui.css` 已建立为共享样式基线,关键用户页面已接入 shared CSS并补齐页面级回归断言前端整改范围已本地收口剩余仅为 Git 交付或后续更深层视觉迭代
- 业务数据备份 / 恢复 / 密钥托管已有本地基线与验证,但异机备份和生产接入仍不足
- 隐私政策 / 服务协议 / 监护人同意 / 数据保留与删除流程仍缺前台/客服自助工单与正式法务版本
> 重要更新2026-06-15
> 上述 5 项是 v2.1 当前阶段以外的真实缺口。
> 上一轮 2026-06-14 严格复审里的 P1 整改项已全部完成:
>
> - P1-1 支付回调双写裂缝已修复
> - P1-5 退款域模型闭环已修复
> - P1-2 删除/匿名化已覆盖 orders 主表 + payments.callback_payload + order_intakes.payload_json
> - P1-7 验证链口径统一CI / dev-verify / codecov / gate script 同一阈值)
### P2 工程改进
- crowd_db 高置信数据应区分湖南与其他省份
- 架构图仍需进一步拆分 Current / Target 视觉表达
- legacy 邮件脚本应继续弱化为非主链能力
### 仍然有效的 P1 / P2 整改项
完整清单见 `docs/P0_P1_P2_REMEDIATION_PLAN_2026-06-14.md`
- P1-3 真实支付回调校验
- P1-8 备份恢复演练 / 目标机告警接入
- 隐私政策 / 服务协议 / 删除工单正式入口
已完成并不再列为整改项:
- P2-1 公共下单孤儿订单
- P2-2 channel_sync 单一 DAO 真相
- P2-3 delivery 通知状态语义收口(`sent` 已移除)
- P2-4 portal token / JWT secret 分离(已通过 P2-4 单元测试 + prod fail-closed
- P2-5 payment webhook secret fail-closed已通过 P2-5 单元测试 + prod fail-closed
- X-02 支付域设计
- X-03 Delivery 交付服务设计
- X-04 合规基线文档
- X-05 备份恢复与密钥托管方案
- X-06 本地一键验证脚本
- X-08 crowd_db 数据完整度等级化
---
## 6. 对外表述边界
允许对外说:
- 已具备人工服务运营后台能力
- 已具备 AI 审核基础校验、数据溯源、分享、渠道同步能力
- `audit run` 当前只承认省份规则 + 专业目录状态校验,不应对外表述为“已包含反扎堆/综合评分闭环”
- 已完成 v2.1 当前计划闭环
不应对外说:
- 已完成完整 Web 自助 SaaS
- 已完成系统内支付闭环
- 已完成用户端完整交付闭环
- 27 省 crowd_db 均为高置信强推荐数据
---
## 7. 推荐阅读顺序
1. docs/CURRENT_STATE.md
2. docs/archive/2026-06-historical-snapshots/FINAL_COMPLETION_REPORT_2026-06-13.md
3. product/PRD.md
4. product/ROADMAP.md
5. docs/IMPLEMENTATION_PLAN_v2.md
6. reports/PRODUCT_PLANNING_TECH_ALIGNMENT_REVIEW_2026-06-13.md作为历史评审参考