Add jyotish oracle evidence calibration gate

This commit is contained in:
732642856
2026-06-25 18:33:26 +08:00
parent bff6ec4685
commit 5d35731f8b
90 changed files with 6798 additions and 330 deletions
+26
View File
@@ -310,4 +310,30 @@
- TDD/验证完成:先让 `test_trust_center_exposes_validation_transparency` 红灯确认缺口,再实现转绿;修复移动端 selector 回归后,`python3 -B -m pytest tests/test_frontend_productization.py::test_first_use_onboarding_is_actionable tests/test_frontend_productization.py::test_mobile_layout_keeps_dense_sections_single_column tests/test_frontend_productization.py::test_trust_center_exposes_validation_transparency -q` 通过;`npm run build --prefix jyotish-app` 通过;`python3 scripts/run_quality_gate.py --profile quick --skip-yoga-logic` 通过,覆盖 201 个核心 pytest、npm build 与 runtime smoke。
- 完成普通用户交付形态矩阵:新增 `scripts/deployment_preflight.py`,输出 local-dev、docker-compose、static-demo-pwa、desktop-shell 四条 delivery_matrix,明确公开演示环境只能完整展示静态壳、完整高级技法需要本地 API 服务;README 增加“普通用户交付形态”表格;Dockerfile build 阶段运行 deployment preflight。
- 交付矩阵纳入质量门:`scripts/run_quality_gate.py` 编译并执行 `scripts/deployment_preflight.py`release hygiene 追踪该新文件,避免部署/公开演示路径漂移。
- 完成公开静态 demo/PWA 能力边界:首屏 `static-demo-boundary` 和 Trust Center `renderStaticDemoBoundary()` 明确 Browser fallback 与 Local API required 能力;README 增加 `static_demo_boundary_visible` 发布要求,`deployment_preflight.py` 会检查首屏与 Trust Center 是否保留该边界。
- TDD/验证完成:`test_user_delivery_matrix_is_documented_and_checkable` 先红灯确认缺 `deployment_preflight.py`,实现后转绿;`python3 scripts/deployment_preflight.py` 输出 `valid: true``python3 scripts/run_quality_gate.py --profile quick --skip-yoga-logic` 通过,覆盖 202 个核心 pytest、npm build 与 runtime smoke。
- 完成 Dasha/Shadbala 外部 oracle 边界第一步:新增 `references/oracle/dasha_shadbala_oracle_cases.json``scripts/oracle_boundary_audit.py`,把用户 PDF 的 Vimshottari 起点差异、Moon 偏移量、Shadbala 当前六分量 totals 与“缺分量级外部目标”的状态合并成可重复 JSON 审计。
- TDD 验证:`tests/test_oracle_boundary_audit.py` 先因 `scripts/oracle_boundary_audit.py` 缺失红灯,再实现转绿;报告明确 `production_tuning_recommended=false`,防止单样本调参或全局 Shadbala scaling。
- 完成 VedAstro 黄经 oracle 接入:`references/oracle/dasha_shadbala_oracle_cases.json` 新增 `longitude_cases`,记录 Antigravity/VedAstro SDK 对用户盘的 9 项 sidereal longitude`scripts/oracle_boundary_audit.py` 输出每项角秒差、最大差和阈值状态。当前最大差为 Moon `26.2254` 角秒,全部低于 120 角秒阈值,说明 D1/D9 基础落点对齐,但不构成 Dasha/Shadbala 调参依据。
- 完成 Multi-Ayanamsa 与 AI Native Prompt Pack 第一层:`compute_chart_data(..., ayanamsa_name=...)``full-reading --ayanamsa` 均可验证切换,并在输出中记录 `ayanamsa_name/display/value``full-reading.ai_prompt_pack` 输出证据快照、RAG 检索文档和“不得单象下结论”的约束型提示词。
- 修正 Antigravity 并行改动的 oracle 语义风险:本地生成的 Shadbala `component_targets` 保留为结构样本,但审计报告标记为 `component_targets_sample_only` / `sample_only_not_external_oracle`,不能用于对外宣称 JHora/PyJHora 已校准。
- 完成 Antigravity AI 副手工作单:新增 `docs/research/antigravity_sidecar_work_order_2026_06_25.md`,安排其执行外部 oracle 样本采集、网页/app Multi-Ayanamsa 与 Prompt Pack 审计、skill 同步审计和浏览器用户流验证;同时写明禁止读取密钥、禁止破坏性命令、禁止把本地输出标成外部 oracle。
- 完成 standalone ayanamsa 全局状态修复:新增 `scripts/ayanamsa_utils.py`Transit、Solar Return、Muhurta、cmd_muhurta 和 Yoga 准确率脚本都在 `FLG_SIDEREAL` 计算前显式设置 ayanamsa;红灯测试复现 Raman 全局污染约 `1.446°` 后转绿。
- 验证完成:`python3 -m pytest tests/test_standalone_ayanamsa_defaults.py tests/test_transit_trigger.py tests/test_transit_complete.py tests/test_muhurta.py tests/test_ayanamsa_switching.py tests/test_cli_smoke.py::test_full_reading_reports_ayanamsa_metadata_and_ai_prompt_pack tests/test_oracle_boundary_audit.py -q` 通过;`python3 -m py_compile scripts/ayanamsa_utils.py scripts/jyotish_engine.py scripts/transit_trigger.py scripts/solar_return.py scripts/muhurta.py scripts/cmd_muhurta.py scripts/cmd_solar_return.py scripts/jyotish_api_server.py scripts/validate_yoga_accuracy.py` 通过。
- 完成前端 Multi-Ayanamsa 与 AI Prompt Pack 承载:网页/app 的 birth payload 保留 `second` 并显式传 `ayanamsa``/api/chart` 返回 `birth.ayanamsa_name/display/node_mode` 与轻量 `ai_prompt_pack`;完整解盘页新增 `AI Prompt Pack` 面板,AI Chat 优先把 `prompt_zh/evidence_snapshot/retrieval_plan` 作为上下文。
- 完成产品头像轻量接入:用户提供头像已压缩为 512px 资源 `jyotish-app/public/brand-avatar.png``dist/brand-avatar.png`,页头显示尺寸降到 28px,manifest 增加 PNG 图标但保留原 SVG maskable 图标。
- 完成 Antigravity Round 2 副手任务单:新增 `docs/research/antigravity_sidecar_work_order_round2_2026_06_25.md`,安排全球产品差距、开源 oracle 可行性、前端黑盒复验和 Skill/App 同步审计,继续限定为只读/报告型副手。
- 完成 Antigravity Round 3 副手任务单:新增 `docs/research/antigravity_sidecar_work_order_round3_2026_06_25.md`,要求副手复验 Codex 已修的 Multi-Ayanamsa、秒级出生时间、`ai_prompt_pack`、AI Chat 上下文、产品头像和普通用户成品路径;输出限定为 `docs/research/*round3*2026_06_25.md`
- 完成 Antigravity Round 4 副手任务单:新增 `docs/research/antigravity_sidecar_work_order_round4_2026_06_25.md`,要求副手围绕正式 oracle `template_cases` 做外部来源分层、5 个模板逐项填充路线、审计脚本黑盒复验和准确率透明度下一步建议。
- 完成 Dasha/Shadbala 外部真值采集队列第一层:新增 `scripts/oracle_collection_queue.py``tests/test_oracle_collection_queue.py`,把 5 个 `template_cases` 生成可执行采集任务,输出 `external_oracle_collection_queue`、preferred sources、collection steps、promotion criteria,并保持 `ready_for_calibration: 0` / `production_tuning_allowed: false`
- 采集队列已接入质量门与文档:`scripts/run_quality_gate.py` release oracle 审计后会运行 `ORACLE_COLLECTION_QUEUE_CMD`README 增加 markdown/json 命令与当前边界说明,`tests/test_frontend_productization.py::test_dasha_reference_audit_is_documented_and_gated` 防止该入口漂移。
- 完成 Antigravity Round 5 副手任务单:新增 `docs/research/antigravity_sidecar_work_order_round5_2026_06_25.md`,要求副手黑盒复验采集队列、README/质量门接入、外部来源采集动作和用户解释文案,只允许产出 `docs/research/*round5*2026_06_25.md` 报告。
- 完成采集队列 evidence packet`scripts/oracle_collection_queue.py` 的每个任务现在包含 `evidence_packet.capture_id`、required metadata、target placeholders 与 integrity checks,明确 `must_not_come_from_local_engine``requires_external_artifact` 和 Shadbala 不得全局 scaling。
- 完成 evidence packet 文档/质量门同步:README 增加 `evidence_packet.capture_id``tool_name``source_artifact` 和本地输出不得作为外部 artifact 的说明;`run_quality_gate.py` 增加 `ORACLE_COLLECTION_QUEUE_EXPECTED_FIELDS`,测试锁定字段存在。
- 完成 Antigravity Round 6 副手任务单:新增 `docs/research/antigravity_sidecar_work_order_round6_2026_06_25.md`,要求副手黑盒复验证据包、人工采集模板、README/质量门同步和准确率透明度话术。
- 完成外部 evidence validator 第一层:新增 `scripts/oracle_evidence_validator.py``tests/test_oracle_evidence_validator.py`,校验证据包必须具备外部 artifact、完整 metadata、已填 target placeholders 和 `external_verified` 状态;本仓库/本地引擎输出会被拒绝,当前 5 个 draft packet 均保持 `valid_packets: 0``production_tuning_allowed: false`
- 修复 Round 5 暴露的质量门覆盖缺口:`CORE_PYTEST_TARGETS` 现在直接包含 `tests/test_oracle_collection_queue.py``tests/test_oracle_evidence_validator.py`quick profile 不再只靠静态产品化测试间接覆盖 oracle 队列。
- 完成 Antigravity Round 7 副手任务单:新增 `docs/research/antigravity_sidecar_work_order_round7_2026_06_25.md`,要求副手复核 evidence validator、quick/release 质量门接入、external_verified 晋级清单和用户准确率话术。
- 修复 external_verified 晋级路径:`scripts/oracle_collection_queue.py` 现在保留 oracle JSON 中已填的 `evidence_packet.status/metadata` 和目标值,新增 `target_fields`,避免外部证据包被重新降级为 `draft``scripts/oracle_evidence_validator.py` 改为用 `target_fields` 校验已填目标,兼容旧 draft 队列。
- 完成 Antigravity Round 8 副手任务单:新增 `docs/research/antigravity_sidecar_work_order_round8_2026_06_25.md`,要求副手黑盒复验 external_verified 晋级链路,并输出相对 VedAstro/PyJHora/JHora 的全球差距矩阵。
- 当前下一最高优先级:跑聚焦测试和 quick 质量门;随后推进网页/app Trust Center 暴露 Dasha/Shadbala calibration status,避免普通用户误解“已完全校准”。