ドキュメントはじめに

インストール

npm、bun、同梱のインストーラースクリプト、Homebrew、ソースビルドで shk CLI をインストールし、CLI とデスクトップアプリを最新に保つ方法。

目次

shk は単一の CLI バイナリとして配布されています。

目的 対象 詳細
npm / bun を使用 CLI 手順へ
スクリプトで導入 CLI 手順へ
検証して導入 CLI 手順へ
Homebrew を使用 CLI 手順へ
画面で操作 Desktop + CLI for hooks 手順へ
既存環境を更新 CLI / Desktop 手順へ

npm

タグ付きの CLI リリースごとに、npm に security-harness-kit パッケージが公開されます。インストールされるコマンドは shk です。

npm install -g security-harness-kit
shk --version
bash

npm パッケージは同じリリースから dist によって生成されます。インストール時にお使いのプラットフォームに対応するビルド済みリリースアーカイブを取得し、shk コマンドを公開するため、リリースアーカイブと同じプラットフォームをサポートしています。

グローバルインストールなしで一度だけ実行する場合は次のようにします。

npx security-harness-kit scan
bash

bun

同じパッケージを bun でも利用できます。パッケージの postinstall スクリプトはインストール時にバイナリをダウンロードします。bun がライフサイクルスクリプトをスキップする場合(信頼していないパッケージに対する bun のデフォルト動作)は、代わりに shk ランチャーが初回実行時に対応するリリースアーカイブを取得するため、インストールはそのまま機能します。

bun add -g security-harness-kit
shk --version
bash

グローバルインストールなしで一度だけ実行する場合は次のようにします。

bunx security-harness-kit scan
bash

スクリプトでインストール

macOS と Linux のリリースは、同梱のインストーラーでインストールできます。

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Kazuki-tam/security-harness-kit/releases/latest/download/shk-cli-installer.sh | sh
bash

Windows のリリースは PowerShell からインストールできます。

powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/Kazuki-tam/security-harness-kit/releases/latest/download/shk-cli-installer.ps1 | iex"
powershell

-ExecutionPolicy Bypass はこの 1 つの PowerShell プロセスにのみ適用されるため、ユーザーのマシンやプロファイルのポリシーを変更することなく、よくあるスクリプトポリシーによる失敗を回避できます。すでに PowerShell を開いている場合は、次の同等の形式でも動作します。

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force; irm https://github.com/Kazuki-tam/security-harness-kit/releases/latest/download/shk-cli-installer.ps1 | iex
powershell

組織が MachinePolicy または UserPolicy を通じて PowerShell を強制している場合、スクリプトインストーラーはそれでもブロックされることがあります。その場合は、代わりに npm か bun でインストールするか、.zip アーカイブをダウンロードして手動でチェックサムを検証してください(リリースアーカイブをダウンロードするを参照)。

インストーラーは dist によって生成され、最新の対応するリリースアーカイブをダウンロードします。シェルインストーラーは、shk をインストールする前に、選択したアーカイブをリリース時に埋め込まれた SHA-256 チェックサムと照合して検証します。生成される PowerShell インストーラーは現在チェックサム検証を行いません。検証が必要な Windows ユーザーは、.zip アーカイブを手動で検証してください。デフォルトでは、スクリプトインストーラーは Cargo 形式のインストールパス($CARGO_HOME/bin、または CARGO_HOME が未設定の場合は ~/.cargo/bin)を使用します。

リリースアーカイブをダウンロードする

タグ付きのリリースでは、プラットフォームごとのアーカイブ、アーカイブごとのチェックサム、インストーラー、Homebrew フォーミュラ、メンテナー向けの WinGet マニフェスト、CycloneDX SBOM が公開されます。

shk-cli-aarch64-apple-darwin.tar.xz
shk-cli-aarch64-unknown-linux-gnu.tar.xz
shk-cli-x86_64-apple-darwin.tar.xz
shk-cli-x86_64-pc-windows-msvc.zip
shk-cli-x86_64-unknown-linux-gnu.tar.xz
shk-cli-installer.sh
shk-cli-installer.ps1
shk-winget-manifests.zip
shk.rb
shk-cli-npm-package.tar.gz
*-dist-manifest.json
*.sha256
shk-sbom.cdx.json
text

展開する前にアーカイブを検証します。

shasum -a 256 -c shk-cli-x86_64-unknown-linux-gnu.tar.xz.sha256
bash

