Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ming-engine — deterministic Western natal, BaZi and Zi Wei Dou Shu engine

✨ ming-engine ✨

一个确定性命理计算引擎 — 西方占星本命盘 · 四柱八字 · 紫微斗数
A deterministic, offline birth-chart engine for script-capable AI agents.

MIT License Node >= 22 100% offline Deterministic LLM never computes


🔮 这是什么? / What is this?

ming-engine 把三大命理体系装进一个 完全离线、字节级确定 的引擎,并打包成一个供支持本地脚本执行的 AI 宿主调用的 Skill

🧠 大模型只负责收集输入、复述确认、转达结果——它从不亲自算命。 所有行星位置、宫位、相位、干支、十神、星曜、四化都由内置的确定性 CLI 计算,可回归、可复现、有来源。

体系 Emoji 能力
西方占星 🪐 行星(日→冥)· 真交点 · 小行星(Chiron/谷神/智神/婚神/灶神) · 恒星黄道(Lahiri) · 宫位(Placidus/整宫/等宫/Koch/Porphyry) · 上升中天 · 相位 · 逆行 · 尊贵
四柱八字 🎋 四柱 · 藏干 · 十神(日柱显示日主) · 纳音 · 大运/起运 · 旺衰/格局/喜用神 · 刑冲合害 · 神煞 · 吉凶倾向(带古籍来源)
紫微斗数 十二宫 · 主辅星+亮度 · 四化 · 大限 · 三方四正 · 流年/流月/流日/流时 运限盘
解读 📜 按主题(婚姻/财运/事业/学业…)聚合带证据/原因链/吉凶(polarity)的事实 + 结尾追问,交宿主大模型转自然语言

⚡ 安装入口 / Install entry

对你的 AI(Qoder / WorkBuddy / 豆包电脑版 / Codex)说一句:

帮我安装这个技能:https://raw.githubusercontent.com/Jowitt13/ming-engine/main/INSTALL.md

宿主 AI 会先识别平台并读取 install-manifest.jsonpublished 状态;只有所选平台已发布时,才会读取下载地址、校验 SHA-256 并安装。它不会猜测、拼接或尝试不存在的下载链接。

当前可用性 / Availability

宿主 当前状态 最简开始方式
Codex 可从公开仓库使用完整排盘 Skill 克隆或下载本仓库后打开项目;不依赖 GitHub Release
Qoder 已发布 GitHub Release v0.1.6 发送上方安装链接;Agent 下载、校验后安装
WorkBuddy 已发布 GitHub Release v0.1.6 发送上方安装链接;Agent 下载、校验后按宿主流程导入
豆包电脑版 已发布 GitHub Release v0.1.6 发送上方安装链接;Agent 下载、校验后按宿主流程导入

四个平台的完整排盘能力与真机兼容性记录仍见下方文档;可下载性始终以清单的 published 字段为准。

安装包来自 GitHub Release v0.1.6:已提供 Qoder、WorkBuddy 与豆包电脑版 ZIP。下载地址与 SHA-256 以 install-manifest.jsonSHA256SUMS.txt 为准。


🌟 为什么与众不同 / Why it's different

  • 🛡️ 不虚构(no fabrication) — 未实现或缺输入的部分只发警告,绝不编造。未知时间不伪造上升/宫位;缺性别不硬凑紫微盘。
  • 🔒 完全离线 + 确定性 — 星历(astronomy-engine·VSOP87+NOVAS)、时区(IANA)、历法全部内置。相同输入 + 相同版本 → 字节级一致的 canonical JSON。
  • 📚 有来源可追溯 — 八字解读引用《子平真诠》《滴天髓》《渊海子平》公版古籍;每条结论带 ruleId + 出处
  • 🕵️ 精度门禁(包装层一致性) — 西方星体由 astronomy-engine(VSOP87 + NOVAS)计算;精度回归确保本包装层与其输出一致(非独立 JPL 对照)。上游宣称约 ±1′(对照 JPL Horizons);本仓库独立 JPL Horizons 金标待补。
  • 🔐 隐私优先 — 解读事实层脱敏,不含姓名/经历/自由文本地名;不联网、不遥测。
  • 🗣️ 解读输出有防火墙 — 专题报告(Channel B)交付前经 lint-reading 离线体检:第 1–5 部分禁命理术语与顾问黑话、禁空话与换词重复、禁越界预测(无收入 facts 不写加薪、不做群体比较、未知经历须用“如果/可能/例如”条件表达)。随 Skill 发布、可复现;为启发式文本检查,不保证宿主模型 100% 合规。
  • 🧩 可移植(需脚本执行) — 一份 SKILL.md + 打包好的引擎,四个完整宿主(Codex / Qoder / WorkBuddy / 豆包电脑版)通用;宿主须具备本地脚本执行能力。

