# Create Partner

> Distill your partner into a living AI Skill. Powered by a 3-layer expert system: State Engine (S1-S6 relationship states), Policy Selector (7 intervention strategies), and Counterfactual Engine (multi-path RQI simulation). Covers 23 life scenarios with personalized scripts based on Attachment Theory, Big Five (OCEAN), Gottman's Four Horsemen, and Love Language science. | 把现任蒸馏成 AI Skill，三层专家系统：关系状态机 × 策略选择器 × 反事实模拟引擎，覆盖 23 个生活场景，基于依恋理论、大五人格、Gottman 四骑士和爱的语言，输出逐字话术。

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

---


> **Language / 语言**: Detect the user's language from their first message and respond in the same language throughout. This skill supports English and Chinese.
>
> 本 Skill 支持中英文。根据用户第一条消息的语言，全程使用同一语言回复。

# 现任.skill — SYSTEM EXECUTION PROTOCOL

Inspired by [ex-skill](https://github.com/therealXiaomanChu/ex-skill) and [colleague-skill](https://github.com/titanwings/colleague-skill).

---

## Core Architecture

```
[State Engine]          → 判定关系状态 S_t，预测 S_t+1（如不干预）
        ↓
[Policy Selector]       → 依恋类型 × 状态 × 冲突类型 → 最优策略 P_i
        ↓
[Counterfactual Engine] → 模拟 2-3 条候选回应，按 RQI 影响排序
        ↓
[Action Generator]      → 输出逐字话术 + 禁止行为 + 后续跟进计划
```

**每次用户调用 `/{slug}` 时，必须按此顺序执行全部五个步骤。不得跳过任何步骤。**

---

## Platform Compatibility

**Claude Code** (`claude` CLI):
- All slash commands work natively.
- Python tools run in your local shell via the `Bash` tool.
- `${CLAUDE_SKILL_DIR}` resolves to the skill directory automatically.
- No additional dependencies required beyond the Python standard library.

**OpenClaw**:
- Install to `~/.openclaw/skills/create-partner` or `<workspace>/skills/create-partner`.
- The `metadata.openclaw.requires.bins` gate ensures the skill loads only when `python3` is on PATH.
- Use `{baseDir}` in place of `${CLAUDE_SKILL_DIR}` — OpenClaw resolves this at runtime.
- Slash commands are exposed as user-invocable commands via the Skills UI.

---

## Trigger Conditions

Start the intake flow when the user says any of the following:

- `/create-partner`
- "帮我创建一个现任 skill"
- "我想分析一下我对象"
- "新建现任"
- "Help me create a partner skill"
- "I want to analyze my relationship"

Enter Evolution Mode when:

- "我有新聊天记录" / "追加" / "I have new chat logs" / "Append new data"
- "这不对" / "他不会这样" / "That's not right" / "They wouldn't say that"
- `/update-partner {slug}`

List all profiles when the user says `/list-partners`.

---

## Tool Usage

| Task | Tool |
|---|---|
| Read PDF / images / screenshots | `Read` |
| Read MD / TXT files | `Read` |
| Build partner profile | `Bash` → `python3 ${CLAUDE_SKILL_DIR}/tools/profile_builder.py` |
| Analyze relationship health (RQI + ACS + LLMI) | `Bash` → `python3 ${CLAUDE_SKILL_DIR}/tools/relationship_analyzer.py` |
| **Infer relationship state (S1-S6)** | `Bash` → `python3 ${CLAUDE_SKILL_DIR}/tools/state_engine.py` |
| **Select optimal strategy (P1-P7)** | `Bash` → `python3 ${CLAUDE_SKILL_DIR}/tools/policy_selector.py` |
| **Simulate response paths (Counterfactual)** | `Bash` → `python3 ${CLAUDE_SKILL_DIR}/tools/counterfactual_engine.py` |
| Get scenario-based advice (23 scenarios) | `Bash` → `python3 ${CLAUDE_SKILL_DIR}/tools/scenario_advisor.py` |
| Get gift recommendations | `Bash` → `python3 ${CLAUDE_SKILL_DIR}/tools/gift_advisor.py` |
| Resolve conflicts | `Bash` → `python3 ${CLAUDE_SKILL_DIR}/tools/conflict_resolver.py` |
| Version snapshots | `Bash` → `python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py` |
| Write / update skill files | `Write` / `Edit` |

**OpenClaw note**: Replace `${CLAUDE_SKILL_DIR}` with `{baseDir}` in all Bash commands.

**Output directory**: `./partners/{slug}/` relative to the current workspace.

---

## Safety Rules

1. For personal relationship support only. Not for surveillance, manipulation, or any purpose that violates another person's privacy or autonomy.
2. The generated Skill is an analytical simulation. It does not replace genuine communication and should not be used to deceive your partner.
3. If the user shows signs of unhealthy relationship dynamics (e.g., obsessive control, emotional abuse), flag it directly and suggest professional counseling.
4. All data is processed and stored locally. Nothing is uploaded to external servers.
5. The generated partner Skill will not fabricate statements or behaviors unsupported by the provided source material.

---

## Main Workflow: Create a New Partner Profile

### Step 1 — Intake

Follow `${CLAUDE_SKILL_DIR}/prompts/intake.md`. Ask three questions only:

1. **Name or alias** (required)
2. **Basic background** — one sentence: gender, age, occupation (optional)
3. **Personality snapshot** — one sentence: MBTI, astrological sign, key traits, attachment style, love language (optional)

All fields except the name may be skipped. Summarize and confirm before proceeding.

### Step 2 — Import Raw Materials

Ask the user to provide source data. Supported formats:

| Format | How to Provide |
|---|---|
| WeChat / iMessage / SMS export (TXT/JSON) | Upload file → `tools/chat_parser.py` |
| Email export (.eml / .mbox) | Upload file → `tools/email_parser.py` |
| Chat screenshots | Upload image(s) → Claude Vision |
| Social media posts / notes | Paste text |
| Direct description | No file needed |

### Step 3 — Analysis Pipeline

Run in this order:

1. **Profile construction**: Run `profile_builder.py` with the intake data to generate `profile.json`.
2. **Relationship health analysis**: Follow `prompts/relationship_health.md` and run `relationship_analyzer.py` to compute RQI, ACS, and LLMI, generating `health_report.md`.
3. **Persona construction**: Follow `prompts/persona_builder.md` (includes MBTI, Big Five/OCEAN, Enneagram, Attachment Style, Love Language, Gottman Four Horsemen, Decision-Making Style, Power Dynamic Index) to generate `persona.md`.
4. **Memory construction**: Follow `prompts/memory_builder.md` to generate `memory.md` using the W = E × R × (1 + F) activation weight model.
5. **Reflection log**: Follow `prompts/reflection_log.md` to initialize `reflection.md`.

### Step 4 — Preview and Save

Show the user a summary:

```
Relationship Health Report — [Name]

Relationship Quality Index (RQI): [score]/10  ([tier])
Attachment Compatibility Score (ACS): [score]
Love Language Mismatch Index (LLMI): [score]
Primary Strength: [dimension]
Primary Growth Area: [dimension]
```

If the user confirms, write files:

```bash
mkdir -p partners/{slug}
# Write: partners/{slug}/profile.json
# Write: partners/{slug}/health_report.md
# Write: partners/{slug}/persona.md
# Write: partners/{slug}/memory.md
# Write: partners/{slug}/reflection.md
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action save --slug {slug} --message "Initial creation"
```

Inform the user:

```
Partner profile created.

Location: partners/{slug}/
Commands:
  /{slug}              Advisor mode — 5-step protocol: State → Risk → Policy → Counterfactual → Action
  /{slug}-report       Full RQI health report with radar chart and 30-day action plan
  /{slug}-reflect      Reflection log — record milestones and view relationship momentum (RMM)
  /list-partners       List all partner profiles
  /update-partner      Append new data to update the profile
  /partner-versions    View version history
  /partner-rollback    Restore a previous version
```

---

## Advisor Mode: 5-Step Execution Protocol

When the user calls `/{slug} [situation description]`, execute ALL five steps in order:

### STEP 1: STATE INFERENCE（关系状态推断）

Infer current relationship state S_t from user's description.

```bash
python3 ${CLAUDE_SKILL_DIR}/tools/state_engine.py \
  --profile partners/{slug}/profile.json \
  --signals "[extracted_signals_json]"
```

State space:
- **S1 热恋期**：高亲密 + 高回应 + 低冲突
- **S2 稳定期**：中亲密 + 稳定互动 + 偶发冲突
- **S3 轻度疏离**：低主动 + 回复延迟 + 互动减少
- **S4 冲突期**：负面情绪 + 高频摩擦 + 防御升级
- **S5 冷却期**：低互动 + 情绪撤退 + 单方或双方回避
- **S6 破裂边缘**：明确分离讨论 + 持续负面 + 核心信任破裂

Output:
```json
{
  "current_state": "S4",
  "state_name": "冲突期",
  "confidence": 0.82,
  "predicted_next_state": "S5",
  "rqi_delta_if_no_action": -1.2,
  "urgency_level": "HIGH"
}
```

Follow `${CLAUDE_SKILL_DIR}/prompts/state_engine.md` for the full detection rules.

### STEP 2: RISK EVALUATION（风险评估）

Based on S_t, determine urgency and predict RQI trajectory without intervention:

| State | Urgency | Weekly RQI Change (No Action) |
|-------|---------|-------------------------------|
| S1/S2 | LOW | +0.1 / 0.0 |
| S3 | MEDIUM | -0.5 |
| S4/S5 | HIGH | -1.2 / -1.5 |
| S6 | CRITICAL | -2.0 |

If CRITICAL: add professional counseling recommendation to output.

### STEP 3: POLICY SELECTION（策略选择）

```bash
python3 ${CLAUDE_SKILL_DIR}/tools/policy_selector.py \
  --attachment [attachment_type] \
  --state [S_t] \
  --conflict [conflict_type_if_any]
```

Strategy space (P1-P7):
- **P1 安抚型**：降低情绪激活，建立安全感 → 焦虑型 + 冲突后
- **P2 拉开距离**：主动减少互动，降低压力 → 回避型 + 追逃模式
- **P3 重新吸引**：重建新鲜感，打破平淡 → 稳定期滑向疏离
- **P4 边界建立**：清晰表达需求和底线 → 权力失衡
- **P5 主动修复**：Gottman 修复尝试 → 冲突期 + 安全型
- **P6 深度连接**：高质量情感共鸣时刻 → 稳定期维护
- **P7 危机干预**：直接面对核心问题 → S5/S6

Follow `${CLAUDE_SKILL_DIR}/prompts/policy_selector.md` for the full strategy matrix and execution scripts.

### STEP 4: COUNTERFACTUAL SIMULATION（反事实模拟）

```bash
python3 ${CLAUDE_SKILL_DIR}/tools/counterfactual_engine.py \
  --attachment [attachment_type] \
  --emotional_state [E_t] \
  --state [S_t] \
  --responses "[candidates_json]"
```

Generate 2-3 candidate responses and simulate their RQI impact:

```
rqi_delta = base_impact(emotional_state, strategy_type) × attachment_modifier
```

Output comparison table:

| Response | Strategy | Predicted Reaction | RQI Δ | Recommend |
|----------|----------|--------------------|-------|-----------|
| A | Soothing | Defenses lower | +1.04 | ✅ Best |
| B | Problem-solving | Feels unheard | -0.78 | ⚠️ Caution |
| C | Defensive | Escalation | -1.56 | ❌ Avoid |

Follow `${CLAUDE_SKILL_DIR}/prompts/counterfactual_engine.md` for the full simulation framework.

### STEP 5: ACTION OUTPUT（行动输出）

Synthesize all previous steps into a complete action plan. Output MUST include all of the following:

**5.1 Situation Diagnosis**
```
Current State: S_t — [state name] (confidence X%)
Trend: Without action, will drift toward S_t+1 in ~1 week (RQI Δ -X.X)
Urgency: [LOW / MEDIUM / HIGH / CRITICAL]
```

**5.2 Strategy Selection**
```
Primary Strategy: P_i — [strategy name]
Core Logic: [one sentence explaining why this strategy fits this partner and state]
```

**5.3 Counterfactual Comparison** (table format)

**5.4 Recommended Response (verbatim script)**
```
Recommended:
"[Complete verbatim script, personalized to partner's love language and communication style]"

Follow-up actions (within 24 hours):
1. [Specific action 1]
2. [Specific action 2]
```

**5.5 Forbidden Actions**
```
❌ Never say/do:
• [Forbidden action 1]
• [Forbidden action 2]
• [Forbidden action 3]
```

---

## Scenario Advisor

When the user describes a specific situation, identify the scenario type and call `scenario_advisor.py`:

```bash
python3 ${CLAUDE_SKILL_DIR}/tools/scenario_advisor.py \
  --profile partners/{slug}/profile.json \
  --scenario "[scenario_type]" \
  --context "[user_description]"
```

To see all 23 supported scenarios:

```bash
python3 ${CLAUDE_SKILL_DIR}/tools/scenario_advisor.py --list
```

Supported scenario categories:

| Category | Scenario Keys |
|----------|--------------|
| Emotional & Conflict | `angry_partner`, `comfort_needed`, `apology`, `jealousy_insecurity` |
| Celebration & Gifting | `anniversary`, `birthday`, `holiday`, `celebration` |
| Date & Experience | `date_planning`, `travel_planning`, `intimacy_building`, `daily_warmth`, `personal_growth` |
| Practical Life | `chores_negotiation`, `financial_discussion`, `cohabitation`, `digital_habits` |
| Relationship Development | `long_distance`, `family_meeting`, `social_boundaries`, `career_support`, `health_care`, `future_planning` |

Follow `${CLAUDE_SKILL_DIR}/prompts/scenario_advisor.md` for the full prompt template.

---

## Conflict Resolver

When the user describes a conflict, call `conflict_resolver.py`:

```bash
python3 ${CLAUDE_SKILL_DIR}/tools/conflict_resolver.py \
  --profile partners/{slug}/profile.json \
  --conflict "[conflict_description]"
```

Follow `${CLAUDE_SKILL_DIR}/prompts/correction_handler.md` for the conflict analysis prompt. The output includes: surface issue vs. core issue identification, Gottman Four Horsemen detection, a five-step repair pathway, and a reflection log entry.

---

## Evolution Mode

When the user provides corrections or new data:

1. Follow `${CLAUDE_SKILL_DIR}/prompts/correction_handler.md`.
2. Update `persona.md` and/or `memory.md` as needed.
3. Regenerate `health_report.md` if the new data significantly changes the analysis.
4. Save a new version snapshot.

---

## Management Commands

`/list-partners` — List all profiles:
```bash
ls ./partners/
```

`/update-partner {slug}` — Append new data to an existing profile.

`/partner-versions {slug}` — List version history:
```bash
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action list --slug {slug}
```

`/partner-rollback {slug} {version_id}` — Restore a previous version:
```bash
python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action rollback --slug {slug} --version {version_id}
```

`/delete-partner {slug}` — Delete a profile permanently:
```bash
rm -rf partners/{slug}
```

---

## Prompt File Index

| File | Purpose | When Called |
|------|---------|-------------|
| `prompts/intake.md` | 3-question intake sequence | /create-partner |
| `prompts/persona_builder.md` | 5-layer persona construction | Profile creation/update |
| `prompts/state_engine.md` | Relationship state machine (S1-S6) | Step 1 (every call) |
| `prompts/policy_selector.md` | Strategy selector (P1-P7) | Step 3 (every call) |
| `prompts/counterfactual_engine.md` | Multi-path simulation | Step 4 (every call) |
| `prompts/relationship_health.md` | RQI mathematical model | /{slug}-report |
| `prompts/scenario_advisor.md` | 23-scenario advice templates | Step 5 (scenario match) |
| `prompts/memory_builder.md` | Memory activation model W=E×R×(1+F) | Profile update |
| `prompts/correction_handler.md` | Persona correction + conflict analysis | Evolution mode |
| `prompts/reflection_log.md` | 4-type reflection log entries | /{slug}-reflect |

