# Ip Portrait

> 从一个人已有的真实内容素材（文章、口述稿、课程逐字稿、聊天记录）中抽取可指导创作的个人内容画像。当用户想要"分析我的写作风格"、"总结我的内容定位"、"做一份人设画像"、"让 AI 写得像我"、"给账号做定位"，或者提供了一批自己的历史内容并希望据此生成新内容时，务必使用本 skill。凡是涉及为某个具体的人建立可复用的创作口径，都应该使用它，即使用户没有说出"画像"两个字。

- Skill: `zhangleo-1983/ip-portrait` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add zhangleo-1983/ip-portrait`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zhangleo-1983/ip-portrait/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zhangleo-1983 (https://skillmd.com/u/zhangleo-1983)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/zhangleo-1983/ip-portrait

---


# 个人内容画像抽取

## 这个 skill 解决什么

把一个人的历史内容素材，转成一份**能指导后续创作**的画像。

判断成功的唯一标准：拿着这份画像去写一篇新内容，产出物比不用画像时明显更像本人。**读起来舒服不算数，能约束生成才算数。**

## 这个 skill 不解决什么

先说清楚边界，避免误用：

- **不解决持续更新**。这是一次性抽取。画像如何随新内容迭代、如何版本管理，不在范围内。
- **不解决下游调用**。画像产出后如何接入写作流程、知识库、agent，不在范围内。
- **不做赛道画像**。本 skill 面向单个真实的人（n=1，追求深度）。批量赛道模板需要相反的抽象方向，不要用本 skill 硬做。
- **不做能力评价**。不输出"他水平如何"、"他适合做什么"这类判断。

---

## 文件结构

- `SKILL.md`（本文件）：原则、流程、输出模板、自检清单
- `references/materials.md`：素材的四个属性、材料类型速查 —— 第 1 步用
- `references/dimensions.md`：各维度的判定方法 —— 第 3 步用

执行时按需加载，不必一次读完。

---

## 三条根本原则

### 一、无原文依据，不写进画像

每一条特征都必须能追溯到具体素材。抽取时先取证据，再做归纳，顺序不能反。

原因很直接：一旦允许无据推断，模型会立刻滑向"通用好评"——那种放在谁身上都成立的描述。**画像失效几乎都是从这里开始的。**

### 二、禁止万能评价

如果一句话换个人也成立，它就是废话，删掉。

不合格 → 合格的对照：

- ✗ 语言风格生动，善于举例
- ✓ 论证机制类观点时必用亲历案例，且给出具体数字（依据：3 处，见素材库）

- ✗ 具备丰富的行业经验
- ✓ 遇到抽象概念先讲一个具体产品的失败过程，再回到概念（依据：5 处）

- ✗ 对读者需求有敏锐洞察
- ✗（这条无法救，直接删）

履历也是同一个问题——**"有什么经验"是简历，"什么时候调用它"才是规则**：

- ✗ 拥有十年电商运营经验
- ✓ 论证机制类观点时，调用亲历的产品数据案例，且必须给出具体数字

**自检方法**：把这句话套到同行业另一个人身上。如果也成立，删掉。

### 三、不确定就留问题，不要填空

模型的默认行为是把空白补满。这在画像任务里是有害的——**编造出来的特征会持续污染所有下游生成**。

遇到证据不足的维度，不要写"可能"、"或许"、"倾向于"来对冲，直接把它列进【待确认】，让用户来补。一份带 5 个诚实问题的画像，比一份填满猜测的画像有用得多。

---

## 工作流程

### 第 1 步：清点素材

先说明你收到了什么：多少篇、什么类型、覆盖什么时间跨度。

然后判断够不够。**低于 5 篇实质内容，明确告知用户画像会不可靠，问他要不要补充再开始。** 素材不足硬做，产出的一定是万能评价。

如果素材有明显时间跨度（比如横跨三年），记下来——后面区分稳定特征和题材特征要用。

**然后给每份素材标属性**——加工度、篇幅、虚构性、语态。这四项独立，不能混成一个总分。

展开见 `references/materials.md`，含材料类型速查表与识别线索。**这一步不能省**：属性标错，后面所有归纳的权重都是错的。

### 第 2 步：取证

逐篇提取，不要跳过直接归纳。四类原料：

| 类型 | 提取什么 | 必须记录 |
|---|---|---|
| 故事 | 亲历经历、案例、寓言、段子 | 原文摘录 + 出处 |
| 观点 | 主张、判断、反对的东西 | 原文摘录 + 出处 |
| 方法 | 可操作的步骤、框架、口诀 | 原文摘录 + 出处 |
| 句式 | 反复出现的表达习惯 | 原文摘录 + 出现次数 |

这一步的产出是一个证据池，它本身就是资产。**不要在归纳后丢弃它。**

### 第 3 步：归纳成画像

按下面的输出模板，从证据池归纳。每条特征标注依据数量。

只出现 1 次的，标为【单例】，不要当稳定特征。

**各栏的判定方法见 `references/dimensions.md`。** 立场和表达特征分层这两栏，不看参考文件几乎必然做错。

### 第 4 步：自检

用文末的自检清单逐条过。**这一步不能省——它拦下的正是画像失效最常见的几种形态。**

### 第 5 步：回问

把【待确认】里的问题抛给用户，一次不超过 5 个，挑最影响下游生成的问。

### 第 6 步：留一验证

**不要问用户"像不像"。** 那个答案没有判别力——真的他会认，假的但听起来合理的他也会认。

正确的做法是：**请他交一篇本次画像没有用过的文章**，把表达特征里的验证条件逐条拿去判定，给出命中率。

- 章法层：结构是否匹配（0/1）
- 骨架层：每条硬条件有无例外
- 肌理层：是否落在给出的区间内
- 皮肤层：不计入

命中率低于七成，说明画像有实质问题，回到第 3 步重新归纳——**并且告诉用户具体哪几条没中**，而不是笼统说不准。

**判定只有三档：命中 / 未中 / N/A。不得给半分，不得判"擦边命中"。**

- 条件未触发的判 N/A 并踢出分母（"数值必有推导链"遇上一篇没有数值的文章）
- **部分符合一律判未中。** 软化措辞（"似乎""不失为"）不等于自我限定句；结尾出现了劝勉就是出现了，哪怕后面被别的句子盖过去

一旦允许半分，命中率就不再是硬指标，验证机制随之失效。**觉得判严了，该改的是规则的表述，不是这次的判分。**

另外：**验证前先标注文体**（观点/方法/机制/叙事/冒犯），再按对应的那一套章法判。文体标错会让整个章法层误判，而这不是画像的错。

如果用户拿不出没用过的文章，退而求其次：**留一法**——取证时预先扣下一篇不参与归纳，归纳完用它来验。这一步宁可牺牲一篇素材，也比无法验证强。

---

## 输出模板

严格按此结构输出。

```markdown
# [姓名/代称] 内容画像

