From ef9ee62a6b6652e2878ebedd3b578b5218b92b04 Mon Sep 17 00:00:00 2001 From: Jesse_Chen Date: Fri, 16 Oct 2026 08:35:02 +0800 Subject: [PATCH] docs(tasks): dasha unify fix brief (agent loop, issue #69, bounce 1) Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3 --- docs/tasks/README.md | 1 + docs/tasks/TASK-dasha-unify-fix-20261016.md | 32 +++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 docs/tasks/TASK-dasha-unify-fix-20261016.md diff --git a/docs/tasks/README.md b/docs/tasks/README.md index 80768702..004b50c0 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -494,6 +494,7 @@ | `TASK-pl9-render-split-20261013.md` | — | render_pl9_markdown 第一阶段:搬出无依赖内部函数 | 待领取(排队:api-chart-subprocess-gate) | `codex/pl9-render-split-20261013` | | `TASK-python-hygiene-20261013.md` | — | 免费层排队开关报反、静默吞异常、功能吉凶兜底合一、测试专用脚本归位(BUG-1340) | 待领取(排队:pl9-render-split) | `codex/python-hygiene-20261013` | | `TASK-dasha-unify-20261013.md` | — | /api/dasha 改走引擎同一套实现、删占位注册表、Ashtottari 出生余额(BUG-1341、1344) | 待领取(排队:python-hygiene) | `codex/dasha-unify-20261013` | +| `TASK-dasha-unify-fix-20261016.md` | — | **#69 第 1 次打回**:`5ac88e58` 主体通过;逐字移植的 `calc_mudda_with_dasha_balance` 被改;调用矩阵仍列已删文件 | 待领取 | `codex/dasha-unify-20261013` | | `TASK-api-server-service-extract-20261013.md` | — | API 单体第一阶段:拆出不带 HTTP 的计算类,生产伪造 handler 归零 | 待领取(排队:dasha-unify) | `codex/api-server-service-extract-20261013` | | `TASK-data-layer-types-20261013.md` | `PROGRESS-data-layer-types-20261013.md` | 数据访问层改用自己的 DataClient 类型第一阶段(BUG-1351;任务书预留的 1343 已被更大编号越过) | 待验收 | `codex/data-layer-types-20261013` | | `TASK-contracts-helpers-dedupe-20261013.md` | — | 前后端契约与小工具去重第一阶段 | 待领取(排队:frontend-dead-code、consult-route-split) | `codex/contracts-helpers-dedupe-20261013` | diff --git a/docs/tasks/TASK-dasha-unify-fix-20261016.md b/docs/tasks/TASK-dasha-unify-fix-20261016.md new file mode 100644 index 00000000..308c3197 --- /dev/null +++ b/docs/tasks/TASK-dasha-unify-fix-20261016.md @@ -0,0 +1,32 @@ +# TASK · 大运接口统一修复单(issue #69,第 1 次打回) + +- 日期:2026-10-16 +- 原任务书:`docs/tasks/TASK-dasha-unify-20261013.md` +- 被验 SHA:`5ac88e58f50b451f860482ea6de107c846780ae5`(`codex/dasha-unify-20261013`) +- 执行方:Grok,同一分支续做(先 merge 最新 `origin/staging`,不改写已推历史) + +## 1. 验收结论:主体通过,Python 全量新增 2 条真失败 + +已确认成立:冻结身份两份清单内的文件一个字节没改;Claude 独立用三张虚构盘对比新旧全量解读包,Ashtottari 之外只有随时间变化的引用号与仓库路径不同,无其它差异;Ashtottari 与 PyJHora 起止相差 ≤1 天(以 Grok 回报为准)。 + +| 新增失败(单独重跑仍失败;基线上通过) | 证据 | +| --- | --- | +| `tests/test_tajika_mudda.py::test_ported_function_is_verbatim[calc_mudda_with_dasha_balance]` | 函数源码哈希 `8569dd86…` → `8862bb1f…`。这条合同要求从上游移植的函数**逐字保持原样**;本单 T4 把 `scripts/tajika.py` 里这个函数内的 Vimshottari 年数字面量换成了常量引用 | +| `tests/test_owner_case_purge_contract.py::test_invocation_matrix_paths_counts_hash_and_boundaries` | 断言 `references/oracle/full_technique_invocation_matrix_2026_07_22.json` 每行 `sample_files` 的路径都存在;本单删了 `scripts/extended_dashas.py`、`scripts/conditional_dashas.py`,矩阵里仍列着它们 | + +## 2. 修法要求 + +1. `tajika.py::calc_mudda_with_dasha_balance`:**恢复成与基线逐字相同**(年数表字面量留在函数里)。原任务书 T4 已写「顺序或数值不同的不换」——逐字移植的函数同样不换;把它加进 T4 新测试「Vimshottari 年数字面量计数」的白名单,并在 PROGRESS 写明理由(`test_ported_function_is_verbatim` 锁定)。再 grep 一遍 `test_ported_function_is_verbatim` 覆盖的其它函数,确认本单没有改到。 +2. 调用矩阵:`references/oracle/full_technique_invocation_matrix_2026_07_22.json` 属于历史归档类文件,**不要直接改它的内容**。先看该测试与仓库里是否有既有的「归档引用已删除文件」处理办法(如 `test_historical_artifacts_are_byte_preserved_not_refreshed` 的约定);若没有,选其一并在 PROGRESS 写清理由: + a. 让测试对矩阵里指向已删除的 `extended_dashas.py` / `conditional_dashas.py` 的条目改为断言「这些路径已按 BUG-1341 删除,且由 `<现行模块>` 接替」(三栏写明); + b. 若归档文件允许更新,则用生成它的脚本重新生成,不得手改。 + **不得**为了让测试过而把那两个文件加回来。 +3. 合并最新 staging 后在本机跑:`python -m pytest tests/test_tajika_mudda.py tests/test_owner_case_purge_contract.py tests/test_dasha_api_engine_parity.py -q`。 + +## 3. 验收标准 + +Claude 全量 pytest 与 staging 基线逐条比对无新增;`tajika.py` 中 `calc_mudda_with_dasha_balance` 与基线 `git diff` 为空。 + +## 4. 让步顺序 + +无。第 1 次打回。