# Qmen Wanwu

> 万物类象/象意/取象/类象/意象 - Generate imagery portraits: scene/object/person descriptions from stem+star+gate+deity combinations

- Skill: `skyfiredao/qmen-wanwu` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add skyfiredao/qmen-wanwu`
- Raw SKILL.md: https://api.skillmd.com/api/skills/skyfiredao/qmen-wanwu/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-wanwu

---


# 万物类象画像描述 (Wanwu Imagery Portrait)

> 基于奇门遁甲符号（天干、九星、八门、八神、十二长生）的万物类象数据，生成场景、物品或人物的画像式描述。
> **本技能是独立的创意描述工具**，与性格分析（qmen_xingge）、问事局（qmen_event）等分析类技能不冲突。

## Trigger

仅当用户**明确**要求基于奇门符号的画像/类象描述时激活本技能：
- "描述一个场景"、"画一个画面"、"想象一个场景"
- "描述一个物品"、"这是什么东西"、"这个组合像什么物品"
- "描述一个人"、"这个人什么样"、"画像"
- 用户指定了奇门符号组合并要求描述、联想、画面化
- "万物类象描述"、"取象描述"

**不要在以下情况激活本技能**：
- 用户问"这件事会怎样"等占断问题 → `qmen_event`
- 用户要做性格/婚恋/财官分析 → 对应 sub-skill
- 用户只说"奇门遁甲"未明确要做画像描述 → 使用 `qmen_dunjia` 路由 skill
- 用户用纯起局动词（"排局"、"起局"、"起一卦"、"算一卦"、"起局"）→ **必须**让位给 `qmen_dunjia` 路由 skill

---

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

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

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

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

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

---

## 🔒 万物类象数据约束（不可越过）

所有万物类象（天干、九星、八门、八神的类象描述）**只能来自**以下两个数据源：
1. **本地数据文件** `data/wanwu_*.dat` 中的实际字段值
2. **脚本输出 JSON** 中 `wanwu` 字段的内容

**严禁**：
- 编造数据文件中不存在的类象内容
- 将某个天干/星/门/神的类象张冠李戴到另一个上
- 为了"符合现实情况"而凭空建立干门星神与具体事物的关联
- 使用"根据XXX推测"、"可以联想为"等话术绕过数据约束

**验证方法**：如果你要说"X代表Y"，必须能在 `data/wanwu_*.dat` 或 JSON `wanwu` 字段中找到这条对应关系。找不到就不说。

---

## 描述模式

三种模式，由用户自然语言触发：

| 模式 | 触发示例 | 描述重点 |
|------|---------|---------|
| 场景 | "描述一个场景"、"画一个画面" | 环境、氛围、光线、声音、空间感 |
| 物品 | "描述一个物品"、"像什么东西" | 形状、颜色、材质、大小、质感、性质、功能 |
| 人物 | "描述一个人"、"这人什么样" | 外貌、体型、穿着、气质、性格、行为举止 |

如果用户没有明确指定模式，询问用户想要哪种描述。

---

## 输入方式

两种输入方式，互斥：

### 方式A: 局面模式

用户已有排局JSON，指定宫位号。

```bash
# workdir: {SKILL_DIR}
bin/qimen_wanwu.sh --palace=N --input=./qmen_birth.json
```

如果用户没有指定输入文件，默认使用 `./qmen_birth.json`。如果文件不存在，提示用户先起局。

### 方式B: 手工模式

用户直接给出符号，至少一个即可，缺的不参与描述。

```bash
# workdir: {SKILL_DIR}
bin/qimen_wanwu.sh --stem=丙 --star=天冲 --gate=伤门 --deity=九天 --state=帝旺
```

参数全部可选，至少提供一个。

---

## 执行流程

### Step 1: 确认输入

1. 确认输入方式（局面/手工）和符号
2. 确认描述模式（场景/物品/人物）
3. 如果用户一句话说清楚了，不需要额外确认，直接执行

### Step 2: 调用工具

执行 `qimen_wanwu.sh`，获取万物类象数据。脚本默认写入 `./qmen_wanwu.json`。

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

### Step 3: 读取 JSON 数据

**必须先完成 Step 2 的脚本执行**，然后用 Read 工具读取 `./qmen_wanwu.json`，逐字段确认每个符号的万物类象数据。

```
Read: {SKILL_DIR}/qmen_wanwu.json
```

**强制约束：生成描述前，必须先读取 `qmen_wanwu.json` 并逐字段确认所有 wanwu 数据。禁止凭记忆或推测生成描述，所有描述元素必须来自 JSON 中的实际字段值。**

### Step 4: 生成描述

根据 JSON 中读取到的万物类象数据，按选定模式生成画像描述。

#### 核心规则（基于 JSON 数据）

1. **每个符号在一次描述中只映射一个维度，不重复使用**
   - 例如：天干映射颜色，九星映射形状，八门映射行为，八神映射气质
   - 具体哪个符号映射哪个维度，由AI根据万物类象数据灵活分配，选最贴切的
2. **十二长生参与但优先级最低**，用于修饰整体状态/氛围/生命阶段
3. **所有描述元素必须来自 `data/wanwu_*.dat` 或 JSON `wanwu` 字段的实际数据**，严禁编造不存在的类象
4. **描述必须符合基本逻辑关系**，元素之间自然衔接

#### 场景模式输出

一段完整的场景描述（200-400字），包含：
- 环境/空间（来自某个符号的场所环境/地理类象）
- 氛围/光线/色彩（来自某个符号的颜色/天象类象）
- 声音/动态（来自某个符号的事件行为类象）
- 人或物的存在感（来自某个符号的人物/器物类象）
- 整体状态（来自十二长生）

#### 物品模式输出

一段物品描述（150-300字），包含：
- 形状/大小（来自某个符号的形态类象）
- 颜色/色泽（来自某个符号的颜色类象）
- 材质/质感（来自某个符号的器物/概念类象）
- 性质/功能/给人的感觉（来自某个符号的概念/性格类象）
- 状态/新旧/完好程度（来自十二长生）

#### 人物模式输出

一段人物描述（200-400字），包含：
- 外貌/体型（来自某个符号的形态/体形类象）
- 肤色/面部特征（来自某个符号的颜色/身体类象）
- 穿着/气质（来自某个符号的概念/性格品质类象）
- 性格特点（来自某个符号的性格品质类象）
- 行为举止/动作习惯（来自某个符号的事件行为类象）
- 整体生命状态（来自十二长生）

#### 输出结尾：符号-维度对照表

每次描述后，附上对照表，说明每个符号贡献了哪个元素：

```
丙 → 颜色(红/明亮)
天冲 → 体型(高大壮硕)
伤门 → 行为(急躁果断)
九天 → 气质(高远飘逸)
帝旺 → 整体状态(鼎盛期)
```

---

## 迭代修改

用户可以在描述生成后要求调整，支持以下方向：

| 调整类型 | 示例 | 处理方式 |
|---------|------|---------|
| 风格调整 | "更正面一点"、"更日常" | 从同一符号的万物类象中选取更正面/日常的对应项 |
| 领域聚焦 | "针对职场"、"换成江湖风" | 优先选取该领域相关的万物类象条目 |
| 环境变换 | "换成古代"、"现代都市" | 从场所环境/器物中选取时代匹配的条目 |
| 细节调整 | "让这个人更年轻"、"物品再大一点" | 调整对应维度的取象选择 |

**调整始终在 `data/wanwu_*.dat` 数据范围内**，不脱离原始数据编造新内容。如果数据文件中没有合适的替代项，告知用户当前符号组合的局限。

---

## 注意事项

1. 本技能是纯画像描述，不做吉凶判断、不做运势分析
2. 不需要祝福语、封局等仪轨流程
3. 如果用户想从描述转入分析（如"这个人运势怎么样"），引导到对应的分析技能（qmen_event/qmen_caiguan等）
4. 手工模式下只输入一个符号也可以工作，描述维度会相应减少

---

## 工作目录

**所有 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              # 起局脚本
├── bin/qimen_wanwu.sh        # 万物类象提取脚本
├── qmen_birth.json           # 命盘输出（运行后生成，局面模式输入）
├── qmen_wanwu.json           # 万物类象输出（运行后生成，AI必须读取此文件）
├── lib/                      # 引擎库（不需要直接调用）
└── data/                     # 数据文件（不需要直接调用）
```

