# Qimen Dunjia

> 奇门遁甲断卦 Skill

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

---


# 奇门遁甲断卦 Skill

## 工作流

### 1. 获取输入

需要两个信息：
- **时间**：默认当前北京时间。用户可指定。格式 `YYYY MM DD HH`（24小时制）
- **问题**：用户想测什么事（"一物一太极"，聚焦一件事）

如果用户没给时间，用当前北京时间（澳洲 AEST -2 小时）：
```bash
python3 -c "from datetime import datetime, timedelta; t=datetime.utcnow()+timedelta(hours=8); print(t.strftime('%Y %m %d %H'))"
```

### 2. 排盘 + 自检（含失败处理）

排盘、自检、创建 trace 一步完成，144 项检查：

```bash
cd ~/Projects/qimen-engine && python3 -c "
import qimen, json, verify, trace

r = qimen.paipan(YEAR, MONTH, DAY, HOUR)
ok, errs, warns, checks = verify.verify_one(YEAR, MONTH, DAY, HOUR)

# 创建 trace 日志
tid = trace.create_trace('YEAR-MONTH-DAY HOUR:00', 'USER_QUESTION', r)
trace.log_verify(tid, ok, [str(e) for e in errs], checks)
print(f'trace_id: {tid}')

if not ok:
    print('❌ 排盘自检失败:')
    for e in errs: print(f'  {e}')
else:
    print(f'✅ 自检通过 ({checks}项)')
    qimen.print_pan(r)
    print()
    print(json.dumps(r, ensure_ascii=False, indent=2))
" 2>&1
```

**记住 trace_id**，后续每步都要用。

**自检失败 → 定位 → 修复 → 重验：**

1. **定位根因**：verify.py 的错误标签告诉你哪步出问题，按以下决策树修：

| 错误步骤 | 可能根因 | 修复动作 |
|----------|---------|---------|
| 四柱 | sxtwl 库版本/输入范围 | 检查年份是否在 sxtwl 支持范围(1900-2100) |
| 定局（节气） | 节气边界时刻判断 | 用 `getJieQiJD()` 打印精确交节时间，对比输入时间 |
| 定局（元/局数） | 拆补法符头计算 | 手动算日柱甲子序号 → 往前找甲/己日 → 查地支分类 |
| 地盘 | dipan_18ju.json 数据 | 查对应局的 JSON 条目是否完整 |
| 天盘偏移不一致 | rotate_tianpan 逻辑 | 打印 shi_gong、orig_gong、offset，看哪颗星偏移异常 |
| 人盘偏移不一致 | rotate_renpan 逻辑 | 打印 xun_gong、steps、ordered 路径，看哪步走偏 |
| 神盘顺序 | layout_shenpan 的阴阳遁方向 | 检查 dun 参数传入是否正确 |
| 伏吟反吟 | detect_all 计算逻辑 | 独立重算天盘干==地盘干，对比 |
| 值符落宫 | 甲遁+5宫处理 | 检查 shi_gan==甲时 shi_gong 是否做了5→2 |

2. **修复后重跑**：改完 qimen.py → `python3 verify.py YEAR MONTH DAY HOUR` 单盘验证 → 通过再继续
3. **如果是数据文件错误**（JSON表有误）：修 JSON → `python3 verify.py 200` 批量回归
4. **实在改不了的引擎 bug**：明确告诉用户"排盘引擎在此时间点有已知问题"，不输出不确定的结果

### 3. 加载断卦知识库

断卦前必须加载 **4个知识库JSON**。**所有解读必须查表，不靠模型记忆。**

| 文件 | 内容 | 用途 |
|------|------|------|
| `duanjua_knowledge.json` | 用神表、五行生克、横看关系、应期规则 | 基础判断框架 |
| `geju_xiangyi.json` | 30种具名格局 + 十干/八门/九星/八神**象意**（人物/事物/场景） | 格局识别 + 断具体事象 |
| `jiugong_xiangyi.json` | 九宫象意（坎坤震巽中乾兑艮离的人物/身体/场所/断事要点） | 落宫断事 |
| `sanqi_xiangyi.json` | 三奇(乙丙丁)象意 + 升殿/入墓 + 27格 + 分事项断事速查 | 三奇专项 |

```bash
cd ~/Projects/qimen-engine && python3 -c "
import json
for f in ['duanjua_knowledge','geju_xiangyi','jiugong_xiangyi','sanqi_xiangyi']:
    with open(f'data/{f}.json') as fh: d = json.load(fh)
    print(f'✅ {f}: {len(json.dumps(d, ensure_ascii=False))} chars')
"
```

