# Astronomia Natal Chart

> 使用 astronomia 进行西洋占星本命盘排盘的技能。用于“帮我排星盘/本命盘”“计算上升点和宫位”“按出生时间地点计算行星落座与相位”等请求；关键词包括：星盘、占星、本命盘、natal chart、ascendant、宫位、行星相位、astronomia。

- Skill: `cantian-ai/astronomia-natal-chart` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add cantian-ai/astronomia-natal-chart`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cantian-ai/astronomia-natal-chart/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cantian-ai (https://skillmd.com/u/cantian-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cantian-ai/astronomia-natal-chart

---


# astronomia 本命星盘排盘

## 何时使用 / When to Use

- 用户要根据出生时间和出生地坐标生成西洋占星本命盘。
- 用户要计算上升点（ASC）、中天（MC）、宫位分布。
- 用户要查看行星黄经、落座（星座）与主要相位。
- 用户明确提到 `astronomia`，希望用可执行脚本完成排盘。

## 前置依赖 / Prerequisites

- 推荐运行环境：Node 24（可直接运行 TypeScript 源码）。
- 兼容方案：若 Node 版本较低，使用 `tsx` 执行。
- 执行目录：在 skill 根目录（`SKILL.md` 所在目录）执行以下命令。
- 脚本按 TypeScript 源码直接运行，不需要预编译。

```bash
npm i

# 仅在需要兼容运行时安装
npm i -D tsx
```

## 脚本清单 / Script Index

- `scripts/buildNatalChart.ts`：根据出生时间与经纬度生成本命盘（ASC/MC、整宫制宫位、行星位置、主要相位）。

## 脚本与参数 / Scripts & Parameters

### `scripts/buildNatalChart.ts`

```bash
# 推荐方式
node scripts/buildNatalChart.ts --datetime <ISO8601-with-timezone> --lat <latitude> --lon <longitude> [--orb <deg>] [--format <markdown|json>]

# 兼容方式（fallback）
tsx scripts/buildNatalChart.ts --datetime <ISO8601-with-timezone> --lat <latitude> --lon <longitude> [--orb <deg>] [--format <markdown|json>]
```

参数定义 / Parameters:

- `--datetime`（必填 / required）
  - 格式：必须包含时区的 ISO 8601，例如 `1990-05-15T14:30:00+08:00` 或 `1990-05-15T06:30:00Z`
  - 默认值：无
  - 非法输入：缺失时报错 `--datetime is required.`；无时区时报错并退出
- `--lat`（必填 / required）
  - 格式：十进制度数
  - 取值范围：`-90..90`
  - 默认值：无
  - 非法输入：超范围或非数字时报错并退出
- `--lon`（必填 / required）
  - 格式：十进制度数（东经为正，西经为负）
  - 取值范围：`-180..180`
  - 默认值：无
  - 非法输入：超范围或非数字时报错并退出
- `--orb`（可选 / optional）
  - 含义：相位容许度（度）
  - 取值范围：`0..12`
  - 默认值：`6`
  - 非法输入：超范围或非数字时报错并退出
- `--format`（可选 / optional）
  - 取值范围：`markdown`、`json`
  - 默认值：`markdown`
  - 非法输入：非法枚举时报错并退出

输出说明 / Output:

- `markdown`：输出可读排盘报告（ASC/MC、宫位、行星位置、主要相位）。
- `json`：输出结构化结果，适合二次处理。

## 示例 / Examples

```bash
# 最小可用示例（北京坐标）
node scripts/buildNatalChart.ts \
  --datetime 1990-05-15T14:30:00+08:00 \
  --lat 39.9042 \
  --lon 116.4074
```

```bash
# 指定输出 JSON 与更小容许度
node scripts/buildNatalChart.ts \
  --datetime 1990-05-15T14:30:00+08:00 \
  --lat 39.9042 \
  --lon 116.4074 \
  --orb 4 \
  --format json
```

## 注意事项 / Notes

1. 所有命令必须在本 skill 根目录执行，不依赖仓库根目录路径。
2. 时间参数必须带时区；不带时区会导致排盘结果偏差或脚本拒绝执行。
3. 当前宫位制固定为 `Whole Sign`（整宫制）；若要 Placidus/Koch 需扩展算法。
4. 当前输出天体包含：太阳、月亮、水星、金星、火星、木星、土星、天王星、海王星。
5. 本脚本负责排盘计算，不包含占星解释文案生成。

