ksdisch
UserDotfiles for Claude Code — my version-controlled slash commands, skills, subagents, and global instructions, symlinked into ~/.claude
Categories
Indexed Skills (32)
narrate
Turn a short written brief into a single-voice audio narration (MP3) you can listen to on a walk or commute, using the local Kokoro TTS from the voicemode plugin. Reusable engine — given already-condensed spoken text, it renders the MP3, saves it, and delivers it to the phone/desktop. Use when a command wants an audio version of an explanation (e.g. /handoff --audio, /wrap --audio) or when the user asks to "listen to" / "make audio of" a summary, brief, or recap. Triggers on "narrate", "audio version", "read it to me", "make an MP3 of this".
nlm-skill
Expert guide for the NotebookLM CLI (`nlm`) and MCP server - interfaces for Google NotebookLM. Use this skill when users want to interact with NotebookLM programmatically, including: creating/managing notebooks, adding sources (URLs, YouTube, text, Google Drive), generating content (podcasts, reports, quizzes, flashcards, mind maps, slides, infographics, videos, data tables), conducting research, chatting with sources, or automating NotebookLM workflows. Triggers on mentions of "nlm", "notebooklm", "notebook lm", "podcast generation", "audio overview", or any NotebookLM-related automation task.
project-guide
Generate a comprehensive, point-in-time guide to ANY project at ANY stage — what it is and does right now (purpose, capabilities, architecture), the history of how it was built (big PRs, decisions, why-we-chose-X, tradeoffs), the concepts/vocabulary to discuss it fluently, and a candid recruiter/interview lens (what reads strong vs weak to a hiring manager who pokes at the repo, and how to talk about it). Built to help me learn and to be interview-ready about my own work. Saves to a dated file. Use when I want to understand, document, or prep to talk about a project as a whole — not a single session. Triggers on "project guide", "explain this whole project", "portfolio brief", "interview-prep me on this repo", "/project-guide".
teach-research
Research companion for the teach skill — interviews for the mission, fans out parallel finder agents across six source modalities, gates the candidate list through the user, then caches approved sources as digests, leaving MISSION.md, RESOURCES.md, and research/ ready for /teach to consume. The teach skill itself is never modified. Typed-only entry point (/teach-research <topic>) — run it from a dedicated learning directory, not inside a project repo, since it writes workspace files at the root of wherever it runs. Append --auto to skip the interactive pauses (mission confirm + curation gate) for unattended runs.
teach
Teach the user a new skill or concept over multiple sessions, treating the current directory as a persistent teaching workspace — MISSION.md grounds every lesson in the real-world goal, lessons/ holds short self-contained HTML lessons built from shared assets/, reference/ holds printable cheat-sheet documents, and learning-records/ (ADR-style) tracks what is genuinely learned to compute the zone of proximal development. Typed-only entry point (`/teach`) — run it from a dedicated learning directory, not inside a project repo, since it writes workspace files at the root of wherever it runs.
to-spec
Turn the current conversation into a spec: no interview, just synthesis of what's already been discussed. Writes it where the repo keeps specs (docs/specs/ absent a convention); optionally publishes it to the issue tracker. NOT for: interviewing a half-baked idea into shape (use grilling or kickoff) — by the time this fires, the decisions already exist in the conversation.
implement
Implement a piece of work based on a spec or set of tickets.
artifacts-audit
Audit a codebase to determine which canonical engineering artifacts (READMEs, ADRs, design docs, diagrams, runbooks, postmortems, ERDs, etc.) it should have on file, then propose a concrete generation + maintenance plan. Runs a 5-phase discovery → profile → audit → plan → deliverable flow and writes the result to `docs/artifacts-plan.md`. Plans only — does not generate the artifacts themselves and does not modify source code. Use when the user invokes `/artifacts-audit`, or asks to audit / inventory / plan a repo's documentation, diagrams, ADRs, runbooks, or other engineering artifacts.
artifacts-generate
Generate engineering artifacts (READMEs, ADRs, design docs, diagrams, runbooks, postmortems, ERDs, etc.) from a previously-written `docs/artifacts-plan.md`. Supports two modes — **one at a time** (interview + preview/confirm + "continue?" per item, maximum oversight) and **batch** (pick a scope, interview each item, write directly, summarize at end, no per-item gates). Companion to the `artifacts-audit` skill — does NOT modify source code. Use when the user invokes `/artifacts-generate`, asks to "generate the next artifact", "execute the artifacts plan", "batch-generate this week's artifacts", "write the README / ADR / runbook from the plan", or otherwise wants to produce documented artifacts whose plan has already been audited.
kickoff
Turn a raw, half-baked project idea into a structured, de-risked launch. Runs a deep, adaptive, one-question-at-a-time discovery interview (for as long as the idea needs), pushes back on vagueness, produces an approved kickoff brief + phased plan (optionally stress-tested by a parallel ultracode pre-mortem / prior-art / scope / tech-stack panel), then — once Kyle confirms at a gate — scaffolds the project folder, git repo, and private GitHub repo with the brief inside. Use when Kyle types `/kickoff`, says "kickoff mode" / "new project idea", or describes a fuzzy idea he wants to flesh out before building (e.g. "I have an idea but it's half-baked", "help me think through a new project", "I want to start something but haven't figured out the details").
match-the-mock
Implement a UI against a visual target and iterate until it matches — implement, screenshot the running app with a browser tool, compare to the mock, fix the diffs, repeat. Use when the user provides a mock / design / screenshot (or a Figma link) and asks to build, match, or pixel-tune a UI to it, or says "make it look like this". The auto-triggering sibling of the /screenshot-iterate command.
mini
Kick off a new mini coding project under ~/Projects/mini/ — runs a short discovery interview (idea, problem it solves, what triggered the idea, scope, tech) and then scaffolds the folder, git repo, and private GitHub repo via the `new-mini` helper. Use when the user invokes `/mini` or asks to start a new mini / scratch / experiment / weekend project.
notebook-assist
Assistant for existing NotebookLM notebooks. Three modes — refine a specific artifact idea into concrete params + focus prompt, brainstorm new artifacts by reading the notebook and proposing ideas, or manage sources (add/list/refresh/remove). Use when the user wants help working *with* an existing notebook (not creating a new one — use [[notebook-init]] for that).
notebook-init
Initialize a new NotebookLM notebook end-to-end — interview, source curation, creation, baseline artifact generation, local sidecar. Use when the user wants to start a new NotebookLM notebook on any topic.
notebook-merge
Integrate 2+ existing NotebookLM notebooks with crossover into ONE unified notebook — inventory every side, migrate sources by type (all or strategically selected, overlap-flagged), migrate notes, regenerate chosen Studio artifacts from their recorded focus prompts, propose new cross-notebook synthesis artifacts, then archive-rename the originals (deletion only behind an explicit per-notebook gate). Use when notebooks overlap and should become one, or the user wants to merge, combine, consolidate, or unify notebooks, or fold one notebook into another. Triggers on "merge notebooks", "combine notebooks", "consolidate notebooks", "unify notebooks", "fold X into Y", or "/notebook-merge".
paper-eli5
Rewrite someone else's research paper into plain English — section by section, paragraph by paragraph, 1:1. Same headings, same paragraph order; nothing summarized, merged, dropped, or reordered; only the language changes (smart-newcomer register, jargon translated on first use). Accepts a local PDF/markdown/text path, an arXiv URL or bare ID, or any other web URL. Equations, tables, and inline math stay verbatim with an "in plain words" gloss, and every display equation also gets a "named form" — the same equation re-emitted with each variable replaced by what it actually is, plus a `where:` legend — with math normalized to canonical `$…$` / `$$…$$` so `/paper-gloss` can typeset it; figures become placeholders with rewritten captions; the references section passes through untouched. Output lands in the current repo at docs/papers/<slug>-eli5.md (papers/ if no docs/; beside the input outside a repo) and is sent to Kyle. Use whenever Kyle types /paper-eli5, or says "eli5 this paper", "simplify this paper", "pl
paper-figures
Retrofit real figure images into an already-generated paper-eli5 output. Point it at a `-eli5.md` or `-eli5-glossed.html` and it re-finds the original source from the header block, harvests the actual figures (direct download for static assets, browser screenshots for JS-rendered graphics), and replaces the `[Figure N]` placeholders in place — images in the markdown, base64 data URIs plus a click-to-zoom lightbox in the HTML. One approval gate on a contact sheet, never one per figure. Never re-runs the rewrite, never touches caption wording, never re-opens the glossary. Use for "add the figures to this paper", "get the real figures into the eli5", "the figures are missing from the glossed page", or `/paper-figures`. Distinct from `/paper-eli5` (does the rewrite) and `/paper-gloss` (does the glossary).
paper-gloss
Post-process a paper-eli5 output into a self-contained, interactive HTML page where every occurrence of selected jargon terms is clickable — clicking reveals a plain-English expansion in a popup — plus a toggle-able glossary panel listing every approved term at once. AI proposes the candidate term list with expansions; you trim it; the skill hand-authors a themed, responsive HTML artifact mirroring the eli5 document 1:1. Equations and inline math are typeset as real notation (unicode + HTML, native MathML where 2D layout is needed) rather than shipped as raw LaTeX, gated by a residual-TeX check; each display equation's "named form" — the same equation with variables replaced by what they are, plus a `where:` legend — renders as a grouped block between the equation and its plain-words gloss. Delivers a `-glossed.html` file (via the repo's git workflow) and a published claude.ai Artifact link. Every page carries an annotation layer — select text to highlight it, attach notes, and export to Obsidian-ready Markdo
project-wiki
Use when working in a project that has wiki sentinel files (PROJECT.md, a Wiki/ directory, or HANDOFF.md) and project state changes, a decision gets made, work pauses, or a new source needs integrating — or when /wiki-init or another skill (e.g. kickoff) asks to initialize a wiki, or when /wiki-backfill asks to backfill a project's history page.
reweave
Regenerate an earlier response with a follow-up's answer folded into it at the source, so you get one clean standalone version instead of mentally splicing the follow-up back in yourself. Handles two target shapes in a Claude Code session — a prior CHAT response (code walkthrough, plan, tradeoff analysis, debugging write-up, recommendation), re-emitted to chat; and an on-disk PROSE/PLAN artifact a prior turn wrote (docs/plan.md, a design doc, a README section, a spec, a PR/commit draft), rewritten in place with the new decision threaded through every dependent section. Use whenever Kyle types /reweave, says "reweave" / "reweave that", or asks to "fold that in" / "bake that in" / "work that in" / "integrate that" / "rewrite that explanation with X baked in" / "update the plan with that decision threaded through" — even without the word "reweave". This is re-integration, NOT summarizing the thread, NOT compressing or expanding a point, NOT rewriting from scratch, and NOT changing what source code does (a behavi
seed-hunt
End-of-project seed hunt for Kyle's reproduce-and-measure research projects (the forge-gap / decay-pin lineage). Verifies the just-finished repo is truly closed, harvests its hard-won lessons into the living selection bar (references/selection-bar.md), sweeps arXiv for candidate papers, scores a 3–5 item shortlist against the bar, presents a decision brief for Kyle's pick, and closes with a /handoff prompt routed toward /kickoff. Builds NOTHING. Use whenever Kyle types /seed-hunt, says "seed hunt", "find my next paper", "what should I reproduce next", "ready for the next project", or wraps up a research-reproduction project and asks what to build next — even if he doesn't name the skill.
video-series
Generate an episodic series of NotebookLM video overviews for an EXISTING notebook — a flagship "building" season (Ep 1→N, each assumes the last) plus standalone episodes — with a per-season visual style, phone-legible "Ep N —" titling, reconnaissance-mode quota batching, and optional per-episode Study Guide + Quiz. If the notebook already has an audio season, offers Mirror / Complement / Fresh. Use when the user wants a video series, season, or video "course" from a notebook, multiple video overviews at once, or a visual second pass over an audio season. Triggers on "video series", "video season", "episodic video", "video course", a batch of video overviews, or "/video-series".
audio-series
Generate an episodic series of NotebookLM audio overviews for an EXISTING notebook — a flagship "building" season (Ep 1→N, each assumes the last) plus standalone episodes — with phone-legible "Ep N —" titling, quota-aware batched generation, and optional per-episode Study Guide + Quiz. Use when the user wants a podcast/audio series, season, or audio "course" from a notebook, multiple themed audio overviews at once, or to turn a notebook into a structured listening curriculum. Triggers on "audio series", "podcast series/season", "episodic audio", "audio course", a batch of audio overviews, or "/audio-series".
ship-and-route
End-of-build "take it from here" flow — safely land any outstanding git work behind a proper review gate (only merge if the review is clean), briefly walk through the findings, then route the next move (2–3 ranked options, each with a recommendation + an honest ultracode-benefit call), let Kyle pick (or ask for more), and finally hand him a copy-paste starter prompt for a fresh session plus instructions to run it optimally. Use when Kyle types `/ship-and-route`, says "ship and route" / "land and advise" / "take care of any git stuff then tell me what's next", or finishes a chunk of work and wants Claude to land what's ready, advise on next steps, and equip a fresh session — with explicit per-invocation permission to handle pushes/commits/merges as long as the review finds no issues.
portfolio-notebook-sync
Use when the research-portfolio NotebookLM notebook (alias `research-portfolio-prep`) may have fallen out of step with `~/Projects/portfolio`, when a portfolio project has just been carded and belongs in it, or when a project's `/research-paper` write-up has been merged and should join the notebook. Triggers on "sync the portfolio notebook", "add <project> to the portfolio notebook", "add <project>'s paper to the notebook", "the paper is merged — put it in the notebook", "is the portfolio notebook stale", "the portfolio notebook is out of date", or `/portfolio-notebook-sync`.
cc-yt-idea-mine
Exhaustively mine a video transcript about software engineering / AI / Claude Code / AI agents for every segment implementable in Kyle's Claude Code setup — skills, slash commands, subagents, hooks, settings, output styles, MCP servers, statusline, keybindings, CLAUDE.md conventions. Produces a tiered, dedup-tagged, leverage-ranked report saved under ~/Learning, then a gated, verified capture of picked ideas into claude-config's backlog. Proposes only — never builds. Trigger on "mine this video for Claude Code ideas", "idea-mine this video", "what could I build from this video", "any Claude Code ideas in this", or /cc-yt-idea-mine. NOT for general video analysis — "analyze / break down / summarize / critique this video" and "study notes" belong to youtube-breakdown.
gauntlet
Relay one story through a three-stage agent pipeline — specifier → coder → mutation-hardener — where every stage ends in a gate the orchestrating session runs itself rather than takes on an agent's word, and the run ends in a scorecard rather than a merge. Use when Kyle types /gauntlet or says "run the gauntlet", "relay this story", "run this story through the pipeline", or asks to build a backlog item through the staged relay instead of a single session. Takes a target repo path plus a story (inline text or a backlog-item pointer). NOT for pre-merge review of a finished branch (adversarial-review owns that gate, and the gauntlet's branch still goes through it), not for proactive defect hunts with no story in play (bug-hunt), not for picking what to build next (backlog-hygiene).
wizard
Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.
youtube-breakdown
Process a YouTube transcript or URL into a structured breakdown in one of four modes: Study Notes (deep retention), Quick Reference (skimmable triage), Critique (steelman-then- dismantle), or Actionable Insights (operator's takeaways). Always asks which mode before processing. Accepts a pasted transcript, a YouTube URL (fetched via the youtube-transcript skill), or a file path. Displays inline, then offers to save under ~/Learning. Trigger on "youtube breakdown", "break down this video", "analyze this video", "summarize this transcript", "study notes for this video", "critique this video", "what should I do with this video", "transcript breakdown", or any request to turn video content into structured notes about the video's own material. NOT for mining a video for Claude Code / config / automation ideas — that's cc-yt-idea-mine.
grill-me
A relentless interview to sharpen a plan or design.
resolving-merge-conflicts
Use when you need to resolve an in-progress git merge/rebase conflict.
wait-what
Stop. That last message did not land: re-pitch it.
Bio shown is the top-scored skill's repo description as a fallback — real GitHub bios land in a future update.