各アーカイブには shk バイナリが含まれています。タグ付きのリリースでは、リリースアセットに対する GitHub アーティファクトアテステーションも生成されます。ダウンロードしたアセットは GitHub CLI で検証できます。

gh attestation verify shk-cli-x86_64-unknown-linux-gnu.tar.xz \
  --repo Kazuki-tam/security-harness-kit
bash

Windows では、shk-cli-x86_64-pc-windows-msvc.zip とその .sha256 ファイルをダウンロードし、Get-FileHash -Algorithm SHA256 の結果をチェックサムと比較してから、shk.exe を展開して PATH 上のディレクトリに配置します(インストーラーのデフォルトは %USERPROFILE%\.cargo\bin)。

検証済みアーカイブからのインストール

CI やセキュリティ上重要な環境では、固定(ピン留め)したリリースタグからインストールし、バイナリを PATH に配置する前にチェックサムと GitHub アーティファクトアテステーションの両方を検証してください。

version=v0.7.4
target=x86_64-unknown-linux-gnu
asset="shk-cli-${target}.tar.xz"
repo=Kazuki-tam/security-harness-kit

gh release download "$version" -R "$repo" -p "$asset" -p "${asset}.sha256"
shasum -a 256 -c "${asset}.sha256"
gh attestation verify "$asset" -R "$repo"

tmp="$(mktemp -d)"
tar -xJf "$asset" -C "$tmp"
install -m 755 "$tmp/shk-cli-${target}/shk" "$HOME/.cargo/bin/shk"
bash

target はお使いのプラットフォームに対応するアーカイブに置き換えてください。ビルドを再現可能でレビュー可能に保つため、CI では latest を避けてください。shk ci init github は、まさにこの検証済みインストールを実行するワークフローを生成します。

Homebrew

タグ付きの CLI リリースごとに、生成された Homebrew フォーミュラが公開 tap Kazuki-tam/homebrew-tap に公開されます。次のコマンドでインストールします。

brew install Kazuki-tam/homebrew-tap/shk
bash

Homebrew は homebrew- プレフィックスを省略できるため、短い形式でも動作します。

brew install kazuki-tam/tap/shk
bash

フォーミュラは常に最新リリースに追従します。後でアップグレードするには brew upgrade shk を実行してください。

または、フォーミュラ(shk.rb)は各リリースにアセットとして添付されており、tap を使わずにローカルのコピーからインストールすることもできます。現在の Homebrew は https:// URL から直接フォーミュラをインストールすることを拒否するため、先にファイルをダウンロードしてください:

curl -LO https://github.com/Kazuki-tam/security-harness-kit/releases/latest/download/shk.rb
brew install --formula ./shk.rb
bash

この方法で固定(ピン留め)したリリースをインストールするには、latest/download を download/<tag>(例: download/v0.7.4)に置き換えてください。

Intel macOS、Apple Silicon macOS、Linux x86_64/aarch64、Windows x86_64 がサポートされています。Scoop マニフェストは現在のリリースパイプラインでは公開されていません。

デスクトップアプリ

デスクトップアプリは CLI とは別に配布されており、CLI の上に GUI を追加するものです。 クイックセットアップがインストールするフックは shk コマンドを実行するため、CLI も インストールしたままにしてください(デスクトップアプリ を参照)。リリースは desktop-vX.Y.Z(または統合された shk-vX.Y.Z)タグから、GitHub Releases 上の shk-desktop_* アセットとして 公開されます。desktop-v0.6.0 以降、macOS ビルドは Developer ID で署名、公証(notarize)、ステープルされています。Windows インストーラーは現在 Authenticode 署名されていません(下記の Windows SmartScreen を参照)。

マスク画面では、AI ツールに渡す前の内容を伏せ字([REDACTED])または仮名化(一貫した仮名コード)で マスクできます。仮名化には shk.toml のあるプロジェクトの選択が必要です。コードの一貫性を保つキーは プロジェクトごとに、CLI と同じ資格情報ストアに保存されるためです。アプリからの初回実行時にはキーを作成する前に 確認があり、アプリと CLI は別々に署名されたバイナリのため、CLI が作成したキーをアプリが読む(またはその逆の)際に macOS が一度だけ許可を求めることがあります。アプリでの操作の流れは デスクトップアプリ → 仮名化 を、基盤となる動作と復元マップは shk mask --pseudonymize を参照してください。

メンテナー向けのリリース手順は desktop-release.md を参照してください。

インストーラーの選択

