bitwize-music-studio

explicit-checker

2
0
# Install this skill:
npx skills add bitwize-music-studio/claude-ai-music-skills --skill "explicit-checker"

Install specific skill from multi-skill repository

# Description

Scan lyrics for explicit content, verify explicit flags match actual content

# SKILL.md


name: explicit-checker
description: Scan lyrics for explicit content, verify explicit flags match actual content
argument-hint:
model: claude-sonnet-4-5-20250929
allowed-tools:
- Read
- Glob
- Grep


Your Task

Path to scan: $ARGUMENTS

  1. Scan all lyrics for explicit words
  2. Report findings with word counts per track
  3. Flag mismatches (explicit content but flag says No, or vice versa)
  4. Provide summary suitable for distributor submission

Explicit Content Checker

You scan lyrics for explicit content to ensure proper flagging before release.


Explicit Words (Require Explicit = Yes)

These words and variations require the explicit flag:

Category Words
F-word fuck, fucking, fucked, fucker, motherfuck, motherfucker
S-word shit, shitting, shitty, bullshit
B-word bitch, bitches
C-words cunt, cock, cocks
D-word dick, dicks
P-word pussy, pussies
A-word asshole, assholes
Slurs whore, slut, n-word, f-word (slur)
Profanity goddamn, goddammit

Clean Words (No Explicit Flag Needed)

These are acceptable without explicit flag:
- damn, hell, crap, ass, bastard, piss

Note: "damn" alone is clean, but "goddamn" is explicit.


Override Support

Check for custom explicit words list:

Loading Override

  1. Read ~/.bitwize-music/config.yaml β†’ paths.overrides
  2. Check for {overrides}/explicit-words.md
  3. If exists: parse and merge with base list
  4. If not exists: use base list only

Override File Format

{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)

Merge Behavior

  1. Start with base explicit word list
  2. Add any words from "Additional Explicit Words" section
  3. Remove any words from "Not Explicit" section
  4. Merged list used for scanning

Example:
- Base list has: fuck, shit, hell, damn
- Override adds: slang-term
- Override removes: hell, damn
- Final list: fuck, shit, slang-term


Workflow

For Album Path

  1. Find all track files:
    Glob: [album-path]/tracks/*.md

  2. For each track:

  3. Read the Lyrics section
  4. Scan for explicit words (case-insensitive)
  5. Note the track's Explicit flag setting
  6. Record any matches

  7. Generate report

For Single Track

  1. Read the track file
  2. Scan Lyrics section for explicit words
  3. Check Explicit flag
  4. Report findings

Output Format

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 Detection

Flag Says No, Content Is Explicit

⚠️ MISMATCH: Track contains explicit content but Explicit flag is "No"
ACTION: Set Explicit: Yes in track file

Flag Says Yes, Content Is Clean

ℹ️ 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)

Distributor Requirements

Most distributors (DistroKid, TuneCore, CD Baby) require:
- Track-level flags: Each track marked explicit or clean
- Album-level flag: If ANY track is explicit, album is explicit
- Consistent metadata: Flag must match actual content

Consequences of wrong flags:
- Explicit content marked clean β†’ Potential removal from platforms, account issues
- Clean content marked explicit β†’ Reduced reach (filtered from some playlists) but no penalty

Rule: When in doubt, mark explicit. Under-flagging is worse than over-flagging.


Integration

This skill is called during:
1. Ready to Generate Checkpoint - Before Suno generation
2. Album Completion Checklist - Before release
3. Manual review - Anytime with /explicit-checker [path]


Example Invocations

/explicit-checker artists/[artist]/albums/rock/dark-tide/
/explicit-checker artists/[artist]/albums/rock/dark-tide/tracks/01-the-tank.md

Remember

  • Load override first - Check for {overrides}/explicit-words.md before scanning
  • Case-insensitive matching (Fuck = fuck = FUCK)
  • Check variations (fucking, fucked, fucker)
  • Phonetic spellings count (fuk, sh1t if intentional)
  • Context matters less than presence - if the word is there, flag it
  • Album is explicit if ANY track is explicit
  • Override additions - Add artist/genre-specific explicit words
  • Override removals - Remove words for specific contexts (historical, literary)

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.