Files
Jyotisha/docs/benchmark
Jesse_Chen 8db71aaf81 docs: product-level README, AGENTS.md split into code/reading parts, add CLAUDE.md, move task briefs to docs/tasks
- README.md is now the product/repo front door (architecture, repo map,
  local dev, test tiers, delivery flow, doc map). Engine positioning,
  VedAstro/Codex setup and the oracle/benchmark command reference move
  verbatim to docs/engine/README.md, docs/engine/vedastro-gateway.md and
  docs/benchmark/README.md. Capability badges realigned with the registry
  (91/78/8/0); tests/test_readme_badges.py was red on staging.
- AGENTS.md: Part A (environment truth, delivery, worktrees, record
  placement, bug workflow, growth freeze, frontend red lines, privacy,
  pre-work check, test tiers) and Part B (reading-rigor constraints).
  GitHub issue-tracker/triage boilerplate removed: GitHub is a read-only
  mirror. All strings locked by tests/ are preserved.
- CLAUDE.md added: roles, three working modes, task-brief sections,
  acceptance criteria, session discipline; imports AGENTS.md.
- 50 tracked TASK-*/PROGRESS-* files and 3 never-committed briefs move to
  docs/tasks/ with an index; REPO_LAYOUT.md merged into README.

Docs-only change (no gated path touched).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
2026-09-03 06:56:06 +00:00
..

准确率基线、外部 Oracle 闭环与 Benchmark 看板

本文从根 README 拆出(2026-09-03),内容原样保留。这里是所有"本机现在能跑什么、哪些指标可测、哪些能力还缺外部 oracle 证据"的命令入口;看板产物就在本目录。所有看板固定输出 can_claim_global_first: falseproduction_tuning_allowed: false,直到外部样本达到生产调参标准。

真实案例复验与准确率边界

一条命令查看本机当前技能覆盖与准确率基线:

python3 scripts/local_accuracy_report.py --format markdown

如需给副手、CI 或后续自动化读取,使用 JSON:

python3 scripts/local_accuracy_report.py --format json

当前总控报告会聚合 technique registry、BPHS invariants、公开人物真实案例复验、Yoga precision/recall/F1、Dasha/Shadbala oracle readiness、Ashtakoot API parity。它用于回答“本机现在能跑什么、哪些指标已经可测、哪些能力还缺外部 oracle 证据”;它不把本地回归测试包装成最终人生事件预测准确率。

公开人物样本复验命令:python3 tests/run_real_case_revalidation.py

当前复验口径是公开人物样本的出生盘星座级一致率,并对部分带有来源矛盾、时区争议或边界度数的参考行标记为 controversial_reference。这个指标用于验证排盘计算是否稳定,不等同于人生事件预测准确率,也不应被当作个人命运判断的命中率。

Dasha 参考差异审计

对照外部 PDF 或第三方软件时,先运行 Dasha 参考差异审计,而不是直接改生产常数:

python3 scripts/dasha_reference_audit.py \
  --year YYYY --month MM --day DD \
  --hour HH --minute mm --second ss \
  --lat LAT --lon LON --tz TZ \
  --target-start-date 1986-05-18 \
  --target-source third_party_chart.pdf

该工具会输出当前 Vimshottari 起点、秒级出生时间敏感性、年长常数敏感性,以及对齐目标日期所需的 Moon sidereal longitude 偏移量。不要为单份 PDF 直接调生产常数;应先建立更大的 oracle 样本集,比较 ayanamsa、Moon sidereal longitude、Nakshatra 边界与 Vimshottari 起算口径。

也可以运行合并版外部 oracle 边界审计,同时查看 Dasha、外部黄经与 Shadbala 的校准状态:

python3 scripts/oracle_boundary_audit.py \
  --oracle-file references/oracle/dasha_shadbala_oracle_cases.json

该报告会明确标出 production_tuning_recommended: false:当前目标集已有外部验证行,但差异审计仍会拒绝单样本或全局倍率调参;VedAstro SDK 黄经样本已纳入 longitude_cases,用户盘最大差异约 26.23 角秒、D1/D9 落点一致,但这只能说明基础黄经接近,不能把当前目标集闭合夸大成生产级全局校准。

三方官方/外部 oracle sanity 总控命令:

python3 scripts/external_oracle_sanity_closure.py --format markdown