プラットフォーム アセットのパターン 備考
Linux x86_64 shk-desktop_*_x86_64-unknown-linux-gnu_*.AppImage または *.deb AppImage には chmod +x が必要
Linux aarch64 shk-desktop_*_aarch64-unknown-linux-gnu_*.AppImage または *.deb 上記と同じ
macOS Intel shk-desktop_*_x86_64-apple-darwin_*.dmg 署名・公証済み。shk.app を /Applications にドラッグ
macOS Apple Silicon shk-desktop_*_aarch64-apple-darwin_*.dmg 上記と同じ
Windows x86_64 shk-desktop_*_x86_64-pc-windows-msvc_*setup.exe または *.msi 現在は未署名

desktop-latest リリースには、最新の署名済みデスクトップリリースのインストーラーが常にバージョン番号を含まない名前で用意されているため、次の URL は変わることがありません。

プラットフォーム 安定した URL
macOS Apple Silicon https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop-aarch64-apple-darwin.dmg
macOS Intel https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop-x86_64-apple-darwin.dmg
Windows x86_64(NSIS) https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop-x86_64-pc-windows-msvc-setup.exe
Windows x86_64(MSI) https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop-x86_64-pc-windows-msvc.msi
Linux x86_64 https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop-x86_64-unknown-linux-gnu.AppImage または https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop-x86_64-unknown-linux-gnu.deb
Linux aarch64 https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop-aarch64-unknown-linux-gnu.AppImage または https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop-aarch64-unknown-linux-gnu.deb

desktop-latest には、安定した名前に対応する shk-desktop.sha256sum と、安定したファイルが現在どのバージョン付きリリースに由来するかを release_tag で示す shk-desktop-latest.json も含まれています。これらのファイルはそのリリースの shk-desktop_* アセットとバイト単位で同一であるため、そのリリースの来歴アテステーションで 同様に検証できます。

安定したダウンロードを検証します。

curl -LO https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop-aarch64-apple-darwin.dmg
curl -LO https://github.com/Kazuki-tam/security-harness-kit/releases/download/desktop-latest/shk-desktop.sha256sum
awk '$2 == "shk-desktop-aarch64-apple-darwin.dmg"' shk-desktop.sha256sum \
  | shasum -a 256 -c -
bash

代わりに特定のバージョンに固定するには、そのタグのリリースページ(例: desktop-v0.7.4)から バージョン付きの shk-desktop_* アセットと shk-desktop.sha256sum をダウンロードしてください。

macOS

desktop-v0.6.0 以降のインストーラーは Developer ID で署名され、公証されています。 Gatekeeper は回避策なしでそれらを開きます。古い未署名の 早期アクセスビルドをまだ使用している場合は、署名済みの .dmg インストールに置き換えてください。すべてのリリースが同じ Tauri アップデーター署名鍵を共有しているため、アプリ内アップデーターも既存のインストールを 移行します。

Windows SmartScreen

Windows インストーラーは現在 Authenticode 署名されていないため、SmartScreen が Windows によって PC が保護されました と表示することがあります。リリースのチェックサムとアテステーション(証明)を 信頼できる場合は、詳細情報 → 実行 を選択してください。

ブロックされたアクティビティの通知

アプリを開いている間、サイドバーにあるすべてのプロジェクトの .shk/audit.log を 監視(tail)し、フックが AI アクティビティをブロックすると OS の通知を表示します。これにより、 バックグラウンドで動作しているエージェントの状況を、アプリに切り替えることなく把握できます。 トップバーのベルメニューから通知をオフにしたり、1 種類のブロックだけに 絞り込んだりできます。デフォルトでは両方の種類がオンになっています。

知っておくと役立つ詳細:

  • 通知されるのは、プロジェクトがサイドバーに表示された後に記録されたブロックのみです。 既存の履歴が通知の山を生むことはありません。
  • 数秒以内に到着したブロックは 1 つの通知にまとめられます。
  • 通知のテキストは、ブロックの理由、リスクのあるアクションのカテゴリ、 AI ツールに限定されます。通知はロック画面に表示され、 OS によって保存されるため、ファイルパスは意図的に除外されています。ファイルパスを確認するには ブロックされた AI アクティビティ パネルを使用してください。
  • 通知をオフにしてもバナーが止まるだけで、監視は止まりません。アプリを開いている間、 監査パネルは引き続き更新されます。
  • 最初のブロック時に OS の通知許可を求められます(macOS では インストールしたアプリは shk として表示されます。tauri dev バイナリは代わりに ターミナル の識別情報で送信するため、テスト時はターミナルの通知を許可してください)。
  • バナーが表示されないのにパネルにブロックが表示される場合は、ほぼ間違いなく macOS が 表示を抑制しています。集中モードと、システム設定 → 通知にある アプリごとの通知スタイルを確認してください。

