joy-pipeline/docs/architecture/joy-skill-design.md
translate e72189a48c feat: JOY — PUA大厂味清除流水线 v0.2.0
核心产出:
- dist/joy/JOY-SKILL.md (434行, 0emoji, 0PUA残留)
- corpus/pua-to-joy/glossary.json (136条术语+6条风格规则)
- corpus/pua-to-joy/sentence-tm.jsonl (74条句级对齐)
- corpus/pua-to-joy/trigger-keywords-mapping.json (30条触发词)
- corpus/pua-to-joy/flavor-mapping.json (15 flavors→策略)

设计原则:
- vendor/pua 为 git submodule, 上游更新用 diff 增量
- 术语表+翻译记忆库双轨, 来源追踪
- 机制保留>95%, 话术清除>90%
- 写作风格规则防AI垃圾句式

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-21 04:18:30 +08:00

149 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# JOY Skill 拆分设计
> JOY 清理流水线PUA skill → 分离机制与话术 → DeepSeek 改写 → 语料库沉淀
> 日期: 2026-06-20 | 版本: 0.1.0
## 1. 拆分规则
### 判定四问
| # | 问题 | 答案=是 → 内核 | 答案=否 → 外壳 |
|---|------|---------------|---------------|
| 1 | 去掉后行为逻辑是否改变? | 内核 | 外壳 |
| 2 | 换一个人格(如"导师")后是否需要重写? | 外壳 | 内核 |
| 3 | 能否用代码regex/状态机/结构化模板)实现? | 内核 | 外壳 |
| 4 | 是否引用特定公司/文化/人物/修辞? | 外壳 | 内核 |
### 三轴分类框架
```
SKILL.md (428行)
├─ 触发轴 ─ 什么条件激活
│ ├─ 内核: 失败计数/模式分类/短语匹配/白名单/hook规格
│ └─ 外壳: "你让我失望了"类情绪触发词
├─ 动作轴 ─ 激活后做什么
│ ├─ 内核: 5步法/7项清单/路由表/切换链/Confidence Gate/诊断协议
│ └─ 外壳: "闻味道""揪头发"类文化隐喻命名的步骤
└─ 输出轴 ─ 对用户/agent说什么
├─ 内核: Unicode方框骨架/JSON结构/脱敏规则/反馈schema
└─ 外壳: 15种味道旁白/文化梗/绩效话术/职级隐喻
```
## 2. 目录结构
```
~/wenpai-yijian/
├── vendor/pua/ # git submodule (只读,上游源)
│ └── skills/pua/SKILL.md # 428行原始文件
│ └── references/ # 方法论/味道/展示协议
├── overlay/joy/ # JOY 清理产出
│ ├── core/
│ │ └── mechanism.md # 机制内核提取 (245行)
│ └── persona/
│ └── joy-persona.yaml # JOY persona 变量 (替换15种味道)
├── corpus/pua-to-joy/ # 语料对齐库
│ ├── flavor-mapping.json # 15种大厂味→JOY 映射表
│ ├── aside-alignment.jsonl # 旁白对齐对 (逐条)
│ └── trigger-keywords-mapping.json # 触发词替换映射
├── logs/ # 清理日志
│ ├── cleanup-{date}.jsonl # 每次清理记录
│ └── quality-report.json # 质量报告
└── docs/architecture/
└── joy-skill-design.md # 本文件
```
## 3. 质量门禁
### 硬指标
| 指标 | 目标 | 检测方式 | 阻断条件 |
|------|------|---------|---------|
| 机制保留率 | >95% | `mechanism.md` 行数 / SKILL.md 内核行数 | <95% 不交付 |
| 话术清除率 | >90% | 已替换旁白数 / 总旁白数 | <90% 不交付 |
| 流畅度 | >= 4.0 | DeepSeek 评分 (1-5 scale) | <4.0 重改写 |
| 触发逻辑无损 | 100% | 17种借口触发等级映射逐条 diff | 任何丢失 不交付 |
| 路由表无损 | 100% | 任务类型×7 + 失败模式×7 逐条验证 | 任何丢失 不交付 |
### 软指标
| 指标 | 目标 | 说明 |
|------|------|------|
| 旁白密度 | 与原版一致 | 简单任务2句复杂任务每里程碑1句 |
| 展示骨架 | Unicode方框不变 | 只换内容不换格式 |
| 脱敏规则 | 等效覆盖 | 字段白名单/黑名单语义等价 |
### 质量检查流程
```
1. diff mechanism.md <-> SKILL.md 内核段 → 机制保留率
2. grep 旁白变量 overlay/joy/persona/ → 话术替换覆盖率
3. DeepSeek 评分改写后的旁白 → 流畅度
4. 触发词 regex 回归测试 → 触发逻辑
5. 切换链完整性检查 → 路由表
```
## 4. 处理优先级
```
P0 (第一轮):
├─ 提取机制内核 → overlay/joy/core/mechanism.md ✓ (已完成)
├─ 建立 JOY persona 变量模板 → overlay/joy/persona/joy-persona.yaml ✓ (已完成)
├─ 建立 flavor 映射表 → corpus/pua-to-joy/flavor-mapping.json ✓ (已完成)
└─ DeepSeek 改写 🔴华为味旁白 (SKILL.md 中 P0 优先级 flavor)
P1 (第二轮):
├─ DeepSeek 改写 🟠阿里味 + 🟡字节味 + 🔵美团味 + 🟢腾讯味
├─ 建立 aside-alignment.jsonl (旁白对齐对)
└─ 流畅度首轮评分
P2 (第三轮):
├─ 剩余 9 种 flavor 改写
├─ 触发词映射 → trigger-keywords-mapping.json
└─ 全量质量报告
P3 (持续):
├─ 切换链调优
└─ 语料库反哺
```
## 5. work 会话操作指南
### 第一轮 P0华为味 (SKILL.md 中最密集的 flavor)
**标注文件**: `vendor/pua/skills/pua/SKILL.md`
**标注方式**: 对每个 🔴 华为味 旁白段落标注 `[rhetoric:huawei]`
**改写流程**:
```
for each [rhetoric:huawei] 旁白:
1. 标注话术类型 (压力L1-L4 / 开工旁白 / 降压认可 / 抗合理化反击)
2. DeepSeek few-shot 改写 → JOY persona 语气
3. 验证: 机制逻辑是否保留?(触发等级/动作约束不变)
4. 评分: 流畅度(1-5) + 话术清除度(yes/no)
5. 写入 corpus/pua-to-joy/aside-alignment.jsonl
```
**输出格式** (aside-alignment.jsonl):
```json
{"pua": "烧不死的鸟是凤凰。自我批判。", "joy": "机制保留确认。自检通过。", "flavor": "huawei", "type": "L2", "fluency": 4.2, "mechanism_preserved": true}
```
### 验收标准
P0 完成后必须产出:
- [ ] `corpus/pua-to-joy/aside-alignment.jsonl` 包含 华为味所有旁白对齐对
- [ ] 每条对齐对的 `mechanism_preserved` = true
- [ ] 平均 `fluency` >= 4.0
- [ ] 触发等级 (L1-L4) 映射无损
---
## 附录:内核完整清单
`overlay/joy/core/mechanism.md`:
- T1-T6: 6项触发条件
- A1-A16: 16项执行动作
- R1-R9: 9组话术模板变量