# dsh-fate-spectrum

> 每个人都希望活成自己命盘最好的样子。

`dsh-fate-spectrum` 想做的，是陪命主把命盘重新放回真实人生：看见自己的禀赋与节律，理解人生正在经过怎样的阶段，也看清那些更容易发生的高概率应象。

命理不该替你决定人生。它更像一张不断被现实校准的地图——迷茫时，帮你找到事情为什么会发生；走到关键路口时，陪你寻找更适合自己的解法；顺的时候知道顺从何来，逆的时候也能看见问题究竟卡在哪里。

未来，在命主明确授权后，记忆系统还可以记住这些真实发生过的因与果，让每一次对话都比上一次更懂你，一点点修正属于自己的 `fate trajectory`。

## fate-spectrum 的长期规划

### 当前能力

- **四柱八字排盘**：得到四柱、藏干、十神、纳音、旬空、十二长生、起运与大运等基础命盘事实。
- **紫微斗数排盘**：得到十二宫、命身宫、命主身主、五行局、星曜亮度、四化与大限等基础命盘事实。
- **双盘同看**：没有指定体系时，同时排出八字与紫微；也可以只看其中一套。
- **保留时间的不确定性**：出生时辰未知，或恰好落在换日边界附近时，不会偷偷补成一个确定时间。不同候选盘会带着各自适用的时段交给 Agent，让能确定的先确定，不能确定的按条件分别理解。
- **缺什么就问什么**：出生日期、性别、时辰状态或时区不足时，DSH 会先补问；不会为了尽快得到一张盘而猜测关键信息。

### 未来展望

- **干支历与周期上下文**：把“下周”“下下周”“今年某一段时间”转换成明确日期范围、节气、流年、流月与逐日干支，让周期分析不再依赖临时搜索和手工查历。
- **真太阳时校准**：结合出生地点、时区、经度与均时差，给出可追溯的实际排盘时间；校准跨过日期或换日边界时，明确告诉命主命盘发生了什么变化。
- **周报与分析 Skills**：沉淀周报分析流程，把原局、运限和具体时间范围组织成 Agent 可调用的分析步骤。
- **案例、格局与经验 Knowledge**：为 Agent 提供经过整理的佐证资料，支持格局分析和相似案例对照。
- **心智世界模型 Memory**：在命主授权后，记录真实世界的因与果，实例化干支作用象意，并支持记忆的获取与更新。
- **命盘 A2UI**：用受控的命盘视觉交互规则、组件、资产和变量，把全局命盘、局部干支作用与按需分析融入 Agent 人机交互；大运与流年的长期走势图、一年内的运势曲线、关键周期切换和候选盘差异，都可以成为 Agent 按意图调用的可交互视觉组件。

这些能力最终会连成同一件事：命盘负责提供坐标，现实负责给出反馈，Agent 帮助命主在一次次选择中，更清醒地走向适合自己的位置。

## 安装

### 从 npm 安装

已经安装 DSH 的情况下，把 `dsh-fate-spectrum` 加入日常使用的 Profile：

```bash
dsh plugin --profile web add dsh-fate-spectrum@0.1.0
dsh --profile web --dump-config
dsh web
```

`--dump-config` 中出现 `dsh-fate-spectrum` 和 `fate-spectrum`，说明 Bundle 已经进入当前 Profile。以后正常打开 DSH，就可以直接在对话里提出排盘或命理分析需求。

升级到最新兼容版本：

```bash
dsh plugin --profile web up dsh-fate-spectrum
```

### 从本地安装

下载或自行打包得到 `.tgz` 后，可以不经过 npm 注册表，直接安装同一份预构建 Bundle：

```bash
dsh plugin --profile web add ./dsh-fate-spectrum-0.1.0.tgz
dsh --profile web --dump-config
```

本地开发和 `--patch` 调试方式见 [DSH 本地测试 SOP](https://github.com/EchoUser005/dsh-fate-spectrum/blob/main/docs/develop/dsh-local-test-sop.md)。

## 使用指南

直接告诉 DSH 想看什么就可以。只说“帮我排盘”，Agent 会补问排盘真正缺少的信息；没有指定八字或紫微时，默认同时计算两套命盘。

如果只记得大概时间，也可以如实说“接近晚上十一点，但不确定具体分钟”或者“时辰不知道”。插件会保留可能成立的候选盘，Agent 可以先分析共同事实，再解释不同时间条件下哪些结论会改变，不必为了得到一张完整命盘硬猜时辰。

当前最适合从原局、起运、大运、十二宫和大限开始理解自己的命盘。周运、月运和指定日期范围的连续分析，后续会由独立的干支历能力补齐时间上下文。

## 版本更新

### 最新版本

#### v0.1.0

先把命盘事实算清楚，为之后所有分析打下一张可信的底图：

- 支持四柱八字、紫微斗数，或默认同时排出两套命盘。
- 支持通行安星法与中州派，并明确记录采用的流派与闰月规则。
- 出生时辰未知或落在换日边界附近时，返回带适用时段的候选盘，不擅自填成一个确定时间。
- 信息不足时先补问；一套系统遇到可安全识别的问题时，另一套已经算出的可信结果仍会保留。

### 变更记录

- `v0.1.0`：加入四柱八字、紫微斗数、双盘计算与未知时辰候选，建立命盘计算的第一版基础能力。

## 核心技术

- **时间与历法边界**：明确公历、农历、时区、闰月、早晚子时和换日规则；任何会改变命盘的约定都随结果一起保留。
- **八字计算引擎**：分别计算四柱、藏干与十神、纳音、旬空、十二长生、起运和大运，不让模型自行补算干支事实。
- **紫微计算引擎**：独立计算命身宫、十二宫、命主身主、五行局、星曜亮度、四化和大限；八字与紫微共享一次排盘任务，但不共享计算实现。
- **候选盘**：未知时辰不是错误，也不是 `00:00`。八字保留真正会改变原局和大运的候选，紫微保留早子至晚子十三个时辰槽，并标出每种情况成立的时间范围。
- **Tool 分层**：程序使用可校验的工程 response，Agent 接收为推理整理过的 Observation。排盘事实、失败原因和下一步行动彼此分开，未来的 A2UI 也可以消费同一套稳定命盘数据。

## 隐私与边界

- 八字与紫微命盘在插件内离线计算，不依赖第三方排盘网站，也不会把出生信息发送给外部排盘服务。
- 出生信息会进入当前 DSH 对话与 Tool 调用；是否保留会话记录，取决于命主自己的 DSH Profile 与 Session 设置。插件本身不另建用户数据库、命盘缓存或出生信息日志。
- 只有经过命主明确授权的信息，才可以进入未来的个性化记忆。
- 命理提供的是观察、参照与可能性，不是对人生的宣判。
- 医疗、法律、金融和心理等高风险问题，仍应寻求相应专业人士的帮助。

## 开源许可

`dsh-fate-spectrum` 采用 [MIT License](LICENSE) 开源。你可以在许可证允许的范围内使用、修改与分发本项目。
