Install
$ agentstack add skill-wenjiazhu1980-bilibili-creator-distill-skill-bilibili-creator-distill-skill ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
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:
- How the creator talks (surface — last priority).
- 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):
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.
# 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 underdata/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. NeedsANTHROPIC_API_KEY. Useful when running headless.
Required environment
- Python ≥ 3.10 and
pip install -r requirements.txtonce per environment. - Optional
SESSDATAin.env— unlocks full subtitle access. Without it the skill runs with reduced video coverage. See.env.example. ENABLE_ASR=falseby default. For UP 主 whose videos have neither creator-uploaded nor AI-generated subtitles (long-form talking-head channels like 马督工), setENABLE_ASR=trueand runpython -m scripts.cli transcribe --uid --limit Nto fill in subtitles via yt-dlp + faster-whisper. Requiresffmpegon 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.
- Build corpus —
collectfetches video index + CC subtitles + pinned comments →data/raw//. - Clean corpus —
cleanstrips ads, intros, outros, fillers; tagsscene_type→data/intermediate//clean_corpus.jsonl. - Slice & summarise —
summarizechunks long subtitles into slices, then rolls slice summaries up to video and topic level. - Extract pattern candidates —
distillreads summaries and producespattern_candidates.jsonlwith evidence references. - Cross-video verification — promote candidates to A/B only when they recur across multiple videos and contexts. See
references/evidence_rules.md. - Package —
packagerenders thecreator-skill/directory fromtemplates/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.
- Expression DNA — opening gambit, rhythm, recurring rhetoric, transitions, closings, signature phrases.
- Content strategy — topic sourcing, hot-take handling, selection criteria, serialisation tendencies.
- Argument patterns — conclusion-first vs. setup-first, evidence preference (case/data/history/analogy), counter-view handling.
- Judgment heuristics — when to commit to a verdict vs. remain reserved, risk posture, edge-case logic.
- Audience dynamics — stance toward fans, critics, peers, platform, brand deals.
- Honesty boundaries — where evidence is thin, where a claim is stage-bound, where extrapolation is banned.
- Emotional value (
affect) 🆕 — audience-reported emotional experience from danmaku/comments/stats. Phrased from audience side only. - 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:
- First confirm the target creator (UID, handle, or URL) and the sample range.
- Pull up the existing
creator-skill/if one already exists for this UID; otherwise run the pipeline. - Prefer matching the creator's judgment path before layering their expression style.
- For under-evidenced queries, announce the gap before answering.
- 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 scriptreferences/dimensions.md— the eight distillation layers, detailedreferences/evidence_rules.md— A/B/C/D ladder + promotion logicreferences/distillation_prompts.md— prompt templates for slice / video / topic / pattern / packaging stagesreferences/deliverable_template.md— exact file-level spec for thecreator-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
- Source: 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.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.