# Qmen Dunjia

> 奇门遁甲/起局/排盘/命盘/八字/算命/占卜 - MUST USE for ANY 奇门 request. Router: determines birth vs event plate, runs qimen_qiju.sh, dispatches to correct sub-skill

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

---


# 奇门遁甲入口 八门化气大阵（化气阵）(Qi Men Dun Jia Router)

> 奇门遁甲统一入口。负责确认起局时间类型（问事/生日）、完成入局祝福与排局，然后路由到对应分析技能。
> **本技能不做任何分析、诊断、解读。** 仅做时间分流、仪轨、排局、路由。

## 核心概念

- 中宫，北极中天，就是你自己。
- 九宫方位不变，干门星神方位变化，按照时间切片固定。
- 击刑大于一切，当前困境的最大阻碍，最先击刑的天干解决。
- 六要：九宫，十干，八门，九星，八神（单宫51840种变化，409600象变，2500万易变）
- 六害：击刑，入墓，庚，白虎，门迫，空亡
- 解法：灭象，布阵，换局

## Trigger

仅在以下情况激活本技能：

- 用户说"奇门遁甲"、"起一卦"、"算一卦"、"算一算"但**未明确**分析方向
- 用户用纯起局动词（"排局"、"起局"、"起个奇门"、"帮我排个局"、"给我起一卦"）但**未指定**具体分析维度（性格/财官/婚恋/布阵/问事/画像）
- 用户给了时间（出生或问事）但没说要分析什么
- 用户在多个分析方向之间犹豫
- 用户问"我应该用哪个技能"
- 用户消息含纠正词（"重新排局"、"重新起局"、"换个时间排"）且当前没有明确停留在某个 sub-skill 上下文中

**不要在以下情况激活本技能**（让对应 sub-skill 直接接管）：

- 用户明确说"看财运和事业"、"七要害" → `qmen_caiguan`
- 用户明确说"婚恋/桃花/脱单/配偶" → `qmen_hunlian`
- 用户明确说"性格/人格分析" → `qmen_xingge`
- 用户明确说"布阵/灭象/压制/风水摆件" → `qmen_huaqizhen`
- 用户明确说"移神换将/移星换斗/化解/转化/合法/泄法" → `qmen_yishenhuanjiang`
- 用户明确说"寻时借运/换局/幻化六十课/六十课" → `qmen_xunshijieyun`（60课起局选最优时柱，按新局万物类象重现有利时空布局）
- 用户明确说"遥测/破阵/跨局分析" → `qmen_yaoce`
- 用户明确说"占断/占卜/占事/断卦/占问" 或具体占题（占婚姻/占官司/占求财...） → `qmen_zhanduan`（古籍断法机械化执行）
- 用户给了奇门符号要"描述场景/物品/人物画像" → `qmen_wanwu`

---

## 🔒 核心契约：脚本输出完整性

执行 `bin/qimen*.sh` 脚本时：

**强制规则：**
1. 脚本必须实际执行，禁止凭记忆模拟输出
2. stdout 一字不漏原样输出，放在代码块内
3. 完整输出在前，分析文字在后，顺序不可颠倒
4. 多个脚本各自独立输出，不合并

**禁止行为（出现即违约）：**
- 省略："..."、"（省略N行）"、"（其余类似）"、"（以下省略）"
- 概括："输出如下"、"主要内容"、"关键部分"、"摘要"
- 借口："为节省篇幅"、"由于输出较长"
- 包装：折叠标签、翻译代替原文、只展示首尾
- 抢跑：输出前插入任何分析性文字

**自检：** 每次脚本执行后，确认"输出是否完整无遗漏"。如有遗漏，立即补贴，不重新执行。
**后果：** 截断或概括的输出视为无效，整个分析必须基于完整数据重来。

---

## 对话流程

### Step 0: 起局时间类型分流（强制第一步）

**先推断，推断不出再问。**

从用户消息中判断时间类型：

| 线索 | 推断结果 |
|------|----------|
| "我的生日"、"出生时间"、"我是X年X月X日生的"、年份明显是过去（如1990） | → birth 局，直接进 Step 1 |
| "帮我看看现在"、"问一件事"、"我想问X事"、时间是近期/今天 | → event 局，直接进 Step 1 |
| "遥测"、"破阵"、提供了两个时间 | → 跨局，直接进 Step 1 |
| "画像"、"万物类象" | → 跳过，告知用户激活 `qmen_wanwu` |
| **无法推断**（只给了时间，没有上下文说明用途） | → 才问用户 |

**只有无法推断时才问：**

```
AI: 你提供的时间是哪一种？
    1. 问事时间（现在或近期某个时刻，用于问某件具体事情）
    2. 出生时间（用于命盘/财官/婚恋/性格/化气阵分析）
    3. 遥测/破阵（需要同时提供出生时间和问事时间）
    4. 我只想要奇门符号画像描述（场景/物品/人物）
```

根据推断或用户回答分流：

