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:
- Full teardown -- Remove everything (steps 1-4, ask about secrets)
- TTS only -- Remove Kokoro venv + symlinks + temp files (steps 2-4)
- Bot only -- Stop bot process (step 1 only)
- 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/.venvreturns "No such file") - Symlinks removed (
ls ~/.local/bin/tts_*.shreturns "No such file") - No stale lock file (
ls /tmp/kokoro-tts.lockreturns "No such file") - No orphan audio processes (
pgrep -x afplayreturns 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
- Evolution Log -- Change history for this skill
Weekly Installs
38
Repository
terrylica/cc-skillsGitHub Stars
19
First Seen
Feb 17, 2026
Security Audits
Installed on
opencode38
gemini-cli38
github-copilot38
codex38
kimi-cli38
amp38