## 一句话定位
[他在写什么、为谁写、区别于同类的地方。一句话，不超过 60 字。]

## 立场
每条必须成对：有主张，就要有对应反对的东西。只记到材料划出的边界为止。

- 主张：[具体主张] / 因此反对：[具体反对的做法]（依据：N 处）
- ...

### 取向（可选，证据不足则留空）
- [轴名]：偏 [某端]（依据：N 处，须至少两处交叉验证）
- 用取向词，不用人格词。不出现过激、偏执、成熟这类评价性形容词。

## 能力调用规则
不是履历，是"什么时候该调用什么，怎么调"。

写法：**当 [某种论证场景] 时 → 调用 [某类经验] → [具体做法]**

- ✗ 拥有盛大积分、车联网领域的实战经验
- ✓ 论证机制类观点时 → 调用亲历的产品数据案例 → 必须带人名或代号、带金额、带时间

- ✗ 善于用案例说明抽象道理
- ✓ 论证判断失误的代价时 → 调用**自己的**失败而非他人的 → 写清失败到什么程度

每条附依据数量。单例的标【单例】，不作为稳定规则。

## 表达特征
分四层，下游生成时优先级依次递减：章法 > 骨架 > 肌理 > 皮肤。

每条特征后附**验证条件**——拿一篇本画像没用过的文章，应当据此判定命中与否。验证形式按层不同，见后文。

### 章法层（全篇怎么排，一篇一个）
- 固定主体：[例：开篇给具体时间地点事件 → 展开案例 → 收编号教训 → 落到一个小动作]
  - 验证：任取一篇同类型长文，整体结构应匹配上述顺序（0/1 判定）
- 可变部分：[例：开头偶尔会换成设问或结论前置]

### 骨架层（论证怎么推进，一篇多次）
- [例：凡出现数值，必给推导链]
  - 验证：每出现一处数值，必有推导过程。**硬条件，允许 0 例外**

### 肌理层（节奏与句式，段落级）
- [例：说理段落短，关键处单句成段]
  - 验证：说理段落 ≤4 句；每篇 ≥2 处独立成段的短句。**软条件，统计倾向**