アプリ内アップデート

デスクトップアプリは、GitHub 上の desktop-latest/latest.json を確認してアップデーターの メタデータを取得します。アップデーターパッケージは、OS のコード署名とは独立して、常にプロジェクトの Tauri アップデーター 鍵で署名されています。更新手順は デスクトップアプリの更新 を参照してください。

ソースからビルド

ソースからビルドするには Rust 1.88 以降が必要です。

git clone https://github.com/Kazuki-tam/security-harness-kit.git
cd security-harness-kit
cargo build --release
bash

リリースバイナリは次の場所に出力されます。

target/release/shk
text

更新

shk にセルフアップデートコマンドはありません。CLI はインストールに使ったのと同じツールで更新し、デスクトップアプリはトップバーから更新します。両者のバージョンと更新は独立しており、一方を更新しても他方には影響しません。

新しいリリースの確認

shk --version はインストール済みのバージョンを表示します。shk status と shk doctor version はそれを GitHub の最新リリースと比較します。バージョン情報のためにネットワークへアクセスするのはこの 2 つのコマンドだけです(shk doctor version を参照):

shk --version
shk status
shk doctor version
bash

PATH 上に複数の shk(たとえば npm 由来とインストーラースクリプト由来)がある場合、先に見つかったものが使われ、残りは古いバージョンのままになります。shk doctor は shk executable セクションに、実行中のバイナリ、PATH 上で最初に見つかる shk、そして複数の異なるインストールを検出した場合はその一覧を警告として表示します。PATH 上で最初のコピーを更新するか、余分なコピーを削除してください。

CLI の更新

インストール方法 更新方法
npm npm install -g security-harness-kit@latest
bun bun add -g security-harness-kit@latest
インストーラースクリプト スクリプトでインストール と同じ curl ... | sh または PowerShell コマンドを再実行します。最新リリースをダウンロードし、バイナリをその場で上書きします。
Homebrew tap brew upgrade shk
Homebrew フォーミュラファイル(shk.rb) ファイルからインストールしたフォーミュラはどの tap にも属さないため、brew upgrade は新しいバージョンを見つけられません。新しい shk.rb をダウンロードし、brew uninstall shk のあと brew install --formula ./shk.rb を実行してください。
リリースアーカイブ リリースアーカイブをダウンロードする または 検証済みアーカイブからのインストール の手順を新しいタグで繰り返し、既存のバイナリを上書きします。
ソースからビルド クローンで git pull してから cargo build --release を実行し、バイナリをインストール先に上書きコピーします。

更新後は shk --version で確認してください。

CLI 更新後の作業

  • フック: shk hooks install と shk hooks install-ai が入れたフックは PATH 上の shk を呼び出すため、次に実行された時点で新しいバイナリが使われます。再インストールは不要です。
  • スキル: shk skills install がコピーする静的ファイルです。新しい同梱スキルを反映するには --force(ユーザーレベルのインストールなら --global も)を付けて再実行してください。
  • CI ワークフロー: shk ci init github が生成したワークフローは、生成時のリリースにピン留めされています。--shk-version <新しいタグ> --force を付けて再実行し、ピンを進めてください(リリースをピン留めする を参照)。
  • shk status の version 行が新しいバージョンを最新として報告することを確認します。

デスクトップアプリの更新

デスクトップアプリは自動では更新を確認しません。トップバーの 更新確認 を選ぶと、新しいリリースがある場合に ダウンロードして再起動 が提示され、署名済みアップデーターパッケージをダウンロードして再起動します。macOS の .dmg、Windows の setup.exe、Linux の AppImage からインストールした場合はこの方法で更新できます。Windows の .msi と Linux の .deb でインストールした場合はアプリ内アップデーターを使わず、安定したダウンロードリンク から新しいパッケージをダウンロードして既存バージョンの上にインストールしてください。詳細は デスクトップアプリ → アプリ内アップデート を参照してください。

アンインストール

shk には専用の shk uninstall コマンドはありません。削除は 2 つの層に分かれます。CLI バイナリと、使用中に shk が書き込んだプロジェクトまたはユーザーレベルのファイルです。

