mcpField
E
encourage

encourage

github.com/terrylicaAgent workflows145 installsUpdated 1d ago
Repository

About encourage

A skill for adding, listing, removing, and clearing work items encouraged during an RU loop. It stores guidance in project configuration, where it affects the next iteration.

Key features

  1. 01Add encouraged items
  2. 02List current items
  3. 03Remove items by phrase
  4. 04Clear the encouraged list
  5. 05Apply changes next iteration

Use cases

  1. 01Prioritize test coverage in an RU loop
  2. 02Review or revise active guidance
  3. 03Remove an outdated priority

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/terrylica/cc-skills --skill encourage

After installing, type/encouragein Claude Code to confirm it loaded.

Bundled filesreferences/evolution-log.md

Details

From the project README

RU: Encourage

Add items to the encouraged list during an active loop session. Encouraged items get priority in opportunity discovery and override forbidden patterns.

Runtime configurable: Works with or without active loop. Changes apply on next iteration.

Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

Usage

  • /ru:encourage test coverage - Add "test coverage" to encouraged list
  • /ru:encourage --list - Show current encouraged items
  • /ru:encourage --clear - Clear all encouraged items
  • /ru:encourage --remove <phrase> - Remove item matching phrase (fuzzy)

Execution

/usr/bin/env bash << 'RALPH_ENCOURAGE_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 encouraged items:"
        jq -r '.guidance.encouraged[]?' "$CONFIG_FILE" | while read -r item; do
            echo "  + $item"
        done
        COUNT=$(jq -r '.guidance.encouraged | length' "$CONFIG_FILE")
        echo ""
        echo "Total: $COUNT items"
        ;;
    "--clear"|"-c")
        jq '.guidance.encouraged = []' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
        echo "Cleared all encouraged items"
        ;;
    --remove\ *)
        PHRASE="${ARGS#--remove }"
        MATCH=$(jq -r --arg phrase "$PHRASE" \
            '.guidance.encouraged[] | select(. | ascii_downcase | contains($phrase | ascii_downcase))' \
            "$CONFIG_FILE" | head -1)
        if [[ -z "$MATCH" ]]; then
            echo "No encouraged item matches: $PHRASE"
            exit 1
        fi
        TS=$(date -u +%Y-%m-%dT%H:%M:%SZ)
        jq --arg match "$MATCH" --arg ts "$TS" \
            '.guidance.encouraged |= map(select(. != $match)) | .guidance.timestamp = $ts' \
            "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
        echo "Removed from encouraged list: $MATCH"
        ;;
    "")
        echo "Usage: /ru:encourage <phrase> | --list | --clear | --remove <phrase>"
        echo ""
        echo "Current encouraged items:"
        jq -r '.guidance.encouraged[]?' "$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.encouraged = ((.guidance.encouraged // []) + [$item] | unique) | .guidance.timestamp = $ts' \
            "$CONFIG_FILE" > "$CONFIG_FILE.tmp" && mv "$CONFIG_FILE.tmp" "$CONFIG_FILE"
        echo "Added to encouraged list: $ARGS"
        echo ""
        echo "Current encouraged items:"
        jq -r '.guidance.encouraged[]?' "$CONFIG_FILE" | while read -r item; do
            echo "  + $item"
        done
        ;;
esac
RALPH_ENCOURAGE_SCRIPT

Run the bash script above to manage encouraged items.

How It Works

  1. Config file: Changes are written to .claude/ru-config.json
  2. Next iteration applies: The Stop hook reads config fresh on each iteration
  3. Priority override: Encouraged items override forbidden patterns
  4. Template rendering: Encouraged items appear in the ## USER GUIDANCE section

Troubleshooting

IssueCauseSolution
jq error on addConfig file malformedRun /ru:settings reset to recreate
Item not appearingTypo or different casingUse --list to verify exact text
Encouraged not appliedRU not runningStart with /ru:start
Remove by phrase failsNo match foundUse --list to see exact item names
Config file not found.claude dir missingCreate with mkdir -p .claude

Post-Execution Reflection

After this skill completes, check before closing:

  1. Did the command succeed? — If not, fix the instruction or error table that caused the failure.
  2. Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
  3. Was a workaround needed? — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.

Only update if the issue is real and reproducible — not speculative.

Comments

Markdown supported