该报告同时检查 VedAstro official precision sanity、PyJHora black-box artifacts、jyotishganit MIT reference layer。默认命令为非阻塞 sanity,总控质量门可运行;需要真实触发 VedAstro official full snapshot 细算时,加 --live-official-full-snapshot。当前允许声明的是“高严谨带 blocked 行”:PyJHora 黑盒证据与 jyotishganit 参考层可审计;VedAstro 黄经 sanity 通过但 official full snapshot 细算仍需显式 live probe 且可能因前台预算或官方快照合同 blocked,不能声称三方 fully closed。

外部真值采集队列用于把缺失目标值拆成可执行任务,而不是直接调生产参数:

python3 scripts/oracle_collection_queue.py \
  --oracle-file references/oracle/dasha_shadbala_oracle_cases.json \
  --format markdown

如需给自动化或副手读取,可改用 JSON 输出:

python3 scripts/oracle_collection_queue.py \
  --oracle-file references/oracle/dasha_shadbala_oracle_cases.json \
  --format json

如需让真人或 Antigravity AI 副手直接填写证据包,可一次性导出每个 case 的 draft JSON

python3 scripts/prepare_oracle_capture_packets.py \
  --oracle-file references/oracle/dasha_shadbala_oracle_cases.json \
  --output-dir references/oracle/artifacts/pending_packets

该命令会生成 capture_manifest.jsonOPERATOR_NEXT_STEPS.md 和 5 个 external_*.json。这些导出包只是人工复核/再采集入口;当前主 oracle 文件的目标集状态以 closure dashboard 和 validator 输出为准。

如果只想优先准备当前最短闭环链路的三条首包,而不是一次性导出整批 pending packets,可直接生成统一 blank kit

python3 scripts/generate_blank_oracle.py \
  --output-dir references/oracle/artifacts/first_packet_blank_kit

该命令会按当前推荐顺序导出 dashatajika_sahamsshadbala 三条 front 的首包草稿、blank_oracle_kit_manifest.jsonBLANK_ORACLE_KIT_NEXT_STEPS.md。它只复制当前首包模板,不会猜测真值,也不会把本地引擎输出伪装成 external oracle。

填完某个 external_*.json 后,必须把 status 改为 external_verified,补齐 metadata、具体 source_artifact 文件路径以及所有 target_placeholders。再把该包合并回 oracle 文件:

python3 scripts/oracle_collection_queue.py \
  --oracle-file references/oracle/dasha_shadbala_oracle_cases.json \
  --apply-packet references/oracle/artifacts/pending_packets/external_template_steve_jobs_dasha_lahiri.json \
  --format json

这一步只负责把人工填写的外部证据写回 template_cases;它不会自动认可证据,也不会允许生产调参。合并后仍必须重新生成 queue 并运行 validator。

该 JSON 的 scope 是 external_oracle_collection_queue。当前目标集可以出现 external_verifiedready_for_calibration 已闭合的状态,但 production_tuning_allowed 仍保持 false;这表示只能把外部黑盒目标值作为审计证据,不能直接用这些样本做 Dasha/Shadbala 生产调参。

Ashtakoot 外部合婚 oracle 使用同一个队列生成器,但独立样本文件是 references/oracle/ashtakoot_oracle_cases.json

python3 scripts/oracle_collection_queue.py \
  --oracle-file references/oracle/ashtakoot_oracle_cases.json \
  --format json

该队列同样保持 ready_for_calibration: 0,用于采集 ashtakoot_36_point 外部合婚目标值,而不是重写现有 scripts/ashtakoot.py 算法。每条样本要补齐 target.total_scoretarget.varnatarget.vashyatarget.taratarget.yonitarget.graha_maitritarget.ganatarget.bhakoottarget.naditarget.kuja_status,并保留 JHora/VedAstro/AstroSage 等外部截图或 API artifact。

每个队列任务还包含 evidence_packet.capture_id 草稿证据包。人工或副手录入外部真值时,必须至少填写 tool_nametool_version_or_urlcapture_datesource_artifactayanamsanode_modetimezoneoperator_note,并保留截图、API 响应或 stdout 等外部 artifact;不得把本仓库本地计算输出当作 source_artifact

