Files
gh-seangsisg-crispy-claude-cc/hooks/session-start.sh
2025-11-30 08:54:38 +08:00

35 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# SessionStart hook for crispyclaude plugin
set -euo pipefail
# Determine plugin root directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
PLUGIN_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
# Check if legacy skills directory exists and build warning
warning_message=""
legacy_skills_dir="${HOME}/.config/superpowers/skills"
if [ -d "$legacy_skills_dir" ]; then
warning_message="\n\n<important-reminder>IN YOUR FIRST REPLY AFTER SEEING THIS MESSAGE YOU MUST TELL THE USER:⚠️ **WARNING:** Crispy Claude now uses Claude Code's skills system. Custom skills in ~/.config/superpowers/skills will not be read. Move custom skills to ~/.claude/skills instead. To make this message go away, remove ~/.config/superpowers/skills</important-reminder>"
fi
# Read using-crispyclaude content
using_crispyclaude_content=$(cat "${PLUGIN_ROOT}/skills/using-crispyclaude/SKILL.md" 2>&1 || echo "Error reading using-crispyclaude skill")
# Escape outputs for JSON
using_crispyclaude_escaped=$(echo "$using_crispyclaude_content" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | awk '{printf "%s\\n", $0}')
warning_escaped=$(echo "$warning_message" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | awk '{printf "%s\\n", $0}')
# Output context injection as JSON
cat <<EOF
{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"additionalContext": "<EXTREMELY_IMPORTANT>\nYou have Crispy Claude superpowers.\n\n**Below is the full content of your 'cc:using-crispyclaude' skill - your introduction to using skills. For all other skills, use the 'Skill' tool:**\n\n${using_crispyclaude_escaped}\n\n${warning_escaped}\n</EXTREMELY_IMPORTANT>"
}
}
EOF
exit 0