chase-action
追逐、逃亡、追杀、飙车类动作场面的镜头方法。创意里出现追、逃、跑、追杀、飙车、围捕时使用 —— 让观众始终知道谁在追谁、离得多近。
Turn a raw story idea, brief, or adapted text into a production-ready short-form script with McKee three-act structure, Voice Fingerprints per character, Story Bible canon, a per-scene Budget Plan, and an optional Critic-Rewrite refinement loop. Use this when the user wants to
$ npx -y skills add ChrisChen667788/wind-comic --skill screenwriter --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/screenwriterContext preview
The summary Claude sees to decide when to auto-load this skill.
Turn a raw story idea, brief, or adapted text into a production-ready short-form script with McKee three-act structure, Voice Fingerprints per character, Story Bible canon, a per-scene Budget Plan, and an optional Critic-Rewrite refinement loop. Use this when the user wants to
name: screenwriter description: Turn a raw story idea, brief, or adapted text into a production-ready short-form script with McKee three-act structure, Voice Fingerprints per character, Story Bible canon, a per-scene Budget Plan, and an optional Critic-Rewrite refinement loop. Use this when the user wants to "write a script", "break down a screenplay", "generate shots", "拆解剧本", or "写分镜". Auto-triggers on any input containing 剧本/分镜/storyboard/logline. version: 1.0.0 authors: - qingfeng-manju - based on Robert McKee's Story + DeepMind Dramatron + THUDM LongWriter + Dramaturge license: MIT
A reusable Claude Skill for producing **short-form cinematic scripts with per-shot breakdown** under Robert McKee's methodology, reinforced with 2025 SOTA script-generation research.
Invoke this skill whenever the user's request involves **turning a story idea, logline, or source text into a structured shot list**. Common triggers:
Do **not** invoke for:
A `Script` JSON object with:
{
title: string;
logline: string; // one-sentence hook
scenes: Scene[]; // 3-10 scenes
shots: Shot[]; // 8-30 shots, each ≤ 6 seconds of screentime
voiceFingerprints: {}; // per-character voice rules
storyBible: {}; // canonical facts that can't be violated
}Each `Shot` has `visualPrompt` (English, for image/video model), `dialogue`, `emotionTemp` (-10..+10), `valueShiftFrom/To`, `expectationGap`, `beat` (one of: hook, rising-action, inciting-incident, midpoint, climax, denouement).
This skill wraps five composable primitives from `lib/screenwriter-enhance.ts`:
Extract the unshakeable facts from the input (who the characters are, where they live, what rules the world has). Render as `buildStoryBibleBlock(entries)`.
**Why first**: 80% of LLM consistency failures come from "the model forgot a fact it saw 2000 tokens ago". Inject these facts on every subsequent call.
Fields per entry:
For every named character, produce a voice card:
Rendered via `buildVoiceFingerprintBlock(voices)`. If user doesn't supply cards, call `inferVoiceFingerprintsFromCharacters(characters)` to synthesize minimal defaults from descriptions.
**Design principle (from Sudowrite Story Bible)**: replace long character-personality paragraphs with 4–5 verifiable rules. LLMs comply with rules far better than with adjectives.
Call `buildDefaultSceneBudgets(scenes, totalShots)` to get McKee's 25% / 50% / 25% three-act allocation with a canonical emotion curve (mid → low → high → rock-bottom → peak → epilogue).
Each `SceneBudget` declares:
Rendered via `buildBudgetPlanBlock(budgets)` into the Pass-1 planning prompt.
**Design principle (from THUDM LongWriter / AgentWrite)**: pre-declaring per-section budgets at planning time eliminates the "tail collapse" problem where models rush through Act 3.
Reuse the existing `mckee-skill.ts` Two-Pass pattern:
1. **Pass 1** (natural-language planning) — let the LLM free-write a shot-by-shot plan tagged with Act / beat / emotion / dialogue snippets. Fed the full enhance block (Bible + Voices + Budgets). 2. **Pass 2** (structured JSON) — convert Pass-1 plan into the strict `Script` schema.
**Why split**: "reasoning + formatting in one shot" degrades both. Splitting lifts McKee-conformance by ~30% in our A/B tests.
Run `runCriticRewriteLoop()` from `lib/screenwriter-enhance.ts`:
**Design principle (from Dramaturge, arXiv:2411.18416)**: one critic-rewrite round yields +22–57% human-rated quality. Two rounds plateau. Three+ over-cooks.
The 11 dimensions: 1. `hook` — is Shot 1 a real hook (mystery / flashforward / contrast / action)? 2. `threeAct` — 25 / 50 / 25 split respected? 3. `incitingIncident` — irreversible at end of Act 1? 4. `midpoint` — Act 2 reversal/cost reveal? 5. `climax` — irreversible choice at shot N-1? 6. `emotionCurve` — does temp actually oscillate, not monotone? 7. `valueShift` — every shot's start/end value differs? 8. `expectationGap` — character expectation ≠ outcome each shot? 9. `voice` — can you tell characters apart by dialogue alone? 10. `pacing` — no dead shots, reasonable distribution? 11. `consistency` — no Story Bible violations?
The simplest integration is **append-to-userContext**:
import {
buildScreenwriterEnhanceUserBlock,
inferVoiceFingerprintsFromCharacters,
buildDefaultSceneBudgets,
} from '@/lib/screenwriter-enhance';
conMulti-agent AI pipeline that turns one line of text into a finished short-form drama: script, cinematic storyboards, character-consistent video. Provider-agnostic (OpenAI/Claude, MJ, Minimax, Veo/Sora, fal, ComfyUI). MIT.
Repo: ChrisChen667788/wind-comic
追逐、逃亡、追杀、飙车类动作场面的镜头方法。创意里出现追、逃、跑、追杀、飙车、围捕时使用 —— 让观众始终知道谁在追谁、离得多近。
古装、王朝、武侠、仙侠、宫廷、朝堂类短剧的镜头语言。创意里出现皇帝、将军、江湖、宫廷、大侠、仙侠时使用 —— 升降大景别开合,转场沉稳,给画面留足呼吸。
两人及多人对话戏的镜头覆盖方法。创意里有争吵、谈判、对峙、审问、表白、摊牌这类以对话推进的场面时使用 —— 守住轴线,正反打,让视线对得上。
独白、回忆、内心挣扎、独处情绪戏的镜头方法。创意里出现回忆、独白、思念、崩溃、独自一人、内心戏时使用 —— 让观众靠近人物,而不是看着人物。
悬疑、惊悚、侦探、失踪案、寻找真相类短剧的镜头语言。创意里出现谜团、凶手、失踪、诡异、悬案、侦探时使用 —— 用慢推特写和留白制造压迫感,信息一点点放给观众。
甜宠、恋爱、暗恋、告白、情侣日常类短剧的镜头语言。创意里出现心动、暗恋、告白、撒糖、恋爱时使用 —— 环绕柔光,节奏明快,把反应特写给足。