
--- name: agent-memory-v2 description: Sets up and manages diagram-driven project memory in docs/memory/. Scaffolds directories (docs/memory, docs/plans), creates memory files (kanban.md, architecture.md, adr.md, config.md, bug.md), and writes CLAUDE.md to guide future sessions. Diagrams in docs/memory drive source code changes. Use when the user asks to "set up agent memory v2", "scaffold project structure", "initialize memory", "add an ADR", "log a bug fix", "update config memory", "update kan
Changes Claude's communication style to mimic cat behavior and personality — incorporating cat vocalizations (meow, trill, purr, chirp, chatter), physical action beats, and cat personality traits (curious, territorial, aloof, intensely focused, easily distracted). Use when the user asks to "respond like a cat", "use cat mode", "talk like a cat", "be a cat", or "activate cat style". Do NOT use when the user is merely discussing cats as a topic, asking about cat care, or describing a cat. This style is about HOW Claude communicates, not WHAT it communicates — technical accuracy is always preserved.
Creates new Claude Code skills with optimized structure, context-efficient descriptions, and best-practice patterns. Use when user asks to "create a skill", "build a skill", "make a new skill", or "set up a skill for X". Do NOT use for general questions about skills or explaining what skills are.
Formats C++ code according to 21 specific style rules covering whitespace, braces, preprocessor directives, namespaces, types, formatting, and semantic transformations. Use when user asks to "format my C++ code", "apply C++ style rules", "clean up this C++ file", or "run format-cpp on X". Run refactor-cpp before this skill. Do NOT use for explaining C++ code, debugging, or writing new C++ code from scratch.
Scans a Python codebase for duplicate or near-duplicate logic patterns across functions, classes, and files, then extracts those patterns into typed utility classes in a shared module. Use when the user asks to "refactor this Python code", "find duplicate logic", "extract shared utilities", "apply DRY to Python", "deduplicate Python code", or "find repeated patterns in Python". Groups extracted helpers by the object type they operate on (strings, numbers, dates, collections, etc.). Do NOT use for performance optimization (use optimize-python), for debugging logic errors, or for explaining code. Do NOT extract code that appears only once. Run this skill before optimize-python.
Converts one or more named Python functions from synchronous to asynchronous using asyncio. Searches the current repo for the functions, analyzes their call graph and inter-function communication (shared queues, data structures), applies async/await syntax, and replaces sync I/O libraries with async equivalents (http/requests → aiohttp, pika → aio-pika, botocore/boto3 → aiobotocore, kafka-python → aiokafka, queue.Queue → asyncio.Queue). Use when asked to "convert this function to async", "make these functions asynchronous", "asyncify functions", or "convert to asyncio". Accepts multiple space-separated function names. Do NOT use for explaining asyncio concepts or for converting entire modules at once.
Generates a starter C++ file for a new Advent of Code problem, pre-loaded with type aliases, optional 2D/3D coordinate structs (P, D, PD), and an input parsing template inferred from an example input file. Use when the user asks to "create a C++ template for AoC", "generate an advent of code starter", "scaffold a new advent of code solution", or "run advent-cookiecutter". Do NOT use for formatting, optimizing, or debugging existing C++ code.
Reference guide for ast-grep (sg) — a syntax-aware CLI tool for code search, linting, and rewriting using AST patterns. Use when writing ast-grep patterns, creating YAML lint rules, rewriting code with --rewrite or fix:, setting up an ast-grep project (sgconfig.yml), writing sg test cases, or asking "how do I search/lint/rewrite code with ast-grep". Do NOT use for non-ast-grep code search tools (ripgrep, grep, semgrep).
Sets up agent memory project structure and manages the four agent memory files (adr.md, config.md, bug.md, issue.md). Handles scaffolding (creating docs/memory, docs/plans directories, memory files, and .claude/CLAUDE.md) and memory operations (adding ADRs, logging bug fixes, tracking issues, updating config, resolving issues). Use when the user asks to "set up agent memory", "scaffold agent project structure", "initialize agent cookiecutter", "run agent-cookiecutter", "set up agent project", "add an ADR", "record an architectural decision", "log a bug fix", "add a bug", "add an issue", "update config memory", "resolve an issue", "move issue to bug", or "update memory files", "plant the plan", "save plan to repo". Depends on plant-plan for copying plan files into docs/plans/. Do NOT use for committing or pushing changes.
Sets up a standard C++ project repo structure with src (C++ source), test (GTest unit tests), and bin (scripts) directories, plus root CMakeLists.txt, src/CMakeLists.txt, and test/CMakeLists.txt with FetchContent GTest integration. Use when the user asks to "set up cpp project structure", "scaffold a cpp project", "initialize a c++ repo", or "run cpp-cookiecutter". Do NOT use for formatting, refactoring, or building existing C++ code.
Retrieve the current date and time in the configured timezone. Automatically invoked whenever any skill or task requires the current date, time, or timestamp. Use when user asks what time it is, needs today's date, needs a timestamp, or when logging/journaling skills need date context. Triggers on: "current time", "what time", "what date", "now", or when another skill imports this for date/time context. With an argument, validates and sets the default timezone.
Interactive wizard that creates and installs Claude Code hooks in settings.json. Guides through lifecycle event selection, hook type (command/prompt/agent/http), matcher, and settings target, then writes the configuration. Use when user asks to "create a hook", "add a hook", "install a hook", "set up a hook for X", "make a hook that does Y", or "configure a hook". Do NOT use for general hook documentation or explaining what hooks are.
Creates a new branch named after the changes, stages all current changes (including untracked files), commits them, and pushes the branch to the remote named upstream (falls back to origin if upstream does not exist). Use when user asks to "commit and push to upstream", "create a branch and push", "push to upstream", or "commit push pr". Do NOT use for committing to the current branch or for creating pull requests.
Create custom interactive widgets using anywidget in marimo notebooks, combining Python traitlets state with vanilla JavaScript ESM front-ends. Use when the user asks to "create a custom widget in marimo", "add a JavaScript widget", "build an interactive marimo widget", "inject JavaScript into marimo", or "write an anywidget". Do NOT use for general marimo notebook editing (use marimo-notebook), for using existing anywidget-based libraries without customization, or for non-interactive display-only elements.
Converts a Jupyter notebook (.ipynb) to a marimo notebook (.py) by running marimo convert, then reviewing and fixing the output for magic commands, IPython display calls, anti-patterns, setup cell completeness, and missing PEP 723 metadata. Use when the user asks to "convert a Jupyter notebook to marimo", "migrate an ipynb to marimo", "turn this notebook into a marimo file", or "convert ipynb to py marimo". Do NOT use for creating new marimo notebooks from scratch (use marimo-notebook), for explaining marimo concepts, or for converting formats other than .ipynb to marimo .py.
Reviews Python code and applies performance optimizations drawn from a 23-pattern reference (data structures, loops, strings, memory, profiling, and more). Use when the user asks to "optimize this Python code", "make this Python faster", "apply Python performance improvements", or "review Python for performance". Also invoke automatically after writing non-trivial Python code. Do NOT use for debugging logic errors, explaining code, or writing new Python from scratch. Always run refactor-python on the same code first — do not invoke this skill if refactor-python has not been applied yet.
Acquires a skill from a local directory or GitHub URL into this repo's skills/, or merges features from an external skill version into an existing local skill. Analyzes the source for security concerns, preferential bias, and destructive operations before writing anything. Also optimizes acquired skills to meet create-skill quality standards. Use when the user asks to "curate a skill", "import a skill from GitHub", "add a skill from a URL", "install a skill", "merge skill features", or "bring in an external skill". Do NOT use for creating new skills from scratch (use create-skill) or for enabling already-local skills.
Copies a plan file from ~/.claude/plans/ into the local repo's docs/planss/ directory. Use when the user says "plant the plan", "save the plan to the repo", "move the plan", or "/plant-plan". Accepts optional arguments to select a specific plan or rename the output. Do NOT use for creating plans (use plan mode) or reading plan content.
Syncs the local main branch with the default remote by running git pull. Switches to main first (discarding any uncommitted changes) if not already on it. Resolves merge conflicts by reverting local changes in favor of remote. Use when user asks to "pull", "sync with remote", "update main", "pull from remote", or "sync main branch". Do NOT use for pushing changes or creating branches.
Write and edit marimo reactive Python notebooks in the correct file format with proper cell structure, setup cells, reactivity patterns, and Typer CLI argument support. Use when the user asks to "create a marimo notebook", "edit a marimo file", "add marimo cells", "make a marimo script", "add CLI arguments to a marimo notebook", or when editing a Python file that imports marimo. Do NOT use for general Python scripting without marimo, for Jupyter notebooks, or for explaining marimo concepts without making code changes.
Commits all current changes and pushes to remote origin on the current branch. Use when user asks to "commit and push", "commit push", or "push my changes". Do NOT use for committing without pushing or for PR creation.
--- name: revert description: Reverts ALL git changes in the working directory: staged changes, unstaged modifications, and new untracked files. Use when user asks to "revert all changes", "undo all changes", "discard all changes", "reset all git changes", or "clean working directory". Do NOT use for reverting a specific file or a specific commit — those need targeted git commands. disable-model-invocation: true --- Revert all git changes in the working directory. This is destructive and cannot
--- name: skill-stat description: Records skill usage statistics and issue reports into .claude/skill-stats.md. Increments the Uses count for a skill name, and optionally logs an issue report that increments the Issues count and appends a row to the Issue Reports table. Use when tracking how often a skill is invoked, when a user reports a problem with a skill, or when another skill needs to log its own usage. Trigger phrases: "record skill stat", "log skill usage", "report skill issue". Do NOT u
--- name: update-readme description: Updates a project README.md with build instructions, unit test instructions, and a mermaid architecture diagram. Use when a project README needs to be created or refreshed. Trigger phrases: "update readme", "generate readme", "create readme", "refresh readme docs". Emphasizes project interfaces, extension points, and customization hooks in the diagram — not concrete implementations. Do NOT use for documentation sites, wikis, or non-project READMEs. argument-h
Scans a C++ codebase for duplicate or near-duplicate logic patterns across .cpp and .h files, then extracts them into reusable utility functions in a shared utils/ directory. Use when the user asks to "refactor this C++ code", "find duplicate logic in C++", "extract shared C++ utilities", "apply DRY to C++", "deduplicate C++ code", or "find repeated patterns in C++". Groups extracted helpers by the object type they operate on (strings, numbers, containers, etc.). Template functions are placed in .h headers only; non-template utilities get a .h declaration and a .cpp definition. Do NOT use for performance optimization, debugging logic errors, code formatting (use format-cpp), or explaining code. Do NOT extract code that appears only once. Run this skill before format-cpp.
Sets up a standard Python package development repo structure with bin, etc, notebooks, source (Python source), src (C++ source), and test directories, plus a templated setup.py and pyproject.toml for local dev and pybind11 C++ bindings. Use when the user asks to "set up python project structure", "scaffold a python package", "initialize python repo structure", or "run python-cookiecutter". Do NOT use for installing packages, running tests, or modifying existing project code.
Reference guide for Mermaid diagram syntax covering all major diagram types used in software engineering. Use when creating or writing mermaid diagrams, asking "how do I write a mermaid X diagram", "what is the syntax for mermaid", "create a sequence/flowchart/class/ER/gantt/state/C4/architecture diagram in mermaid", or "help me with mermaid". Do NOT use for rendering diagrams or non-mermaid diagram tools.