Windows のブロート除去 (Debloat)
このスキルは、ユーザーが気にかけているものを失うことなく、煩雑な個人用 Windows PC を軽量なマシンに変えます。このようなリクエストのほとんどは曖昧で感情的なものです(「悪いものをすべて削除して、不要なものをすべて削除して」)。あなたの仕事は、それらをユーザーが承認した具体的なリストに変換し、確実に実行して結果を証明することです。
厳守すべきルールが2つあります。個人ファイルは、別の場所にコピーが存在するまで、このマシン上で決して破棄されません。ユーザーがリストを確認するまで、何もアンインストールまたは削除されません。
ワークフロー
1. 調査(読み取り専用)
同梱の調査スクリプトを実行します。これは何も変更しません。
powershell -NoProfile -ExecutionPolicy Bypass -File <skill-dir>/scripts/survey.ps1
これにより、ディスク、RAM、CPU、管理者権限の有無、ユーザーフォルダのサイズ(最大の Desktop/Documents/Downloads アイテム)、テンポラリおよびアップデートキャッシュのサイズ、スタートアップエントリ、インストール済み Win32 アプリとそのサイズ、Store アプリ、および最もメモリを使用しているプロセスが報告されます。これを読み、references/bloat-catalog.md のグループに分類してください。
2. 一度に、グループごとに確認する
多肢選択式の質問ツールがあればそれを使用し、平易な言葉で、サイズやRAMの数値を示して、各項目がなぜ重要かをユーザーに伝えてください。以下の内容をカバーし、それぞれにデフォルトを推奨してください。
- 個人ファイル。 1つのアーカイブフォルダ
C:\Archive\<YYYY-MM-DD>\に移動する(デフォルト:同一ドライブ上で即時、何も失わない)、Zip圧縮する、または後でアーカイブをマシンからコピーした後に削除する。 - アプリグループ。 重いサードパーティ製ブロートウェア、Windows/OEM ブロートウェア、個人用アプリ(チャット、ゲーム、エミュレータ、VM)、開発ツール。サーバーまたはエージェントマシンの場合、デフォルトで開発ツールを保持します。エージェントホストには Git、Node、Python、エディタ、JDK が必要だからです。ユーザーが明示的に要求した場合のみ削除します。
- スタートアップ。 必須でないものはすべて無効にするか、OneDrive などのクラウド同期は保持します。
ユーザーが「最大エージェント/スウォームを使用」と書いた場合、Windows インストーラーは互いにロックする(MSI エラー 1618)ため、アンインストールは1つずつ実行する必要があることを簡潔に説明してください。分割できるのは読み取り専用の調査だけです。
3. 個人ファイルをアーカイブする
同じボリューム内で Move-Item を使用します。これは名前の変更です。即座に実行され、ファイルはそのまま残ります。.lnk ショートカットと desktop.ini はそのままにしておきます。移動したアイテム数と失敗したアイテム数をカウントして報告します。ユーザーが別の場所(USB、クラウド)にコピーが存在することを確認するまで、アーカイブはマシン上に保持します。その確認後にのみ、アーカイブの削除を提案し、最初に確認してください。削除は元に戻せないからです。
4. ジャンクファイルをクリーンアップする(自分自身を傷つけずに)
%TEMP%では、1日より古いアイテムのみを削除し、claudeフォルダまたは自分のスクラッチパッド以下にあるものはスキップします。%TEMP%をすべてワイプすると、エージェント自身の作業ファイル(実行しようとしているスクリプトを含む)が削除される可能性があります。C:\Windows\TempとC:\Windows\SoftwareDistribution\Downloadは管理者権限が必要なため、昇格バッチ(ステップ6)に含めます。- ユーザーが同意した場合のみ、ごみ箱を空にします。
5. スタートアップをトリミングする(バックアップ付き)
Run キーの値を削除する前に、name = command の行を <archive>\startup-backup.txt に書き込みます。これにより、ユーザーが不足しているエントリを復元できます。HKCU の Run エントリは管理者権限なしで動作します。HKLM の Run エントリは昇格バッチに含めます。SecurityHealth(Windows セキュリティ)、オーディオ、ディスプレイドライバのエントリには決して触れないでください。
6. アンインストール
以下の順序で実行します。
-
Store アプリ(管理者権限不要): 各アプリに対して
Remove-AppxPackageを実行します。エラー0x80073CFAはアプリがシステムで保護されていることを意味します。報告して次に進みます。 -
ユーザーごとの Win32 アプリ(管理者権限不要):
HKCUに登録されているアプリ(Discord、ユーザーごとの Electron アプリなど)。まずそれらのプロセスを停止し、次にQuietUninstallStringを実行します。 -
マシン全体のアプリ(管理者権限必要):
scripts/elevated-uninstall.ps1を使用します。これはアプリ名のパターンを受け取り、レジストリから各アンインストールコマンドを解決し、1つの昇格スクリプトを書き込んで起動するため、ユーザーは10回ではなく1回の UAC プロンプトを承認するだけで済みます。すべてのステップをログに記録し、結果を待機します。powershell -NoProfile -ExecutionPolicy Bypass -File <skill-dir>/scripts/elevated-uninstall.ps1 ` -Patterns 'BlueStacks,WebAdvisor,Duet Display' -RemoveHklmRun 'Opera Browser Assistant' ` -WorkDir 'C:\Archive\2026-11-08' -CleanSystemTempパターンは、アプリの表示名に対して照合されるコンマ区切りの正規表現です。
Microsoft 365と指定すると、Office 自体にも一致する可能性があるため、具体的にしてください。最初に
-DryRunを指定して実行し、解決されたコマンドを何も実行せずに表示します。このスクリプトはすでに以下を処理します。- MSI アプリ:
msiexec /x {GUID} /qn /norestart。UninstallStringが空の場合(VMware Player にアンインストール文字列がなかった場合など)はレジストリキー名を使用します。 - 終了コード 1618(別のインストーラーが実行中):短時間待機して再試行します。
- Office Click-to-Run(Project、Visio):ARP コマンドに
DisplayLevel=Falseを追加。 - Inno Setup(
unins000.exe):/VERYSILENT /NORESTART。 - サイレントモードがないアンインストーラー(McAfee、Zotero、BlueStacks):インタラクティブに実行します。起動する前に、ユーザーに UAC プロンプトを承認し、これらのウィンドウをクリックスルーするように伝えてください。
- MSI アプリ:
-
その後、レジストリを再クエリします。残ったものがあれば、対象を絞って1回再試行します。残ったものは正直に報告します。
7. サーバー設定(ユーザーが実行します)
電源、スリープ、蓋、サービス設定はシステム設定です。これらを管理者 PowerShell で実行するコマンドとして、コードブロックごとに1つずつユーザーに提供し、それぞれの動作を説明します。
powercfg /change standby-timeout-ac 0
powercfg /change hibernate-timeout-ac 0
powercfg /setacvalueindex SCHEME_CURRENT SUB_BUTTONS LIDACTION 0
powercfg /setactive SCHEME_CURRENT
オプションとして、こちらもユーザーが決定します。大規模なクリーンアップの前に復元ポイントを作成する、Windows Update のアクティブ時間を設定する、ヘッドレス使用のために自動ログオンまたは「サインイン後にアプリを再起動する」を設定する、電源接続時にバランスまたは高パフォーマンスの電源プランを選択するなどです。
8. 確認と報告
クリーンアップ前後の空き容量を測定し、アプリとスタートアップのリストを再確認します。その後、以下を報告します。
- 完了: アーカイブの場所とアイテム数、削除したアプリ、無効にしたスタートアップエントリ、解放された空き容量(前 → 後)。
- 意図的に保持: 開発ツール、ブラウザ、Office、セキュリティソフトウェア、ドライバ、ランタイム。
- ユーザーに残された作業: PC の再起動、サーバー設定、マシンからのアーカイブのコピー。
決して削除しないもの
Defender / Microsoft.SecHealthUI、ドライバおよびオーディオ、ディスプレイ、タッチパッド用の OEM ドライバサービス、Microsoft.WindowsStore、Microsoft.DesktopAppInstaller (winget)、Windows Terminal、VC++ 再頒布可能パッケージ、.NET およびその他のフレームワーク (IsFramework)、Microsoft.XboxIdentityProvider(他のアプリが依存)、ユーザーのセキュリティツール(例:Malwarebytes)、ユーザーが現在使用しているブラウザ、エージェント自体が実行されているものすべて。