### 皮肤层（用词，词级）
- [例：口头禅清单]
- 不设验证条件，只列清单

## 素材库
可直接调用的原料，保留原文。

- [案例/故事名]：[原文摘录] —— 出处
- ...

## 题材范围（易变，非稳定特征）
以下是他写过的题材，**不代表他只能写这些**。下游生成时不要默认往这些题材上靠。

- ...

## 受众
[结论] —— 证据强度：[强/中/弱]
弱证据的受众判断，注明是从内容反推而非来自真实数据。

## 否决规则
写作时不能出现的东西。**每条必须标依据处数**——这一栏最容易藏猜测。

- 不 [某种做法]（依据：N 处）
- ...

## 待确认
- [问题 1]
- ...
```

---

**每一栏怎么填，见 `references/dimensions.md`** —— 立场的挖法与三道护栏、表达特征四层的判定判据、可证伪化的形式要求、否决规则的生成方法、稳定特征与题材特征的区分。

---

## 自检清单

输出前逐条检查，任何一条不过就返工：

- [ ] 每条特征都有原文依据，没有凭空推断
- [ ] 证据计数已分属性标注；皮肤层和肌理层没有靠 C 类独立支撑的条目
- [ ] 长篇专属、短篇专属的结构已标注
- [ ] 口语与书面素材没有被合并进同一套骨架层
- [ ] 若素材含虚构作品，其中的观点没有被当成作者立场
- [ ] 把任意一条特征套到同行另一个人身上，不成立
- [ ] 否决规则栏不为空，且至少 5 条
- [ ] 否决规则每条都标了依据处数；依据不足 3 处的已改写成配对规则而非无条件禁令
- [ ] 立场栏不为空，每条都成对（有主张必有对应的反对）
- [ ] 立场没有沿方向外推，无上界证据的只记了下界
- [ ] 全文没有规范性形容词（过激、偏执、温和、成熟等）
- [ ] 表达特征已分四层，每条都过了替换测试，没有平权罗列
- [ ] 章法层的固定主体与可变部分已分开；材料不足 5 篇时该层留空并进【待确认】
- [ ] 章法、骨架、肌理每条都附了验证条件，且用的是区间或布尔值而非点值
- [ ] 骨架条件已标硬、肌理条件已标软；数字条件没有用"行"作单位
- [ ] 题材已单独成栏并标注为易变
- [ ] 能力栏写的是调用规则，不是履历
- [ ] 素材库保留了原文，没有被抽象掉
- [ ] 受众栏标注了证据强度
- [ ] 证据不足处进了【待确认】，没有用"可能/或许"填空
- [ ] 全文没有出现能力评价（水平如何、适合做什么）

---

## 常见失败模式

**形似神不似**：口头禅堆满了，论证结构却散了。原因是表达特征平权，或骨架被误放进低优先级层。修法见"关于表达特征分层"。

**通用好评**：整份画像换个人也成立。原因是跳过了取证直接归纳。回到第 2 步重做。

**怀旧倾向**：生成的内容总在写几年前的题材。原因是题材当成了稳定特征。

**礼貌性对冲**：满篇"可能"、"倾向于"。原因是不敢留白。该进【待确认】的进去。

**证据蒸发**：归纳完把原文丢了，画像只剩抽象规则。素材库是资产，必须保留原文。

**单例升格成禁令**：一处证据被写成了全局否决规则，下游因此禁掉了本人其实会做的事。原因是否决规则栏没有依据计数。补救是改写成配对规则——动作允许，配套必须有。

**不可证伪**：画像每条都对，但没有一条能被判错。表现是本人读完连连点头却说不出哪里不对。原因是特征写成了无法验证的描述。人对自己不自觉的习惯没有独立判断力，点头不构成验证——必须用没见过的文章跑命中率。

**立场外推**：把"主张保护合法权益"读成"唯某一方论"。原因是沿着作者的方向多走了几步，再叠上一个"另一端才对"的暗含前提，最后落成人格评价。表达强度和立场强度是两回事——锋利地持温和立场完全可能。

**编辑口味污染**：画像里的用词或句式特征其实来自出版编辑而非本人。表现是某个词在书稿里密集、在本人自己写的东西里几乎没有（或反过来，本人惯用词在书稿里归零）。原因是没按加工度区分。注意这条只适用于加工敏感的特征——论证结构和立场不在此列。

**篇幅误判**：把只在长内容里出现的结构判成假特征。原因是拿短内容的缺失去否定长内容的存在。短篇装不下的东西，不等于作者没有这个习惯。

