skills/terrylica/cc-skills/clean-component-removal

clean-component-removal

SKILL.md

Clean Component Removal

Orderly teardown of TTS and Telegram bot components with proper sequencing to avoid orphaned processes and stale state.

Platform: macOS (Apple Silicon)


When to Use This Skill

  • User wants to uninstall the Kokoro TTS engine
  • User wants to remove the Telegram bot
  • User wants to clean up all TTS-related files
  • User wants to do a full teardown before reinstallation
  • User wants to remove specific components selectively

Requirements

  • No special tools needed (removal uses only rm, pkill, and the install script)
  • User confirmation before destructive operations

Removal Order

The removal sequence matters. Components must be torn down in this order to avoid orphaned processes or lock contention.

Step Component Command Reversible?
1 Bot process pkill -f 'bun.*src/main.ts' Yes (restart bot)
2 Kokoro venv kokoro-install.sh --uninstall Yes (reinstall)
3 Shell symlinks rm -f ~/.local/bin/tts_*.sh Yes (re-symlink)
4 Temp files rm -f /tmp/kokoro-tts-*.wav /tmp/kokoro-tts.lock N/A
5 Secrets (optional) rm -f ~/.claude/.secrets/ccterrybot-telegram Requires re-creation

What Is NOT Removed (Unless Explicitly Asked)

These are preserved by default to allow easy reinstallation:

Resource Path Why Preserved
Model cache ~/.cache/huggingface/hub/models--hexgrad--Kokoro-82M ~400MB download, reusable
Bot source code ~/.claude/automation/claude-telegram-sync/ Git-tracked, not ephemeral
mise.toml config ~/.claude/automation/claude-telegram-sync/mise.toml Configuration SSoT
Launchd logs ~/.local/state/launchd-logs/telegram-bot/ Rotated by log-rotation
NDJSON audit ~/.claude/automation/claude-telegram-sync/logs/audit/ Self-rotating 14d

Workflow Phases

Phase 1: Confirmation

Use AskUserQuestion to confirm which components to remove. Present options:

  1. Full teardown -- Remove everything (steps 1-4, ask about secrets)
  2. TTS only -- Remove Kokoro venv + symlinks + temp files (steps 2-4)
  3. Bot only -- Stop bot process (step 1 only)
  4. Selective -- Let user pick individual steps

Phase 2: Stop Bot Process

# Check if bot is running
pgrep -la 'bun.*src/main.ts'

# Stop it
pkill -f 'bun.*src/main.ts' || echo "Bot was not running"

Phase 3: Remove Kokoro Venv

# Uses kokoro-install.sh --uninstall (removes venv, keeps model cache)
~/eon/cc-skills/plugins/tts-telegram-sync/scripts/kokoro-install.sh --uninstall

Phase 4: Remove Symlinks

# List existing symlinks first
ls -la ~/.local/bin/tts_*.sh 2>/dev/null

# Remove them
rm -f ~/.local/bin/tts_*.sh

Phase 5: Clean Temp Files

rm -f /tmp/kokoro-tts-*.wav
rm -f /tmp/kokoro-tts.lock

Phase 6: Optional Secret Removal

Only with explicit user confirmation:

# Show what would be removed
ls -la ~/.claude/.secrets/ccterrybot-telegram

# Remove (requires confirmation)
rm -f ~/.claude/.secrets/ccterrybot-telegram

TodoWrite Task Templates

1. [Confirm] Ask user which components to remove via AskUserQuestion
2. [Stop] Stop bot process
3. [Venv] Run kokoro-install.sh --uninstall
4. [Symlinks] Remove ~/.local/bin/ symlinks
5. [Temp] Clean /tmp/ TTS files
6. [Secrets] Optionally remove secrets (with confirmation)
7. [Verify] Confirm all selected components removed

Post-Change Checklist

  • Bot process is not running (pgrep -la 'bun.*src/main.ts' returns nothing)
  • Kokoro venv removed (ls ~/.local/share/kokoro/.venv returns "No such file")
  • Symlinks removed (ls ~/.local/bin/tts_*.sh returns "No such file")
  • No stale lock file (ls /tmp/kokoro-tts.lock returns "No such file")
  • No orphan audio processes (pgrep -x afplay returns nothing)

Troubleshooting

Problem Likely Cause Fix
Symlinks still exist after removal Glob mismatch or permission ls -la ~/.local/bin/tts_* then rm -f each one
Stale lock after removal Process died without cleanup rm -f /tmp/kokoro-tts.lock
Model cache taking space ~400MB in HuggingFace cache rm -rf ~/.cache/huggingface/hub/models--hexgrad--Kokoro-82M
Bot respawns after kill Launched with --watch from launchd Check launchctl list for relevant agents
Audio still playing after teardown afplay process outlives bot pkill -x afplay

Reference Documentation

Weekly Installs
38
GitHub Stars
19
First Seen
Feb 17, 2026
Installed on
opencode38
gemini-cli38
github-copilot38
codex38
kimi-cli38
amp38