---
name: skill-persona-check
description: >-
  人设一致性检查与品牌调性检查：对比内容与创作者画像的账号定位、内容赛道、形式、受众、
  风格和偏好，
  输出一致性评分和具体偏离点。当用户说"符合我的人设吗"、"一致性检查"、"风格对不对"、
  "像我写的吗"、"品牌一致"、"调性检查"、"这是我的风格吗"、"人设偏了没"、
  "语气对不对"、"品牌声音检查"时触发。
  必须有 Profile 才能工作；无 Profile 时提示先创建。
layer: publish
---

# 人设一致性检查

> 检查内容是否符合创作者人设和品牌调性，输出一致性评分与偏离诊断。

## 与其他 SKILL 的区别

| SKILL | 定位 | 关注点 |
|---|---|---|
| **persona-check**（本 SKILL） | 人设/品牌一致性 | 账号定位、题材、形式、受众、风格是否匹配画像 |
| skill-quality-gate | 深度合规 + 质量审核 | 平台规则、内容质量 |
| skill-publish-checklist | 完整性检查 | 有没有漏标题、漏封面等 |

## 前提条件

本 SKILL **必须有 Profile 才能工作**。Profile 中应包含以下信息（部分或全部）：

- `identity.md`：账号定位、主线赛道、内容方向
- `style.md`：语气、叙事、视觉和内容形式
- `audience.md`：目标受众及其需求
- `preferences.md`：要做、不做和明确红线
- `memory.md`：当前画像已验证的经验与踩坑

如果没有 Profile，直接返回提示，不做检查。

## 输入

- **待检查内容**：文案文本或产物路径
- **Profile**：通过 `=== EASEL ACCOUNT PROFILE ===` 标记注入，或指定画像名称

## 输出

输出结构化一致性报告，JSON 格式：

```json
{
  "overall_score": 85,
  "verdict": "consistent | minor_drift | major_drift",
  "publish_allowed": true,
  "warning": "",
  "dimensions": [
    {
      "dimension": "检查维度名",
      "score": 90,
      "status": "aligned | drifted",
      "evidence": "具体证据文本",
      "suggestion": "调整建议"
    }
  ],
  "drift_summary": ["偏离点概述列表"],
  "rewrite_hints": ["具体修改建议"],
  "summary": "一句话总结"
}
```

评分标准：
- 80-100：一致（consistent），无需人设警告
- 60-79：轻微偏离（minor_drift），明确警告并给出修改建议
- 0-59：明显偏离（major_drift），醒目警告账号定位/题材/形式偏离

**人设评分只做提醒，不是发布权限。** `publish_allowed` 始终为 `true`；低分不得阻断发布、
不得要求用户为了通过评分而强制改稿。用户已经明确要发布时，展示警告后继续发布。内容安全、
平台合规、敏感信息等独立硬门禁不在本 SKILL 范围内，仍按对应规则处理。

## 执行步骤

### Step 1 — 解析 Profile 画像

1. 检测是否有 Profile 上下文（`=== EASEL ACCOUNT PROFILE ===` 标记）
2. **无 Profile** → 直接输出提示信息并终止：
   ```
   未检测到账号 Profile，无法进行人设一致性检查。
   请先创建 Profile：用 skill-profile-builder 引导创建，或复制 profiles/_template/ 手动填写。
   Profile 的 style.md 应包含：写作风格、语气基调、人格特征、标志性表达。
   ```
3. **有 Profile** → 必须读取当前画像的 `identity.md`、`style.md`、`audience.md`、
   `preferences.md`、`memory.md`；发布场景再读取 `platforms.md`。先提取账号主线、允许题材、
   内容形式和受众，再提取语气、用词和平台习惯。不得只读 `style.md` 后凭语言相似度评分。

### Step 2 — 分析待检查内容

对输入内容进行多维度语言分析：

1. **题材与意图**：这条内容在讲什么，是否属于账号主线或合理延展
2. **内容形式**：小说、动画、口播、测评、图文等是否匹配账号定位
3. **目标受众**：内容解决的问题、情绪价值和阅读门槛是否面向画像受众
4. **语言风格**：语气、用词、句式、叙事视角和情感色彩
5. **平台与偏好**：是否适合目标平台，是否触碰画像明确的“不做”项

### Step 3 — 逐维度对比

将内容特征与 Profile 特征逐维度对比，每个维度独立评分：

| 维度 | 对比内容 | 权重 |
|---|---|---|
| **账号定位与内容赛道** | 题材/主题 vs `identity.md` 主线、内容方向、选题池 | 30% |
| **内容形式一致性** | 小说/动画/图文/口播等 vs 画像规定的主要内容形式 | 15% |
| **目标受众匹配** | 内容价值与阅读/观看人群 vs `audience.md` | 15% |
| **语气与叙事风格** | 语气、节奏、视角 vs `style.md` | 15% |
| **人格与用词** | 表达人格、词汇、标志性表达 vs 画像 | 10% |
| **平台适配** | 内容形态和表达 vs `platforms.md`（无目标平台时给中性分） | 10% |
| **偏好与经验** | `preferences.md` 与当前画像 `memory.md` | 5% |

每个维度评分 0-100，加权计算总分。

为防止语言相似掩盖根本性错位，计算后应用以下上限：

- **账号定位与内容赛道 < 40**：总分最高 59，必须判定 `major_drift`。
- **内容形式一致性 < 40**：总分最高 69，至少判定 `minor_drift`。
- 触碰画像已确认的“不做”项或红线：总分最高 39，并明确指出证据；但仍只警告，不代替用户决定是否发布。
- 用户主动要求跨赛道，只代表这是有意识的选择，不能因此虚增一致性分；报告中注明“用户主动跨赛道”即可。

示例：`2D 搞笑动画博主` 发布纯恐怖文字小说，即使同样口语化、有画面感、有反转，
账号赛道和内容形式仍严重不符，总分必须低于 60，不能因语言技巧给出 80+。

### Step 4 — 定位偏离点

对于 score < 80 的维度，给出具体偏离证据：

1. **引用原文**：指出内容中偏离人设的具体段落或句子
2. **对比说明**：说明 Profile 期望的表达方式 vs 实际表达
3. **严重程度**：标记该偏离是否影响整体人设感知

### Step 5 — 生成修改建议

针对每个偏离点，给出可操作的修改建议：

- 具体到词级别：建议替换的词汇
- 具体到句级别：建议调整的句式
- 具体到段级别：建议重写的方向

### Step 6 — 输出报告

汇总所有维度评分，生成结构化报告：

1. 计算加权总分并应用严重偏离上限
2. 判定 verdict（consistent / minor_drift / major_drift）
3. 列出所有偏离点摘要
4. 给出优先级排序的修改建议
5. `publish_allowed` 固定输出 `true`；低于 80 分时填写醒目的 `warning`
6. 生成一句话总结，明确“这是人设提醒，不阻止用户发布”

## Profile 感知

- **有 Profile**：从 Profile 提取完整人设特征，进行全维度对比。这是本 SKILL 的标准工作模式。
- **无 Profile**：**无法工作**。直接提示用户创建 Profile，说明所需内容（style、tone、personality），并终止执行。本 SKILL 是 Easel 中唯一强制要求 Profile 的 SKILL。

> 自研溯源与参考项目见同目录 `EASEL-META.md`。