1. バイナリの削除

shk をインストールした方法に対応する手順を選んでください。

スクリプトインストーラー(デフォルトは ~/.cargo/bin):

rm -f "${CARGO_HOME:-$HOME/.cargo}/bin/shk"
bash

Windows(PowerShell インストーラー。CARGO_HOME が未設定の場合、デフォルトは %USERPROFILE%\.cargo\bin):

$BinDir = if ($env:CARGO_HOME) { Join-Path $env:CARGO_HOME "bin" } else { "$env:USERPROFILE\.cargo\bin" }
Remove-Item (Join-Path $BinDir "shk.exe") -ErrorAction SilentlyContinue
powershell

Homebrew フォーミュラ:

brew uninstall shk
# tap からインストールした場合は、tap も削除できます:
# brew untap Kazuki-tam/homebrew-tap
bash

npm パッケージ:

npm uninstall -g security-harness-kit
bash

bun パッケージ:

bun remove -g security-harness-kit
bash

ソースビルド: クローンしたリポジトリで cargo clean を実行してビルド出力を削除するか、target/release/shk を直接削除してください。そのバイナリを PATH 上のディレクトリにコピーした場合は、コピー先のバイナリも削除してください。

2. プロジェクトアーティファクトの削除

shk は、ディスクに書き込むコマンドを明示的に実行しない限り、プロジェクトファイルを変更しません。それらのコマンドが作成するアーティファクトを以下に示します。不要になったものを各プロジェクトから削除してください。

作成元 パス 備考
shk init / shk policy init shk.toml プロジェクトのポリシーファイル。
npm 強化を伴う shk init 該当する .npmrc、pnpm-workspace.yaml、.yarnrc.yml、bunfig.toml プロジェクトのパッケージマネージャー強化ファイル。ファイルに独自のパッケージマネージャー設定も含まれている場合は、ignore-scripts またはパッケージ経過日数ゲート用に追加された設定のみを削除してください。
shk scan --audit、監査モードのフック .shk/audit.log と .shk/ ディレクトリ メタデータのみの監査ログ。
shk hooks install .git/hooks/pre-commit # shk-managed-start / # shk-managed-end で区切られた管理ブロック。shk が唯一の所有者であればファイルを削除し、他の pre-commit ロジックを残す場合は管理ブロックのみを削除してください。
shk hooks install-ai(Claude Code) .claude/settings.json "_shk_managed": true のタグが付いたエントリを削除してください。エントリが残らない場合はファイルを削除してください。--apply-deny または --apply-sandbox を使用した場合は、同じファイルにマージされた permissions.deny と sandbox の設定も確認してください。
shk hooks install-ai(Cursor) .cursor/hooks.json "_shk_managed": true のタグが付いたエントリを削除してください。
shk hooks install-ai(Codex) .codex/config.toml # shk-managed-start / # shk-managed-end で区切られたブロックを削除し、不要であれば features.hooks = true も削除してください。管理ブロックは PreToolUse、PermissionRequest、UserPromptSubmit、PostToolUse を対象とします。--apply-sandbox を使用した場合は、トップレベルの sandbox_mode と approval_policy の値も確認してください。
shk hooks install-ai(Copilot) .github/hooks/shk-security.json コマンドに shk scan --hook-mode copilot を含むエントリを削除してください。
shk hooks install-ai(Antigravity) .agents/hooks.json トップレベルの shk-security エントリを削除してください(そのフックエントリには "_shk_managed": true のタグが付いています)。エントリが残らない場合はファイルを削除してください。
shk hooks install-ai(Grok Build) .grok/hooks/shk-security.json コマンドに shk scan --hook-mode grok を含むハンドラーと、それによって空になった matcher グループを削除してください。エントリが残らない場合はファイルを削除してください。
shk hooks install-ai(Windsurf) .windsurf/hooks.json コマンドに shk scan --hook-mode windsurf を含むエントリを削除してください。エントリが残らない場合はファイルを削除してください。
shk skills install(Claude Code) .claude/skills/shk/SKILL.md 同梱のスキルファイル。0.3.17 以前でのインストールは .claude/skills/shk.md を使用していました。存在する場合はそのファイルも削除してください。
shk skills install(Copilot) .github/skills/shk/SKILL.md 同梱のスキルファイル。
shk skills install(Codex / Cursor / Antigravity) .agents/skills/shk/SKILL.md 同梱のスキルファイル。
shk skills install(Grok Build) .grok/skills/shk/SKILL.md 同梱のスキルファイル。
shk skills install(Windsurf) .windsurf/skills/shk/SKILL.md 同梱のスキルファイル。
shk ci init github デフォルトでは .github/workflows/shk.yml 生成された GitHub Actions ワークフロー。--output を指定した場合は、代わりにそのカスタムパスを削除してください。