**八门/九星/八神的吉凶和象意统一从 `geju_xiangyi.json` 查表**，不使用内联文本（避免两处数据不一致）。

### 4. 九步断卦SOP

**逐步执行，每步从盘面JSON+知识库JSON提取数据，给出解读。**

**核心原则**：
- **判吉凶**：第零步~第六步 + 第五步**层1-5** + 第七步阶段A
- **断事象**：第五步**层6-7** + 第七步阶段B
- 先定吉凶，再充实事象。不可颠倒。

**R规则说明**：本SOP中引用的 R01-R21 规则，定义在 `duanjua_knowledge.json` 的 `断卦规则` 字段中。

---

#### 第零步：信息采集与盘外梳理

1. 复述用户问题，确认理解
2. 梳理涉及哪些人、哪些方面
3. 确定"一物一太极"——本次聚焦什么

---

#### 第一步：确定用神

根据事项类型查用神对照表（`duanjua_knowledge.json` + `sanqi_xiangyi.json` 断事速查）：

| 事项 | 主用神 | 辅助用神 | 三奇速查 |
|------|--------|---------|---------|
| 自身/求测人 | 日干 | 年命 | — |
| 所测之事 | 时干 | — | — |
| 工作/事业 | 开门 | 值符星 | 开门宫得三奇=工作好/事业转机 |
| 财运/求财 | 生门、戊 | 天辅 | 生门得三奇=财运旺（"生门产业，要得三奇"） |
| 婚姻/感情 | 乙（女方）庚（男方） | 六合 | 丙=男第三者，丁=女第三者 |
| 官司/诉讼 | 值符（原告）天乙（被告） | 开门（法官）惊门 | — |
| 疾病/健康 | 天芮 | 死门、天英 | 乙奇=药物/中医，乙奇空亡=药无效 |
| 考试/学业 | 天辅、杜门 | 丁 | — |
| 出行 | 值符+丁 | 马星 | 三奇+三吉门+吉神同宫=最佳时机 |
| 失物 | 值符 | 六合(偷窃)、玄武(暗盗) | — |
| 天气 | 天蓬+坎一 | 天英+离九 | — |

在盘面上标出用神落宫位置。

---

#### 第二步：看盘外格局（R02一票否决检查）

从排盘JSON的 `四柱` 和 `检测.全局` 提取：

1. **一票否决检查**（R02，最高优先级）：
   - **硬否决**：五不遇时 / 六仪击刑 / 三奇入墓 → 遇之皆凶，无论其他因素多吉
   - **近否决**：天网四张 / 全局伏吟 / 全局反吟 → 极凶但有化解可能
   - 注意：单层伏吟/反吟仅为重大负面，不构成近否决

   **天网四张**：天盘庚加临地盘值符(甲/戊)所在之宫，庚金罩甲=天网覆盖。主谋事受阻、出行不顺。属近否决（非硬否决），有天显时格可化解。⚠️ 多流派对具体条件有分歧，以 `duanjua_knowledge.json` 中定义为准。

2. **五不遇时**：`检测.全局.五不遇时` → 若 True，触发硬否决
3. **三奇入墓检查**：查 `sanqi_xiangyi.json` → 乙墓在坤二宫(未)，丙墓在乾六宫(戌)，丁墓在艮八宫(丑)。天盘三奇落入对应墓宫=触发硬否决。⚠️ 乙奇入墓有流派分歧(部分说乾六宫/戌)，以 JSON 定义为准
4. **日干与时干关系**：`四柱.日干` vs `四柱.时干` 五行生克
5. **四柱地支关系**：年支/月支/日支/时支之间的冲合刑害（简要分析）

---

#### 第三步：看大环境（R05旺衰+R13大局+R11内外盘）

1. **月令旺衰**（R05，此步=记录状态，第七步=用它做终极裁判）：`检测.全局.旺衰` → 哪行旺/相/休/囚/死
   - 旺衰是所有吉凶判断的前提：落宫=能力（长期），月令=天时（临时）
   - 旺相+得令=最佳；衰弱+失令=最差
2. **伏吟反吟**（R13首重大局）：`检测.全局.星伏吟/星反吟/门伏吟/门反吟`
   - 伏吟 → 宜静不宜动，事慢，守为上，利主不利客
   - 反吟 → 事有反复，主变动，利客方
   - 在横看/主客场景下，伏吟反吟优先级最高
3. **内外盘**（R11）：`检测.全局.内盘/外盘` + 日干/时干落宫判断远近快慢
   - 内盘=近+快，外盘=远+慢（7源一致）
   - 内外盘与伏吟反吟是**两个独立维度**，不存在映射
   - 日时干一内一外时，按"远+慢"处理（只有两个都在内盘才算快）

