关于 explicit-checker
用于发行前检查歌词显式内容的技能,可按曲目统计命中词并核对显式标记。支持加载自定义词汇覆盖,并生成适合发行商提交的汇总。
主要功能
- 01扫描歌词中的显式词汇
- 02按曲目统计并标注行号
- 03核对内容与显式标记
- 04合并自定义词汇覆盖
- 05生成发行提交汇总
适用场景
- 01发行前检查专辑各曲歌词
- 02找出标记为干净但含显式词汇的曲目
- 03整理发行商所需的显式内容报告
MCP 相关
使用 MCP 工具读取曲目和歌词、检查显式内容并获取标记信息;检查工具会自动合并用户自定义词汇覆盖。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bitwize-music-studio/ claude-ai-music-skills --skill explicit-checker安装后在 Claude Code 中输入/explicit-checker确认已加载。
详细介绍
你的任务
扫描路径:$ARGUMENTS
- 扫描所有歌词,查找露骨词汇
- 按曲目报告发现情况及词汇计数
- 标记不一致的情况(有露骨内容但标记为否,或反之)
- 提供适用于提交给发行商的摘要
露骨内容检查器
扫描歌词中的露骨内容,确保发行前正确标记。
露骨词汇(需要将 Explicit 标记为 Yes)
以下词汇及其变体需要标记为露骨:
| 类别 | 词汇 |
|---|---|
| F 词 | fuck、fucking、fucked、fucker、motherfuck、motherfucker |
| S 词 | shit、shitting、shitty、bullshit |
| B 词 | bitch、bitches |
| C 词 | cunt、cock、cocks |
| D 词 | dick、dicks |
| P 词 | pussy、pussies |
| A 词 | asshole、assholes |
| 侮辱性称谓 | whore、slut、n-word、f-word(侮辱性称谓) |
| 亵渎用语 | goddamn、goddammit |
清洁词汇(无需标记为露骨)
以下词汇无需标记为露骨:
- damn、hell、crap、ass、bastard、piss
注意:“damn”单独使用时不算露骨,但“goddamn”算露骨。
覆盖项支持
MCP check_explicit_content 工具会自动从 {overrides}/explicit-words.md 加载并合并用户覆盖项。无需手动读取配置或编写合并逻辑——传入歌词文本即可获得应用覆盖项后的结果。
覆盖文件格式
{overrides}/explicit-words.md:
# Custom Explicit Words
## Additional Explicit Words
- slang-term
- regional-profanity
- artist-specific-explicit
## Not Explicit (Override Base)
- hell (context: historical/literary)
- damn (context: emphasis)
工作流程
专辑路径
- 调用
list_tracks(album_slug)——获取所有曲目及元数据 - 对每首曲目:
- 调用
extract_section(album_slug, track_slug, "lyrics")——获取歌词文本 - 调用
check_explicit_content(lyrics_text)——返回匹配项及行号(自动合并覆盖项) - 从曲目元数据中获取 Explicit 标记
- 比较标记与内容
- 调用
- 生成报告
单首曲目
- 调用
extract_section(album_slug, track_slug, "lyrics")——获取歌词文本 - 调用
check_explicit_content(lyrics_text)——扫描露骨词汇 - 通过
get_track(album_slug, track_slug)从曲目元数据中获取 Explicit 标记 - 报告发现情况
输出格式
EXPLICIT CONTENT SCAN
Album: [Album Name]
Date: [Scan Date]
TRACK RESULTS:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Track 01: [Title]
Flag: No
Content: Clean
Status: ✓ OK
Track 02: [Title]
Flag: Yes
Content: fuck (3), shit (2), bitch (1)
Status: ✓ OK (flag matches content)
Track 03: [Title]
Flag: No
Content: fuck (1)
Status: ⚠️ MISMATCH - Contains explicit content but flag is No
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SUMMARY:
Total tracks: 10
Clean tracks: 7
Explicit tracks: 3
Mismatches: 1
ALBUM EXPLICIT FLAG: Yes (any track explicit = album explicit)
ACTION REQUIRED:
- Track 03: Set Explicit flag to Yes
不一致情况检测
标记为否,但内容露骨
⚠️ MISMATCH: Track contains explicit content but Explicit flag is "No"
ACTION: Set Explicit: Yes in track file
标记为是,但内容清洁
ℹ️ NOTE: Track flagged explicit but no explicit words found
This is OK - artist may want explicit flag for themes/context
No action required (conservative flagging is fine)
发行商要求
大多数发行商(DistroKid、TuneCore、CD Baby)要求:
- 曲目级标记:将每首曲目标记为露骨或清洁
- 专辑级标记:只要有任意一首曲目露骨,整张专辑就应标记为露骨
- 元数据一致:标记必须与实际内容相符
错误标记的后果:
- 露骨内容标记为清洁 → 可能被平台下架,或导致账户问题
- 清洁内容标记为露骨 → 覆盖范围缩小(会从部分播放列表中过滤),但不会受到处罚
规则:拿不准时,就标记为露骨。漏标比过度标记更糟。
集成
此技能会在以下情况下调用:
- 准备生成检查点——Suno 生成之前
- 专辑完成清单——发行之前
- 手动审查——随时使用
/explicit-checker [path]
调用示例
/explicit-checker artists/[artist]/albums/rock/dark-tide/
/explicit-checker artists/[artist]/albums/rock/dark-tide/tracks/01-the-tank.md
请记住
- 匹配不区分大小写(Fuck = fuck = FUCK)
- 检查词汇变体(fucking、fucked、fucker)
- 语音拼写也计入(有意使用的 fuk、sh1t)
- 语境的影响小于词汇本身——只要出现该词,就标记为露骨
- 只要有任意一首曲目露骨,整张专辑就属于露骨内容
- 添加覆盖项——添加适用于特定艺人或流派的露骨词汇
- 移除覆盖项——针对特定语境(历史、文学)移除词汇
评论
支持 Markdown