# Cheat Learn From

从对标账号导入 script + 数据 → 拆 pattern + 派生 base rubric 信号 → 写到 benchmark.md /...

- Repository: https://github.com/XBuilderLAB/cheat-on-content (7435 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-26
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add XBuilderLAB/cheat-on-content --skill cheat-learn-from -g -a claude-code -y`
Codex: `npx skills add XBuilderLAB/cheat-on-content --skill cheat-learn-from -g -a codex -y`
Cursor: `npx skills add XBuilderLAB/cheat-on-content --skill cheat-learn-from -g -a cursor -y`
Gemini CLI: `npx skills add XBuilderLAB/cheat-on-content --skill cheat-learn-from -g -a gemini-cli -y`

## Description

从对标账号导入 script + 数据 → 拆 pattern + 派生 base rubric 信号 → 写到 benchmark.md / script_patterns.md / rubric_notes.md。**这是工具最早期信号的来源**, , cold-start 用户没自己历史时全靠对标，发过历史的用户也建议至少 1 个对标做 sanity check。触发词："学这个账号"/"拆这几个对标视频"/"learn from"/"导入对标账号"/"找对标"。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# /cheat-learn-from, 对标账号导入

工具早期最重要的信号源是**对标账号**, , 你 init 完没数据，rubric 等权 v0 等于占星。但如果你能找一个你想做成那样的账号，导入 5-10 条它的高/中/低样本，工具就有了 anchor。

后期当你自己 calibration_samples ≥ 10 时，benchmark 影响自然减弱, , 你的真实数据成为主要信号源。但 benchmark.md **不删**，仍是 cheat-seed brainstorm 的 reference frame。

## Overview

```
[用户：学这个账号 / 启动 cheat-learn-from]
  ↓
[Phase 0: 检查 benchmark 状态]
  ↓
[Phase 1: 选 input 方式（Way a 默认）]
  ↓
[Phase 2: 收集材料]
  Way a: 用户粘 N 条 script 文本 + 数据
  Way b: 用 whisper 转录 samples/ 目录里的视频
  ↓
[Phase 3: 询问每条样本的"印象判断"（高/中/低 + 为啥）]
  ↓
[Phase 4: Claude 拆 pattern + 派生 rubric 信号]
  ↓
[Phase 5: 用户 review → 改 → 落盘]
  ↓
[Phase 6: 写 benchmark.md / script_patterns.md / rubric_notes.md]
  ↓
[Phase 7: 更新 state.benchmark_status]
```

## Constants

- **MIN_SAMPLES = 3**, 最少 3 条样本（少于拆不出 pattern）
- **RECOMMENDED_SAMPLES = 5-10**, 推荐区间，平衡信号量 vs 用户工作量
- **MAX_SAMPLES_PER_RUN = 15**, 单次导入上限, , 再多 Claude context 不够 + 用户也累
- **DEFAULT_WAY = a**, Way a 简单 + 准确，是 default

## Inputs

| 必填 | 来源 |
|---|---|
| `<账号名>` | 用户参数；缺失则询问 |
| `.cheat-state.json` | 状态文件 |
| Way a: 用户粘的 script 文本 + 数据 | 对话 |
| Way b: `samples/<账号名>/*.mp4` 等视频文件 | 用户提前下载好放进去 |

## Workflow

### Phase 0: 检查 benchmark 状态

读 `.cheat-state.json` 的 `benchmark_status`：

| 状态 | 处理 |
|---|---|
| `none` | 首次导入, , 继续 Phase 1 |
| `pending` | 用户之前答应等下找, , 继续 Phase 1 |
| `imported` 已有 benchmark | 询问"你已有 benchmark [当前名]，N 条样本。要做什么？  a) 追加新视频到当前 benchmark  b) 替换为新 benchmark  c) 只看不改" |

参数解析：
- `--append` → 追加到现有 benchmark
- `--replace <new-name>` → 用新 benchmark 替换（旧的归档到 benchmark.archived/）
- 没标志 + 已有 benchmark → 走上面询问

### Phase 1: 选 input 方式（**两个独立维度**）

每条样本 = **script** + **数据**。两者怎么拿是独立的, , 你可以混搭。

#### Phase 1a: script source（怎么拿稿子）

```
script 怎么拿？

The rest: https://github.com/XBuilderLAB/cheat-on-content/blob/HEAD/skills/cheat-learn-from/SKILL.md