外部截图和 stdout 片段统一存入 references/oracle/artifacts/,证据包里的 source_artifact 必须使用该目录下的 repo-relative 路径或明确标注的外部审阅位置。所有私人截图必须打码;不得提交私人 PDF 原件、不得提交完整出生报告,也不得提交浏览器 scratch 目录或含账号会话/cookie/token/桌面通知的截图。

第一条 JHora/PyJHora 黑盒证据采集按 docs/user_jhora_capture_guide.md 执行:优先使用 Steve Jobs 或合成样本,采集 Moon sidereal longitude、Vimshottari start date 与 Shadbala 七曜六分量,保存到 references/oracle/artifacts/ 后再运行 evidence validator。

外部目标字段采用 target_fields + target_placeholders 双层结构:target_fields 固定记录该案例需要校验的目标,例如 target.moon_sidereal_longitude_degtarget.vimshottari_start_datetarget.shadbala_components;当这些字段被真实外部来源填入并且证据包状态升为 external_verified 后,队列生成器会保留这些值,不会再把它们降级成 draft。这保证了“人工/JHora/PyJHora/VedAstro 采集 → JSON 填写 → 队列生成 → validator 复核”的路径可复验。

当外部证据包被填写回队列 JSON 后,用证据验证器做第二层防线:

python3 scripts/oracle_evidence_validator.py \
  --queue-file /path/to/filled_external_oracle_collection_queue.json

该验证器输出 external_oracle_evidence_validation,会检查 evidence_packet 必填元数据、target_placeholders 是否已填、是否覆盖 target_fields、是否包含外部 artifact,以及是否错误使用本仓库本地引擎输出。只有状态为 external_verified 且证据完整的包才会进入可复核状态;通过 validator 不等于允许生产调参。

证据包通过 validator 之后,再运行边界差异审计,比较本地引擎与外部 Dasha/Shadbala 目标值:

python3 scripts/oracle_boundary_audit.py \
  --oracle-file references/oracle/dasha_shadbala_oracle_cases.json

审计报告中的 template_comparisons 会列出 external-verified template 的 Dasha 起点差异、Shadbala 七曜分量/总分差异、每个分量的 Rupa 容差、单位说明和 global_scaling_check.recommendation: reject_global_scaling,并继续保持 production_tuning_recommended: false,防止用单个样本或全局倍率调生产常数。

公开 benchmark 看板用于长期展示能力状态、oracle readiness 和“是否可宣称全球第一”的诚实边界:

python3 scripts/public_benchmark_dashboard.py \
  --oracle-file references/oracle/dasha_shadbala_oracle_cases.json \
  --format markdown \
  --output docs/benchmark/public_jyotish_benchmark_dashboard.md

当前看板固定输出 can_claim_global_first: false,直到外部 oracle 样本、差异审计和长期公开 benchmark 都达到生产调参标准。

外部 oracle 总控 closure 看板会合并 Dasha、Shadbala 与 Tajika/Sahams 三条硬闭环战线,给出总任务数、已验证数、第一优先级和下一条执行命令:

python3 scripts/oracle_closure_master_dashboard.py \
  --dasha-oracle-file references/oracle/dasha_shadbala_oracle_cases.json \
  --tajika-oracle-file references/oracle/tajika_annual_oracle_cases.json \
  --format markdown \
  --output docs/benchmark/jyotish_external_oracle_closure_master_dashboard.md

当前总控看板输出 total_tasks: 12external_verified_tasks: 12can_claim_current_target_set_closure: true,但 can_claim_global_oracle_closure: falseproduction_tuning_allowed: false 仍保持锁定。含义是当前目标集已闭合,不能夸大成全球 oracle、预测准确率或生产调参闭环。

Dasha 外部 oracle 最短闭环状态板用于把“大运外部真值”从 Shadbala 绝对值大包中拆出来,优先推进第一条可验证边界日期:

python3 scripts/dasha_oracle_closure_status.py \
  --oracle-file references/oracle/dasha_shadbala_oracle_cases.json \
  --format markdown \
  --output docs/benchmark/dasha_external_oracle_closure_status.md

当前第一优先级是 external_template_steve_jobs_dasha_lahiri。该状态板只要求 target.vimshottari_start_date 和外部证据 metadata,不要求同时填完 Shadbala 七曜六分量;这样可以先完成 Dasha oracle 的第一条闭环,再单独推进 Shadbala 绝对值闭环。