---

#### 第四步：看值符值使（R08分场景优先级+R18值使裁决+R20二分法）

从 `值符值使` 提取：

1. **值符星**（`值符值使.值符星`）→ 大方向、大势、长远
2. **值使门**（`值符值使.值使门`）→ 具体执行、事情最终结果（R18裁决成败第一要素）
3. **核心用二分法**（R20）：值符=初始走向；值使=最终结局
4. **分场景优先级**（R08）：当下成败→先看值使；长远发展→先看值符；小事→直接看用神
5. 检查值使门是否受迫/制（R04门宫关系）、是否空亡
6. 符使生克关系：符生使+使生用=必成；符克使+使克用=极难成

---

#### 第五步：竖看用神落宫（7层分析）

对每个用神落宫，按以下7层**依次分析**。

**分析顺序**（从上到下逐层看）和**判断权重**（决定吉凶冲突时谁说了算）是两回事：

> **分析顺序**：1→2→3→4→5→6→7，逐层看完
> **判断权重**：门 > 格局 > 星 > 神（吉凶冲突时，高权重层覆盖低权重层）
> **三奇定位**：三奇(层7)是加分/减分项，不独立参与权重排序。有三奇=锦上添花/雪中送炭，无三奇不扣分

| 层 | 看什么 | 数据来源 | 分析内容 |
|----|--------|---------|---------|
| **1. 天地盘干** | 天盘干 vs 地盘干 | `盘面[宫].天干` + `盘面[宫].地盘` | 主客关系 + 查81格十干克应(`检测.宫[g].格局`) + **若命中具名格局则标注**（查`geju_xiangyi.json`吉格/九遁/凶格，如"青龙返首""大格"等） |
| **2. 八门** | 门 + 门宫关系 | `盘面[宫].八门` + `检测.宫[g].门迫/宫制` | 门吉凶（查`geju_xiangyi.json`八门象意）+ R04五种关系(迫/制/和/义/比和) + R06(凶门旺相→更凶) |
| **3. 九星** | 星 + 月令旺衰 | `盘面[宫].九星` + `检测.全局.旺衰` | 星吉凶（查`geju_xiangyi.json`九星象意）+ R06(凶星旺相→主流减凶，有分歧) |
| **4. 八神** | 神吉凶 | `盘面[宫].八神` | 查`geju_xiangyi.json`八神象意 |
| **5. 四害** | 空亡/入墓/击刑/门迫 | `检测.宫[g]` | R03优先级: 空亡>入墓>击刑>门迫。击刑/门迫→残余50%；入墓/空亡→残余20% |
| **6. 九宫象意** | 落宫代表什么 | `jiugong_xiangyi.json` → 该宫的"断事要点" | 断"是什么事/涉及什么人/在什么场所"。例：用神落坎一宫→事有险阻/暗中进行/与水相关 |
| **7. 三奇专项** | 是否有乙/丙/丁 | `sanqi_xiangyi.json` | 若落宫天盘有三奇：(a)查象意 (b)升殿检查(乙→震/丙→离/丁→兑=大吉) (c)入墓检查(乙→坤/丙→乾/丁→艮=硬否决) (d)**R19三奇得使**：天盘三奇临地盘值使门所在宫→临吉门大吉/临凶门小吉 (e)玉女守门：值使门临地盘丁奇宫→利婚恋经商 |

**门宫关系口诀**（R04）："吉门被克吉不就，凶门被克凶不起；凶门得生祸难避"

**空亡特殊处理**（R07）：翻先天宫追查，区分旺空(有力量只是暂时不显)vs衰空(真的没有)

**旬首落宫地支关系**（R16）：查R16对照表。力量排序（R17）：刑>冲>害>合

---

#### 第六步：横看用神间生克（R09落宫五行+R12日干中心+R13首重大局+R14主客排序）

**横看前先检查大局**（R13）：伏吟/反吟状态优先级最高，可覆盖宫间生克判断

核心对比（R09以落宫五行为主，竖看才看天干本身五行）：

1. 日干宫 vs 时干宫 → 求测人 vs 所测事（R12日干为中心）
2. 日干宫 vs 用神宫 → 求测人 vs 事项
3. 相关用神宫之间 → 各方势力对比

| 关系 | 含义 |
|------|------|
| 他生我 | 我得力，吉 |
| 我生他 | 我泄气，付出多 |
| 他克我 | 我受制，凶 |
| 我克他 | 我辛苦但可得 |
| 比和 | 势均力敌，事快 |

