A personal collection of Claude Code skills, consolidated from various project repos so they have one canonical home.
Each skill lives under skills/<name>/ as a standard SKILL.md package.
CLAUDE.md at the repo root is the canonical copy of ~/.claude/CLAUDE.md (personal, cross-project Claude Code instructions — communication rules, evidence rules, session hygiene). install.sh symlinks it into place the same way it symlinks skills; edit here, not in the live ~/.claude/CLAUDE.md, so every machine picks up the change on the next git pull. Claude-only by nature (it's Claude Code's own config file), so install.sh doesn't try to place it for Cursor or Codex.
hooks/diu-stop/-- a stop-time backstop for thediuskill: checks the final response against diu's brevity rule and pushes back if it looks skipped. Not a single shared file, since Claude Code, Cursor, and Codex CLI each have a genuinely different amount of power at stop time (hard block, soft one-shot nudge, or notify-only with no enforcement at all) -- seehooks/diu-stop/README.mdfor the per-harness breakdown and install steps.
-
i-have-adhd— theskills/i-have-adhd/subtree of EdbertChan/i-have-adhd (a fork of ayghri/i-have-adhd), pulled in viagit subtree. The upstream repo has extra tooling (hooks, tests, extensions) outside this one skill folder, so a plainsubtree add/pullagainst its root would drag all of that in too — updates instead go through a two-step split:# 1. re-clone the fork and extract just the skill folder's history into a branch git clone https://github.com/EdbertChan/i-have-adhd /tmp/i-have-adhd-src git -C /tmp/i-have-adhd-src subtree split --prefix=skills/i-have-adhd -b extracted # 2. pull that branch into catstack as a subtree update git subtree pull --prefix=skills/i-have-adhd /tmp/i-have-adhd-src extracted --squash
-
draft-pr,split-scope— generic PR-drafting and diff-splitting skills, copied from DrafterSkill (packages/skill/skills/), current as of commitd4bb326. Theinvoker-make-prandinvoker-review-compressionskills used in the Invoker repo are project-specific forks of these two. -
principle-*(14 skills) — cherry-picked from thepstackplugin in cursor/plugins (commit63d938c), by Lauren Tan. Each one is a short, narrowly-triggered engineering rule. Selected after backtesting all 21pstackprinciples against real Invoker/smithers/catalyst/etc. transcript history — these 14 either matched a proven-good habit or a real, verified past failure; the other 7 (prove-it-works— redundant withinvoker-prove-it/process-guard— plus 6 more still under review) were left out for now:outcome-oriented-execution,foundational-thinking,type-system-discipline— each tied to a real, verified production buglaziness-protocol,fix-root-causes,separate-before-serializing-shared-state,sequence-verifiable-units,build-the-lever,encode-lessons-in-structure,never-block-on-the-human,experience-first— already an established habit in practicesubtract-before-you-add,minimize-reader-load,guard-the-context-window— mixed evidence, kept as a guardrail
This was a manual cherry-pick, not a
git subtree— there's no single upstream prefix that maps to "these 14 skills," so there's nothing tosubtree pull. To refresh one, re-copypstack/skills/<name>/SKILL.mdfrom the source repo above at whatever commit is current. -
reflect— mines a conversation transcript for durable learnings and routes them into skill edits, gated on explicit user approval before anything is touched. Adapted frompstack'sreflect, rewritten for Claude Code (its own transcript layout, theAgenttool for review fan-out, no dependency on Cursor'screate-skill). Claude-only —install.shskips it for Cursor/Codex. Findings about the user's working style rather than the code route toautomate-meinstead of becoming an inline skill edit. -
automate-me— mines session history (single-session viareflect's transcript lookup, or cross-session/cross-machine viareflect'scorpus_scan.py) for durable working-style preferences and drafts or updates one personal<handle>-modeskill. Adapted frompstack'sautomate-me, rewritten for Claude Code the same wayreflectwas:AskUserQuestionin place of Cursor'sAskQuestion, direct file writes in place ofcreate-skill, and catstack's ownprinciple-minimize-reader-load/principle-subtract-before-you-addin place of the missingunslopskill. Claude-only, same reason asreflect—install.shskips it for Cursor/Codex. -
diu— communication-brevity rule (ELI5 under 40 words unless the user asked for depth), extracted verbatim frominvoker-diuin the Invoker repo's own skill set. Zero Invoker-specific content, was just filed under the wrong prefix. -
land-stack— SHA-verified PR-stack landing (never resolve the PR to merge by branch name). Generalized frominvoker-land-stack: kept the discipline, stripped the Invoker-specific guard script path since that script doesn't exist outside that repo. -
visual-proof— trustworthy before/after visual evidence for a UI-affecting change: never reuse a stale asset, actually open and look at the capture before claiming what it shows, handle genuinely-uncapturable states honestly instead of faking a screenshot. Generalized frominvoker-visual-proof: kept the discipline, replaced Playwright/R2-specific capture mechanics with a tool-agnostic before/change/after/compare workflow. -
loop-generator— interview-driven generator for a reusable babysit/watch/retry loop: a loop instruction doc (goal, real target, success/fail invariants, evidence sources, exit conditions) plus a driver script with real safety rules (rebuild the live target set every run, dedupe by identity, never silently widen from inspection into writes). Generalized frominvoker-loop-generator: dropped the third artifact (an Invoker-workflow-orchestrator YAML) since that assumed a specific internal system with no analog elsewhere; kept the interview and the two generic artifacts.The rest of the
invoker-*skills (invoker-remote-ci-verify,invoker-workflow-chain-submit,invoker-invoker-ops,invoker-invoker-setup,invoker-plan-to-invoker) hard-depend on Invoker's own scripts, CLI, database, or YAML schema — correctly stay project-scoped, not catstack candidates.invoker-prove-itis redundant withprocess-guard.invoker-admin-bypass-sweepis a separate, real gap: it exists only as a local~/.claude/skillscopy with no matching file anywhere in the Invoker repo — it needs to be committed intoInvoker/skills/, not here (catstack is for portable skills; that one is Invoker-specific and dangerous by design).