English README · API Docs · Architecture · 开发约定 · llms.txt · Changelog
本仓库为开源的术数算法能力层(MIT)。它与带 React 前端的 Web 全栈社区版(公开仓库 tytsxai/bazi-master,冻结在
v0.2.0)是两个完全隔离、 互不同步的独立仓库:算法口径、CLI 能力与 MCP 接入均不共享,也不沿用那条线的任何代码或资产。
Metaphysics Engine 是一个开源的命理计算引擎,把中国传统术数的排盘能力——八字(BaZi)、紫微斗数(Zi Wei Dou Shu)、六爻纳甲(Liu Yao)、大六壬(Da Liu Ren)、奇门遁甲(Qi Men Dun Jia)、八宅风水(Ba Zhai)、择吉(almanac)、姓名五格——连同塔罗、周易起卦、星座与上升星座、合盘分析和 AI 解读,收敛成一套文档化的 HTTP API 和一个面向 Agent 的程序化 CLI。
它是算法能力层,不是网页应用,也不服务 C 端用户:界面、账号、持久化都属于调用方。引擎本身是无状态纯计算——不存数据、不认用户、没有数据库。
English summary: Metaphysics Engine is an open-source divination calculation engine covering the traditional Chinese canon — BaZi, Zi Wei Dou Shu, Liu Yao (King Fang stem-branch attachment), Da Liu Ren, Qi Men Dun Jia, Ba Zhai feng shui, almanac day-selection and name grids — plus Tarot, I Ching, Zodiac and Synastry. Exposed as a documented HTTP API and an agent-callable CLI. Stateless pure calculation — no database, no accounts, no UI. Node.js / Express, optional Redis cache, pluggable AI providers, OpenAPI contract.
目录:项目定位 · 核心能力 · 快速开始 · 调用示例 · 接口速查 · 适用场景 · 技术栈 · 环境变量 · FAQ · 项目结构 · 测试 · 生产部署 · 开发约定 · 限制 · 文档
| 维度 | 说明 |
|---|---|
| 项目类型 | 玄学 / 占星 / 命理算法能力层(开源 MIT),以自部署 HTTP API + 程序化 CLI 交付 |
| 解决问题 | 把命理算法里那些「写错也不会报错」的语义边界做成可测试、有契约、可被程序调用的能力 |
| 适合谁 | 要给产品接命理计算的后端开发者,以及要给 AI Agent 接一个真实排盘工具的团队 |
| 消费方式 | 直接调 HTTP API;用 ./bazi calc / ./bazi cast;或作为 agent tool 接入 |
| 运行形态 | 无状态纯计算:没有数据库、没有账号、没有会话、不写文件 |
| 唯一外部依赖 | Redis,且是可选的纯缓存(只影响跨实例排盘缓存命中率,不影响结果) |
| 技术栈 | Node.js 20+, Express 4, Node.js test runner |
| 本地前置 | Node.js 20+ 和 npm。不需要 Docker,不需要数据库 |
| AI 能力 | mock / OpenAI / Anthropic 文本解读,可按请求覆盖;不配密钥时排盘照常工作 |
| 开发入口 | 仓库根 ./bazi 程序化 CLI:算法调用、环境准备、起停引擎、测试,全部支持 --json |
| 主要入口 | API 路由在 backend/routes;算法逻辑在 backend/services |
| 接口契约 | OpenAPI 描述在 docs/openapi.json,运行时挂在 /api-docs,CI 守快照 |
| 许可证 | MIT。见 LICENSE |
| 重要限制 | 输出仅适合娱乐、文化研究或产品原型验证;不要当作医疗、法律、投资、人生决策建议 |
- 不是网页应用,仓库不含任何前端代码,也不提供线上实例。界面由你自己实现。
- 不是托管的在线算命服务。
- 不是一个纯 npm 八字算法库;计算逻辑是服务内部的 service,通过 HTTP 和 CLI 暴露,不单独发包。
- 不是带账号系统的后端脚手架——注册、登录、OAuth、历史记录、收藏这些能力已经从项目中移除,它们属于调用方。
- 不是对命理、占星准确性的科学背书。
- 不是开箱即用的商业合规方案(应用商店、微信、支付、广告和各地法规需自行处理)。
- 八字排盘 BaZi charting:四柱、藏干加权五行、十神(含中气余气)、身强身弱、 月令格局(子平真诠一派)、扶抑与调候两套用神(穷通宝鉴表)、神煞、纳音、十二长生、 胎元胎息命宫身宫、四柱刑冲合会害破、空亡;大运带起运时刻与逐年流年。 真太阳时参与排盘,带排盘缓存。
- 紫微斗数 Zi Wei Dou Shu:农历换算、五行局、十二宫、十四主星、六吉六煞、二十颗乙级星、
三方四正、命主身主、四化、长生 / 博士 / 岁前 / 将前四组十二神、大限、流年与小限(
flowYear)。 安星依「命宫干支纳音定五行局 → 紫微 → 天府 → 诸星」的正统链条。年干支按农历年(正月初一), 闰月按「归本月」流派。 - 六爻纳甲 Liu Yao:京房筮法装卦。八宫归属、世应、纳甲干支、六亲、六神、伏神、旬空、 月建日辰生克、动爻对他爻的生克、爻间冲合、六冲卦 / 六合卦、进神退神、 内外卦伏吟返吟、动爻变卦,卦上带《周易》卦辞与大象、每爻带爻辞。八宫由世卦推衍规则算出,非硬编表。
- 大六壬 Da Liu Ren:月将加时得天地盘、日干寄宫、四课、三传(九宗门全备)、十二天将。 三传与四课上神各带遁干、所乘天将、六亲(以日干为我)与旬空。月将取月建六合、以中气换将。
- 奇门遁甲 Qi Men:拆补法定局、地盘三奇六仪、值符值使、转盘法排九星八门八神; 每宫附盘面关系量(天地盘干生克、星宫门宫生克、门迫、伏吟、旬空、驿马、入墓、六仪击刑)。
- 八宅风水 Ba Zhai:本命卦(立春为界)与八方游年星,由变爻法排出; 给了坐山则同排宅卦(东西四宅、宅的八方游年)并论命宅相配。
- 择吉 Almanac:分论日 / 论时 / 论方三层 —— 宜忌、建除十二神、二十八宿、黄道黑道十二神、 日冲日煞、吉神凶煞、彭祖百忌;十二时辰各自的吉凶与宜忌;太岁、岁破、三煞与流年紫白九宫盘 (五黄二黑落宫)。年方位以立春为界,入中星按公式算不查表。
- 姓名五格 Name Grids:天人地外总五格与三才配置(笔画数由调用方提供)。
- 塔罗 Tarot:完整牌库,单张 / 三张 / 凯尔特十字牌阵。
- 周易 I Ching:六十四卦全表(含真卦名、《周易》序号与经文——卦辞、爻辞、大象传),
数字起卦(确定性)与时间起卦,附本卦 / 之卦 / 互卦 / 错卦 / 综卦与逐爻爻辞。
经文照录维基文库《周易》底本,由
npm -C backend run fetch:zhouyi抓取生成,可重跑复现。 - 星座 Zodiac:星座信息、运势、上升星座计算、配对。
- 合盘 Synastry:两组出生信息的相性分析,两边各自可给出生地与时区(与八字排盘同口径)。
- AI 解读 AI interpretation:八字 / 塔罗 / 周易的解读接口,支持 mock / OpenAI / Anthropic,带并发闸与流式空闲超时。
- 运维基础 Operations:
/live、/health、/api/ready、/metrics(Prometheus)、Pino JSON 日志、OpenAPI / Swagger UI、优雅停机与排水。 - 程序化 CLI:
./bazi把算法调用与仓库运维收敛成一套命令,全部支持--json和约定退出码,方便脚本与 AI Agent 调用。
盘怎么排由引擎负责,且必须精准:三传、安星、排局、游年,这些有唯一正确答案, 错了就是错了。盘怎么解不由引擎负责:紫微的庙旺利陷、奇门的格局名目(青龙返首、 飞鸟跌穴)、神煞的吉凶轻重,各家取法与成立条件出入极大,塞进能力层只会让调用方 继承一套说不清出处的判断。
所以引擎把断语所需的原料给全,且给到关系一级:不只是每宫的星门神干,还有它们之间的 生克与门迫;不只是每爻的六亲六神,还有动爻对他爻的作用。分界不是「凡带吉凶字样一律不给」, 而是看那句话是谁说的 —— 客观关系(门迫=宫克门)与通书条目(黄历的宜忌)照给, 吉凶评价与分歧命名(格局名目、庙旺利陷)不给。
有流派分歧的排盘口径(藏干权重、闰月归属、定局用拆补法、天盘用转盘法、八神取白虎玄武、
入墓按五行墓库)一律登记在 backend/constants/rulings.js —— 那是机器可读的
唯一真源:service 从那里读数值,每个排盘响应回带一个 school 字段说明本次用的是哪一派,
rulings_lock 测试把 key 与数值钉死。换派只改那一处(外加实现里读它的那一行)。
前置要求只有 Node.js 20+ 和 npm。不需要 Docker,不需要数据库,不需要 Redis。
关于环境变量:后端进程本身不引入 dotenv,node server.js 只读取真实环境变量。用 ./bazi 启动时,CLI 会读取仓库根的 .env 并注入子进程(真实 process.env 优先级更高)。手动启动或生产部署时,需要由 shell、进程管理器或部署平台注入。
git clone https://github.com/tytsxai/metaphysics-engine.git
cd metaphysics-engine
./bazi setup # 装依赖 + 生成 .env
./bazi doctor # 体检环境,每项失败都带可执行的修复命令
./bazi stack up # 起引擎
./bazi test # 跑测试(cli + lint + backend + engine)所有命令都支持 --json,退出码有明确约定,方便脚本和 agent 调用。
完整能力清单:./bazi help --json——这是唯一真源,本文档刻意不重复命令列表。
git clone https://github.com/tytsxai/metaphysics-engine.git
cd metaphysics-engine
npm install
npm -C backend install
NODE_ENV=development npm -C backend run dev # http://127.0.0.1:4000常用检查:
curl http://127.0.0.1:4000/live
curl http://127.0.0.1:4000/health
curl http://127.0.0.1:4000/api/ready
curl http://127.0.0.1:4000/api/ai/providers八字排盘:
curl -X POST http://127.0.0.1:4000/api/bazi/calculate \
-H "Content-Type: application/json" \
-d '{
"birthYear": 1990,
"birthMonth": 5,
"birthDay": 20,
"birthHour": 14,
"gender": "male",
"birthLocation": "Beijing",
"timezone": "Asia/Shanghai"
}'塔罗抽牌:
curl -X POST http://127.0.0.1:4000/api/tarot/draw \
-H "Content-Type: application/json" \
-d '{ "spreadType": "ThreeCard" }'用 CLI 调同样的能力(引擎要先起着):
./bazi calc bazi --birth 1990-05-20T14:30 --gender male --json
./bazi calc liuyao --lines 111111 --changing 1 --date 2024-05-20 --json
./bazi calc liuren --date 2024-05-20 --hour 14 --json
./bazi calc qimen --date 2024-05-20 --hour 14 --json
./bazi calc bazhai --birth 1990 --gender male --json
./bazi calc daily --birth 1990-05-20T14:30 --gender male --json
./bazi cast tarot --spread ThreeCard --json起课类命令(liuren / qimen / liuyao / almanac)不给 --date 就取引擎当日,
那一次调用不可复现,文本输出会标注出来。要可复现就把日期时辰给全。
每条命令的可复现性都是声明出来的,./bazi help <命令> --json 的 reproducibility
字段可查(daily 没有日期参数,恒不可复现;cast iching --numbers 反而是确定性的)。
更多接口见 docs/api.md。启动后也可以访问:
- Swagger UI:
http://127.0.0.1:4000/api-docs - OpenAPI JSON:
http://127.0.0.1:4000/api-docs.json
给智能体接入有两条路,工具定义同源,不存在第二份手写清单。
要一个能直接挂上去的 MCP server,用 ./bazi mcp(stdio):
{ "command": "./bazi", "args": ["mcp"] }默认暴露 14 个算法能力工具,全部只读;运维命令要 --scope ops|all 显式放进来。
每次工具调用都真的去跑一次 CLI,所以参数校验、破坏性操作的安全闸、退出码语义全部
原样继承,退出码则翻译成 isError 并把 hint / next 交给模型。引擎要先起着。
要一份定义自己装载,用 ./bazi schema(纯本地生成,不需要引擎在跑):
./bazi schema --format openai > tools.json--json 模式还会附一份 catalog,说明每个参数拼成 argv 的哪一部分,并给出每条工具的
副作用等级(read-only / local-write / destructive,MCP 格式下同时是
readOnlyHint / destructiveHint)与可复现性 —— 前者是做权限判断的依据,
后者决定这条工具的结果能不能拿去做缓存或回归基准。要走 HTTP 而不是 CLI,
用 docs/openapi.json;所有业务接口都无需鉴权。
所有业务接口都是公开的,无需鉴权——项目没有账号系统。唯一带鉴权的是运维面。 完整参数与响应见 docs/api.md,机器可读契约见 docs/openapi.json。
| 能力 | HTTP 接口 | 对应 CLI |
|---|---|---|
| 八字排盘 BaZi | POST /api/bazi/calculate |
./bazi calc bazi |
| 八字 AI 解读 | POST /api/bazi/ai-interpret · POST /api/bazi/full-analysis |
— |
| 紫微斗数 Zi Wei | POST /api/ziwei/calculate |
./bazi calc ziwei |
| 六爻纳甲 Liu Yao | POST /api/liuyao/chart |
./bazi calc liuyao |
| 大六壬 Da Liu Ren | POST /api/liuren/chart |
./bazi calc liuren |
| 奇门遁甲 Qi Men | POST /api/qimen/chart |
./bazi calc qimen |
| 八宅风水 Ba Zhai | POST /api/fengshui/bazhai |
./bazi calc bazhai |
| 择吉黄历 Almanac | GET /api/fengshui/almanac |
./bazi calc almanac |
| 姓名五格 Name grids | POST /api/fengshui/name |
./bazi calc name |
| 合盘 Synastry | POST /api/synastry/analyze |
./bazi calc synastry |
| 塔罗 Tarot | POST /api/tarot/draw · GET /api/tarot/cards · POST /api/tarot/ai-interpret |
./bazi cast tarot |
| 周易起卦 I Ching | POST /api/iching/divine · GET /api/iching/hexagrams · POST /api/iching/ai-interpret |
./bazi cast iching |
| 星座 Zodiac | GET /api/zodiac/{sign} · GET /api/zodiac/{sign}/horoscope · GET /api/zodiac/compatibility |
./bazi calc zodiac |
| 上升星座 Ascendant | POST /api/zodiac/rising |
./bazi calc rising |
| 流日 Daily | GET /api/calendar/daily |
./bazi calc daily |
| 真太阳时地点表 | GET /api/locations |
— |
| AI Provider 状态 | GET /api/ai/providers |
— |
| 健康 / 就绪 / 缓存 | GET /live · GET /health · GET /api/ready · GET /api/system/cache-status |
./bazi stack status |
| 接口文档(生产带 Basic Auth) | GET /api-docs · GET /api-docs.json |
— |
| 指标(Bearer token) | GET /metrics |
— |
- 给已有产品(Web、小程序、App)接一套命理/占星计算后端,界面完全自己实现。
- 作为智能体的专业计算工具:让模型去调真实的排盘算法,而不是自己编排盘结果。
- 参考一个无状态计算服务如何组织接口契约、健康检查、优雅停机和可观测性。
- 研究各家术数算法里的流派选择与边界条件(节气交接、晚子时、闰月、真太阳时、中气换将、拆补定局)。
- Runtime: Node.js 20+, Express 4
- State: 无。引擎是纯计算,不持有任何跨请求状态
- Cache: Redis 可选,仅用于多实例共享八字排盘缓存
- AI Providers: mock, OpenAI, Anthropic
- Interfaces: REST + OpenAPI / Swagger UI,以及
./bazi程序化 CLI - Testing: Node.js test runner,不依赖任何外部服务
- Observability: JSON request logs (Pino), request ID, health/readiness endpoints, Prometheus
/metrics, optional Sentry
本地开发参考 .env.example,生产部署参考 env.production.template。./bazi setup 会基于模板生成 .env,./bazi env 可以查看、校验和改键。
开发环境一个变量都不必填,全部有默认值。生产环境的关键配置:
DOCS_PASSWORD: 唯一的硬性必填项。缺了它进程在生产模式下启动即退出(/api-docs没法保护)CORS_ALLOWED_ORIGINS: 允许跨域的调用方来源。服务端到服务端、Agent 调用不带 Origin 头,不受影响BACKEND_BASE_URL: OpenAPI 文档里的 base URLTRUST_PROXY: 有反向代理时设置成跳数(一层 nginx 就填1)。填true表示信任所有代理,此时X-Forwarded-For完全由客户端控制,限流可被一个请求头绕过REDIS_URL: 可选。只影响多实例之间的排盘缓存共享,不影响结果正确性OPENAI_API_KEY/ANTHROPIC_API_KEY: 可选;未配置时AI_PROVIDER=mockMETRICS_TOKEN:/metrics的 Bearer token;留空时该端点在生产环境返回 404SHUTDOWN_DRAIN_MS: 排水窗口,要按你的负载均衡探测节奏设置(模板里有对照表)SENTRY_DSN: 可选错误与性能监控
都不是。它是一个自部署的计算服务:算法逻辑在 backend/services/,HTTP 入口是 POST /api/bazi/calculate,也可以用 ./bazi calc bazi 调用。它不作为 npm 包发布,也不含界面。
前端不是这个项目的卖点。它的价值在能力层——算法正确性、语义边界、接口契约和可运维性。界面形态因产品而异(Web、小程序、App、纯 agent 调用),塞一套参考实现进来只会模糊边界。要做界面,直接照 docs/api.md 和 docs/openapi.json 调即可。
同一个理由。注册、登录、OAuth、密码重置、历史记录、收藏这些能力和命理算法没有任何关系,任何一个真实产品都会用自己那一套。留着它们意味着这个项目要为一堆自己不擅长、调用方也不会用的能力承担安全和维护责任。删掉之后,整个存储层、会话层和它们带来的备份/迁移/一致性问题一起消失了。
可以。排盘、抽牌、起卦这些确定性计算完全不依赖 AI。未配置 OPENAI_API_KEY 或 ANTHROPIC_API_KEY 时,解读接口落到 mock provider。
不需要。引擎不存任何数据。Redis 也是可选的,且只是缓存。
可以。无状态意味着扩容就是多起几个进程,部署可以随时整体销毁重建。生产需要配置的是 HTTPS 反向代理、DOCS_PASSWORD、CORS_ALLOWED_ORIGINS、TRUST_PROXY,以及可选的 Redis、AI 密钥、Sentry 和 METRICS_TOKEN。上线前请读 PRODUCTION.md。
一个都不需要——项目没有账号系统。唯一带鉴权的是 /api-docs(Basic Auth)和 /metrics(Bearer token),它们是运维面。
MIT License,见 LICENSE。
本仓库与公开的 Web 全栈社区版 tytsxai/bazi-master
(冻结在 v0.2.0,提交 9d9fe52)是两条互不同步的代码库,不要把两边的改动搬来搬去。
部署时命理/占星内容的合规声明、免责声明和平台审核责任仍由部署者自行承担,详见限制与免责声明。
./bazi 会记录引擎进程的状态,手动 node server.js 起的进程它管不到、之后也停不掉。CLI 还负责生成 .env、检查端口与依赖就绪状态,并在失败时给出可直接执行的修复命令。全部命令见 ./bazi help --json。
metaphysics-engine/
├── backend/ # Express API
│ ├── routes/ # /api/bazi, /api/ziwei, /api/tarot, /api/iching, ...
│ ├── services/ # 算法与业务逻辑:calculation, ziwei, tarot, iching, ai, ...
│ ├── middleware/ # CORS, rate limit, validation, docs auth, error handling
│ ├── constants/ data/ # 干支、星曜、塔罗牌库、六十四卦
│ ├── scripts/ # start.mjs(容器入口)、generate-openapi.js
│ └── test/ # backend Node.js tests
├── tools/cli/ # ./bazi 程序化 CLI(calc/cast + setup/doctor/env/stack/test)
├── docs/ # 文档体系入口见 docs/README.md
├── scripts/ # CI 守卫与部署验证脚本
├── bazi # CLI entry point
├── docker-compose.yml # 本地可选 Redis(引擎本身不需要)
├── docker-compose.prod.yml # 生产参考栈:引擎 + 可选 Redis + autoheal
└── PRODUCTION.md # 生产部署细节(总览见 docs/deployment.md)
./bazi test # 全部目标:cli + lint + backend + engine
./bazi test backend # 只跑后端
./bazi test --fail-on-skip --json # CI 用:有目标被跳过就退 3
npm -C backend test # 后端测试
npm run test:cli # CLI 自身的契约测试
npm run test:engine # 能力契约验证(要引擎在跑)前三个目标不需要任何外部服务——没有数据库要准备,没有容器要起。这是无状态设计换来的直接好处。
engine 是唯一的例外:它拿真实引擎验证导出的工具 schema 里声明的可复现性确实成立
(声明 deterministic 的命令连调两次必须一字不差),引擎没起时记 skipped。
bazi test的目标未就绪时会记skipped并照样返回 0。读summary.skipped,别只看退出码。
- 引擎无状态:多实例部署不需要粘性会话,也不需要任何协调。
- 容器栈默认只把端口发布到宿主的
127.0.0.1:4000(BACKEND_BIND_ADDR),TLS 终结和公网入口交给你自己的反向代理。注意它和BIND_HOST(Node 进程在容器内 listen 的地址,生产默认0.0.0.0)不是一回事,改错哪个都会把引擎直接晾到公网上。 - 生产启动前会校验配置:
DOCS_PASSWORD缺失会阻止启动,其余缺失只打 warning。 /metrics需要METRICS_TOKEN,且不要经公网反代暴露。- 优雅停机带排水窗口:
SHUTDOWN_DRAIN_MS必须按你的负载均衡探测节奏设置,并小于编排层的 stop grace period。 - 发布前请阅读 PRODUCTION.md。
这个项目最难的部分不是写代码,是**「写错了也不会报错」**:三传取法、安星链条、拆补定局、 节气交接的时刻精度——错了不抛异常,只会安静地给出一张错盘。所以改算法之前先分清两种情况, 处理方式完全不同:算错了(三传漏宗门、纳甲干支排错)是 bug,直接修并补测试; 流派不同(闰月归本月 vs 折半、晚子时换不换日)不是 bug,就地注明口径、必要时做成参数, 但不改默认。
加一个新能力要动哪几处、本地质量门槛、提交信息规范、以及哪些改动因为边界原因不做, 全部写在 CONTRIBUTING.md。已选定的流派口径逐条写在 .claude/skills/bazi-cli/SKILL.md,改算法前先读那一份。
- 本项目是参考实现,不提供托管服务、不保证占卜或命理准确性。
- 八字、紫微、塔罗、周易和星座输出适合娱乐、文化研究、产品原型与代码学习,不应作为专业建议。
- 算法涉及流派选择(晚子时不换日、闰月归本月、藏干权重与旺衰阈值、真太阳时默认参与排盘),与你预期的流派可能不同——这些边界在 .claude/skills/bazi-cli/SKILL.md 里逐条写明,代码里也就地标注了选定口径。
- AI 解读依赖外部模型质量、密钥、速率限制和提示词;mock provider 仅用于开发和演示。
- 反向代理、域名、证书和平台合规需要部署者自行配置与验证。
中文:Metaphysics Engine、术数算法能力层、八字排盘 API、紫微斗数开源、六爻纳甲引擎、大六壬、奇门遁甲 API、八宅风水、择吉、姓名五格、塔罗 API、周易起卦、合盘、无状态命理引擎、AI Agent 排盘工具、自部署玄学 API。
English: Metaphysics Engine, Chinese metaphysics API, BaZi calculation API, Zi Wei Dou Shu API, Liu Yao CLI, Da Liu Ren calculator, Qi Men Dun Jia API, Ba Zhai feng shui, Tarot API, I Ching, Synastry, agent-callable divination CLI, stateless fortune-telling backend, OpenAPI metaphysics.
GitHub About 建议:Stateless Chinese metaphysics calculation engine — BaZi, Zi Wei, Liu Yao, Da Liu Ren, Qi Men, Ba Zhai, Tarot, I Ching — HTTP API + agent CLI.
Topics 建议:metaphysics-engine bazi ziwei liuyao daliuren qimen bazhai tarot iching divination chinese-metaphysics openapi agent-callable-cli self-hosted nodejs
AI 检索摘要:llms.txt。
地图与同步约定:docs/README.md。
- docs/architecture.md: 架构
- docs/modules.md: 关键模块与核心逻辑
- docs/deployment.md: 本地 / 容器 / 服务器部署
- docs/configuration.md: 配置
- docs/operations.md: 运维与排错
- docs/development.md: 本地开发
- docs/api.md: HTTP API 导览
- docs/faq.md: 常见问题
- llms.txt: AI / 答案引擎可读项目摘要
- .claude/skills/bazi-cli/SKILL.md: 算法语义边界与 CLI 用法
- CONTRIBUTING.md: 开发约定、质量门槛与算法改动判据
- PRODUCTION.md: 生产部署细节
- CHANGELOG.md: 版本变更记录
MIT License。见 LICENSE。与 tytsxai/bazi-master 互不同步,不要搬代码。