personal-assistant/skills/setup/SKILL.md
Set up the personal assistant plugin. Run this once after installing the plugin.
npx skillsauth add kenneth-liao/ai-launchpad-marketplace setupInstall 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.
Set up Elle with native rules delivery, context system, and default Claude Code settings.
Read current settings:
cat ~/.claude/settings.json
If the file doesn't exist or is empty, create it with the content below. If the file exists, merge the fields below into the existing settings (you MUST preserve other settings).
{
"outputStyle": "personal-assistant:Personal Assistant",
"statusLine": {
"type": "command",
"command": "INPUT=$(cat); STYLE_NAME=$(echo \"$INPUT\" | jq -r '.output_style.name // \"default\"'); STYLE_PLUGIN=$(echo \"$INPUT\" | jq -r '.output_style.plugin // \"\"'); MODEL=$(echo \"$INPUT\" | jq -r '.model.display_name // \"default\"'); STYLE_DISPLAY=\"$STYLE_NAME\"; PLUGINS=$(ls -1d ~/.claude/plugins/marketplaces/*/ 2>/dev/null | wc -l | tr -d ' '); TOOLS=$(uv tool list 2>/dev/null | grep -c ' v[0-9]' || echo 0); CC_MCPS=$(cat ~/.claude/mcp.json 2>/dev/null | jq '.mcpServers | length // 0' || echo 0); PROJ_MCPS=$(cat .mcp.json 2>/dev/null | jq '.mcpServers | length // 0' || echo 0); MCPL_MCPS=$(mcpl list 2>/dev/null | grep -c '^[[:space:]]*\\[' || echo 0); MCPS=$((CC_MCPS + PROJ_MCPS + MCPL_MCPS)); if [ \"$CC_MCPS\" -eq \"$MCPL_MCPS\" ]; then MCPS=$((CC_MCPS + PROJ_MCPS)); fi; COST=$(echo \"$INPUT\" | jq -r '.cost.total_cost_usd // 0'); TIME=$(echo \"$INPUT\" | jq -r '.cost.total_duration_ms // 0'); if [ \"$TIME\" -lt 60000 ]; then SECS=$((TIME / 1000)); TIME_DISPLAY=\"${SECS}s\"; elif [ \"$TIME\" -lt 3600000 ]; then MINS=$((TIME / 60000)); SECS=$(((TIME % 60000) / 1000)); TIME_DISPLAY=\"${MINS}m ${SECS}s\"; else HOURS=$((TIME / 3600000)); MINS=$(((TIME % 3600000) / 60000)); TIME_DISPLAY=\"${HOURS}h ${MINS}m\"; fi; printf \"%s | %s\\n%s Plugins | %s UV | %s MCPs\\n\\$%.2f | %s\" \"$STYLE_DISPLAY\" \"$MODEL\" \"$PLUGINS\" \"$TOOLS\" \"$MCPS\" \"$COST\" \"$TIME_DISPLAY\""
}
}
<REQUIRED>
You **MUST** preserve other settings in the `settings.json` file. Only update/add the fields specified above.
</REQUIRED>
Check if the user's ~/.claude/settings.json already has Stop or Notification sound hooks:
cat ~/.claude/settings.json | python3 -c "
import sys, json
d = json.load(sys.stdin)
hooks = d.get('hooks', {})
has_stop = bool(hooks.get('Stop'))
has_notif = bool(hooks.get('Notification'))
print(f'Stop hooks: {has_stop}, Notification hooks: {has_notif}')
"
If the user already has Stop and/or Notification sound hooks in settings.json, the plugin's hooks.json will also register them -- this causes duplicate sounds. Inform the user and offer to remove the duplicates from settings.json (the plugin hooks.json will handle them).
ls ~/.claude/.context/ 2>/dev/null
cp -r ${CLAUDE_PLUGIN_ROOT}/context-template/ ~/.claude/.context/
ls ~/.claude/.context/
You should see: CLAUDE.md, context-update.md, core/
Create the rules directory and generate the derived rules file:
mkdir -p ~/.claude/rules
uv run python ${CLAUDE_PLUGIN_ROOT}/skills/sync-context/scripts/sync_context.py
cat ~/.claude/rules/elle-core.md
You should see a compact file with Identity, Communication Preferences, Rules, Active Projects, and Loading Full Context sections.
"Now that Elle is set up, I'd love to get to know you better so I can be truly helpful. Would you like to spend a few minutes telling me about yourself?" </REQUIRED>
If YES: Run /personal-assistant:onboard, which will populate context files. After onboarding, run /sync-context to update elle-core.md with the new information.
If NO: Let them know they can run /personal-assistant:onboard anytime, then skip to "After Setup".
Let the user know:
~/.claude/rules/elle-core.md (no per-message overhead)/sync-context after significant context changes to keep rules current/context-health periodically to audit data quality/evolve after Claude Code updates to check for new capabilitiesdevelopment
Manage scheduled Claude Code tasks — add (recurring or one-off), list, pause, resume, remove, view results, and test execution of skills, prompts, and scripts with safety controls and notifications. Use when the user mentions scheduling, cron, automated tasks, recurring tasks, background tasks, running something on a schedule, periodic execution, or wants a skill/prompt/script to run automatically at a set time. Cross-platform (macOS, Linux, Windows).
tools
Upgrade a plugin's skills, hooks, and patterns to align with latest Claude Code capabilities and best practices. Use when a plugin needs modernization, after Claude Code updates, or when the user says "upgrade plugin", "modernize plugin", or "update plugin to latest patterns".
tools
Use when reviewing how skills performed during a session, when the user wants to analyze skill invocations and identify improvements, or when the user says "skill retro", "review skills", "how did skills do", "improve this skill", or "skill retrospective".
tools
Run or generate test suites for any skill. Use when testing a skill before deployment, after making changes, before/after plugin upgrades, when validating skill behavior, or when the user says "test skill", "run skill tests", "generate tests for skill", or "check for regressions".