docs: functional v2 wrap-up — BUG-1158 resolved, BUG-1180~1182, ERR-114, backtest round 5, progress

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
Jesse_Chen
2026-10-02 13:01:55 +08:00
co-authored by Claude Opus 5.5
parent dae2b99fe2
commit 51f3f47bbe
6 changed files with 267 additions and 4 deletions
+6
View File
@@ -466,3 +466,9 @@ Prevention: 文档提交一律 `git add <具体路径>` 再 `git commit`,不
`next build` 在镜像里对 `frontend/**/*.ts` 做类型检查,而 `deploy/railway-web.Dockerfile` 不复制 `frontend/tests`。任何 `frontend/src` / `frontend/scripts` 文件引用 `../tests/...` 都会在完整检出上通过、在镜像构建里 TS2307。复现方法:`git archive <sha>` 出 Dockerfile 的 COPY 清单,按同目录布局放好(`app/frontend`、`app/{SKILL.md,assets,references,scripts,skills}`),硬链 node_modules 后 `npm run build`。
Prevention: `frontend/tests/runtime-sources-no-test-imports.test.ts`;研究 harness 若依赖测试夹具,放 `frontend/tests/research/`。关联 BUG-1140。
## ERR-114 | 校正冻结身份漏了功能吉凶文件:分数变了门禁不红,只改版本号反而红 | observed 2026-10-02
`57782aea` 改 `scripts/functional_benefics.py`(功能吉凶 v2)让原生打分同输入出不同分(reported-offset 900 例里 230 例变化),但该文件不在 `sealed_holdout_rerun.py` `PRODUCTION_FILES` 和 dataset `frozen_scoring.files` 里,`tests/test_rectification_validation_integrity_gate.py` 全绿;随后只把 `scoring_service.py` 的 `ALGORITHM_VERSION` 从 scoring-9 改成 scoring-10,同一门禁 8 条失败。冻结身份是显式审过的文件清单,不是传递依赖,清单外的打分输入会静默漂移。
Prevention: 打分路径新增或改动输入模块时,先查它在不在两份清单里;`functional_benefics.py` 已补进 `PRODUCTION_FILES` 并由 `test_functional_roles_are_part_of_the_production_identity` 锁住;改动后按 ERR-110 重新冻结(本次标签 `functional_v2_2026_10_02`)。关联 BUG-1181、ERR-110。