From 4a87790984faaed4e25a38419dc515e5dddcd8bd Mon Sep 17 00:00:00 2001 From: Jesse_Chen Date: Sat, 19 Sep 2026 23:35:43 +0800 Subject: [PATCH] =?UTF-8?q?docs(tasks):=20=E5=BA=93=E4=B8=BB=E6=A1=88?= =?UTF-8?q?=E4=BE=8B=E6=B8=85=E9=99=A4=20fe9489e6=20=E9=AA=8C=E6=94=B6?= =?UTF-8?q?=E6=9C=AA=E9=80=9A=E8=BF=87=E2=80=94=E2=80=94=E7=AD=94=E6=A1=88?= =?UTF-8?q?=E9=94=AE=E5=AE=88=E5=8D=AB=E6=92=9E=20pl9=5F1993=20=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=EF=BC=88P0=EF=BC=89=E4=BF=AE=E5=A4=8D=E5=8D=95=20+=20?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8 --- docs/tasks/README.md | 2 +- .../TASK-owner-case-purge-fix2-20260919.md | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 docs/tasks/TASK-owner-case-purge-fix2-20260919.md diff --git a/docs/tasks/README.md b/docs/tasks/README.md index 255a298f..bc861a7c 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -286,7 +286,7 @@ | `TASK-rectification-precision-gate-guided-collect-fix-20260916.md` | `PROGRESS-rectification-precision-gate-guided-collect-fix-20260916.md` | **验收修复单**:F1 `decision_receipt` 新增 `guided_collect_windows` 让 `test_rectification_engine_memoization` golden 红(在 CORE_PYTEST_TARGETS,staging 未部署 cfb41daf);F2 16 条既有校正断言红未按三栏改;F3 `mayDeliverOnPrecision` 缺省即放行、短路 BUG-654 且 `guidedCollectExhausted` 不含 refresh;F4 无领域轨道窗口轮询贴领域、一窗只问一领域;F5 离线回放注入 month_lo 非真值方向、0/20 不作数;F6 录入卡合成「或」列表句走模型轮;F7 page.tsx +1、手造 fixture。D6 产品已拍板:门槛只是必要条件,仍问完线再出。BUG 段 744 起 | **已验收通过,已合入 staging**;合入后 run `2697` 仍红 capability audit(`(secondary)/chart`),跟进 BUG-753 | `dc732825`(Opus 子代理实现,Claude 独立验收):tsc 0 / lint 0 error / npm test 3405 条 31 红与基线 a396bbe0 逐条一致(16 条校正红转绿、0 新红)/ pytest 193 通过 / `○ /` Static / gzip 582,552 → 582,800(+0.04%)/ page.tsx 1836 → 1835 / golden diff 仅加 `guided_collect_windows` 一键 / Skill 10.0.28。F5 真值方向回放三档仍 0 例靠引导件达标,作研究结论记录。D2+D6 合并后 10 分钟门槛只上报不改出卡时机 | | — (产品口头拍板,无任务书) | `PROGRESS-agent-voice-20260917.md` | **对话口气改形状(纯提示词与文案,无 BUG 号)**:产品判定现有人设出来的是顾问报告。人设改成「把人当一个人认真对待 / 行动力很强、嘴有点毒但靠谱的同事」;开场从「一句结论 + 2–3 条短要点 + 一句下一步」换成固定形状——**反差**(表面 A 底下 B,命名成一个格局)→ **谁在推谁在修**(大运主星推、行运修体面)→ **别去应 X 的象,去扮演 Y 的象** → **最多三条短行动**(各 ≤ 20 字),仍无标题、≤ 400 字。新增希望纪律:有转机且允许精确应期就说到月份,没有就说这段时间拿来干什么、能扮演哪个象,禁「一切都会好 / 相信自己 / 加油 / 你值得更好的 / 宇宙自有安排」。申报时段与无出生分钟两条降级路线形状照给、不编月份。改 `product-voice.ts` / `consult/route.ts` 用户回合文案 / 三处复述旧形状的系统指令 / `VOICE.md`(五条原则→七条)/ `CHANGELOG.md`。零业务逻辑改动,Skill 版本不变 | 已实现,待验收 | `codex/agent-voice-20260917`:tsc 0 / lint 0 error(118 warning 不变)/ npm test 3468→3471 条、36 红与基线 `ff0427cf` 逐条相同、0 新红 / `○ /` Static / 首屏 gzip 1,416,965 两侧**字节相同**(改动全在服务端模块,客户端 chunk 无该文本)。真机口气走查欠 | | — (产品口头拍板,无任务书) | `PROGRESS-settings-ui-20260919.md` | **设置面板布局与资料入口整理**:基线 `4f4cd684`;四分区继续共用固定 `.settings-modal`,桌面导航 176px→200px 并加分隔,内容区增加内边距,表单 cap 440px→560px,导航移除误导性右箭头;账户头像 48px→56px;“添加其他人”移到分组标题操作区。已同步 `frontend/DESIGN.md` 与合同测试;tsc 0、lint 0 error、定向测试 21/21;build 被 Windows Skill runtime symlink 权限阻塞,浏览器走查待受控环境;BUG-970 保持 `investigating` | 待验收 | `codex/settings-ui-20260919` | -| `TASK-owner-case-purge-20260919.md` | `PROGRESS-owner-case-purge-20260919.md` | **上游库主案例与本机路径残留清除(只含本仓)**:镜像同步带进库主本人案例(`pl9_1993_user_case` / `yn-1993`)与其本机绝对路径,`origin/staging` 命中 95 个文件:33 个在无引用的 `versions/` 三快照(3,467 文件、71.6 MB)、13 个前端 fixture、10 个 Python 测试(其中 1 个用生日+出生分钟、2 个断言本机路径)、11 份整机扫描台账 + 1 份 manifest、2 份会话转录、上游 SKILL 快照。运行时无特判不用动。产品拍板整体删除不留匿名版;fixture 统一虚构常量;`import_yinduzhanxing.py` 加隐私排除项 + 新增仓库级隐私守卫测试;上游 SKILL 快照等库主清完再重导入(BLOCKED 记录)。上游仓的清理指令另见 `UPSTREAM-INSTRUCTION-owner-case-purge-20260919.md`(交给库主,不在本仓执行)。BUG-972/973 | 待领取 | — | +| `TASK-owner-case-purge-20260919.md` | `PROGRESS-owner-case-purge-20260919.md` | **上游库主案例与本机路径残留清除(只含本仓)**:镜像同步带进库主本人案例(`pl9_1993_user_case` / `yn-1993`)与其本机绝对路径,`origin/staging` 命中 95 个文件:33 个在无引用的 `versions/` 三快照(3,467 文件、71.6 MB)、13 个前端 fixture、10 个 Python 测试(其中 1 个用生日+出生分钟、2 个断言本机路径)、11 份整机扫描台账 + 1 份 manifest、2 份会话转录、上游 SKILL 快照。运行时无特判不用动。产品拍板整体删除不留匿名版;fixture 统一虚构常量;`import_yinduzhanxing.py` 加隐私排除项 + 新增仓库级隐私守卫测试;上游 SKILL 快照等库主清完再重导入(BLOCKED 记录)。上游仓的清理指令另见 `UPSTREAM-INSTRUCTION-owner-case-purge-20260919.md`(交给库主,不在本仓执行)。BUG-972/973 | **已验收:未通过(1 P0 + 1 P2 + 1 P3)→ 修复单 `TASK-owner-case-purge-fix2-20260919.md`** | `fe9489e6`(Claude 在 Linux 全依赖环境独立验收):tsc 0 / lint 0 error 120 warning 同基线 / `npm test` 3530 条 33 红失败清单与基线 `35ca7299` 逐条相同 / `next build` `○ /` Static、首屏 gzip 617,915 与基线字节相同 / Python 全量收集 2,905→2,970(0 收集错误)、64 红 vs 基线 63 红,**新红 1 条**:`test_rectification_engine_convergence` 答案键守卫命中 `import_yinduzhanxing.py` 新增的 `**/*pl9_1993*` 模式,快速门实跑因此 failed(P0,删该模式即可,被 `**/*1993*` 包含)/ 隐私检索:本机用户名 0 命中、生日与分钟仅 2 处数值巧合(已核为 raahu_kaalam 时段与 17 簇窗口测试)/ 校正 Skill 哈希包 186 文件、注册表、上游快照、frontend/src、主 API 均 0 改动 / 证据索引 185→174 包、缺失路径 0(12 个 claim_status 校验器不认识是基线既有红)/ P2 进度记录缺 12 个已删测试名(验收已列出)/ P3 上游指令与历史文档把案例 ID、函数名也脱敏成占位符,仓内归档件不可执行(产品已持有 35ca7299 原文) | ## 命名与归档 diff --git a/docs/tasks/TASK-owner-case-purge-fix2-20260919.md b/docs/tasks/TASK-owner-case-purge-fix2-20260919.md new file mode 100644 index 00000000..c9ad72a1 --- /dev/null +++ b/docs/tasks/TASK-owner-case-purge-fix2-20260919.md @@ -0,0 +1,57 @@ +# TASK · 库主案例清除验收修复单(2026-09-19,第二轮) + +> 状态:待领取。串行在 `codex/owner-case-purge-20260919`(`fe9489e6`)之上,同一分支继续提交。上一轮验收结论见 `docs/tasks/README.md` 状态板。 +> 本单不转录任何出生日期、出生分钟、经纬度、本机用户名。 + +## 0. 基线 + +- 分支:`codex/owner-case-purge-20260919` @ `fe9489e6`,基于 `origin/staging` `35ca7299`。 +- 验收环境(Linux,Python 3.11 + pyswisseph 轮子,Node 20,依赖装在 worktree 内):tsc 0 错;lint 0 error / 120 warning 与基线相同;`npm test` 3530 条、33 红、15 skip,失败清单与基线逐条相同;`next build` `/` Static,首屏 gzip 617,915 字节与基线**字节相同**;Python 全量 64 红 vs 基线 63 红。 +- 执行方在 Windows 上没能跑完 Python 全量(缺 mcp / hypothesis),进度记录里「0 新红」的结论只覆盖定向测试,所以漏了下面 F1。 + +## 1. 事故实证 + +### F1(P0)新增一条 Python 红:答案键字面量守卫命中导入脚本,staging 快速门会红 + +- `tests/test_rectification_engine_convergence.py:396-416` `EngineConvergenceAnswerKeyTests.test_scripts_and_frontend_have_no_answer_key_literals` 在 `scripts/`、`frontend/src`、`frontend/tests` 里禁止三个字面量(`target_minute`、`pl9_1993`、`regression_only`,测试里用字符串拼接写的)。 +- `scripts/import_yinduzhanxing.py:56-64` 新增的 `REQUIRED_PRIVACY_PATH_PATTERNS` 第三项是 `"**/*pl9_1993*"`,命中该守卫。基线上该测试通过。 +- 这条模式被第一项 `"**/*1993*"` 完全包含,删掉不减少任何拦截能力。 +- `run_quality_gate.py:66` 的 `CORE_PYTEST_TARGETS` 含 glob `tests/test_rectification_*.py`,该测试在快速门内。验收实跑 `--profile quick`:Python 步 856 条只有这 1 条红,`== Quality gate failed ==`。**合入 staging 会让门禁红、镜像不发布**,所以是 P0。 + +### F2(P3)上游指令被脱敏到不可执行 + +- `docs/tasks/UPSTREAM-INSTRUCTION-owner-case-purge-20260919.md` 在 `fe9489e6` 里把案例 ID、函数名、文件名批量替换成 `[库主案例标识已移除]` / `[私人案例引用已移除]`,并删掉了第三步的 `git ls-files | grep` 命令。案例 ID 和函数名不是出生资料;原单只禁出生日期、分钟、经纬度、本机用户名。替换后库主拿到的是无法定位的占位符。 +- 产品手里已有 `35ca7299` 版本的原文(验收时已单独发出),这条不阻塞交付,只是仓内归档件应可读。 +- 同类替换也落在 `TASK-rectification-convergence-20260830.md`、`TASK-upstream-sync-20260903.md` 等 11 份历史文档里,其中真实出生日期 / 分钟的替换(`[隐私标记 R001/R003 已移除]`)是**对的**,保留;文件名被替换成整句「会话转录已按 … 决策删除」造成句子不通,属美观问题,不要求回改。 + +### F3(P2)进度记录缺逐项删除测试清单 + +- 执行方在 `PROGRESS-owner-case-purge-20260919.md` 写明因写入权限没能落盘。验收从 diff 得到的清单如下,直接抄进进度记录即可(都是文件名,不含隐私): + `test_deep_fragment_oss_reuse_gate_round2`、`test_fragment_migration_registries`、`test_fragment_second_pass_candidate_ledger`、`test_high_value_gap_registries`、`test_technique_promotion_audit_kp_gochara_muhurta`、`test_truth_source_runtime_identity`、`test_whole_machine_jyotish_fragment_scan`、`test_workbuddy_round3_candidate_ledger`、`test_workbuddy_round4_candidate_ledger`、`test_workbuddy_round4_formalization_registry`、`test_workbuddy_round4_usage_closure_queue`、`test_workbuddy_round5_transfer_status`(12 个文件)。 +- 验收实测 Python 收集数(Linux 全依赖环境,0 收集错误):基线 2,905 条 / 501 文件 → 分支 2,970 条 / 491 文件,净 +65 = 108 新增 − 43 已删,文件 −10 = 12 删 + 2 增;与进度记录在 Windows 上算出的 +65 一致(那边绝对数 2,758 → 2,823 是因为 13 个模块收集失败)。 + +## 2. 决策记录 + +- 沿用原单与执行方补充单(`TASK-owner-case-purge-fix-20260919.md`)的全部授权,不新增范围。 +- F2 只恢复 `UPSTREAM-INSTRUCTION-*.md` 一份文件到 `35ca7299` 的措辞(`git show 35ca7299:docs/tasks/UPSTREAM-INSTRUCTION-owner-case-purge-20260919.md`),其余历史文档的脱敏保持 `fe9489e6` 状态。恢复前用分支上的 `tests/test_repo_privacy_markers.py` 扫一遍,命中即不恢复并写进度记录。 + +## 3. 任务 + +| # | 动作 | 验收 | +| --- | --- | --- | +| F1 | 删 `REQUIRED_PRIVACY_PATH_PATTERNS` 里的 `"**/*pl9_1993*"`;`tests/test_import_yinduzhanxing.py:81,361` 按 `len()` 参数化,不需要改;若有断言写死 7 条则改成 6 并三栏说明 | `pytest tests/test_rectification_engine_convergence.py tests/test_import_yinduzhanxing.py -q` 全绿;用原单的检索键确认 `scripts/` 仍 0 命中 | +| F2 | 恢复上游指令文件到 `35ca7299` 版本 | `pytest tests/test_repo_privacy_markers.py -q` 通过 | +| F3 | 把上面 12 个测试名与收集数核算写进 `PROGRESS-owner-case-purge-20260919.md` | 文件里能找到 12 个名字 | +| F4 | `docs/BUG_HISTORY.md` BUG-973 补一行「验收发现 `pl9_1993` 模式撞答案键守卫,已删」;`BLOCKED.md` 里「删除测试清单写入权限」一条划掉 | — | + +## 4. 硬红线 + +原单 §4 全部沿用;额外:不动 `tests/test_rectification_engine_convergence.py` 的禁止字面量列表来换绿。 + +## 5. 开工前置 + +```bash +cd /workspace/Jyotisha && git status -sb && git fetch origin refs/heads/codex/owner-case-purge-20260919:refs/remotes/origin/codex/owner-case-purge-20260919 +git worktree add .worktrees/owner-case-purge-fix2-20260919 origin/codex/owner-case-purge-20260919 -b codex/owner-case-purge-20260919-fix2 +``` +完成后快进合回 `codex/owner-case-purge-20260919` 并推同名远端分支,Claude 再验一次全量后合入 staging。