From b80af7193a7bd6f87fe3ae9ac482553fd3cc0526 Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Thu, 25 Jun 2026 19:56:10 +0800 Subject: [PATCH] Add export calibration boundary --- ...bration_transparency_postfix_2026_06_25.md | 15 ++ ...odex_round12_recommendations_2026_06_25.md | 28 +++ ...11_git_fragment_sync_postfix_2026_06_25.md | 16 ++ ...d11_global_gap_next_priority_2026_06_25.md | 12 ++ ...y_sidecar_work_order_round12_2026_06_25.md | 192 ++++++++++++++++++ jyotish-app/export.js | 49 ++++- progress.md | 5 +- tests/test_frontend_productization.py | 13 ++ 8 files changed, 328 insertions(+), 2 deletions(-) create mode 100644 docs/research/antigravity_round11_calibration_transparency_postfix_2026_06_25.md create mode 100644 docs/research/antigravity_round11_codex_round12_recommendations_2026_06_25.md create mode 100644 docs/research/antigravity_round11_git_fragment_sync_postfix_2026_06_25.md create mode 100644 docs/research/antigravity_round11_global_gap_next_priority_2026_06_25.md create mode 100644 docs/research/antigravity_sidecar_work_order_round12_2026_06_25.md diff --git a/docs/research/antigravity_round11_calibration_transparency_postfix_2026_06_25.md b/docs/research/antigravity_round11_calibration_transparency_postfix_2026_06_25.md new file mode 100644 index 00000000..ef13e826 --- /dev/null +++ b/docs/research/antigravity_round11_calibration_transparency_postfix_2026_06_25.md @@ -0,0 +1,15 @@ +# Antigravity AI 修复后透明度复核 (Round 11) + +## 1. 对标 +在透明度与产品传达上,当前最新修复使得我们与 VedAstro 在“对用户坦诚算法边界”这一维度上拉近了距离。我们在 Web/App 和大语言模型层强行接通了底层 `oracle queue` 的校准状态断言,让系统不再过度包装绝对起运时间。 + +## 2. 开源参考 +借助 JHora 与 PyJHora 的黑盒作为隐形标准(0/5 的指标),本轮修复的 Trust Center(数据可信度面板)成功实现了在前端展现对高阶算法敬畏心的设计意图,这在开源占星项目中是非常领先的做法。 + +## 3. Bug +本轮深度复查 **未发现 P0/P1/P2 阻断问题**。 +Round 10 暴露出的 `Trust Center 面板缺失` 和 `AI Chat 免责声明未注入` 均已被 Codex 完美修复。 + +### 剩余风险: +1. 前端虽然构建通过并接入了 `DASHA_SHADBALA_CALIBRATION_STATUS`,但在极小屏幕的移动端,Trust Center 弹窗可能存在溢出风险。 +2. 虽然 AI Chat 和 Web 面板已加入免责声明,但当用户导出生成为 HTML/JSON 星盘报告时,该校准边界提示可能未包含进离线文件中。 diff --git a/docs/research/antigravity_round11_codex_round12_recommendations_2026_06_25.md b/docs/research/antigravity_round11_codex_round12_recommendations_2026_06_25.md new file mode 100644 index 00000000..ce6ee81d --- /dev/null +++ b/docs/research/antigravity_round11_codex_round12_recommendations_2026_06_25.md @@ -0,0 +1,28 @@ +# Antigravity AI 给 Codex 的 Round 12 任务建议 (Round 11) + +经过全面复核与差距审视,以下为给 Codex 派发的 Round 12 核心执行队列,重点向着真正的产品易用性开火。 + +## 任务 1:将校准状态下发至“离线图表导出” +- **执行路径**:修改 `jyotish-app/jyotish-export-modules.js` 或相关的落盘/截图导出函数。 +- **动作**:确保在导出生成的 PNG 图像或 HTML 档案尾部,强行烙印一段文本:“Dasha/Shadbala Calibration Status: ready_for_calibration: 0。起步大运未达绝对校验基准,请以此为参考。” +- **验收命令**:无专属,但在真实浏览器下测试导出产物,确认离线文件带有边界声明。 + +## 任务 2:制作“外部真值投喂”前端表单 +- **执行路径**:在 `jyotish-app/` 增加一个诸如 `oracle-contribute.html` 或对应子视图面板。 +- **动作**:对接目前的 `references/oracle/dasha_shadbala_oracle_cases.json` 模板任务,提供 5 个可视化的悬赏卡片。每个卡片允许极客占星师们阅读所需的输入占星条件,并上传截图 + 填写真值。 +- **验收命令**:`npm run build --prefix jyotish-app`,并且人工验证 UI。 + +## 任务 3:录入首批 JHora 真实截图数据 +- **执行路径**:人工脱离自动化系统操作。 +- **动作**:在一台干净且无 GPL 污染的独立机器上,启动闭源 JHora。按照 `dasha_shadbala_oracle_cases.json` 中的 `template_steve_jobs_dasha_lahiri` 与 `template_redacted_place_shadbala_raman` 参数排盘。将得到的截图作为 Artifact 存入系统,并将读数写入 JSON 靶标。 +- **验收命令**: + ```bash + python3 scripts/oracle_collection_queue.py --oracle-file references/oracle/dasha_shadbala_oracle_cases.json --format json > /tmp/queue.json + python3 scripts/oracle_evidence_validator.py --queue-file /tmp/queue.json + ``` + **验收标准**:`valid_packets` 从 0 突破至 2。 + +## 任务 4:一键产品化包装探路 +- **执行路径**:评估 Tauri 或 Pake 的打包方案。 +- **动作**:为项目新增一个极简启动指引或跨平台的壳子配置脚本,使得哪怕不知道什么是 npm 和 python env 的用户,也能一键启动我们的 Web 服务。 +- **验收标准**:文档化验证流程,并提供给普通用户下载的制品入口。 diff --git a/docs/research/antigravity_round11_git_fragment_sync_postfix_2026_06_25.md b/docs/research/antigravity_round11_git_fragment_sync_postfix_2026_06_25.md new file mode 100644 index 00000000..81e37dfd --- /dev/null +++ b/docs/research/antigravity_round11_git_fragment_sync_postfix_2026_06_25.md @@ -0,0 +1,16 @@ +# Antigravity AI GitHub 与本地碎片同步复核 (Round 11) + +## 同步状态与碎片审查结论 + +经过对远端与本地各级目录的高频扫描核查: + +| 项目 | 本地/远端状态 | 是否已同步 | 结论 | +|---|---|---|---| +| **主仓追踪态** | `codex/release-hygiene-ci` (HEAD) | **是** | 本机与 GitHub 远端指针同时指在最新提交 (`99de594`),先前的报告均已全量上云,无高危未跟踪代码暴露。 | +| **`.workbuddy` 旧副本** | 残留废弃仓库 (`.workbuddy/skills/...`) | **无需同步** | 该目录仍为早期 `main` 分支的孤岛拷贝,不构成冲突威胁,推荐物理删除。 | +| **`.gemini` Scratch** | 包含部分 `vedastro_test.py` | **无需同步** | 仅做 AI 开发暂存,属于沙盒废料,永远隔离于版本库。 | +| **Downloads PDF/压缩包** | `yinduzhanxing-5-new-modules.tar.gz`, 原版典籍 | **无需同步** | 下载的备份包与参考书,不进主线,避免仓库臃肿。 | +| **Desktop 头像/报告** | 客户私人落盘或头像资料 | **无需同步** | 属于绝对隐私的测算输出,决不能混进 `.git`。 | +| **WorkBuddy 历史碎片** | 曾经产生的临时生成物 | **无需同步** | 没有新发现的需并入的产品核心代码。 | + +**总结**:当前主仓的 Git 同步极其健康,本地碎片文件已被严格界定在外围区,没有出现错误推送私人数据或遗漏重大产品的事件。 diff --git a/docs/research/antigravity_round11_global_gap_next_priority_2026_06_25.md b/docs/research/antigravity_round11_global_gap_next_priority_2026_06_25.md new file mode 100644 index 00000000..0ac9f55a --- /dev/null +++ b/docs/research/antigravity_round11_global_gap_next_priority_2026_06_25.md @@ -0,0 +1,12 @@ +# Antigravity AI 全球对标差距与下一优先级 (Round 11) + +## 重新透视:距离普通用户成品的最高优先级缺口 + +我们不再以“比拼计算接口数量的极客炫技”为坐标,而是转为“让普通中文用户能看懂、信得过、用得上”的产品化视角进行重新排布。 + +| 优先级 | 缺口 | 为什么影响普通用户 | Codex 下一步建议 | +|---|---|---|---| +| **#1** | **缺乏开箱即用的交付壳子**(对比 JHora / Hora Prakash) | 普通用户不会使用 `npm run build` 和 `python3 api_server.py`,如果没有双击运行的桌面端或线上直连环境,我们做再多校验也是孤芳自赏。 | 筹划 Pake/Tauri 构建:一键打包前端网页与本地轻量级 Python 核心,降低用户的首次使用摩擦。 | +| **#2** | **报告无法离线带走校准底色**(对比 本项目 AI Native 体验) | 用户关掉网页,或者把排盘报告另存分享给占星师时,界面上的 Trust Center 就丢失了。对方会误以为这是一个纯粹硬核的确定盘。 | 补修导出模块:将 `DASHA_SHADBALA_CALIBRATION_STATUS` 强行嵌入打印的 PDF / 导出的 HTML 星盘底层。 | +| **#3** | **无处投递外部真值**(对比 JHora 绝对基准池) | 后台的 `0/5` 队列在纯代码里是个冰冷的 JSON,普通占星专家即使想帮你提供 JHora 截图验证,也无从下手(看不懂 JSON Schema)。 | 构建可视化打榜前端:把 `oracle_collection_queue` 的采集任务,做成一张傻瓜式 Web 表格(填空并传截图)。 | +| **#4** | **API 方法极其贫瘠**(对比 VedAstro 596+ 方法) | 当开发者试图把我们接到其他自动化流水线上时,会发现我们除了一套打捆好的长串推断外,缺少大量基础单体指标调用(例如单查木星过境某度数的 API)。 | 在完成核心力量体系标定后,逐步铺设微粒度的基础占星推算 API。 | diff --git a/docs/research/antigravity_sidecar_work_order_round12_2026_06_25.md b/docs/research/antigravity_sidecar_work_order_round12_2026_06_25.md new file mode 100644 index 00000000..b090276b --- /dev/null +++ b/docs/research/antigravity_sidecar_work_order_round12_2026_06_25.md @@ -0,0 +1,192 @@ +# Antigravity AI 副手任务单 Round 12(2026-06-25) + +## 任务目标 + +本轮任务聚焦 Codex 刚完成的“导出报告继承 Dasha/Shadbala 校准边界”以及下一步“外部真值采集表单化”。 + +请只做黑盒复核与报告,不修改核心实现。 + +需要确认: + +1. `jyotish-app/export.js` 的 JSON 导出是否包含 `meta.calibration_status` 与 `modules.calibration_status.dasha_shadbala`。 +2. HTML/PDF fallback 报告是否渲染“高级技法校准状态”,并包含 `ready_for_calibration: 0`、`valid_packets: 0`、`production_tuning_allowed: false`、`external_oracle_evidence_validation`。 +3. Trust Center / AI Chat / API Prompt / Skill / Export 五个用户面是否已经口径一致。 +4. 下一步如何把 `oracle_collection_queue.py` 的 5 个采集任务做成普通用户可填写、可截图、可复验的采集表单。 + +## 严格边界 + +禁止事项: + +- 不要提交、推送、重置、删除、移动、批量格式化或覆盖现有文件。 +- 不要读取、记录、传播任何 GitHub token、API key、浏览器登录态、cookie、SSH 私钥或系统钥匙串。 +- 不要打开或摘录用户私人星盘完整报告正文。 +- 不要修改 `scripts/`、`jyotish-app/`、`skills/`、`SKILL.md`、`tests/`、`README.md` 的实现内容。 +- 不要把 `output_report.txt`、`results_extracted.md`、PDF 原件、Antigravity scratch 或私人出生资料纳入同步建议。 +- 不要复制 JHora、PyJHora、AGPL/GPL 项目的实现代码、公式常量或内部数据表。 +- 不要把 `template_only`、`local_baseline`、本仓库输出或空目标字段标成 `external_verified`。 +- 不要使用“绝对可信”“世界第一”“完全校准”等过度准确率话术。 + +允许事项: + +- 可以读取 `README.md`、`SKILL.md`、`progress.md`。 +- 可以读取 `docs/research/*round11*`、本任务单和相关公开研究报告。 +- 可以读取 `jyotish-app/export.js`、`main.js`、`ai-chat.js`、`api-bridge.js`、`public/api-bridge.js`、`tests/test_frontend_productization.py`,只做复核。 +- 可以运行只读命令:`git status`、`git log`、`git ls-remote`、`rg`、`python3 ... --format json`、`pytest`、`npm run build --prefix jyotish-app`。 +- 只能新增 `docs/research/*round12*2026_06_25.md` 报告文件。 + +## 必跑命令 + +### 1. Git / GitHub 同步复核 + +```bash +git status --short --branch +git log --oneline --decorate -n 8 +``` + +```bash +GIT_SSH_COMMAND='ssh -p 443 -o IPQoS=none -o ConnectTimeout=30' \ +git ls-remote ssh://git@ssh.github.com:443/732642856/yinduzhanxing.git \ + refs/heads/codex/release-hygiene-ci refs/heads/main +``` + +### 2. 导出校准边界静态复核 + +```bash +rg -n "DASHA_SHADBALA_EXPORT_CALIBRATION_STATUS|calibration_status|dasha_shadbala|高级技法校准状态|ready_for_calibration: 0|valid_packets: 0|production_tuning_allowed: false|external_oracle_evidence_validation|不得把大运起点或 Shadbala 绝对值说成已完成外部校准" \ + jyotish-app/export.js \ + tests/test_frontend_productization.py +``` + +### 3. 五个用户面一致性复核 + +```bash +rg -n "Dasha/Shadbala Calibration Status|ready_for_calibration: 0|valid_packets: 0|production_tuning_allowed: false|external_oracle_evidence_validation|不得把大运起点或 Shadbala 绝对值说成已完成外部校准|高级技法校准状态" \ + jyotish-app/main.js \ + jyotish-app/ai-chat.js \ + jyotish-app/api-bridge.js \ + jyotish-app/public/api-bridge.js \ + jyotish-app/export.js \ + SKILL.md +``` + +### 4. Oracle / evidence gate 复验 + +```bash +python3 scripts/oracle_collection_queue.py \ + --oracle-file references/oracle/dasha_shadbala_oracle_cases.json \ + --format json > /tmp/jyotish_oracle_queue_round12.json +``` + +```bash +python3 scripts/oracle_evidence_validator.py \ + --queue-file /tmp/jyotish_oracle_queue_round12.json +``` + +```bash +python3 -B -m pytest \ + tests/test_frontend_productization.py::test_provenance_panchanga_workspace_panel_is_productized \ + tests/test_frontend_productization.py::test_trust_center_and_ai_expose_dasha_shadbala_calibration_status \ + tests/test_oracle_collection_queue.py \ + tests/test_oracle_evidence_validator.py \ + -q +``` + +### 5. 用户端构建复核 + +```bash +npm run build --prefix jyotish-app +``` + +## 输出报告 A:导出报告校准边界复核 + +输出文件: + +- `docs/research/antigravity_round12_export_calibration_boundary_audit_2026_06_25.md` + +固定小节: + +1. 对标 +2. 开源参考 +3. Bug + +必须判断: + +- JSON 导出是否结构化携带校准状态。 +- HTML/PDF fallback 是否可见地携带校准状态。 +- 是否仍有“网页有边界,但导出物丢边界”的风险。 + +## 输出报告 B:五个用户面口径一致性 + +输出文件: + +- `docs/research/antigravity_round12_user_surface_consistency_2026_06_25.md` + +覆盖: + +| 用户面 | 文件 | 是否有校准状态 | 风险 | +|---|---|---|---| + +至少包括 Trust Center、AI Chat、API Prompt Bridge、SKILL.md、JSON/HTML 导出。 + +## 输出报告 C:外部真值采集表单化方案 + +输出文件: + +- `docs/research/antigravity_round12_oracle_collection_form_plan_2026_06_25.md` + +必须把 `oracle_collection_queue.py` 的 5 个任务转换成普通人可执行表单方案: + +| 字段 | 类型 | 是否必填 | 示例 | 校验规则 | +|---|---|---|---|---| + +至少包含: + +- `case_id` +- `tool_name` +- `tool_version_or_url` +- `capture_date` +- `source_artifact` +- `ayanamsa` +- `node_mode` +- `timezone` +- `operator_note` +- `moon_sidereal_longitude_deg` +- `vimshottari_start_date` +- `shadbala_components` +- `external_verified` + +同时明确: + +- 不能上传本仓库本地输出作为外部证据。 +- JHora/PyJHora 只能黑盒取数,不复制实现代码。 +- `production_tuning_allowed` 只有在足够证据包通过后才可开启。 + +## 输出报告 D:给 Codex 的 Round 13 任务建议 + +输出文件: + +- `docs/research/antigravity_round12_codex_round13_recommendations_2026_06_25.md` + +请给出 3-5 个可执行任务,并明确每个任务涉及的文件路径、测试命令和验收标准。 + +优先考虑: + +1. 在 Web/App 增加 `Oracle Evidence Intake` 只读/本地表单原型。 +2. 为 evidence packet 生成可下载空白 JSON 模板。 +3. 支持把人工填写的 evidence packet 导入并用 `oracle_evidence_validator.py` 校验。 +4. 移动端真实浏览器检查导出报告/Trust Center 长文案不溢出。 +5. 继续降低普通用户启动/安装摩擦。 + +## 最终回报格式 + +请用中文输出: + +1. 已创建的文件列表。 +2. GitHub 同步是否一致。 +3. 导出报告校准边界是否已修复。 +4. 五个用户面是否口径一致。 +5. Bug 表(P0/P1/P2,文件路径,行号或搜索 token,修复建议)。 + +结尾必须写: + +> 下一步建议 Codex 优先…… diff --git a/jyotish-app/export.js b/jyotish-app/export.js index 74444ecc..565d44f5 100644 --- a/jyotish-app/export.js +++ b/jyotish-app/export.js @@ -9,6 +9,23 @@ import { SIGNS, SIGN_LORDS, PLANET_CN } from './jyotish-engine.js'; +const DASHA_SHADBALA_EXPORT_CALIBRATION_STATUS = { + id: 'dasha_shadbala', + title: 'Dasha/Shadbala Calibration Status', + queue: 'external_oracle_collection_queue', + validator: 'external_oracle_evidence_validation', + ready_for_calibration: 0, + valid_packets: 0, + production_tuning_allowed: false, + confidence_boundary: 'D1/D9/SAV 高可信;大运起点和 Shadbala 绝对值仍在外部 evidence validator 校准中。', + user_facing_rule: '不得把大运起点或 Shadbala 绝对值说成已完成外部校准。', + status_labels: [ + 'ready_for_calibration: 0', + 'valid_packets: 0', + 'production_tuning_allowed: false', + ], +}; + // ============================================================================ // JSON 导出 — 完整星盘数据 (100% coverage) // ============================================================================ @@ -23,6 +40,9 @@ export function exportJSON(chartData, extras = {}) { provenance: extras.provenance || chartData?._client_audit?.provenance || null, calculation_settings: extras.provenance?.calculationSettings || chartData?._calculation_settings || null, terminology_mode: extras.provenance?.terminologyMode || chartData?._terminology_mode || null, + calibration_status: { + dasha_shadbala: DASHA_SHADBALA_EXPORT_CALIBRATION_STATUS, + }, }, birth_info, ascendant: _cleanAscendant(ascendant), @@ -143,6 +163,12 @@ export function exportJSON(chartData, extras = {}) { payload.modules.actionable_context = extras.actionableContext; } + // ── 16. Calibration Status ── + payload.modules = payload.modules || {}; + payload.modules.calibration_status = { + dasha_shadbala: DASHA_SHADBALA_EXPORT_CALIBRATION_STATUS, + }; + // ── 16. User Workflows ── if (extras.workflows) { payload.modules = payload.modules || {}; @@ -380,7 +406,7 @@ function _buildHTMLReport(chartData, extras) { :root { --paper: #fbfaf6; --ink: #24201b; --muted: #6d665d; --line: #ded7ca; --soft: #f1ece2; --accent: #7a5a22; - --good: #166534; --warn: #92400e; + --good: #166534; --warn: #92400e; --danger: #991b1b; } * { box-sizing: border-box; } body { @@ -439,6 +465,12 @@ function _buildHTMLReport(chartData, extras) { .relationship-list ul { margin: 6px 0 0; padding-left: 18px; color: var(--muted); } .relationship-boundary { background: #fff8ed; border: 1px solid #ead7b8; border-radius: 6px; padding: 9px; margin-top: 8px; } .relationship-boundary span { display: block; color: var(--muted); font-size: 12px; } + .calibration-status { + background: #fff7ed; border: 1px solid #fed7aa; border-left: 4px solid var(--danger); + border-radius: 6px; padding: 12px; margin-top: 10px; break-inside: avoid; + } + .calibration-status strong { display: block; color: var(--danger); margin-bottom: 4px; } + .calibration-status span { display: block; color: var(--muted); font-size: 12px; } .comparison-print-table { font-size: 12px; } .factor-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 8px; } .factor { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 8px; } @@ -552,6 +584,8 @@ function _buildHTMLReport(chartData, extras) { ${_workflowReportSection(workflows)} + ${_calibrationStatusSection(DASHA_SHADBALA_EXPORT_CALIBRATION_STATUS)} + 校验与审计 @@ -575,6 +609,19 @@ function _buildHTMLReport(chartData, extras) {