mcpField
C
clean-component-removal

clean-component-removal

github.com/terrylicaOther1108 installsUpdated 1d ago
Repository

About clean-component-removal

A procedural skill for removing Kokoro TTS and Telegram bot components on macOS with Apple Silicon. It sequences shutdown and cleanup, asks for confirmation before destructive actions, and preserves selected data by default.

Key features

  1. 01Ordered bot and TTS teardown
  2. 02Full, partial, or selective removal
  3. 03Confirmation before destructive actions
  4. 04Preserves model cache and source by default
  5. 05Post-removal verification checklist

Use cases

  1. 01Uninstall Kokoro TTS before reinstalling
  2. 02Remove only the Telegram bot process
  3. 03Clean temporary TTS files and shell symlinks
  4. 04Perform a full teardown while retaining reusable data

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/terrylica/cc-skills --skill clean-component-removal

After installing, type/clean-component-removalin Claude Code to confirm it loaded.

Bundled filesreferences/evolution-log.md

Details

From the project README

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)


Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

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.

StepComponentCommandReversible?
1Bot processpkill -f 'bun.*src/main.ts'Yes (restart bot)
2Kokoro venvkokoro-install.sh --uninstallYes (reinstall)
3Shell symlinksrm -f ~/.local/bin/tts_*.shYes (re-symlink)
4Temp filesrm -f /tmp/kokoro-tts-*.wav /tmp/kokoro-tts.lockN/A
5Secrets (optional)rm -f ~/.claude/.secrets/ccterrybot-telegramRequires re-creation

What Is NOT Removed (Unless Explicitly Asked)

These are preserved by default to allow easy reinstallation:

ResourcePathWhy 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.tomlConfiguration 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-tg-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

ProblemLikely CauseFix
Symlinks still exist after removalGlob mismatch or permissionls -la ~/.local/bin/tts_* then rm -f each one
Stale lock after removalProcess died without cleanuprm -f /tmp/kokoro-tts.lock
Model cache taking space~400MB in HuggingFace cacherm -rf ~/.cache/huggingface/hub/models--hexgrad--Kokoro-82M
Bot respawns after killLaunched with --watch from launchdCheck launchctl list for relevant agents
Audio still playing after teardownafplay process outlives botpkill -x afplay

Reference Documentation

Post-Execution Reflection

After this skill completes, reflect before closing the task:

  1. Locate yourself. — Find this SKILL.md's canonical path (Glob for this skill's name) before editing. All corrections target THIS file and its sibling references/ — never other documentation.
  2. What failed? — Fix the instruction that caused it. If it could recur, add it as an anti-pattern.
  3. What worked better than expected? — Promote it to recommended practice. Document why.
  4. What drifted? — Any script, reference, or external dependency that no longer matches reality gets fixed now.
  5. Log it. — Every change gets an evolution-log entry with trigger, fix, and evidence.

Do NOT defer. The next invocation inherits whatever you leave behind.



Comments

Markdown supported