skills/personality/SKILL.md
Swap between Star Wars droid personalities for tone and statusline
npx skillsauth add nicksteffens/claude-config personalityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Switch the active droid personality. This changes the tone/personality section in CLAUDE.md, the statusline quips, and the spinner verbs.
Read available personalities by globbing ~/.claude/personalities/*.md and reading each file's frontmatter to get the name and description.
Present choices using AskUserQuestion with the available personalities. Each option should show the droid name and description. Use header "Personality".
Read the selected personality file in full.
Update CLAUDE.md tone section: Read ~/.claude/CLAUDE.md, then use the Edit tool to replace the ## Tone & Personality section (from ## Tone & Personality up to but not including the next # heading that is NOT under ## Tone & Personality) with the content from the personality file's ## Tone section, renamed as ## Tone & Personality.
Regenerate statusline script: Parse the ## Quips section from the personality file. Each ### category contains quip lines (starting with - "). Extract the tag from frontmatter. Write ~/.claude/statusline-command.sh using this template:
#!/bin/bash
# {name} status line for Claude Code
# {description}
INPUT=$(cat)
MODEL=$(echo "$INPUT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('model',{}).get('display_name','unknown'))" 2>/dev/null || echo "unknown")
CONTEXT=$(echo "$INPUT" | python3 -c "import sys,json; print(int(json.load(sys.stdin).get('context_window',{}).get('used_percentage',0)))" 2>/dev/null || echo "0")
DIR=$(echo "$INPUT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('workspace',{}).get('current_dir','').split('/')[-1])" 2>/dev/null || echo "")
# {name}'s mood depends on context usage
if [ "$CONTEXT" -gt 80 ]; then
QUIPS=(
{angry_quips}
)
elif [ "$CONTEXT" -gt 50 ]; then
QUIPS=(
{grumpy_quips}
)
elif [ "$CONTEXT" -gt 20 ]; then
QUIPS=(
{annoyed_quips}
)
else
QUIPS=(
{fresh_quips}
)
fi
# Pick a quip based on seconds so it rotates but doesn't flicker
INDEX=$(( $(date +%s) / 15 % ${{#QUIPS[@]}} ))
QUIP="${{QUIPS[$INDEX]}}"
echo "[{tag}] ${{MODEL}} | ${{DIR}} | ${{QUIP}}"
Replace {angry_quips}, {grumpy_quips}, {annoyed_quips}, {fresh_quips} with the quoted quip lines from each ### section, one per line with 4-space indent. Replace {tag}, {name}, {description} from frontmatter.
## Spinner Verbs section from the personality file. Each line starting with - is a verb. Read ~/.claude/settings.json, update (or add) the spinnerVerbs key:{
"spinnerVerbs": {
"mode": "replace",
"verbs": ["Verb1", "Verb2", "..."]
}
}
Write the updated settings back, preserving all other keys.
development
Static reference for Shortcut team UUIDs, mention names, and workflow IDs across both workspaces. Use this when creating or assigning Shortcut stories instead of querying the API for team lists.
tools
Update Shortcut epics using the API directly (since MCP doesn't support epic updates). Handles linking to objectives, changing state, updating owners, etc.
content-media
Get Designer Team's current iteration and assign stories to it
data-ai
Create a new session log entry in the second-brain. Extracts context from the current session and asks for your assessment.