/style-analysis-skill
风格分析技能。分析生成剧本的语言风格,对比爆款剧本,确保网文感和可读性。
$ npx -y skills add supreme-ultimate/novel-to-script-team --skill style-analysis-skill --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/style-analysis-skill
Context preview
The summary Claude sees to decide when to auto-load this skill.
风格分析技能。分析生成剧本的语言风格,对比爆款剧本,确保网文感和可读性。
SKILL.md
style-analysis-skill.SKILL.mdname: style-analysis-skill
description: 风格分析技能。分析生成剧本的语言风格,对比爆款剧本,确保网文感和可读性。
风格分析技能
必读
1. `../../references/00-first-principles.md` — 第一性原则(可拍性、留存性) 2. `../../references/03-script-writing-standard.md` — 剧本写作标准(句长、对话比、视觉标记、网文感关键词) 3. `../../references/12-genre-specific-techniques.md` — 类型化技巧(男频/女频风格差异)
功能
深度分析剧本的语言风格,确保生成的剧本具有网文感、节奏感和可读性。
分析维度
1. 句长分析
**统计方法**:
import re
def analyze_sentence_length(script):
# 按句号、问号、感叹号分句
sentences = re.split(r'[。!?]', script)
sentences = [s.strip() for s in sentences if s.strip()]
lengths = [len(s) for s in sentences]
return {
'avg_length': sum(lengths) / len(lengths),
'short_ratio': len([l for l in lengths if l < 10]) / len(lengths),
'medium_ratio': len([l for l in lengths if 10 <= l < 20]) / len(lengths),
'long_ratio': len([l for l in lengths if l >= 20]) / len(lengths)
}**理想指标**:
- 平均句长:10-14字符
- 短句比例(<10字符):30-40%
- 中句比例(10-20字符):50-60%
- 长句比例(≥20字符):<10%
2. 对话比分析
**统计方法**:
def analyze_dialogue_ratio(script):
# 识别对话(引号内的内容)
dialogues = re.findall(r'[「『""]([^」』""]+)[」』""]', script)
dialogue_chars = sum(len(d) for d in dialogues)
total_chars = len(script)
return {
'dialogue_ratio': dialogue_chars / total_chars,
'dialogue_count': len(dialogues),
'avg_dialogue_length': dialogue_chars / len(dialogues) if dialogues else 0
}**理想指标**:
- 对话比:70-80%
- 对话数量:每1000字15-25条
- 平均对话长度:20-40字符
3. 视觉标记分析
**视觉标记列表**:
visual_markers = {
'表情': ['冷笑', '嗤笑', '冷哼', '微笑', '狞笑', '苦笑'],
'眼神': ['眼神一冷', '眸光一沉', '目光如炬', '眼中闪过', '瞳孔一缩'],
'动作': ['嘴角勾起', '挑眉', '皱眉', '咬牙', '握拳', '转身'],
'气场': ['气势汹汹', '霸气侧漏', '冷气逼人', '杀气腾腾']
}**统计方法**:
def analyze_visual_markers(script):
all_markers = []
for category, markers in visual_markers.items():
all_markers.extend(markers)
marker_count = sum(script.count(marker) for marker in all_markers)
chars_per_100 = len(script) / 100
return {
'markers_per_100': marker_count / chars_per_100,
'marker_distribution': {
category: sum(script.count(m) for m in markers)
for category, markers in visual_markers.items()
}
}**理想指标**:
- 视觉标记密度:3-5个/100字
- 分布均衡:各类标记都有使用
4. 网文感关键词分析
**网文感关键词**:
wanwen_keywords = {
'情绪强化': ['冷笑', '嗤笑', '冷哼', '冷声', '冷冷地'],
'态度词': ['不屑', '轻蔑', '讥讽', '嘲讽', '鄙夷'],
'气场词': ['霸气', '强势', '凌厉', '锐利', '凛然'],
'反转词': ['没想到', '竟然', '居然', '原来', '突然'],
'打脸词': ['啪啪打脸', '狠狠打脸', '当场打脸', '脸色一变']
}**统计方法**:
def analyze_wanwen_keywords(script):
all_keywords = []
for category, keywords in wanwen_keywords.items():
all_keywords.extend(keywords)
keyword_count = sum(script.count(kw) for kw in all_keywords)
chars_per_100 = len(script) / 100
return {
'keywords_per_100': keyword_count / chars_per_100,
'keyword_distribution': {
category: sum(script.count(kw) for kw in keywords)
for category, keywords in wanwen_keywords.items()
}
}**理想指标**:
- 网文感关键词:1.5-2.5个/100字
- 分布:情绪强化词最多,其他均衡
5. 节奏感分析
**统计方法**:
def analyze_rhythm(script):
# 按场景分割
scenes = re.split(r'场景\d+|第\d+场', script)
scene_lengths = [len(s) for s in scenes if s.strip()]
return {
'scene_count': len(scene_lengths),
'avg_scene_length': sum(scene_lengths) / len(scene_lengths),
'length_variance': calculate_variance(scene_lengths),
'rhythm_score': calculate_rhythm_score(scene_lengths)
}**理想指标**:
- 场景数:7-10个/集
- 平均场景长度:100-150字
- 长度方差:适中(有变化但不极端)
对比分析
Step 1: 统计生成剧本
generated_style = {
'sentence': analyze_sentence_length(generated_script),
'dialogue': analyze_dialogue_ratio(generated_script),
'visual': analyze_visual_markers(generated_script),
'wanwen': analyze_wanwen_keywords(generated_script),
'rhythm': analyze_rhythm(generated_script)
}Step 2: 统计参考剧本
reference_styles = [
{
'sentence': analyze_sentence_length(ref),
'dialogue': analyze_dialogue_ratio(ref),
'visual': analyze_visual_markers(ref),
'wanwen': analyze_wanwen_keywords(ref),
'rhythm': analyze_rhythm(ref)
}
for ref in reference_scripts
]
# 计算平均值
reference_avg = average(reference_styles)Step 3: 对比并生成报告
report = {
'sentence_analysis': compare_sentence(generated_style, reference_avg),
'dialogue_analysis': compare_dialogue(generated_style, reference_avg),
'visual_analysis': compare_visual(generated_style, reference_avg),
'wanwen_analysis': compare_wanwen(generated_style, reference_avg),
'rhythm_analysis': compare_rhythm(generated_style, reference_avg)
}输出格式
【风格分析报告】
## 1. 句长分析
生成剧本:
- 平均句长:18字符 ⚠️
- 短句比例:20% ⚠️
- 中句比例:60% ✓
- 长句比例:20% ⚠️
参考剧本:
- 平均句长:12字符
- 短句比例:35%
- 中句比例:55%
- 长句比例:10%
问题:
- 句子偏长,缺乏短句
- 长句比例过高
建议:
- 将长句拆分为2-3个短句
- 增加短句比例到30%以上
- 示例:
原:她看着他,心中涌起一股复杂的情绪,既有愤怒也有不甘。
改:她看着他。心中涌起复杂情绪。既愤怒,也不甘。
## 2. 对话比分析
生成剧本:
- 对话比:45% ⚠️
- 对话数量:12条/1000字 ⚠️
- 平均对话长度:35字符 ✓
参考剧本:
- 对话比:72%
- 对话数量:20条/1000字
- 平均对话长度:30字符
问题:
- 对话比严重偏低
- 叙述性文字过多
建议:
- 将叙述改为对话
- 增加人物互动
- 示例:
原:她很生气,觉得他太过分了。
改:"你太过分了!"她愤怒地说。
## 3. 视觉标记分析
生成剧本:
- 视觉标记:1个/100字 ⚠️
- 分布:表情(0.5), 眼神(0.3), 动作(0.2), 气场(0)
参考剧本:
- 视觉标记:4个/100字
- 分布:表情(1.5), 眼神(1.0), 动作(1.0), 气场(0.5)
问题:
- 视觉标记严重不足
- 缺乏气场描写
建议:
- 增加表情描写(冷笑、嗤笑等)
- 增加眼神描写(眼神一冷、眸光一沉等)
- 增加气场描写(霸气、强势等)
- 示例:
原:"你算什么东西?"他说。
改:"你算什么东西?"他冷笑一声,眼神一冷。
## 4. 网文感关键词分析
生成剧本:
- 网文感关键词:0.5个/100字 ⚠️
- 分布:情绪强化(0.2), 态度词(0.1), 气场词(0.1), 反转词(0.1), 打脸词(0)
参考剧本:
- 网文感关键词:2个/100字
- 分布:情绪强化(0.8), 态度词(0.4), 气场词(0.3), 反转词(0.3), 打脸词(0.2)
问题:
- 网文感严重不足
- AI味较重
建议:
- 增加情绪强化词(冷笑、嗤笑、冷哼等)
- 增加态度词(不屑、轻蔑、讥讽等)
- 增加反转词(没想到、竟然、居然等)
## 5. 节奏感分析
生成剧本:
- 场景数:6个 ⚠️
- 平均场景长度:180字 ⚠️
- 长度方差:低 ⚠️
参考剧本:
- 场景数:8.5个
- 平均场景长度:120字
- 长度方差:中等
问题:
- 场景数偏少
- 场景过长
- 节奏单
Read more
name: style-analysis-skill description: 风格分析技能。分析生成剧本的语言风格,对比爆款剧本,确保网文感和可读性。
风格分析技能
必读
1. `../../references/00-first-principles.md` — 第一性原则(可拍性、留存性) 2. `../../references/03-script-writing-standard.md` — 剧本写作标准(句长、对话比、视觉标记、网文感关键词) 3. `../../references/12-genre-specific-techniques.md` — 类型化技巧(男频/女频风格差异)
功能
深度分析剧本的语言风格,确保生成的剧本具有网文感、节奏感和可读性。
分析维度
1. 句长分析
**统计方法**:
import re
def analyze_sentence_length(script):
# 按句号、问号、感叹号分句
sentences = re.split(r'[。!?]', script)
sentences = [s.strip() for s in sentences if s.strip()]
lengths = [len(s) for s in sentences]
return {
'avg_length': sum(lengths) / len(lengths),
'short_ratio': len([l for l in lengths if l < 10]) / len(lengths),
'medium_ratio': len([l for l in lengths if 10 <= l < 20]) / len(lengths),
'long_ratio': len([l for l in lengths if l >= 20]) / len(lengths)
}**理想指标**:
- 平均句长:10-14字符
- 短句比例(<10字符):30-40%
- 中句比例(10-20字符):50-60%
- 长句比例(≥20字符):<10%
2. 对话比分析
**统计方法**:
def analyze_dialogue_ratio(script):
# 识别对话(引号内的内容)
dialogues = re.findall(r'[「『""]([^」』""]+)[」』""]', script)
dialogue_chars = sum(len(d) for d in dialogues)
total_chars = len(script)
return {
'dialogue_ratio': dialogue_chars / total_chars,
'dialogue_count': len(dialogues),
'avg_dialogue_length': dialogue_chars / len(dialogues) if dialogues else 0
}**理想指标**:
- 对话比:70-80%
- 对话数量:每1000字15-25条
- 平均对话长度:20-40字符
3. 视觉标记分析
**视觉标记列表**:
visual_markers = {
'表情': ['冷笑', '嗤笑', '冷哼', '微笑', '狞笑', '苦笑'],
'眼神': ['眼神一冷', '眸光一沉', '目光如炬', '眼中闪过', '瞳孔一缩'],
'动作': ['嘴角勾起', '挑眉', '皱眉', '咬牙', '握拳', '转身'],
'气场': ['气势汹汹', '霸气侧漏', '冷气逼人', '杀气腾腾']
}**统计方法**:
def analyze_visual_markers(script):
all_markers = []
for category, markers in visual_markers.items():
all_markers.extend(markers)
marker_count = sum(script.count(marker) for marker in all_markers)
chars_per_100 = len(script) / 100
return {
'markers_per_100': marker_count / chars_per_100,
'marker_distribution': {
category: sum(script.count(m) for m in markers)
for category, markers in visual_markers.items()
}
}**理想指标**:
- 视觉标记密度:3-5个/100字
- 分布均衡:各类标记都有使用
4. 网文感关键词分析
**网文感关键词**:
wanwen_keywords = {
'情绪强化': ['冷笑', '嗤笑', '冷哼', '冷声', '冷冷地'],
'态度词': ['不屑', '轻蔑', '讥讽', '嘲讽', '鄙夷'],
'气场词': ['霸气', '强势', '凌厉', '锐利', '凛然'],
'反转词': ['没想到', '竟然', '居然', '原来', '突然'],
'打脸词': ['啪啪打脸', '狠狠打脸', '当场打脸', '脸色一变']
}**统计方法**:
def analyze_wanwen_keywords(script):
all_keywords = []
for category, keywords in wanwen_keywords.items():
all_keywords.extend(keywords)
keyword_count = sum(script.count(kw) for kw in all_keywords)
chars_per_100 = len(script) / 100
return {
'keywords_per_100': keyword_count / chars_per_100,
'keyword_distribution': {
category: sum(script.count(kw) for kw in keywords)
for category, keywords in wanwen_keywords.items()
}
}**理想指标**:
- 网文感关键词:1.5-2.5个/100字
- 分布:情绪强化词最多,其他均衡
5. 节奏感分析
**统计方法**:
def analyze_rhythm(script):
# 按场景分割
scenes = re.split(r'场景\d+|第\d+场', script)
scene_lengths = [len(s) for s in scenes if s.strip()]
return {
'scene_count': len(scene_lengths),
'avg_scene_length': sum(scene_lengths) / len(scene_lengths),
'length_variance': calculate_variance(scene_lengths),
'rhythm_score': calculate_rhythm_score(scene_lengths)
}**理想指标**:
- 场景数:7-10个/集
- 平均场景长度:100-150字
- 长度方差:适中(有变化但不极端)
对比分析
Step 1: 统计生成剧本
generated_style = {
'sentence': analyze_sentence_length(generated_script),
'dialogue': analyze_dialogue_ratio(generated_script),
'visual': analyze_visual_markers(generated_script),
'wanwen': analyze_wanwen_keywords(generated_script),
'rhythm': analyze_rhythm(generated_script)
}Step 2: 统计参考剧本
reference_styles = [
{
'sentence': analyze_sentence_length(ref),
'dialogue': analyze_dialogue_ratio(ref),
'visual': analyze_visual_markers(ref),
'wanwen': analyze_wanwen_keywords(ref),
'rhythm': analyze_rhythm(ref)
}
for ref in reference_scripts
]
# 计算平均值
reference_avg = average(reference_styles)Step 3: 对比并生成报告
report = {
'sentence_analysis': compare_sentence(generated_style, reference_avg),
'dialogue_analysis': compare_dialogue(generated_style, reference_avg),
'visual_analysis': compare_visual(generated_style, reference_avg),
'wanwen_analysis': compare_wanwen(generated_style, reference_avg),
'rhythm_analysis': compare_rhythm(generated_style, reference_avg)
}输出格式
【风格分析报告】 ## 1. 句长分析 生成剧本: - 平均句长:18字符 ⚠️ - 短句比例:20% ⚠️ - 中句比例:60% ✓ - 长句比例:20% ⚠️ 参考剧本: - 平均句长:12字符 - 短句比例:35% - 中句比例:55% - 长句比例:10% 问题: - 句子偏长,缺乏短句 - 长句比例过高 建议: - 将长句拆分为2-3个短句 - 增加短句比例到30%以上 - 示例: 原:她看着他,心中涌起一股复杂的情绪,既有愤怒也有不甘。 改:她看着他。心中涌起复杂情绪。既愤怒,也不甘。 ## 2. 对话比分析 生成剧本: - 对话比:45% ⚠️ - 对话数量:12条/1000字 ⚠️ - 平均对话长度:35字符 ✓ 参考剧本: - 对话比:72% - 对话数量:20条/1000字 - 平均对话长度:30字符 问题: - 对话比严重偏低 - 叙述性文字过多 建议: - 将叙述改为对话 - 增加人物互动 - 示例: 原:她很生气,觉得他太过分了。 改:"你太过分了!"她愤怒地说。 ## 3. 视觉标记分析 生成剧本: - 视觉标记:1个/100字 ⚠️ - 分布:表情(0.5), 眼神(0.3), 动作(0.2), 气场(0) 参考剧本: - 视觉标记:4个/100字 - 分布:表情(1.5), 眼神(1.0), 动作(1.0), 气场(0.5) 问题: - 视觉标记严重不足 - 缺乏气场描写 建议: - 增加表情描写(冷笑、嗤笑等) - 增加眼神描写(眼神一冷、眸光一沉等) - 增加气场描写(霸气、强势等) - 示例: 原:"你算什么东西?"他说。 改:"你算什么东西?"他冷笑一声,眼神一冷。 ## 4. 网文感关键词分析 生成剧本: - 网文感关键词:0.5个/100字 ⚠️ - 分布:情绪强化(0.2), 态度词(0.1), 气场词(0.1), 反转词(0.1), 打脸词(0) 参考剧本: - 网文感关键词:2个/100字 - 分布:情绪强化(0.8), 态度词(0.4), 气场词(0.3), 反转词(0.3), 打脸词(0.2) 问题: - 网文感严重不足 - AI味较重 建议: - 增加情绪强化词(冷笑、嗤笑、冷哼等) - 增加态度词(不屑、轻蔑、讥讽等) - 增加反转词(没想到、竟然、居然等) ## 5. 节奏感分析 生成剧本: - 场景数:6个 ⚠️ - 平均场景长度:180字 ⚠️ - 长度方差:低 ⚠️ 参考剧本: - 场景数:8.5个 - 平均场景长度:120字 - 长度方差:中等 问题: - 场景数偏少 - 场景过长 - 节奏单
多 Agent、多 Skill 的小说改编影视流水线:把长篇小说、故事梗概或短剧素材,系统化转成改编分析、分集规划、剧本、审核报告、分镜方案、图片/视频提示词。
Other skills on novel-to-script-team.
art-direction-review-s…
服化道审核技能。用于审核阶段二服化道设计产出(人物设定提示词、场景环境提示词),通过逐项比对、脑内预演和评分制确保造型准确、风格一致、提示词可执行。
comparative-review-ski…
对比审核技能。对比生成剧本与爆款剧本的节奏、对话、情绪、框架,给出PASS/FAIL判断和改进建议。

