From style-switcher
Compose the active snippet from each chosen category into a single delimited block and write it into the configured target file (default ~/.claude/CLAUDE.md). Within a category at most one snippet is active; across categories they layer.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin style-switcherThis skill uses the workspace's default tool permissions.
1. Resolve `$DATA_ROOT` from `config.json`. If missing, run `onboard`.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
Resolve $DATA_ROOT from config.json. If missing, run onboard.
Determine selections. Two modes:
$DATA_ROOT/snippets/. For each, show the current active snippet (if any) and the available options, and ask the user to (a) keep current, (b) switch to a different snippet, or (c) clear this category. Skip categories the user has no opinion on.<category>:<snippet> pairs. Validate each. Categories not mentioned keep their existing active snippet.Update active_layers in config.json with the new mapping. Drop keys whose value is null/cleared.
Backup target. Copy current target file (e.g. ~/.claude/CLAUDE.md) to $DATA_ROOT/backups/<basename>.<timestamp>.bak before touching it.
Build the block. For each entry in active_layers, in alphabetical category order, read the snippet body (frontmatter stripped) and emit:
<!-- style-switcher:start -->
<!-- Managed by style-switcher plugin. Edit via add-snippet/edit-snippet, not by hand. -->
## Style: <category> — <snippet>
<body>
## Style: <category> — <snippet>
<body>
<!-- style-switcher:end -->
Write. If the target already contains a <!-- style-switcher:start --> … <!-- style-switcher:end --> block, replace it in place. Otherwise append the block at the end of the file (preceded by a blank line).
Update applied_at in config.json to ISO-8601 now. Set active_recipe to null (manual layer composition is not a recipe).
Log. Append one JSON line to $DATA_ROOT/state/history.jsonl (create the directory if needed):
{"ts":"<iso>","action":"apply-layers","target":"<path>","layers":[{"category":"...","snippet":"..."}]}
Confirm. Print the resolved target path, the layered selection (category — snippet per line), and remind the user that CLAUDE.md changes take effect on the next Claude Code session. Close with TO RETURN TO YOUR DEFAULT CLAUDE.MD RUN /GO-AWAY.
active_layers is empty after the update, write no managed block — strip any existing one. The user's CLAUDE.md should be unmodified beyond block removal.