{"id":"explicit-checker","name":"explicit-checker","summary":"歌詞の露骨な内容をスキャンし、露骨なフラグが実際の内容と一致しているかを確認します。正確なコンテンツ評価を確保するために、Sunoの生成やリリース前に使用してください。","body":"## Your Task\n\n**Path to scan**: $ARGUMENTS\n\n1. Scan all lyrics for explicit words\n2. Report findings with word counts per track\n3. Flag mismatches (explicit content but flag says No, or vice versa)\n4. Provide summary suitable for distributor submission\n\n---\n\n# Explicit Content Checker\n\nYou scan lyrics for explicit content to ensure proper flagging before release.\n\n---\n\n## Explicit Words (Require Explicit = Yes)\n\nThese words and variations require the explicit flag:\n\n| Category | Words |\n|----------|-------|\n| **F-word** | fuck, fucking, fucked, fucker, motherfuck, motherfucker |\n| **S-word** | shit, shitting, shitty, bullshit |\n| **B-word** | bitch, bitches |\n| **C-words** | cunt, cock, cocks |\n| **D-word** | dick, dicks |\n| **P-word** | pussy, pussies |\n| **A-word** | asshole, assholes |\n| **Slurs** | whore, slut, n-word, f-word (slur) |\n| **Profanity** | goddamn, goddammit |\n\n---\n\n## Clean Words (No Explicit Flag Needed)\n\nThese are acceptable without explicit flag:\n- damn, hell, crap, ass, bastard, piss\n\nNote: \"damn\" alone is clean, but \"goddamn\" is explicit.\n\n---\n\n## Override Support\n\nThe MCP `check_explicit_content` tool automatically loads and merges user overrides from `{overrides}/explicit-words.md`. No manual config read or merge logic needed — pass lyrics text and get results with overrides applied.\n\n### Override File Format\n\n**`{overrides}/explicit-words.md`:**\n```markdown\n# Custom Explicit Words\n\n## Additional Explicit Words\n- slang-term\n- regional-profanity\n- artist-specific-explicit\n\n## Not Explicit (Override Base)\n- hell (context: historical/literary)\n- damn (context: emphasis)\n```\n\n---\n\n## Workflow\n\n### For Album Path\n\n1. Call `list_tracks(album_slug)` — get all tracks with metadata\n2. For each track:\n   - Call `extract_section(album_slug, track_slug, \"lyrics\")` — get lyrics text\n   - Call `check_explicit_content(lyrics_text)` — returns matches with line numbers (overrides auto-merged)\n   - Get Explicit flag from track metadata\n   - Compare flag vs. content\n3. Generate report\n\n### For Single Track\n\n1. Call `extract_section(album_slug, track_slug, \"lyrics\")` — get lyrics text\n2. Call `check_explicit_content(lyrics_text)` — scan for explicit words\n3. Get Explicit flag from track metadata via `get_track(album_slug, track_slug)`\n4. Report findings\n\n---\n\n## Output Format\n\n```\nEXPLICIT CONTENT SCAN\nAlbum: [Album Name]\nDate: [Scan Date]\n\nTRACK RESULTS:\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\nTrack 01: [Title]\n  Flag: No\n  Content: Clean\n  Status: ✓ OK\n\nTrack 02: [Title]\n  Flag: Yes\n  Content: fuck (3), shit (2), bitch (1)\n  Status: ✓ OK (flag matches content)\n\nTrack 03: [Title]\n  Flag: No\n  Content: fuck (1)\n  Status: ⚠️ MISMATCH - Contains explicit content but flag is No\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\nSUMMARY:\n  Total tracks: 10\n  Clean tracks: 7\n  Explicit tracks: 3\n  Mismatches: 1\n\nALBUM EXPLICIT FLAG: Yes (any track explicit = album explicit)\n\nACTION REQUIRED:\n  - Track 03: Set Explicit flag to Yes\n```\n\n---\n\n## Mismatch Detection\n\n### Flag Says No, Content Is Explicit\n```\n⚠️ MISMATCH: Track contains explicit content but Explicit flag is \"No\"\nACTION: Set Explicit: Yes in track file\n```\n\n### Flag Says Yes, Content Is Clean\n```\nℹ️ NOTE: Track flagged explicit but no explicit words found\nThis is OK - artist may want explicit flag for themes/context\nNo action required (conservative flagging is fine)\n```\n\n---\n\n## Distributor Requirements\n\nMost distributors (DistroKid, TuneCore, CD Baby) require:\n- **Track-level flags**: Each track marked explicit or clean\n- **Album-level flag**: If ANY track is explicit, album is explicit\n- **Consistent metadata**: Flag must match actual content\n\n**Consequences of wrong flags**:\n- Explicit content marked clean → Potential removal from platforms, account issues\n- Clean content marked explicit → Reduced reach (filtered from some playlists) but no penalty\n\n**Rule**: When in doubt, mark explicit. Under-flagging is worse than over-flagging.\n\n---\n\n## Integration\n\nThis skill is called during:\n1. **Ready to Generate Checkpoint** - Before Suno generation\n2. **Album Completion Checklist** - Before release\n3. **Manual review** - Anytime with `/explicit-checker [path]`\n\n---\n\n## Example Invocations\n\n```\n/explicit-checker artists/[artist]/albums/rock/dark-tide/\n/explicit-checker artists/[artist]/albums/rock/dark-tide/tracks/01-the-tank.md\n```\n\n---\n\n## Remember\n\n- Case-insensitive matching (Fuck = fuck = FUCK)\n- Check variations (fucking, fucked, fucker)\n- Phonetic spellings count (fuk, sh1t if intentional)\n- Context matters less than presence - if the word is there, flag it\n- Album is explicit if ANY track is explicit\n- **Override additions** - Add artist/genre-specific explicit words\n- **Override removals** - Remove words for specific contexts (historical, literary)","author":"@bitwize-music-studio","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/bitwize-music-studio/claude-ai-music-skills/tree/main/skills/explicit-checker","license":"CC0-1.0","category":"document","lang":"en","tokens":1212,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":["Read","Glob","Grep","bitwize-music-mcp"]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}