以下を、記述されたとおり正確に実行してください。引数はヒアドキュメントの2行目に置き、コマンド自体には決して付けず、1行で、quiet normal loud mute unmute --global approve on offの単語のみを使用します:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/hwip-mode.sh" <<'HWIP_MODE_INPUT'
${CLAUDE_PROJECT_DIR}
$ARGUMENTS
HWIP_MODE_INPUT
終了コード2は不正な引数を意味します — ユーザーに出力された使用法の行を表示してください。それ以外の場合は、ステータス行をあなた自身の言葉で報告してください:
NOTIFICATIONS: muted→ StopフックとAskフックはここではサイレントです。hwip_*ツールは引き続き動作しますが、ユーザーが要求しない限り呼び出されません。ミュートはすべてのダイヤルより優先されます。PUSH MODE: quiet→ ユーザーが端末にいるときは高優先度のプッシュ(ブロッカー、highプッシュシグナル)のみ、さらにユーザーが離れた後(HWIP_AWAY_SEC、デフォルト300秒)またはこのセッションのtmuxペインが画面に表示されていない場合は完了プッシュを送信します。出荷時のデフォルトです。PUSH MODE: normal→ 実際に作業を行ったターンごとにプッシュし、読み取り専用ターンではサイレント。プッシュシグナルマーカーがエッジケースを決定します。PUSH MODE: loud→ すべてのターンでプッシュし、skipをオーバーライドします。- 括弧内はダイヤルの由来を示します:
this project(このプロジェクト)、global default(--globalで設定、独自のダイヤルを持たないプロジェクトが継承)、または組み込みのデフォルト。プロジェクトダイヤルは常にグローバルダイヤルより優先されます。 APPROVAL GATE: on|off→ このプロジェクトで、取り消し困難なBashコマンド(rm -rf、強制プッシュ、本番デプロイ、破壊的なSQL)が承認を待つかどうか。端末ではClaude Code自身の許可プロンプトが確認します。離れている場合、REMOTE、またはプレゼンスが読み取れない場合は、ユーザーの電話が行います。on, but inactive while muted— ミュートされたプロジェクトには確認を求める相手がいないため、何も保留されません。SCOPE: …→ ダイヤル、ミュート、承認ゲート、自動モードはセッションではなくプロジェクトディレクトリに属します: 同じディレクトリの2番目のClaudeセッションはこれらを共有します。ユーザーが変更した場合はそのように伝えてください。AUTO MODE: …→/hwip-autoセッションが実行中で、その残り予算が表示されます。off (an expired … session left its state behind — cleared)はクラッシュしたセッションを示します。LAST PUSH: …→ CLIによる最後の失敗したプッシュの記録(hwip notifyが書き込み、成功したプッシュは削除します)。フックはnotifyのエラーを隠すため、この行は「静かで送信するものがない」と「すべてのプッシュが失敗する」を区別します。原因とその修正方法を提示された通りに伝えてください(例: 拒否されたキー →hwip login、アプリにサインインしていない → iPhoneまたはAndroidのHwipアプリにサインイン)。hwip verifyに詳細があります。Hwip: <device> changed its encryption key — …→ 障害ではありません: ユーザーのデバイスの1つが、このマシンがピン留めしていたものとは異なる暗号化キーをリストしており、新しいキーは信頼されています。一度表示された後、クリアされます。そのように伝えてください — アプリの再インストールまたは新しい電話で説明がつきます。どちらでもない場合は、hwip trustでフィンガープリントを表示し、アプリと比較できます。
質問(hwip_ask、AskUserQuestionミラー)は、ミュート以外のすべてのダイヤルでプッシュされます。
封印された質問が運ぶコンテキスト(セッションのマスクされたgit diffと最後の端末行)は、ここでのダイヤルではありません。ユーザーが送信を停止したい場合は、hwip ask-context off(このプロジェクト)またはhwip ask-context off --global(すべてのプロジェクト)を案内してください。hwip ask-contextでどちらが適用されているかがわかります。
出力が=== Hwip rules — replace the Hwip rules from session start ===ブロックで終わる場合、状態が変更され、セッション開始時にSessionStartフックがこのセッションに与えたルールは古くなっています: そのブロックに従ってセッションの残り(圧縮後も含む)を進めてください。Session rules unchangedは、変更がルールに影響しなかったことを意味します(例: normal ↔ loud)。現在のルールを維持してください。approveがルールを変更することはありません。could not refresh行は、変更は適用されたがルールが更新されなかったことを意味します — 新しいセッションで反映されることをユーザーに伝えてください。