第一条外部证据包的交互辅助命令:

python3 scripts/first_oracle_packet_assistant.py \
  --front dasha \
  --format markdown \
  --output docs/benchmark/first_dasha_oracle_packet_assistant.md

同一个助手也支持:

python3 scripts/first_oracle_packet_assistant.py --front tajika_sahams --format markdown --output docs/benchmark/first_tajika_oracle_packet_assistant.md
python3 scripts/first_oracle_packet_assistant.py --front shadbala --format markdown --output docs/benchmark/first_shadbala_oracle_packet_assistant.md

该助手不会生成或猜测 JHora/PyJHora 真值,只会列出当前 packet 还缺哪些字段、可用外部来源、apply 命令和 validator 命令。

如需先看三条硬闭环 front 的统一排序入口,而不是分别运行三个助手:

python3 scripts/oracle_packet_assistant_index.py \
  --format markdown \
  --output docs/benchmark/first_oracle_packet_assistant_index.md

该索引会固定列出 dashatajika_sahamsshadbala 三条 front 的首包 case、缺失字段数、operator card 与推荐执行顺序,方便直接判断当前最短闭环路径。

Shadbala 外部绝对值闭环使用独立状态板,专门追踪七曜的六分量与总 Rupa:

python3 scripts/shadbala_oracle_closure_status.py \
  --oracle-file references/oracle/dasha_shadbala_oracle_cases.json \
  --format markdown \
  --output docs/benchmark/shadbala_external_absolute_value_closure_status.md

当前第一优先级是 external_template_synthetic_north_china_shadbala_raman。除了同一 oracle 行里的 target.moon_sidereal_longitude_deg,还必须填写 Sun/Moon/Mars/Mercury/Jupiter/Venus/Saturn 的 sthanadigkalachestanaisargikadriktotal_rupa;验证器会检查分量和总分,不允许用一个全局倍率把本地输出硬缩放成外部值。

Tajika/Sahams 年运系统使用独立的外部 oracle 队列,专门追踪 Varshaphala、太阳回归、Muntha、Year Lord、Mudda Dasha、Sahams 与 Tajika Yogas 的外部验证状态:

python3 scripts/tajika_annual_oracle_queue.py \
  --oracle-file references/oracle/tajika_annual_oracle_cases.json \
  --format markdown

公开年运看板可这样生成:

python3 scripts/tajika_annual_benchmark_dashboard.py \
  --oracle-file references/oracle/tajika_annual_oracle_cases.json \
  --format markdown \
  --output docs/benchmark/tajika_sahams_annual_benchmark_dashboard.md

当前 Tajika/Sahams 看板固定输出 can_claim_tajika_sahams_closure: false:本地 skill 已有年运计算与解释骨架,但太阳回归精确时刻、Varsha Lagna、Muntha、Mudda Dasha、Punya/Rajya/Vivah Saham 和 Tajika Yogas 仍需 JHora/PyJHora/书例级外部证据后,才能宣称年运闭环。

年运第一条最短闭环状态板:

python3 scripts/tajika_annual_closure_status.py \
  --oracle-file references/oracle/tajika_annual_oracle_cases.json \
  --format markdown \
  --output docs/benchmark/tajika_sahams_annual_closure_status.md

如需导出可填写的年运证据包:

python3 scripts/tajika_annual_oracle_queue.py \
  --oracle-file references/oracle/tajika_annual_oracle_cases.json \
  --write-packet-dir references/oracle/artifacts/pending_packets \
  --format json

填完 external_template_steve_jobs_varshaphala_1984_lahiri.json 后,可合并回年运 oracle

python3 scripts/tajika_annual_oracle_queue.py \
  --oracle-file references/oracle/tajika_annual_oracle_cases.json \
  --apply-packet references/oracle/artifacts/pending_packets/external_template_steve_jobs_varshaphala_1984_lahiri.json \
  --format json

full-reading 也会输出 ai_prompt_pack:这是给网页/app、skill 或后端 AI 代理使用的结构化 Prompt/RAG 上下文包。它不会硬编码断语,而是携带 D1/D9/Dasha/Shadbala/Ashtakavarga 的证据快照、推荐检索文档和边界提示,要求大模型基于计算证据交叉验证,避免单一配置下结论。