**主客判断**（R14层级）：大局(伏吟/反吟) > 门天地盘生克 > 奇仪天地盘生克 > 八神 > 时辰
- 伏吟有反转机制：事已进行中时含义可反转
- 地支关系力量（R17）：刑>冲>害>合

---

#### 第七步：综合判断（吉凶定性 + 事象充实）

分两阶段输出：

**阶段A：吉凶定性**（好不好、成不成）

1. **先检硬否决**：R02硬否决格局 → 直接定凶，无需计数
2. 汇总第二~六步的吉凶因素，列表：

| 来源 | 吉因素 | 凶因素 |
|------|--------|--------|
| 值符值使(第四步) | ... | ... |
| 用神落宫·门(第五步层2) | ... | ... |
| 用神落宫·格局(第五步层1) | ... | ... |
| 用神落宫·星(第五步层3) | ... | ... |
| 用神落宫·神(第五步层4) | ... | ... |
| 四害(第五步层5) | — | ... |
| 横看生克(第六步) | ... | ... |

3. **旺衰终极裁判**（R05）：即使吉因素多，用神休囚衰弱=力不从心；凶因素多但用神休囚=凶也逞不了
4. 吉多则吉，凶多则凶（R21注意：传统无定量体系，判断基于定性而非量化评分）
5. **给出明确吉凶结论**

**阶段B：事象充实**（具体是什么事、涉及什么人、在什么场景）

整合以下信息，将吉凶结论具体化为可操作的描述：

| 信息源 | 怎么用 |
|--------|--------|
| 九宫象意(第五步层6) | "事涉什么场景/什么人" |
| 三奇分析(第五步层7) | "有无贵人/转机/第三者" |
| 具名格局(第五步层1) | "盘中出现XX格局=传统上意味着..." |
| 十干象意(`geju_xiangyi.json`) | "天盘X干代表什么物/什么人" |
| 八门象意(`geju_xiangyi.json`) | "此门代表什么行业/什么场景" |

6. **回到用户原始问题，直接回答**（一句话结论 + 具体描述 + 建议）

---

#### 第八步：定应期（R10三步法+R11内外盘）

**R10应期三步法**（编者整合，各部分有据）：

1. **定大范围**：按事项类型（测年→月，测月→日，测日→时辰）
2. **定快慢**（R11）：
   - 内外盘：内盘=近+快，外盘=远+慢（日时干一内一外按"远+慢"）
   - 伏吟=近+慢，反吟=远+快（独立维度，不与内外盘映射）
3. **定数值**：值使门落宫数

**优先级检查**（从高到低）：
1. 空亡 → 冲空/填空之时
2. 马星 → 冲马星之时
3. 墓库 → 冲墓之时
4. 长生旺衰 → 生逢生日，克逢克日
5. 值使门所临地支 → 对应时间

---

### 5. 输出格式

```markdown
## 奇门遁甲断卦

**时间**：YYYY-MM-DD HH:00（北京时间）
**问题**：用户问题
**局象**：阳/阴遁X局 | 节气 | 值符X星 值使X门

### 盘面
[print_pan 输出]

### 断卦

**第零步·盘外梳理**
问题聚焦：...
涉及方面：...

**第一步·用神**
主用神：X干/X门，落X宫
辅用神：...

**第二步·盘外格局**
一票否决：[通过/触发XX]
日时关系：...

**第三步·大环境**
旺衰：X行当令...
伏吟反吟：[有/无]
内外盘：日干X宫(内/外) 时干X宫(内/外) → 快/慢

**第四步·值符值使**
值符星X → 落X宫 → 大势判断...
值使门X → 落X宫 → 成败判断...

**第五步·竖看用神落宫**

[用神1] 落X宫：
| 层 | 内容 | 吉凶 |
|----|------|------|
| 天地盘 | X加X = [格局名] | 吉/凶 |
| 八门 | X门 + [门宫关系] | 吉/凶 |
| 九星 | X星 + [旺衰] | 吉/凶 |
| 八神 | X神 | 吉/凶 |
| 四害 | [有/无] | — |
| 宫象 | X宫 = [断事要点] | — |
| 三奇 | [有X奇/无] | — |

[用神2如有，同上格式]

**第六步·横看**
日干宫X vs 时干宫X → [生克关系] → ...
日干宫X vs 用神宫X → [生克关系] → ...

**第七步·综合判断**

吉凶汇总：吉X项 / 凶X项
旺衰裁判：用神X行[旺/相/休/囚/死]
**吉凶结论**：[明确判断]

事象描述：
- 九宫象意：落X宫 → [具体事象]
- 三奇/格局：[如有]
- 综合画面：[用2-3句话描述具体会发生什么]

**第八步·应期**
内外盘=[快/慢] | 值使门落X宫 = X数
应期推断：...

### 结论
[一句话直接回答用户问题]
[具体描述 + 建议]
[应期]
```

