
Add a new service to the Homepage dashboard. Use when a new container or VM has been set up on Proxmox and needs to be added to Homepage. Discovers IP and port automatically from the container.
Set up lefthook with standard pre-commit hooks
Service-Driven Development workflow for Effect-TS. Schema-first, type-driven, property-tested. USE THIS SKILL WHEN: Designing a new feature spanning 3+ services, sketching service boundaries before implementation, user says 'design', 'sketch', 'SDD', 'service-driven', planning multi-service composition. NOT FOR: single-service CRUD, implementing against an existing spec. TRIGGERS ON: 'design services', 'sketch services', 'SDD', 'service-driven', 'type-driven design', 'design the API first', 'audit services', 'bring to SDD standard', 'SDD audit'
Set up AGENTS.md and symlink CLAUDE.md to it
Generate a Mermaid diagram of monorepo package relationships
Generate a Mermaid ERD from SQL schema files
Quarterly PR Activity Report
Convert markdown to styled HTML for pasting into Google Docs. Use when the user wants to copy markdown (with tables, images, code blocks) into Google Docs or similar.
Convert mermaid diagrams in markdown files to PNG images. Use when the user wants to export markdown with mermaid to formats that don't support mermaid (Google Docs, PDF, etc).
Set up Homebrew releases for a Bun/TypeScript CLI project
Search and manage documents in Paperless-ngx document management system. Use when the user asks about documents, invoices, receipts, tax forms, bills, or wants to search their document library.
Save current session context to Obsidian vault. INVOKE THIS SKILL when user: - Says "save to obsidian", "note this to obsidian", "add to vault" - Wants to capture session insights to their notes - Says "save this session", "dump to obsidian" - Asks to "create a note from this conversation" - Mentions wanting to remember or archive the current discussion Trigger phrases: "save to obsidian", "note this", "add to vault", "save session", "dump to notes", "obsidian note"
Categorize uncategorized FreshRSS feeds by sampling content and inferring the best category. Use when user says "organize feeds", "categorize feeds", or wants to clean up uncategorized subscriptions.
Set up oxlint and oxfmt in a JavaScript/TypeScript project
Proxmox VE sysadmin for home lab infrastructure. Use when triaging services, checking container/VM status, viewing logs, managing resources, or debugging self-hosted apps. Can discover infrastructure dynamically via SSH.
Resolve merge conflicts across all open GitHub PRs authored by the current user in the current repository by running resolve-merge-conflicts for each PR.
React useEffect best practices from official docs. Use when writing/reviewing useEffect, useState for derived values, data fetching, or state synchronization. Teaches when NOT to use Effect and better alternatives.
Update the current PR description from the repo PR template and set a conventional-commit title based on the PR changes.
Resolve git merge conflicts for a GitHub PR. Accept a PR link/number when provided, otherwise infer the open PR for the current branch.
Use skills deliberately when they clearly match the task; avoid mandatory skill invocation for trivial work
Quickly log a Today-I-Learned note to Obsidian. Use when user says "/til", "today i learned", or asks to capture a small learning from current work. Bias toward the user prompt first, then inspect session context (recent messages, commands, files, errors, decisions) to enrich relevant details. Write a concise Obsidian note with front matter tags for TIL organization.
Expert-level Home Assistant configuration management with efficient deployment workflows (git and rapid scp iteration), remote CLI access via SSH and hass-cli, automation verification protocols, log analysis, reload vs restart optimization, and comprehensive Lovelace dashboard management for tablet-optimized UIs. Includes template patterns, card types, debugging strategies, and real-world examples.
Autonomously fix a pull request by resolving relevant failing PR checks, then addressing PR comments and posting replies. Use when user says "fix pr", "prfix", "fix PR checks", "address PR feedback", or asks to clean up a PR end to end.
Create a new bead with provided arguments
Perform a senior-level peer review of staged changes, then implement warranted fixes
Address all open PR comments on current branch autonomously
Parse context and create beads from it
Manage beads (issues) based on conversation context
Design and build agent-first CLIs with HATEOAS JSON responses, context-protecting output, and self-documenting command trees. Use when creating new CLI tools, adding commands to existing CLIs, or reviewing CLI design for agent-friendliness. Triggers on 'build a CLI', 'add a command', 'CLI design', 'agent-friendly output', or any task involving command-line tool creation.
Add a project to vessia.net projects page
Clean up Claude Code permissions allowlist
Find best candidates for next task
Send staged changes to Codex for independent peer review, then evaluate and implement warranted feedback
Review text or code comments for AI writing tropes and suggest fixes. Use when writing prose, documentation, PR descriptions, or commit messages.
Commit, push, and open a draft PR
Idiomatic Effect-TS patterns for TypeScript functional programming. USE THIS SKILL WHEN: Writing new Effect services or layers, debugging Effect type errors (layer composition, error types), choosing between Effect patterns, setting up Effect testing. TRIGGERS ON: 'effect pattern', 'Layer.provide', 'Context.Tag', 'effect service', 'effect error', 'effect test', 'idiomatic effect'. NOT FOR: general TypeScript without Effect.
Audit and remediate Effect code to idiomatic standards. Chains effect-sdd audit methodology with Effect best practices to systematically identify and fix non-idiomatic patterns. USE THIS SKILL WHEN: 'deslopify', 'make this idiomatic effect', 'audit effect quality', 'is this good effect code', 'library-grade effect'.
Deep audit of an Effect-TS codebase against actual Effect core team patterns. Produces a tiered finding list + executable DAG plan, then systematically rewrites non-idiomatic code. USE THIS SKILL WHEN: 'audit this effect code', 'is this idiomatic effect', 'deep audit', starting a new Effect project and want to verify patterns, refactoring an Effect codebase toward library-grade quality, reviewing code before it ships to production. NOT FOR: Greenfield Effect projects (use effect-best-practices skill).
Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.
Create thorough PRDs through repo analysis and deep user interviews. Use for "create a PRD", "write requirements", "product spec", or "implementation plan". Writes PRDs to docs/prds and can optionally decompose them into local issue markdown files for Ralph.
Break a PRD into independently-grabbable implementation issues using vertical slices (tracer bullets). Use when user wants to decompose a PRD into actionable issues/tasks. Writes local markdown issue files next to the PRD instead of creating GitHub issues.
Add an RSS feed to FreshRSS with auto-categorization. Use when user provides a feed URL and wants it added to FreshRSS, or says "add feed", "subscribe to", "add rss".
Subscribe to an email newsletter via Kill the Newsletter and add the resulting feed to FreshRSS with auto-categorization. Use when user wants to subscribe to a newsletter, says "add newsletter", or provides an email-based newsletter to follow.
Manage AWS SSO credentials during agent sessions. Detects expired or missing AWS credentials, runs aws-use-sso to authenticate via SSO, and sources credentials into the shell. Use when AWS commands fail due to credentials, when the user asks to log in to AWS, or when setting up aws-use-sso for the first time.
Babysit an already-open PR end to end: monitor CI + bot comments, invoke `fix-pr` on issues, then merge when clean (respecting repo branch protection). Composes `monitor-pr` + `merge-pr`. Use when user says "babysit", "babysit PR", "watch and merge", or wants hands-off ship-it behavior on an existing PR.
Review and consolidate beads issues
Use when writing, restructuring, or reviewing technical documentation and you need to decide between tutorial, how-to, reference, and explanation styles.
Initialize beads issue tracking in a repository
Add bun2nix packaging to an existing flake
Set up Ralph autonomous agent structure in a repository
Merge an open PR if (and only if) repo policy allows: CI green, no CHANGES_REQUESTED review, branch protection satisfied. Uses `gh pr merge --auto` with the repo's allowed merge method. Never bypasses protection. Use when user says "merge PR", "merge it", or after `monitor-pr` exits clean.
Manage topic-based todo lists in Obsidian vault
Open a draft PR, then watch CI and bot reviewers and autofix until clean. Use when user says "open and monitor", "ship it", "open PR and fix", or wants a hands-off PR workflow. Does NOT merge — use `babysit-pr` for an existing PR with auto-merge, or follow this with `merge-pr` once clean.
Local semantic search for docs, notes, knowledge bases. INVOKE THIS SKILL when user: - Asks to "search my notes/docs/vault/obsidian" - Wants to "find" something in their knowledge base - Says "what did I write about X" - Asks "do I have notes on X" - Needs context from their local markdown files - Mentions "qmd" directly - Asks about journal entries, meeting notes, or personal documentation Trigger phrases: "search notes", "find in docs", "search obsidian", "what do my notes say", "look in my vault"
Full Ralph preparation workflow - create spec skeleton, interview to flesh out, and generate docs PRD for Ralph story-loop execution. Triggers on "ralph prep", "prep ralph", "prepare for ralph", "set up ralph for".
Control herdr from inside it. Manage workspaces and tabs, split panes, spawn agents, read output, and wait for state changes — all via CLI commands that talk to the running herdr instance over a local unix socket. Use when running inside herdr (HERDR_ENV=1).
Generate a conventional commit message for staged changes
Sync work notes from flo-notes into main Obsidian vault
Commit, push, and open a ready-for-review PR (non-draft). Use when the work is complete and reviewable, or when the user says "open PR", "open a PR", "ship it for review". For an in-progress PR, use `open-draft-pr` instead.
Squash, rebase, fast-forward into the default branch, then remove the worktree
Create a new branch in a fresh worktree and move into it
Perform a senior-level peer review of staged changes, then implement warranted fixes
Commit changes and push to remote
Stage all changed files and create a commit
Deploy a directory to surge.sh and return the URL
End-of-session summary saved to Obsidian with bidirectional daily note linking. Trigger phrases: "done", "wrap up", "session done", "end session"
Summarize remaining work and context for the next agent session. Trigger phrases: "handoff", "hand off", "pass it off", "next agent"
Commit, push, and open a draft PR. Use when work is in-progress, when CI needs to run before review, or when the user says "draft PR", "open as draft", "WIP PR". For a ready-for-review PR, use `open-pr` instead.
Comment on a Jira ticket on Michael's behalf, clearly attributed as AI-generated. Use when asked to leave a comment or reply on Jira.
Log work activity to today's journal
Comment on a GitHub PR or issue on Michael's behalf, clearly attributed as AI-generated. Use when asked to leave a comment, reply, or respond on GitHub.
Remove worktrees whose branches have merged into the default branch
Set the current PR's title to the best-fitting conventional-commit title based on the actual changes. Flags when the choice was hard, since that often means the PR is doing too much.
Fill the current PR's description from the repo's PR template (or a sane default), focused on intent and motivation rather than a changelog.
Summarize current context and write to a markdown file
Get a peer review from the other AI agent. Claude invokes Codex, Codex invokes Claude. Automatically detects which agent is active.
Run test suite and fix any failures
Manage Uptime Kuma monitors, tags, notifications, maintenance windows, and status pages. Use when the user asks about uptime monitoring, service health, adding monitors, checking status, or managing alerts.
Shepherd an already-open PR across the line: monitor CI + bot comments, invoke `fix-pr` on issues, then merge when clean (respecting repo branch protection). Composes `monitor-pr` + `merge-pr`. Use when user says "shepherd", "shepherd PR", "watch and merge", or wants hands-off ship-it behavior on an existing PR.
End-of-day 5-minute checkin (Physical, Mind, Craft, Presence)
Check out a GitHub PR in its own worktree for review
Audit codebase for tech debt and improvements
Access and interact with my FreshRSS instance. Use for any RSS-related question, including reading articles, searching past content, finding feeds, getting recommendations, managing subscriptions, checking unread counts, or exploring what I follow.
Set up bun test in a project (with Effect support if applicable)
Set up Nix flake with bun + typescript devShell
Interview user to flesh out a spec file
Cut a release (bump version, commit, tag, push)
Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions "red-green-refactor", wants integration tests, or asks for test-first development.
Generate a daily kickoff note with GitHub context and recent vault activity
Set up AGENTS.md and symlink CLAUDE.md to it
Set up oxlint and oxfmt in a JavaScript/TypeScript project
Interview the user relentlessly to align on a plan, walking the design tree one decision at a time
Watch an open PR's CI and bot comments; on relevant failure or new bot feedback, invoke `fix-pr`. Exit when the PR is clean or stuck. Use when user says "monitor PR", "watch CI", or wants hands-off CI shepherding without a merge step.
Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues.
Turn the current conversation context into a PRD and publish it to the project issue tracker. Use when user wants to create a PRD from the current context.
Clean up Claude Code permissions allowlist
End-of-session summary saved to Obsidian with bidirectional daily note linking. Trigger phrases: "done", "wrap up", "session done", "end session"
Add bun2nix packaging to an existing flake
Set up Homebrew releases for a Bun/TypeScript CLI project
Set up lefthook with standard pre-commit hooks
End-of-day 5-minute checkin (Physical, Mind, Craft, Presence)
Log work activity to today's journal
Interview user to flesh out a spec file
Generate a daily kickoff note with GitHub context and recent vault activity
Sync work notes from flo-notes into main Obsidian vault
User guide for the local squash-safe `stack` CLI for stacked PR/MR repair on GitHub and GitLab. Use when someone asks how to inspect, track, sync, merge, document, or undo stacked pull requests / merge requests in squash-merge repositories. Prefer this tool over GitHub's `gh stack` command for this workflow.
Send staged changes to Codex for independent peer review, then evaluate and implement warranted feedback
Get a peer review from the other AI agent. Claude invokes Codex, Codex invokes Claude. Automatically detects which agent is active.
Set up bun test in a project (with Effect support if applicable)
Set up Ralph autonomous agent structure in a repository
Cut a release (bump version, commit, tag, push)
Generate a Mermaid ERD from SQL schema files
Local semantic search for docs, notes, knowledge bases. INVOKE THIS SKILL when user: - Asks to "search my notes/docs/vault/obsidian" - Wants to "find" something in their knowledge base - Says "what did I write about X" - Asks "do I have notes on X" - Needs context from their local markdown files - Mentions "qmd" directly - Asks about journal entries, meeting notes, or personal documentation Trigger phrases: "search notes", "find in docs", "search obsidian", "what do my notes say", "look in my vault"
Manage topic-based todo lists in Obsidian vault
Quickly log a Today-I-Learned note to Obsidian. Use when user says "/til", "today i learned", or asks to capture a small learning from current work. Bias toward the user prompt first, then inspect session context (recent messages, commands, files, errors, decisions) to enrich relevant details. Write a concise Obsidian note with front matter tags for TIL organization.
Full Ralph preparation workflow - create spec skeleton, interview to flesh out, and generate docs PRD for Ralph story-loop execution. Triggers on "ralph prep", "prep ralph", "prepare for ralph", "set up ralph for".
Set up Nix flake with bun + typescript devShell
React useEffect best practices from official docs. Use when writing/reviewing useEffect, useState for derived values, data fetching, or state synchronization. Teaches when NOT to use Effect and better alternatives.
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
Inspect my self-hosted BookLore library (books, audiobooks, libraries, shelves). Use when the user asks about BookLore, mentions their book/audiobook library, asks what books they have, looks up a title, lists libraries or shelves, or checks the BookLore instance status.
Subscribe a YouTube channel in TubeArchivist, queue its top videos by views from recent uploads, wait for the first file, scan Jellyfin, and rename + lock the channel folder to a friendly display name. Use when the user says "add a youtube channel", "subscribe to <channel>", or wants a curated TubeArchivist + Jellyfin import for a creator.
Search, add, inspect, and manage TV shows in my self-hosted Sonarr library. Use when the user asks about TV shows, mentions Sonarr, asks to add/remove a series, check what's downloading, what's upcoming, what's missing, view queue/history, or trigger searches.
Inspect and manage my self-hosted Caddy reverse proxy via its admin API. Use when the user asks about Caddy, mentions reverse proxy routes, virtual hosts, TLS/cert issues for internal `.lan` domains, upstream health, or wants to view/reload the active Caddy configuration.
Add an ebook, comic, PDF, or audiobook file to AutoCaliWeb through its ingest folder. Use when the user says "add book", "import ebook", "add to AutoCaliWeb", or provides a book file path/URL to add to the library.
Inspect and control my self-hosted SABnzbd Usenet downloader. Use when the user asks about SABnzbd, NZB downloads, the Usenet queue, download history, server stats, or asks to pause/resume/delete a download.
Inspect my self-hosted Jellyfin media server: server status, users, libraries, sessions, now-playing, recently-added, item search, library counts, and scheduled tasks. Use when the user asks about Jellyfin, what's playing, who's watching, what was just added, library size, or asks to run a Jellyfin task.
Browse, search, approve, decline, and inspect media requests in my self-hosted Jellyseerr. Use when the user asks about Jellyseerr, mentions media requests, asks to approve/decline a request, search for a movie or show to request, check what was recently added, list users, or view open issues.
Inspect the local tailnet via the Tailscale CLI. Use when the user asks about tailscale, tailnet peers, exit nodes, MagicDNS, who's online over Tailscale, or wants to ping/whois a Tailscale host. Read-only — no mutations to tailnet state.
Search, add, inspect, and manage movies in my self-hosted Radarr library. Use when the user asks about movies, mentions Radarr, asks to add/remove a film, check what's downloading, what's upcoming, what's missing, view queue/history, manage collections, or trigger searches.
Inspect and manage my self-hosted AdGuard Home DNS sinkhole. Use when the user asks about AdGuard, DNS blocking, query logs, blocklists/filters, top queried or blocked domains, DNS clients, or wants to toggle protection.
Inspect my self-hosted AutoCaliWeb library. Use when the user asks about AutoCaliWeb, books in Calibre, OPDS status, recent imports, shelves, catalog stats, or wants to search the ebook library.
Inspect and search my self-hosted Immich photo/video library. Use when the user asks about Immich, photos, videos, albums, people/faces, recent uploads, library stats, server storage, or background jobs.
Search across indexers and manage my self-hosted Prowlarr. Use when the user asks about indexer search, finding a release, indexer health/stats, listing or testing indexers, syncing indexers to Sonarr/Radarr, or mentions Prowlarr.
Browse, search, and manage channels and downloads in my self-hosted TubeArchivist YouTube archive. Use when the user asks about TubeArchivist, mentions YouTube archiving, asks to subscribe/unsubscribe to a channel, check what's downloading, list indexed videos or channels, inspect Celery task status, or trigger a search.