# Bilibili Creator Distill

> Distill a Bilibili creator's expression DNA, content strategy, argument patterns and judgment heuristics from their public videos into a callable skill package. Use when the user asks to analyse, emulate, or study a specific UP 主's creative approach.

- **Type:** Skill
- **Install:** `agentstack add skill-wenjiazhu1980-bilibili-creator-distill-skill-bilibili-creator-distill-skill`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [wenjiazhu1980](https://agentstack.voostack.com/s/wenjiazhu1980)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [wenjiazhu1980](https://github.com/wenjiazhu1980)
- **Source:** https://github.com/wenjiazhu1980/bilibili-creator-distill-skill
- **Website:** https://github.com/wenjiazhu1980/bilibili-creator-distill-skill

## Install

```sh
agentstack add skill-wenjiazhu1980-bilibili-creator-distill-skill-bilibili-creator-distill-skill
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Bilibili Creator Distill Skill

## When to use

Trigger this skill whenever the user wants to:
- Reverse-engineer how a Bilibili UP 主 thinks, structures arguments, or frames topics.
- Generate "what would this UP 主 say about X" outlines grounded in their public record.
- Build a reusable creator-skill package for later sessions.

Do **not** trigger this skill for:
- One-off video summarisation (use plain summarisation instead).
- Emulating tone without substance (this skill refuses that explicitly).
- Private / paid / leaked content.

## Core principle

Distill **stable, repeatable, transferable patterns** from public expression. Not tone mimicry, not one-video hot takes, not ad reads. When you lack evidence, say so — do not fabricate missing layers.

Keep two outputs separate at all times:
1. How the creator **talks** (surface — last priority).
2. How the creator **thinks** (substance — first priority).

## Deliverable

A `creator-skill/` directory with this exact structure (see `references/deliverable_template.md` for file-level specs):

```text
creator-skill/
├── SKILL.md                     # entry, 5-10 core patterns with triggers
├── soul.md                      # core drives, long-term preferences, value floor
├── limit.md                     # evidence gaps, non-transferable topics, time-bound notes
├── resource/
│   ├── content_strategy.md
│   ├── argument_patterns.md
│   ├── speech_patterns.md
│   ├── audience_dynamics.md
│   ├── key_videos_and_turning_points.md
│   └── anti_patterns.md
├── evidence/
│   ├── evidence_map.md
│   └── source_index.md
└── validation/
    ├── regression_cases.md
    └── generalization_cases.md
```

## How to invoke scripts

This skill ships with a Python CLI under `scripts/`. Always prefer the CLI over ad-hoc scraping.

```bash
# One-shot end-to-end for one creator (default limit 20 videos).
python -m scripts.cli run --uid  --limit 20 --output ./output/

# Smoke test — fetch only the video index, verify fields, no downstream work.
python -m scripts.cli smoke --uid 

# Stage-by-stage (recommended for first-time distillation so the human can review each artifact).
python -m scripts.cli collect    --uid  --limit 30
python -m scripts.cli transcribe --uid  --limit 10   # optional, only when ENABLE_ASR=true
python -m scripts.cli clean      --uid 
python -m scripts.cli summarize  --uid  --backend claude-in-session
python -m scripts.cli distill    --uid 
python -m scripts.cli package    --uid  --output ./output/
```

Backend modes for `summarize` / `distill`:
- **`claude-in-session`** (default): CLI writes a prompt file under `data/intermediate//prompts/`. The running Claude session (this one) reads the prompt, reasons inline over the cleaned corpus, and writes the structured output back. Uses zero external API credits.
- **`anthropic-api`**: CLI calls the Anthropic SDK directly. Needs `ANTHROPIC_API_KEY`. Useful when running headless.

## Required environment

- Python ≥ 3.10 and `pip install -r requirements.txt` once per environment.
- Optional `SESSDATA` in `.env` — unlocks full subtitle access. Without it the skill runs with reduced video coverage. See `.env.example`.
- `ENABLE_ASR=false` by default. For UP 主 whose videos have neither creator-uploaded nor AI-generated subtitles (long-form talking-head channels like 马督工), set `ENABLE_ASR=true` and run `python -m scripts.cli transcribe --uid  --limit N` to fill in subtitles via yt-dlp + faster-whisper. Requires `ffmpeg` on PATH.

## Workflow

Follow the six steps in `references/workflow.md` strictly, and **stop at every checkpoint** so the user can confirm before the next stage burns more time/tokens.

1. **Build corpus** — `collect` fetches video index + CC subtitles + pinned comments → `data/raw//`.
2. **Clean corpus** — `clean` strips ads, intros, outros, fillers; tags `scene_type` → `data/intermediate//clean_corpus.jsonl`.
3. **Slice & summarise** — `summarize` chunks long subtitles into slices, then rolls slice summaries up to video and topic level.
4. **Extract pattern candidates** — `distill` reads summaries and produces `pattern_candidates.jsonl` with evidence references.
5. **Cross-video verification** — promote candidates to A/B only when they recur across multiple videos and contexts. See `references/evidence_rules.md`.
6. **Package** — `package` renders the `creator-skill/` directory from `templates/creator-skill/`.

### Checkpoints

After **each** stage, post a short report to the user:
- files written (with byte counts)
- sample of 2-3 records (anonymised/truncated)
- any anomalies (missing subtitles, rate-limit backoff, schema validation failures)
- next stage that is about to run

Wait for `ok` / `continue` before moving on.

## Distillation dimensions

Extract in these eight layers. Detail is in `references/dimensions.md`.

1. **Expression DNA** — opening gambit, rhythm, recurring rhetoric, transitions, closings, signature phrases.
2. **Content strategy** — topic sourcing, hot-take handling, selection criteria, serialisation tendencies.
3. **Argument patterns** — conclusion-first vs. setup-first, evidence preference (case/data/history/analogy), counter-view handling.
4. **Judgment heuristics** — when to commit to a verdict vs. remain reserved, risk posture, edge-case logic.
5. **Audience dynamics** — stance toward fans, critics, peers, platform, brand deals.
6. **Honesty boundaries** — where evidence is thin, where a claim is stage-bound, where extrapolation is banned.
7. **Emotional value (`affect`)** 🆕 — audience-reported emotional experience from danmaku/comments/stats. Phrased from audience side only.
8. **Visual persona (`persona`)** 🆕 — cover phash clustering, title template, duration bucket, dominant colors.

## Evidence rules

See `references/evidence_rules.md` for the full ladder. Short form:

| Level | Meaning                                                                                   | Usable in             |
|-------|-------------------------------------------------------------------------------------------|-----------------------|
| A     | Recurs across multiple videos AND multiple time periods                                   | Core SKILL.md         |
| B     | Recurs within one theme across multiple videos                                            | Core SKILL.md         |
| C     | Single high-signal occurrence, worth recording                                            | Footnote / exception  |
| D     | Speculative, below evidence threshold                                                     | Must NOT enter output |

## Output style

- Prefer accuracy over flair.
- Write judgments before tone markers.
- Each core pattern should be stateable as "when X, this creator tends to Y, because Z" — not an abstract adjective.
- Downgrade wording when evidence is thin.

**Bad examples**
- "他很理性。"
- "他讲得很有感染力。"

**Good examples**
- "遇到争议议题时，他通常先拆背景变量，再给有限结论，避免直接站队。（证据：BV1, BV2, BV3）"
- "讲复杂主题时，他倾向先给一层直觉版结论，再补结构化解释。"

## Anti-patterns

You must reject each of these:
- Distilling only tone, skipping judgment.
- Generalising one viral video into a permanent rule.
- Moving ad copy into core expression DNA.
- Confusing platform persona with real personality.
- Filling evidence gaps with fabrication.
- Replacing structural rules with personality adjectives.

## Honesty policy

When the user asks you to "fully role-play" as the creator, obey these:
- You may mimic stable public expression.
- You may reuse verifiable judgment frameworks.
- You must not fabricate private views, personal history, or undisclosed positions.
- You must not pretend to know topics the creator has not publicly discussed.

Recommended hedges:
- "基于公开视频内容，他更可能采用的分析路径是……"
- "公开内容里没有足够证据支持他在这个问题上的立场。"

## Activation behaviour

When this skill is invoked:
1. First confirm the target creator (UID, handle, or URL) and the sample range.
2. Pull up the existing `creator-skill/` if one already exists for this UID; otherwise run the pipeline.
3. Prefer matching the creator's **judgment path** before layering their expression style.
4. For under-evidenced queries, announce the gap before answering.
5. Phrase answers as "based on public output" rather than as the creator themself.

## Reference index

- `references/workflow.md` — six-step pipeline with per-stage artifacts and checkpoint script
- `references/dimensions.md` — the eight distillation layers, detailed
- `references/evidence_rules.md` — A/B/C/D ladder + promotion logic
- `references/distillation_prompts.md` — prompt templates for slice / video / topic / pattern / packaging stages
- `references/deliverable_template.md` — exact file-level spec for the `creator-skill/` output

## Final standard

The distillation is only acceptable if the output can:
- Answer "how would he analyse this problem?" with his judgment path.
- Answer "how would he structure a video on this?" with his known scaffolding.
- Refuse gracefully when asked about topics lacking public evidence.
- Cite ≥ 2 BV-IDs for every A-level pattern.

If any of those four breaks, the result is a character card, not a skill.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [wenjiazhu1980](https://github.com/wenjiazhu1980)
- **Source:** [wenjiazhu1980/bilibili-creator-distill-skill](https://github.com/wenjiazhu1980/bilibili-creator-distill-skill)
- **License:** MIT
- **Homepage:** https://github.com/wenjiazhu1980/bilibili-creator-distill-skill

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-wenjiazhu1980-bilibili-creator-distill-skill-bilibili-creator-distill-skill
- Seller: https://agentstack.voostack.com/s/wenjiazhu1980
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
