mcpField
F
forbid

forbid

github.com/terrylicaエージェントワークフロー144 回インストール1 日前に更新
リポジトリ

forbid について

forbid は、RU のループで機会の発見から除外する項目を管理するスキルです。プロジェクト設定を更新し、変更は次の反復から適用されます。

主な機能

  1. 01禁止項目の追加
  2. 02現在の項目の一覧表示
  3. 03一致する項目の削除
  4. 04禁止リストの消去

活用シーン

  1. 01ドキュメント更新などを発見対象から除外
  2. 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 スクリプトを実行して、禁止項目を管理します。

仕組み

  1. 設定ファイル:変更は .claude/ru-config.json に書き込まれます
  2. 次のイテレーションで適用:Stop フックはイテレーションごとに設定を読み直します
  3. テンプレートのレンダリング:禁止項目は ## USER GUIDANCE セクションに表示されます

トラブルシューティング

問題原因解決方法
追加時に jq エラーが発生する設定ファイルの形式が不正です/ru:settings reset を実行して再作成します
項目が表示されない入力ミスまたは大文字・小文字の違い--list を使用して正確なテキストを確認します
禁止が適用されないRU が実行されていません/ru:start で開始します
フレーズで削除できない一致する項目が見つかりません--list を使用して項目名を正確に確認します
設定ファイルが見つからない.claude ディレクトリがありませんmkdir -p .claude で作成します

実行後の振り返り

このスキルの実行後、終了する前に確認してください。

  1. コマンドは成功しましたか? — 成功しなかった場合は、失敗の原因となった指示またはエラーテーブルを修正してください。
  2. パラメーターや出力に変更はありましたか? — 基盤となるツールのインターフェースに変化があった場合は、使用例とパラメーターテーブルを合わせて更新してください。
  3. 回避策が必要でしたか? — 異なるフラグや追加手順などの工夫が必要だった場合は、次回同じ回避策が不要になるよう、この SKILL.md を更新してください。

実際に再現可能な問題がある場合にのみ更新してください。推測に基づく更新は避けてください。

コメント