🗺️ 架构一览 / Architecture

flowchart LR
  U["🗣️ 用户自然语言请求"] --> S["📄 SKILL.md 触发与输入确认"]
  S --> CLI["⚙️ ming-chart.mjs(唯一稳定 CLI)"]
  CLI --> T["🕓 时间地点归一化<br/>IANA/DST/UTC/真太阳时"]
  T --> W["🪐 西方 Provider<br/>astronomy-engine"]
  T --> B["🎋 八字 Provider<br/>tyme4ts"]
  T --> Z["⭐ 紫微 Provider<br/>iztro"]
  W --> C["📦 版本化 ChartBundle"]
  B --> C
  Z --> C
  C --> I["📜 解读事实层<br/>@ming/interpret(带来源+证据+吉凶)"]
  I --> LLM["🧠 宿主大模型 → 自然语言解读"]
Loading

依赖方向铁律:计算内核离线确定、绝不反向依赖解读层;第三方库类型不泄漏到公共契约。由 eslint 导入边界门禁强制执行。


🚀 快速开始 / Quick start

需要 Node ≥ 22。发布的 Skill 文件夹自包含(内置 scripts/dist/engine.mjs),无需 npm install、无需联网。

git clone https://github.com/Jowitt13/ming-engine.git
cd ming-engine/skills/calculate-birth-charts

# 1) 环境自检
node scripts/ming-chart.mjs doctor

# 2) 准备一个 birth-input.json(见下方示例),然后算三盘
node scripts/ming-chart.mjs calculate --input-file birth-input.json --systems all --output-file chart.json

# 3) 需要解读时,生成跨系统解读事实(带证据/原因链/吉凶/免责)
node scripts/ming-chart.mjs interpret --input-file birth-input.json --output-file interpretation.json
# (注:render 生成 HTML/SVG 报告的功能已暂时关闭,返回禁用提示并以退出码 3 退出)
📥 birth-input.json 示例(点击展开)

合成示例: 下列人物、日期、时间与地点仅用于测试和演示,不对应真实个人。

{
  "calendar": "gregorian",
  "localDate": "1990-03-10",
  "localTime": "08:15:00",
  "timeAccuracy": "exact",
  "timezone": "Asia/Shanghai",
  "location": { "latitude": 30.5, "longitude": 114.3, "source": "user" },
  "ruleGender": "male",
  "settings": { "systems": ["western", "bazi", "ziwei"] }
}

时间未知?把 timeAccuracy 设为 "unknown" 并省略 localTime —— 引擎会照实降级,不伪造上升/时柱。


🧰 在各宿主里使用 / Install in your agent

🟣 Qoder

Qoder 的完整 ZIP 已发布在 GitHub Release v0.1.6。普通用户仍只需使用上方安装入口;Agent 会读取清单、下载不可变资产、校验 SHA-256 后安装,不需要 CLI。

🟠 Claude Code

本仓库同时是一个 Claude Code 插件市场(含 .claude-plugin/marketplace.json):

/plugin marketplace add Jowitt13/ming-engine
/plugin install calculate-birth-charts@ming-engine

或手动:把 skills/calculate-birth-charts/ 复制到 ~/.claude/skills/

🟢 Codex(及任何读取 AGENTS.md 的宿主)

克隆本仓库,Codex 会读取根目录的 AGENTS.md(含运行规则与 CLI 用法)。 Skill 的 UI 元数据在 skills/calculate-birth-charts/agents/openai.yaml


