forbid について
forbid は、RU のループで機会の発見から除外する項目を管理するスキルです。プロジェクト設定を更新し、変更は次の反復から適用されます。
主な機能
- 01禁止項目の追加
- 02現在の項目の一覧表示
- 03一致する項目の削除
- 04禁止リストの消去
活用シーン
- 01ドキュメント更新などを発見対象から除外
- 02ループの指針を確認・変更
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill forbidインストール後、Claude Code で/forbidを入力して読み込まれたか確認します。
同梱ファイルreferences/evolution-log.md
詳細
RU:禁止
アクティブなループセッション中に、禁止リストに項目を追加します。 禁止項目は、機会の発見から除外されます。
実行時に設定可能:アクティブなループの有無にかかわらず動作します。変更は次のイテレーションで適用されます。
自己進化型スキル:このスキルは使用を通じて改善されます。指示が誤っている場合、パラメーターがずれている場合、または回避策が必要だった場合は、先延ばしにせず、このファイルをすぐに修正してください。実際に再現可能な問題がある場合にのみ更新してください。
使用方法
/ru:forbid documentation updates- 「documentation updates」を禁止リストに追加します/ru:forbid --list- 現在の禁止項目を表示します/ru:forbid --clear- すべての禁止項目をクリアします/ru:forbid --remove <phrase>- フレーズに一致する項目を削除します(あいまい検索)
実行
/usr/bin/env bash << 'RALPH_FORBID_SCRIPT'
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
CONFIG_FILE="$PROJECT_DIR/.claude/ru-config.json"
# Get arguments
ARGS="${ARGUMENTS:-}"
# Ensure config file exists with guidance structure
if [[ ! -f "$CONFIG_FILE" ]]; then
echo '{"guidance": {"forbidden": [], "encouraged": []}}' > "$CONFIG_FILE"
fi
# Ensure guidance structure exists
if ! jq -e '.guidance' "$CONFIG_FILE" >/dev/null 2>&1; then
jq '. + {guidance: {forbidden: [], encouraged: []}}' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
fi
# Handle commands
case "$ARGS" in
"--list"|"-l")
echo "Current forbidden items:"
jq -r '.guidance.forbidden[]?' "$CONFIG_FILE" | while read -r item; do
echo " ✗ $item"
done
COUNT=$(jq -r '.guidance.forbidden | length' "$CONFIG_FILE")
echo ""
echo "Total: $COUNT items"
;;
"--clear"|"-c")
jq '.guidance.forbidden = []' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
echo "Cleared all forbidden items"
;;
--remove\ *)
PHRASE="${ARGS#--remove }"
MATCH=$(jq -r --arg phrase "$PHRASE" \
'.guidance.forbidden[] | select(. | ascii_downcase | contains($phrase | ascii_downcase))' \
"$CONFIG_FILE" | head -1)
if [[ -z "$MATCH" ]]; then
echo "No forbidden item matches: $PHRASE"
exit 1
fi
TS=$(date -u +%Y-%m-%dT%H:%M:%SZ)
jq --arg match "$MATCH" --arg ts "$TS" \
'.guidance.forbidden |= map(select(. != $match)) | .guidance.timestamp = $ts' \
"$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
echo "Removed from forbidden list: $MATCH"
;;
"")
echo "Usage: /ru:forbid <phrase> | --list | --clear | --remove <phrase>"
echo ""
echo "Current forbidden items:"
jq -r '.guidance.forbidden[]?' "$CONFIG_FILE" | while read -r item; do
echo " ✗ $item"
done
;;
*)
TS=$(date -u +%Y-%m-%dT%H:%M:%SZ)
jq --arg item "$ARGS" --arg ts "$TS" \
'.guidance.forbidden = ((.guidance.forbidden // []) + [$item] | unique) | .guidance.timestamp = $ts' \
"$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
echo "Added to forbidden list: $ARGS"
echo ""
echo "Current forbidden items:"
jq -r '.guidance.forbidden[]?' "$CONFIG_FILE" | while read -r item; do
echo " ✗ $item"
done
;;
esac
RALPH_FORBID_SCRIPT
上記の bash スクリプトを実行して、禁止項目を管理します。
仕組み
- 設定ファイル:変更は
.claude/ru-config.jsonに書き込まれます - 次のイテレーションで適用:Stop フックはイテレーションごとに設定を読み直します
- テンプレートのレンダリング:禁止項目は
## USER GUIDANCEセクションに表示されます
トラブルシューティング
| 問題 | 原因 | 解決方法 |
|---|---|---|
| 追加時に jq エラーが発生する | 設定ファイルの形式が不正です | /ru:settings reset を実行して再作成します |
| 項目が表示されない | 入力ミスまたは大文字・小文字の違い | --list を使用して正確なテキストを確認します |
| 禁止が適用されない | RU が実行されていません | /ru:start で開始します |
| フレーズで削除できない | 一致する項目が見つかりません | --list を使用して項目名を正確に確認します |
| 設定ファイルが見つからない | .claude ディレクトリがありません | mkdir -p .claude で作成します |
実行後の振り返り
このスキルの実行後、終了する前に確認してください。
- コマンドは成功しましたか? — 成功しなかった場合は、失敗の原因となった指示またはエラーテーブルを修正してください。
- パラメーターや出力に変更はありましたか? — 基盤となるツールのインターフェースに変化があった場合は、使用例とパラメーターテーブルを合わせて更新してください。
- 回避策が必要でしたか? — 異なるフラグや追加手順などの工夫が必要だった場合は、次回同じ回避策が不要になるよう、この SKILL.md を更新してください。
実際に再現可能な問題がある場合にのみ更新してください。推測に基づく更新は避けてください。
コメント
Markdown 対応