Files
Jyotisha/docs/tasks/PROGRESS-repo-hygiene-20260903.md
T
Jesse_ChenandCursor 01a4536333
Independent Staging Quality Gate / validate (push) Failing after 13m57s
Independent Staging Quality Gate / publish (push) Has been skipped
docs(tasks): record merged-branch cleanup and mark hygiene for review
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 16:57:20 +08:00

104 lines
7.3 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.
# PROGRESS · 仓库整备(2026-09-03
工作树:`/Users/jesse/Downloads/Copse/astrology/.worktrees/repo-hygiene-20260903`
分支:`codex/repo-hygiene-20260903`
基线:开工后快进到 `origin/staging` @ `58cae371`(含 BUG-510 与上游同步任务书)。任务书:`docs/tasks/TASK-repo-hygiene-20260903.md`
未碰 `main`。未改 `DEFAULT_AYANAMSA_NAME`(保持 `raman`)。未改校正打分/阈值/golden。未改 `page.tsx`(仍 2041 行)。`scripts/jyotish_api_server.py` 仍 11120 行。
BUG 编号:开工时最大号 **BUG-510**。岁差记 **BUG-511**
| 任务 | 状态 | 说明 |
| --- | --- | --- |
| 0 岁差设置 + 参考集锁口径 | 待验收 | `b6a70aa7` 已推功能分支。产品 staging 实测仍欠 |
| 1 发布门本地可复现 | 部分完成 | 选项 (b) 已做;release profile 因 3 条 BLOCKED 不能声称退出 0 |
| 2 注册表白名单 | 完成 | `audit_capabilities.py --mode validate``valid=true, problem_count=0` |
| 3 仓库地址 | 完成 | Gitea 产品仓;slug 解析用例保留 |
| 4 早期日志搬家 | 完成 | 根目录 `ls *.md` 只剩规定 8 个(外加 gitignore 的 `COVERAGE_AUDIT_REPORT.md` |
| 5 远端分支清理 | 完成 | 名单 67 条已从 origin 删除;`ls-remote --heads` **74 → 7** |
## 环境备忘
- 本 worktree **没有** `.venv`。预检与 Python 测试用主仓 `/Users/jesse/Downloads/Copse/astrology/yinduzhanxing/.venv``mcp` 1.28.1`hypothesis` 已装)。
- 本地错装 `mcp 2.x` / 缺 `hypothesis` 是环境问题,不改 pin。`requirements.txt` 仍是 `mcp>=1.0,<2``requirements-dev.txt` 已有 `hypothesis>=6.0`
- 任务书写把迁移放进 `frontend/db/migrations/`。实际 migrator 跑 supabase + db 两目录。本轮唯一迁移:`frontend/supabase/migrations/20260903010000_profile_ayanamsa.sql`
- 「账户与出生资料」在现界面是 **星盘资料** 本人编辑表。岁差单选在那里,未改 `page.tsx`,未进 `个人资料`
- `npm run test:db` 不可与 `rectification-*.test.ts` 并行(fixture 槽默认 2)。
- `python3 scripts/pre_work_check.py` 在本 worktree 用 Anaconda 3.12`remote_visibility_status=verified`(不再因旧 slug blocked)。失败项是 `fragment_scan` 90s timeout 与 focused tests 45s timeout,属环境预算,不是 slug。
## 任务 0
见提交 `b6a70aa7`。公开案例复验 `valid: true`、gated **66/66**`pass_rate: 1.0``npm run test:db` **34/34**。产品虚构盘实测仍欠。部署 SHA 待合入 staging 后补。
### 0.a 三栏
夹具大运 `base`:原值=依赖默认岁差;新值=显式 `--ayanamsa lahiri`;原因=夹具日期是 Lahiri 口径。期望日期未改。
### 偏离
- 迁移目录:supabase。
- UI:星盘资料本人编辑,不是不存在的「账户与出生资料」面板。
## 任务 1
**(b)**PyJHora `missing_dependency``user_invocation_acceptance_check``status``partial`,退出码 0。硬错误仍 `fail`
三栏(`test_one_command_user_invocation_acceptance_check` / 技能包验收):原值=`status == "pass"`;新值=`pass``partial`;原因=外部参照引擎缺席应降级不应失败。`external_adapter_status` 仍必须在 `{pass, partial, complete}`
测试不改写仓库:`character_level_inventory_manifest.py` 增加 `--output-dir`;写报告的测试改写 `tmp_path``numeric_oracle_gap_queue_v3.py` / `hard_gap_source_hunt_2026_07_23.py` 的测试加 `--no-write`。跑完后 `git status``docs/research/character_level_*_latest.*`、无那两份 oracle JSON 被改写。
### 全量红名单处理表
附录 6 条 staging 独有:
| 测试 | 分类 | 本轮 |
| --- | --- | --- |
| `test_fixture_dasha_timeline_rejects_workbuddy_regression_claims` | 任务 0.a 口径 | 绿 |
| `test_one_command_user_invocation_acceptance_check` | 连带 + 选项 b | 绿(本机 PyJHora 可用时 `pass` |
| `test_premium_skill_zip_runs_from_clean_directory` | 连带 + 选项 b | 绿 |
| `test_local_accuracy_report.py``valid_packets >= 4` | 参考值/oracle4 包 1 个 `template_only`,校验 3 valid | BLOCKED,不改值 |
| `test_historical_event_priority_preserves_vimshottari_actor_difference` | 校正引擎 | BLOCKED |
| `test_v3_development_result_stays_shadow_only` | 校正引擎 | BLOCKED |
附录 83 条生产同样红、13 个收集 ERROR(缺 hypothesis / mcp 2.x):环境类。本机 CI 同款 venv 已有 hypothesis 与 mcp 1.x,收集 ERROR 应消失。未在本轮把 `run_quality_gate.py --profile release` 跑到退出 0。
## 任务 2
- 白名单加 `experimental_variant``comparison_only``calculation` 允许 `experimental`(注册表现况);`rule`/`prediction` 允许 `blocked`
- `comparison_only` 计入 `comparison_only_entries`,政策位与 `audit_only` 同等:不能影响结论。
- 断言:`experimental_variant` 的 prediction/rule 必须 `blocked``user_visibility` 必须 `expert_audit`
- `scripts/audit_capabilities.py --mode validate``valid=true, problem_count=0`(既有 warningRangacharya knowledge_ref 缺一篇 spec)。
## 任务 3
- `pyproject.toml``.codex-plugin/plugin.json`、根 `SKILL.md``skill_release_package.py``skill_release_manifest.py``skills/jyotish-engine-modules/SKILL.md` 改为 `https://git.copse.top/root/Jyotisha`Bug Reports `/issues`Documentation 指向 Gitea 上的 `README.md`)。
- 发行测试三栏:原值=上游研究仓 GitHub;新值=产品 Gitea;原因=安装说明必须指向产品仓。
- `remote_repo_visibility_check.py`:非 GitHub remote 不再退回 `732642856/yinduzhanxing`;报告 `provider: gitea`,用 `git ls-remote`。slug 解析用例未改,新增 Gitea 用例。
- 任务书 grep 剩余:`tests/test_remote_repo_visibility_check.py` 的 GitHub slug 解析行(任务书要求保留)。`COVERAGE_AUDIT_REPORT.md``.gitignore`。hashed `skills/*/versions``references/``docs/`、import 测试按任务书排除。
## 任务 4
`git mv` 四份早期日志到 `docs/history/`,新增 `docs/history/README.md``RELEASE_CRITICAL_UNTRACKED_PATHS` 三个路径改为 `docs/history/...``README.md` 文档地图与 `AGENTS.md` §4 最后一行已同步。`frontend/tests/staging-backend-workflows.test.ts` 的 docs-only 名单跟着改,避免根路径幽灵。
## 任务 5
`git fetch origin --prune` 后,`git branch -r --merged origin/staging` 相对任务书名单:
- 名单 67 条全部仍在,不少。
- 多出已合入、**不删**(不在名单):`codex/rectification-ux-20260903`
- 未合入、**不删**`codex/rectification-ux-20260902``codex/diagnose-rectification-request-20260827``fix/staging-gate-checkout-retry`,外加本分支 `codex/repo-hygiene-20260903`
- `git ls-remote --heads origin` 当前 **74**。删名单后预期约 7`main``staging`、本分支、3 条未合入保留、外加已合入但未列入名单的 `rectification-ux-20260903`)。
删除结果:名单 67 条全部从 origin 删除。`git ls-remote --heads origin` **74 → 7**
```text
main
staging
codex/repo-hygiene-20260903
codex/rectification-ux-20260903
codex/rectification-ux-20260902
codex/diagnose-rectification-request-20260827
fix/staging-gate-checkout-retry
```
任务书预期 5 条;多出的 2 条是本执行分支,以及已合入但未列入删除名单的 `codex/rectification-ux-20260903`