🛠️ CLI 速查 / Command reference

单一稳定入口:node scripts/ming-chart.mjs <subcommand>(参数走数组/文件,绝不拼 shell)。

子命令 作用
doctor 环境自检:Node、平台、内置 TZDB 版本、能力清单
normalize 只做时间/地点归一化(UTC instant、真太阳时、DST 消歧)
calculate 计算三盘 → 版本化 ChartBundle--systems all|western,bazi,ziwei
compare 对比流派/真太阳时等 versioned profile 的盘面差异
horoscope 紫微 运限盘(大限/小限/流年/流月/流日/流时),--at YYYY-MM-DD[THH:mm]
interpret 跨系统解读事实(按主题聚合、带证据/免责),供宿主 LLM 转自然语言
synastry 多人合婚/关系分析(1-5 人,八字/紫微/占星三系);>2 人需 analyzePair 指定两人
lint-reading 解读体检:对 Channel B 报告草稿做术语/空话/重复/事实边界检查(--channel topic|full--simple),有 error 以非零退出
render 暂时关闭(HTML/SVG 报告)——返回禁用提示并以退出码 3 退出;改用 calculate/interpret JSON
verify 用内置 fixture 自检引擎

✅ 成功输出 { "ok": true, ... };失败输出 { "ok": false, "error": { "code": ... } } 并以稳定退出码退出。


⚠️ 边界与免责 / Scope & disclaimer

  • 🎭 面向传统文化、娱乐与自我反思不是经科学验证的预测。
  • 🚫 绝不给出确定性的医疗、法律、投资、生死建议;健康提示仅是五行/宫位的一般结构描述。
  • 🌗 西方恒星黄道(Lahiri)、真交点、小行星已实现;真交点/小行星为近似精度(角分级近似),明确标注且不纳入 ≤1′ 门禁。
  • 🧾 缺时间/性别会照实降级并说明原因。

🧑‍💻 开发 / Development

pnpm monorepo(packages/*)构建出 Skill 的引擎 bundle。

开发本仓库需 Node.js ≥ 24;运行已发布的 Skill 包只需 Node.js ≥ 22(无需 pnpm/Git/源码构建)。

pnpm install          # 仅开发需要
pnpm run verify:cloud # GitHub Actions 使用的非敏感门禁
pnpm run verify:all   # 受控本地全量门禁;没有私密 token 文件时按设计 fail-closed
pnpm run build        # 重建 scripts/dist/engine.mjs + sbom.cdx.json(改动后请提交产物)
pnpm run package      # 生成 dist/*.zip + .sha256(自校验完整性)

verify:cloud 依次运行:format:check → lint → typecheck → test → build → validate:provenance → validate:skill → validate:reading → validate:docs → smoke → forward:test → package:hosts → verify:hosts → verify:install → check:doc-counts → scan:deps → scan:licenses → validate:sbom → scan:secretsverify:all 只在其后追加 scan:incident,该扫描的私密 token 文件绝不进入 CI;缺失时必须 fail-closed。本仓库当前的真实测试计数由 GitHub Actions 的 verify job 与 docs/VALIDATION.md 的门禁段落负责同步(不再在 README 内维护一个易过期的静态数字)。

深入阅读:docs/ARCHITECTURE.md · docs/VALIDATION.md · docs/LICENSE_AUDIT.md · docs/PRIVACY.md · skills/calculate-birth-charts/SKILL.md


📦 依赖与许可 / Dependencies & license

引擎内联的运行时依赖全部为 MIT(闭源友好):zod · moment-timezone · tyme4ts · iztro · astronomy-engine。八字解读规则引用公版古籍(《子平真诠》《滴天髓》《渊海子平》)。完整清单见 docs/LICENSE_AUDIT.mdTHIRD_PARTY_NOTICES

本项目以 MIT 许可发布。🌙 愿你算得开心、看得明白。

About

Deterministic, offline three-system birth-chart Skill: Western natal, BaZi and Zi Wei Dou Shu. Works in Qoder, Claude Code and Codex.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages