clean-component-removal について
Apple Silicon 搭載 macOS で Kokoro TTS と Telegram bot のコンポーネントを削除する手順をまとめたスキルです。確認を挟んで順序どおりに停止・削除し、指定データは既定で保持します。
主な機能
- 01Bot と TTS を順序立てて削除
- 02全体・一部・個別の削除に対応
- 03破壊的操作前の確認
- 04モデルキャッシュとソースを既定で保持
- 05削除後の検証チェックリスト
活用シーン
- 01再インストール前の Kokoro TTS 削除
- 02Telegram bot プロセスのみの停止
- 03一時 TTS ファイルとシェルシンボリックリンクの削除
- 04再利用データを残したコンポーネントの一括撤去
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill clean-component-removalインストール後、Claude Code で/clean-component-removalを入力して読み込まれたか確認します。
同梱ファイルreferences/evolution-log.md
詳細
コンポーネントのクリーンな削除
孤立したプロセスや古い状態が残らないよう、適切な順序で TTS と Telegram ボットのコンポーネントを終了します。
プラットフォーム:macOS(Apple Silicon)
自己進化するスキル:このスキルは使用を通じて改善されます。手順が誤っている、パラメーターにずれが生じている、回避策が必要になった場合は、後回しにせず、直ちにこのファイルを修正してください。実際に再現できる問題がある場合のみ更新してください。
このスキルを使用する場面
- ユーザーが Kokoro TTS エンジンをアンインストールしたい場合
- ユーザーが Telegram ボットを削除したい場合
- ユーザーが TTS 関連のファイルをすべてクリーンアップしたい場合
- ユーザーが再インストール前にすべてを完全に削除したい場合
- ユーザーが特定のコンポーネントだけを選んで削除したい場合
要件
- 特別なツールは不要です(削除には
rm、pkill、インストールスクリプトのみを使用します) - 破壊的な操作の前にユーザーの確認が必要です
削除順序
孤立したプロセスやロックの競合を避けるには、削除の順序が重要です。コンポーネントは次の順番で終了してください。
| 手順 | コンポーネント | コマンド | 元に戻せるか |
|---|---|---|---|
| 1 | ボットプロセス | pkill -f 'bun.*src/main.ts' | はい(ボットを再起動) |
| 2 | Kokoro 仮想環境 | kokoro-install.sh --uninstall | はい(再インストール) |
| 3 | シェルのシンボリックリンク | rm -f ~/.local/bin/tts_*.sh | はい(リンクを再作成) |
| 4 | 一時ファイル | rm -f /tmp/kokoro-tts-*.wav /tmp/kokoro-tts.lock | 該当なし |
| 5 | シークレット(任意) | rm -f ~/.claude/.secrets/ccterrybot-telegram | 再作成が必要です |
削除されないもの(明示的に依頼された場合を除く)
簡単に再インストールできるよう、これらはデフォルトで保持されます。
| リソース | パス | 保持する理由 |
|---|---|---|
| モデルキャッシュ | ~/.cache/huggingface/hub/models--hexgrad--Kokoro-82M | 約400MBのダウンロードが再利用可能 |
| ボットのソースコード | ~/.claude/automation/claude-telegram-sync/ | Gitで追跡されており、一時的なものではありません |
| mise.toml 設定 | ~/.claude/automation/claude-telegram-sync/mise.toml | 設定の信頼できる唯一の情報源 |
| Launchd ログ | ~/.local/state/launchd-logs/telegram-bot/ | ログローテーションによって整理されます |
| NDJSON 監査ログ | ~/.claude/automation/claude-telegram-sync/logs/audit/ | 14日分を自動でローテーションします |
ワークフローのフェーズ
フェーズ 1:確認
AskUserQuestion を使用して、削除するコンポーネントを確認します。次の選択肢を提示してください。
- すべて削除 -- すべてを削除します(手順1~4。シークレットについて確認します)
- TTS のみ -- Kokoro 仮想環境、シンボリックリンク、一時ファイルを削除します(手順2~4)
- ボットのみ -- ボットプロセスを停止します(手順1のみ)
- 選択して削除 -- ユーザーに個別の手順を選んでもらいます
フェーズ 2:ボットプロセスを停止
# Check if bot is running
pgrep -la 'bun.*src/main.ts'
# Stop it
pkill -f 'bun.*src/main.ts' || echo "Bot was not running"
フェーズ 3:Kokoro 仮想環境を削除
# Uses kokoro-install.sh --uninstall (removes venv, keeps model cache)
~/eon/cc-skills/plugins/tts-tg-sync/scripts/kokoro-install.sh --uninstall
フェーズ 4:シンボリックリンクを削除
# List existing symlinks first
ls -la ~/.local/bin/tts_*.sh 2>/dev/null
# Remove them
rm -f ~/.local/bin/tts_*.sh
フェーズ 5:一時ファイルをクリーンアップ
rm -f /tmp/kokoro-tts-*.wav
rm -f /tmp/kokoro-tts.lock
フェーズ 6:シークレットを任意で削除
明示的にユーザーの確認があった場合に限ります。
# Show what would be removed
ls -la ~/.claude/.secrets/ccterrybot-telegram
# Remove (requires confirmation)
rm -f ~/.claude/.secrets/ccterrybot-telegram
TodoWrite タスクテンプレート
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
変更後のチェックリスト
- ボットプロセスが実行されていない(
pgrep -la 'bun.*src/main.ts'の結果が空) - Kokoro 仮想環境が削除されている(
ls ~/.local/share/kokoro/.venvの結果が「No such file」) - シンボリックリンクが削除されている(
ls ~/.local/bin/tts_*.shの結果が「No such file」) - 古いロックファイルが残っていない(
ls /tmp/kokoro-tts.lockの結果が「No such file」) - 孤立した音声プロセスがない(
pgrep -x afplayの結果が空)
トラブルシューティング
| 問題 | 考えられる原因 | 解決方法 |
|---|---|---|
| 削除後もシンボリックリンクが残っている | Glob の不一致または権限の問題 | ls -la ~/.local/bin/tts_* を実行し、各リンクを rm -f で削除します |
| 削除後に古いロックが残っている | プロセスがクリーンアップせずに終了した | rm -f /tmp/kokoro-tts.lock を実行します |
| モデルキャッシュが容量を圧迫している | HuggingFace のキャッシュに約 400MB | rm -rf ~/.cache/huggingface/hub/models--hexgrad--Kokoro-82M を実行します |
| kill 後に Bot が再起動する | launchd から --watch 付きで起動した | launchctl list を確認し、該当するエージェントを探します |
| teardown 後も音声が再生され続ける | afplay プロセスが Bot より長く存続する | pkill -x afplay を実行します |
参考ドキュメント
- 進化ログ -- このスキルの変更履歴
実行後の振り返り
このスキルの実行が完了したら、タスクを終了する前に振り返ります。
- 自分の場所を確認します。 — この SKILL.md の正規パスを(このスキル名で Glob を実行して)見つけてから編集します。修正対象は必ずこのファイルと同階層の references/ です。他のドキュメントは対象にしません。
- 何が失敗しましたか? — 失敗の原因となった指示を修正します。同じ失敗が再発する可能性があれば、アンチパターンとして追加します。
- 予想以上にうまくいったことは何ですか? — 推奨プラクティスとして取り入れます。その理由も記録します。
- 何が現状とずれていましたか? — 実態と一致しなくなったスクリプト、参考資料、外部依存関係は、今すぐ修正します。
- 記録します。 — すべての変更について、きっかけ、修正内容、根拠を記載した進化ログを残します。
先送りしないでください。次回の実行では、ここに残した状態が引き継がれます。
コメント
Markdown 対応