対応しているコマンドでは、削除前に --dry-run を付けて再実行すると、プロジェクトで実際に使用されているパスを安全に確認できます。これは shk hooks install-ai、shk skills install、shk ci init github に適用されます。shk hooks install と shk init には dry-run モードがありません。

3. ユーザーレベルファイルの削除

--global でのインストールは、プロジェクトではなくユーザーのホームディレクトリに書き込みます。このマシン上のすべてのプロジェクトで shk を無効にしたい場合にのみ、これらを削除してください。

作成元 パス
shk hooks install-ai --global --tool claude-code ~/.claude/settings.json(管理エントリ。加えて明示的に有効化した permissions.deny または sandbox の設定)
shk hooks install-ai --global --tool codex ~/.codex/config.toml(管理ブロック。--apply-sandbox を使用した場合はトップレベルのサンドボックス設定も)
shk hooks install-ai --global --tool cursor ~/.cursor/hooks.json(管理エントリ)
shk hooks install-ai --global --tool copilot ~/.copilot/hooks/shk-security.json(管理エントリ)
shk hooks install-ai --global --tool antigravity ~/.gemini/config/hooks.json(管理対象の shk-security エントリ)
shk hooks install-ai --global --tool grok ~/.grok/hooks/shk-security.json(--hook-mode grok で識別される管理エントリ)
shk hooks install-ai --global --tool windsurf ~/.codeium/windsurf/hooks.json(--hook-mode windsurf で識別される管理エントリ)
shk skills install --global --tool claude-code ~/.claude/skills/shk/SKILL.md(または 0.3.17 以前のレガシーな ~/.claude/skills/shk.md)
shk skills install --global --tool codex / --tool cursor ~/.agents/skills/shk/SKILL.md
shk skills install --global --tool copilot ~/.copilot/skills/shk/SKILL.md
shk skills install --global --tool antigravity ~/.gemini/config/skills/shk/SKILL.md
shk skills install --global --tool grok ~/.grok/skills/shk/SKILL.md
shk skills install --global --tool windsurf ~/.codeium/windsurf/skills/shk/SKILL.md

管理エントリはプロジェクトインストールと同じマーカーを使用します(JSON ファイルでは "_shk_managed": true、シェルおよび TOML ファイルでは # shk-managed-start / # shk-managed-end)。Copilot、Grok Build、Windsurf はスキーマに準拠したクリーンな JSON を維持しており、--hook-mode <tool> のコマンド文字列で識別されます。--apply-deny と --apply-sandbox によってマージされた設定には個別のタグが付きません。無関係なユーザー設定を誤って破棄しないよう、削除前に確認してください。

4. 保存された Env キーの削除

shk env dotenvx import-keys または shk env key import / shk env encrypt を使用した場合は、保存された秘密鍵が孤立しないよう、バイナリを削除する前にそれらを削除してください。保存された鍵は正規化されたプロジェクトルートにスコープされているため、鍵を保存した各プロジェクトで次のコマンドを実行してください。

shk env dotenvx delete --all
shk env key delete --all
bash

[env].secret_store = "keyring"(デフォルト)の場合、dotenvx の鍵は OS の資格情報サービス security-harness-kit/dotenvx の下に、ネイティブの鍵は security-harness-kit/env の下に保存されます。shk をすでに削除している場合は、プラットフォームの資格情報ストアの UI でこれらのサービス名を検索してください。

[env].secret_store = "1password" の場合、鍵は env.onepassword.vault で設定された vault 内に、タグ付き(shk タグ)の 1Password アイテムとして保存されます。アイテムのタイトルは shk:{project_id}:env:DOTENV_PRIVATE_KEY や shk:{project_id}:dotenvx:DOTENV_PRIVATE_KEY_PRODUCTION のような形式です。vault の UI から削除するか、先にキーリングへ移行し直してください。

shk env key migrate --to keyring
bash

キーリング側のコピーを確認してから、古いタグ付きアイテムを 1Password から明示的に削除してください。共有される 1Password ソースに対しては、移行元の自動削除は意図的に拒否されます。