From metsuke
Customize metsuke configuration — interactive wizard that scans installed plugins and available skills, then asks one question at a time to build config.json
How this skill is triggered — by the user, by Claude, or both
Slash command
/metsuke:metsuke-configThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
導入済みプラグインとセッションで利用可能なスキルをスキャンし、推奨チェックを 1 問ずつ対話で組み立てていくウィザード。カタログ(`${CLAUDE_PLUGIN_ROOT}/config/recommendations.json`)に定義された推奨のうち、環境にマッチしたものだけを質問する。
導入済みプラグインとセッションで利用可能なスキルをスキャンし、推奨チェックを 1 問ずつ対話で組み立てていくウィザード。カタログ(${CLAUDE_PLUGIN_ROOT}/config/recommendations.json)に定義された推奨のうち、環境にマッチしたものだけを質問する。
bash "${CLAUDE_PLUGIN_ROOT}/scripts/scan-environment.sh"
これで {"installed_plugins": [...]} が得られる。installed_plugins[] を PLUGINS として保持する。
失敗時のハンドリング:
AskUserQuestion で確認installed_plugins が空配列 → スキル系推奨のみ進めるので続行して OK(スキップせず先へ)続いて、現在の会話の system-reminder から利用可能スキル ID を抽出する:
^-\s+([\w:-]+): で行頭から ID を抽出(例: superpowers:brainstorming, pr-review-toolkit:review-pr, plan-document-reviewer)SKILLS として保持する既存 config を読む:
test -f ~/.config/metsuke/config.json && cat ~/.config/metsuke/config.json || cat "${CLAUDE_PLUGIN_ROOT}/config/default.json"
既存ユーザー config があるかどうかで後続の分岐を決める。
~/.config/metsuke/config.json が存在するときは先に AskUserQuestion で:
存在しないときは自動的に「新規作成モード」。
カタログを読む:
jq -c '.recommendations[]' "${CLAUDE_PLUGIN_ROOT}/config/recommendations.json"
各 recommendation について以下の条件でマッチ判定:
match.plugin があれば、$PLUGINS に完全一致するかmatch.skill があれば、$SKILLS に完全一致するかmatch.always == true なら常にマッチ増分モードの場合、既存 config の checks[].name と recommendation.check_template.name が一致する推奨はスキップする。
マッチしたものを QUEUE として順番に保持する。
ベースの checks[] を用意する(新規作成 or 全部見直しなら []、増分モードなら既存 config の .checks)。
QUEUE の各 recommendation について順番に以下を実行:
現時点の checks[] を表示(積み上がっていく感を出す):
現在の checks:
- impl_review (pre_commit/block)
- plan_review (plan_mode/remind)
(まだ何もありません)
AskUserQuestion で recommendation.question を表示、recommendation.options[] の label を選択肢として出す。
ユーザーの回答 action に応じて:
"skip" → 何もしない"block" または "remind" → {...check_template, action: "<選択値>"} を checks[] に追加全推奨の質問が終わったら、追加カスタムチェックの有無を聞く:
「他に追加したいカスタムチェックはありますか? [はい / いいえ]」
「はい」が選ばれたら:
「現在、カスタムチェックの対話追加は未対応です。保存後に
~/.config/metsuke/config.jsonを手動で編集してください(書式は README や config/default.json を参照)」
と案内して次へ進む。
構築した新 config 全体を整形 JSON で表示:
echo "$NEW_CONFIG" | jq '.'
AskUserQuestion で:
既存 config があれば timestamped backup を取る:
BACKUP_TS=$(date +%Y%m%d-%H%M%S)
test -f ~/.config/metsuke/config.json && cp ~/.config/metsuke/config.json ~/.config/metsuke/config.json.bak-${BACKUP_TS}
書き込み:
mkdir -p ~/.config/metsuke
echo "$NEW_CONFIG" | jq '.' > ~/.config/metsuke/config.json
最後に以下を表示:
/metsuke:metsuke-status生成される config の各フィールド:
| フィールド | 説明 |
|---|---|
checks[].name | チェックの識別名(マーカーファイル名) |
checks[].enabled | false で一時無効化 |
checks[].trigger | pre_commit / plan_mode |
checks[].action | block(pre_commit でのみ有効) / remind |
checks[].detection_patterns | SubagentStop で検知する部分一致パターン配列 |
checks[].message | 未完了時に表示するメッセージ |
commit_aliases | git commit 以外にコミット相当として扱うエイリアス(例: gc, gcm) |
plan_mode + block の組み合わせは remind として扱われる。
Sets up isolated workspaces using native worktree tools or git worktree fallback. Use before starting feature work to protect the current branch.
npx claudepluginhub yoshi47/metsuke --plugin metsuke