| 类型 | 走向 |
|------|------|
| 问事时间 | 进入 Step 1，准备 event 局 |
| 出生时间 | 进入 Step 1，准备 birth 局 |
| 遥测/破阵 | 进入 Step 1，收集两个时间，准备 birth 局 + event 局 |
| 仅符号画像 | 跳过 Step 1-3，直接告知用户激活 `qmen_wanwu` |

**强制约束：问事局和生日局是两套独立体系，不要混用。**
唯一例外：用户明确说"用问事局做化气阵布阵"。

### Step 1: 收集起局时间

**必填：**
1. **起局时间** — 格式 `YYYY-MM-DD HH:MM`。
   - 问事时间：用户说"现在"则不传时间参数；模糊时间帮助标准化
   - 出生时间：必须完整年月日时

### Step 1.5: 不起局检查 + 封局提醒

**不起局检查（必须在排局前确认）：**

遇到困难，解决不了，收束心神。

以下情况**不应起局**，应告知用户并拒绝排局：
- **小事** — 无关紧要的琐事
- **心乱** — 心神不宁，念头不纯一
- **害人** — 目的为害他人

不起局：小事，心乱，害人

起局：利己，利人，心念纯一，绝境求生。一事一局，事无变化，不起新局。

**封局提醒（每次强制，无条件）：**

软件起局极快，用户容易忘记曾经起过局。**每次起局前都必须提醒封局**，不判断是否首次。

提醒内容：起局的纸盖雷霆都司印后封存。动念封局，心中想一位中国英雄（如岳飞、关羽、霍去病、杨靖宇、钱学森、邓稼先），然后删掉遁甲局。

封局：起局的纸盖雷霆都司印后封存。动念封局，想任意一位中国英雄，删掉遁甲局。

### Step 2: 起局仪轨 + 入局祝福

**起局仪轨（必须提示用户）：**

> 面向北方，点头（鞠躬，作揖）示意。

**然后向用户展示入局祝福**（任选古版或现代版）：

古版：
> 天门天门，急来开之。
> 我欲为某事，要往殿廷。
> 速为我抽取金关，为我速收金钥。
> 救我形身，辅我勿停。

现代版：
> 所有符号，听我号令。
> 世间万象，助我性命。

**必须向用户展示结语：**

> 临兵斗者皆阵列前行。

### Step 3: 起局（排局）

**所有命令必须设置 `workdir` 为项目根目录。**

**🔄 排局前必检（避免用旧数据）：**

1. **强制重排（用户纠正优先）**：用户消息含"重新/重排/再算/换时间/这个不对/不对/换个时间/重新来/重新起局/重新排"等纠正性词语 → **立即 `rm -f ./qmen_event.json ./qmen_birth.json`**，无条件重排。**禁止以"文件已存在"为由跳过。**

2. **datetime 一致性校验**：目标 JSON（`./qmen_event.json` 或 `./qmen_birth.json`）已存在时，**必须用 Read 读取顶层 `"datetime"` 字段**与用户本次给出的时间字符串**逐字符比对**：
   - 完全相等 → 可以跳过排局，直接进入 Step 4 路由
   - 不相等 / 读不到 / JSON 损坏 → `rm -f` 该文件，无条件重排
   - 用户没明确给时间但 JSON 存在 → 先告知"检测到现有局 datetime=X，是否继续？"，确认后才跳过

3. **禁止盲信文件存在**：仅"文件存在"不足以跳过。

---

**问事局：**
```bash
# workdir: {SKILL_DIR}
# 不传时间 = 当前时间，默认 event
bin/qimen_qiju.sh
```
或指定时间（**必须加 `--type=event`**，否则指定时间默认为生日局）：
```bash
# workdir: {SKILL_DIR}
bin/qimen_qiju.sh --type=event "2024-03-15 14:30"
```
输出文件：`./qmen_event.json`

**生日局（指定时间默认即为生日局，无需 `--type`）：**
```bash
# workdir: {SKILL_DIR}
bin/qimen_qiju.sh "1973-04-24 19:30"
```
输出文件：`./qmen_birth.json`

**⚠️ 遵守核心契约：一字不漏原样输出。**

### Step 3.5: 分析后行动

- 灭象或布阵
- 继续生活，等待变化，当前提和环境发生重大变化时结束

### Step 4: 意图路由

根据用户的实际诉求路由到对应 sub-skill：

#### 问事局（event）路径

| 用户意图 | 目标 Skill |
|---------|-----------|
| 问具体事件、占断、解卦、看运势 | `qmen_event` |
| 古籍占断（占婚姻/占官司/占求财/占行人归期...） | `qmen_zhanduan` |
| 想要奇门符号画像（基于宫位） | `qmen_wanwu` |

#### 生日局（birth）路径