### 6. 独立复核（Anthropic GAN 模式）— 强制执行

**这步不可跳过。** 无论 context 多紧张，evaluator 必须执行。没有 evaluator 报告的断卦 = 未完成。

断卦结论输出后，**必须**派 `qimen-evaluator` agent 独立复核：

```
Agent(subagent_type="qimen-evaluator", prompt="
你是奇门断卦复核员。读 ~/.claude/agents/qimen-evaluator.md 获取复核流程。
读 ~/Projects/qimen-engine/output.json 获取排盘数据。
读以下4个知识库JSON：
- ~/Projects/qimen-engine/data/duanjua_knowledge.json
- ~/Projects/qimen-engine/data/geju_xiangyi.json
- ~/Projects/qimen-engine/data/jiugong_xiangyi.json
- ~/Projects/qimen-engine/data/sanqi_xiangyi.json

断卦结论如下：
[粘贴断卦结论]

请按复核流程逐项核实，输出复核报告。
")
```

**复核结果写入 trace：**

```bash
cd ~/Projects/qimen-engine && python3 -c "
import trace
trace.log_evaluator('TRACE_ID', '通过/有疑点/有矛盾', ['问题1', '问题2'], ['修正1'])
"
```

**如果你想跳过 evaluator，你必须：**
1. 明确告诉用户"本次未经独立复核，结论可靠性降低"
2. 在 trace 中记录 `evaluator.result = null`（analyze_traces.py 会统计跳过率并告警）

**复核发现问题 → 定位 → 修正 → 重验：**

| evaluator 发现 | 根因 | 修正方式 |
|----------------|------|---------|
| 用神落宫标错 | 断卦agent看错了盘面JSON | 重新从JSON提取，用宫号而非记忆 |
| 格局名称不对 | 没查geju_xiangyi.json或查错key | 重新用 `天盘干+地盘干` 查吉格/凶格条目 |
| 八神/八门吉凶判反 | 没查geju_xiangyi.json或查错 | 重新查八门象意/八神象意对应条目 |
| 横看生克方向反 | 五行关系搞反 | 重新用落宫五行查 `duanjua_knowledge.json` 五行生克表 |
| 四害遗漏 | 没看完所有用神宫的检测项 | 遍历所有用神宫的 `检测.宫[g]` 全部字段 |
| 吉凶计数与结论矛盾 | 数错了或主观偏向 | 重新列表统计，严格按数量判吉凶 |
| 九宫象意/三奇分析缺失 | 跳过了第五步层6-7 | 补充查表分析 |

修正后不再二次复核（避免死循环），但修正内容需标明"经复核修正"让 Boss 知道改了什么。

**如果 evaluator 和断卦 agent 对某个解读有分歧且双方都有道理**：两种解读都呈现给 Boss，标注各自依据，不替 Boss 做判断。

### 7. 收集用户反馈

断卦结束后询问 Boss 对结论的看法（一句话即可），写入 trace：

```bash
cd ~/Projects/qimen-engine && python3 -c "
import trace
trace.log_feedback('TRACE_ID', 'Boss的反馈内容')
"
```

Boss 不想反馈就跳过，trace 里记 null。

### 8. 自动记录 Obsidian

断卦完成后，自动追加到 Obsidian 日记：

```bash
# 日期格式：YYYY.M.DD（月不带前导零，日带前导零）
# 文件：/Users/huni/Documents/Obsidian Vault/每日ai/YYYY.M.DD.md
# 追加到 ## 今日产出 section
```

记录格式：
```markdown
> [!log] 奇门断卦 · 问题简述
> - 时间：YYYY-MM-DD HH:00 | 阳/阴遁X局 节气
> - 结论：一句话结论
> → [[奇门遁甲]]
```

## 注意事项

- 断卦需要用户提供问题背景，如果信息不足主动追问
- "一物一太极"：一次只聚焦一个问题
- 术数有不确定性，措辞用"盘象显示…""从盘面看…"而非绝对断言
- 断卦是引导思考的工具，最终决策在用户

## 防 Context Anxiety

断卦是长输出任务。**不要因为感觉 context 快满就赶工跳步。** 规则：
- 每步输出完整再进下一步，宁可少分析一个用神也不跳过四害检查
- 如果 context 确实紧张，优先保证：第五步竖看 + 第七步综合 + 结论。可以压缩第零步到第四步
- 绝不跳过 verify 自检和 evaluator 复核

