mcpField
E
explicit-checker

explicit-checker

github.com/bitwize-music-studio创意与媒体603222 次安装2 周前更新
代码仓库

关于 explicit-checker

用于发行前检查歌词显式内容的技能,可按曲目统计命中词并核对显式标记。支持加载自定义词汇覆盖,并生成适合发行商提交的汇总。

主要功能

  1. 01扫描歌词中的显式词汇
  2. 02按曲目统计并标注行号
  3. 03核对内容与显式标记
  4. 04合并自定义词汇覆盖
  5. 05生成发行提交汇总

适用场景

  1. 01发行前检查专辑各曲歌词
  2. 02找出标记为干净但含显式词汇的曲目
  3. 03整理发行商所需的显式内容报告

MCP 相关

使用 MCP 工具读取曲目和歌词、检查显式内容并获取标记信息;检查工具会自动合并用户自定义词汇覆盖。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bitwize-music-studio/claude-ai-music-skills --skill explicit-checker

安装后在 Claude Code 中输入/explicit-checker确认已加载。

详细介绍

你的任务

扫描路径:$ARGUMENTS

  1. 扫描所有歌词,查找露骨词汇
  2. 按曲目报告发现情况及词汇计数
  3. 标记不一致的情况(有露骨内容但标记为否,或反之)
  4. 提供适用于提交给发行商的摘要

露骨内容检查器

扫描歌词中的露骨内容,确保发行前正确标记。


露骨词汇(需要将 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)

工作流程

专辑路径
  1. 调用 list_tracks(album_slug)——获取所有曲目及元数据
  2. 对每首曲目:
    • 调用 extract_section(album_slug, track_slug, "lyrics")——获取歌词文本
    • 调用 check_explicit_content(lyrics_text)——返回匹配项及行号(自动合并覆盖项)
    • 从曲目元数据中获取 Explicit 标记
    • 比较标记与内容
  3. 生成报告
单首曲目
  1. 调用 extract_section(album_slug, track_slug, "lyrics")——获取歌词文本
  2. 调用 check_explicit_content(lyrics_text)——扫描露骨词汇
  3. 通过 get_track(album_slug, track_slug) 从曲目元数据中获取 Explicit 标记
  4. 报告发现情况

输出格式

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)要求:

  • 曲目级标记:将每首曲目标记为露骨或清洁
  • 专辑级标记:只要有任意一首曲目露骨,整张专辑就应标记为露骨
  • 元数据一致:标记必须与实际内容相符

错误标记的后果:

  • 露骨内容标记为清洁 → 可能被平台下架,或导致账户问题
  • 清洁内容标记为露骨 → 覆盖范围缩小(会从部分播放列表中过滤),但不会受到处罚

规则:拿不准时,就标记为露骨。漏标比过度标记更糟。


集成

此技能会在以下情况下调用:

  1. 准备生成检查点——Suno 生成之前
  2. 专辑完成清单——发行之前
  3. 手动审查——随时使用 /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