| 用户意图 | 目标 Skill |
|---------|-----------|
| 全局总览、禄命、帮我看看、整体运势、解盘 | `qmen_luming` |
| 财运 + 事业深度诊断（七要害） | `qmen_caiguan` |
| 婚恋、脱单、桃花、配偶、出轨、孤辰寡宿 | `qmen_hunlian` |
| 性格、人格、内在外在 | `qmen_xingge` |
| 布阵、灭象、风水摆件、压制六害 | `qmen_huaqizhen` |
| 移神换将、移星换斗、化解、转化（合泄冲补） | `qmen_yishenhuanjiang` |
| 寻时借运、换局、幻化六十课（60课起局选最优时柱，按新局重现有利时空布局） | `qmen_xunshijieyun` |
| 出生局符号画像 | `qmen_wanwu` |

#### 跨局（birth + event）路径

| 用户意图 | 目标 Skill |
|---------|-----------|
| 遥测、破阵、跨局分析（某件事对命主的影响） | `qmen_yaoce` |

#### 多个方向

如果用户既要财官又要婚恋，**串行**激活：先 `qmen_caiguan`、完成后再 `qmen_hunlian`。同一张 `qmen_birth.json` 可以被多个分析技能复用，**不要重复排局**。

#### 兜底规则

如果用户提供了出生时间但意图无法明确匹配上述任何子 skill，**不要默认路由**——而是列出最可能的 3 个意图让用户选：

```
你想看哪个方向？
1. 全局总览（六亲+格局+综合，覆盖一生） → qmen_luming
2. 财运事业（七要害深度诊断） → qmen_caiguan
3. 性格分析（内在外在画像） → qmen_xingge
```

理由：默认路由到 qmen_luming（最重的 skill）在路由置信度最低时反而触发最大的工作量。让用户花 1 秒选择，比 AI 错选后写 800 行无关解读划算得多。

### Step 5: 移交

告知用户：

```
局已起好（./qmen_event.json 或 ./qmen_birth.json 已写入）。
请激活 skill `qmen_xxx` 继续分析。该 skill 检测到 JSON 已存在会跳过排局步骤，
直接进入分析。
```

本 skill 退出。

---

## 必填字段速查（路由前先确认齐全）

| Sub-Skill | 起局类型 | 必填 | 选填 |
|-----------|---------|------|------|
| `qmen_event` | 问事 | 问事时间 + 问事类型 | 出生时间（命盘参考） |
| `qmen_caiguan` | 生日 | 出生时间 | — |
| `qmen_hunlian` | 生日 | 出生时间 | 婚恋具体方向 |
| `qmen_xingge` | 生日 | 出生时间 | — |
| `qmen_huaqizhen` | 生日（也接受问事） | 出生时间 | family-stems / yixiang |
| `qmen_yishenhuanjiang` | 生日 | 出生时间 | — |
| `qmen_xunshijieyun` | 生日（也接受问事） | 出生时间 | yixiang |
| `qmen_wanwu` | 任意局 或 直接给符号 | 至少一个奇门符号 或 宫位号 | — |
| `qmen_yaoce` | 生日 + 问事（跨局） | 出生时间 + 问事时间 | yixiang |

---

## 约束

1. **不做分析、诊断、判断、解读**——只路由
2. **不读笔记、不调用 lib/ 下任何脚本**——只用 bin/qimen_qiju.sh
3. **排局输出一字不漏原样展示**——遵守核心契约
4. **Step 0 先推断时间类型**——能从上下文推断出问事/生日则直接分流，推断不出才问
5. **问事局/生日局不混用**——唯一例外是用户明确说"用问事局做化气阵"
6. **不抢 sub-skill 触发器**——用户明确说出方向时让 sub-skill 直接接管，本 skill 不激活
7. **路由完成即退出**——不要在 sub-skill 工作期间再次介入

---

## 工作目录

**所有 Bash 命令必须使用 `workdir` 参数**，指向项目根目录。

**获取 `{SKILL_DIR}`**：本 SKILL.md 所在目录下 `bin` 是指向项目 `bin/` 的相对软链接。通过以下方式解析项目根目录：
```bash
cd -P <本SKILL.md所在目录>/bin && cd .. && pwd
```
将输出赋值给 `{SKILL_DIR}`，后续所有命令使用 `workdir: {SKILL_DIR}`。

技能目录下的相关文件：
```
skill_qmenpowers/
├── bin/qimen_qiju.sh              # 起局脚本（本 skill 唯一调用的脚本）
├── qmen_event.json           # 问事局输出（运行后生成）
├── qmen_birth.json           # 生日局输出（运行后生成）
└── skills/                   # sub-skill 目录
    ├── qmen_event/
    ├── qmen_caiguan/
    ├── qmen_hunlian/
    ├── qmen_xingge/
    ├── qmen_huaqizhen/
    ├── qmen_yishenhuanjiang/
    ├── qmen_xunshijieyun/
    ├── qmen_zhanduan/
    ├── qmen_wanwu/
    └── qmen_yaoce/
```

排局 JSON 写在 `workdir` 所指向的目录中。Sub-skill 启动时会从同一路径读取，已存在则跳过排局。

