Dev Skills & MCP Servers¶
Dev skills are modular commands that extend AI coding agents with specialized workflows for common development tasks. This page covers all available skills (internal and community-sourced) and the MCP servers integrated into the project.
How Skills Work¶
Skills live in .agents/skills/ and are agent-agnostic — any AI coding agent that supports the skill format can use them. Codex reads .agents/skills/ directly; for Claude Code, .claude/skills is a directory symlink to .agents/skills, so every skill is registered for both.
Each skill is a directory containing a SKILL.md file with YAML frontmatter (name, description, allowed-tools) and markdown instructions that teach the agent a specialized workflow.
Private staff vault¶
Rose Brain is the name of the private shared staff Obsidian vault, not an
agent. References to "Rose Vault" mean this same vault. Use Rose Brain when
naming it; rose-brain is the skill that agents use to access it.
The rose-brain skill lets local agents find Rose business and product notes, answer with vault-relative references, write the notes a person asks for, and propose other verified findings in the review Inbox. Read each note's status, confidence and source date before treating it as current or approved. The private vault stays outside Git and is separate from Website Agent retrieval knowledge.
Each person configures their own Obsidian vault path at ~/.config/rose/vault.toml:
ROSE_VAULT_PATH can override this path for a single process. Verify setup from the repository root with python3.12 .agents/skills/rose-brain/scripts/vault.py root; search subject folders (including Strategy) with python3.12 .agents/skills/rose-brain/scripts/vault.py search 'phrase'. Use --area Projects for working deliverables or --area Sources for historical evidence. Default searches exclude Projects, Sources and Inbox. The vault's AGENTS.md owns its organization, confidence, approval, and privacy rules; agents read it before accessing notes. Local Conductor workspaces share the user's home directory, while cloud workspaces cannot access a Mac-local vault path unless an accessible copy is supplied.
Notes the user asks for are written directly in their subject folder; unrequested captures go to Inbox/ for review. If an agent gets Operation not permitted on the vault, grant the app running it Full Disk Access (macOS blocks ~/Documents otherwise). Do not copy vault content into repository files or Linear tickets without an explicit request.
Skill Sources¶
| Source | Description | Examples |
|---|---|---|
| Internal | Built and maintained by the Rose team | test-backend, pr-fix, rose-config-system |
| Community | Downloaded from the internet (e.g. via /find-skills) |
supabase-security, visual-explainer, skill-creator |
Upstream skill defects¶
For a generic bug in an installed skill or its runtime dependency, prepare a handoff
for the upstream coding agent: source repository and path from skills-lock.json,
reproduction and exact error, the suggested fix, and regression checks.
Do not patch the installed copy or add repository wrappers, dependency pins or
overlay workarounds unless the user explicitly requests a local workaround.
After the upstream fix is published, refresh through the normal skill installer.
Internal Skills¶
Skills built and maintained by the Rose team.
Testing & Quality¶
| Skill | Command | Description | Status |
|---|---|---|---|
| Test | /test |
Router that delegates to test-backend or test-frontend | |
| Test Backend | /test-backend |
Run Python tests with pytest, parse failures, fix issues | |
| Test Frontend | /test-frontend |
Run TypeScript tests with Vitest, parse failures, fix issues | |
| Test E2E | /test-e2e |
End-to-end browser tests against local dev servers using agent-browser | |
| Mypy | /mypy |
Run mypy type checking, parse errors, apply fixes. Auto-triggers after Python edits | |
| Smoke | /smoke |
Run backend smoke tests |
Workflow & Git¶
| Skill | Command | Description |
|---|---|---|
| PR Fix | /pr-fix |
Address PR review comments, make fixes, reply, and resolve threads |
| Ship / Create PR | /bento-ship |
Bento skill: pre-PR review (local) with auto-fix, proposed learnings, one ACTION REQUIRED stop, then push, a PR titled from the actual changes, and the Linear update. Conductor's Create PR button runs it. Rose's extra rules (opt-in greptile label) live in its overlay .agents/bento/bento-ship.md; any bento skill reads .agents/bento/<skill>.md the same way. A hook installed by bento-setup (.claude/settings.json, .codex/hooks.json) reminds the agent to go through /bento-ship when it runs git push or gh pr create before the pre-PR review (local) has recorded HEAD; it never blocks. Rose enables the reminder on all branches, including nightshift/* |
| Adversarial Review | /bento-adversarial-review |
Adversarial review of a diff with per-finding triage (bento skill); interactive by default, auto-fix when called by /bento-ship. Conductor's Review button is a different reviewer (model from ~/.conductor/settings.toml [models] review, prompt from .conductor/settings.toml [prompts] code_review) that posts raw findings with no triage |
| Commit | /commit |
Generate and create a commit from current changes |
| Dependabot | /dependabot |
Resolve Dependabot security alerts and PRs across the monorepo |
| Solve Linear Ticket | /rose-solve-linear-ticket |
Implement Linear issues systematically with task tracking |
| Solve Chatbot Issues | /rose-solve-chatbot-issues |
Batch-process [Chatbot] Linear issues: group by client, dispatch parallel subagents |
| Client-Facing Changelog | /rose-client-changelog |
Generate changelog entries from recent git history for clients |
| Cycle Dashboard | /rose-cycle-dashboard |
Single-file HTML dashboard summarizing a Linear cycle (projects, themes, stats) |
Browser Integration¶
| Skill | Command | Description |
|---|---|---|
| Agent Browser | /agent-browser |
Browser automation CLI — navigate, snapshot, interact, screenshot pages |
| Rose Browse | /rose-browse [target] |
Access backoffice (3002), widget demo (8083), or playground (3001) — target and driver inferred from context |
Agent Skills (Client Configuration)¶
| Skill | Command | Description |
|---|---|---|
| Onboard Client | /rose-onboard-client |
Full onboarding orchestrator: runs rose-create-client-config then rose-create-client-skills |
| Create Client Config | /rose-create-client-config |
Create all Rose configs and curated content for a new client from their KB |
| Create Client Skills | /rose-create-client-skills |
Onboard a new client: analyze needs, create skills, build eval dataset |
| Edit Client Skills | /rose-edit-client-skills |
Diagnose and fix agent behavior for existing clients |
| Prompt Engineering | /rose-prompt-engineering |
Systematic prompt fix workflow: reproduce, fix, verify, prevent regressions |
| Scrape Website | /rose-scrape-website |
Scrape a website to clean markdown for RAG knowledge base ingestion |
| Scrape Internal Docs | /rose-scrape-internal-docs |
Convert client-provided DOCX/PDF/XLSX/PPTX into sanitized markdown for KB ingestion |
| Feature Eval | /rose-feature-eval |
Per-feature E2E evaluation dataset convention and workflow via Langfuse |
Diagnostics & Config¶
| Skill | Command | Description |
|---|---|---|
| Config System | (auto) | Unified config system workflow — add properties, create slugs, run codegen |
| Rose Config | /rose-config |
Read and edit client config values in Supabase via CLI (questions, CTAs, taxonomy); provision and tear down video clients |
| Conversion Tracking Diagnosis | /rose-conversion-tracking-diagnosis |
Diagnose form-submission AND CTA-click detection: query config, inspect page, suggest config/strategy fixes |
| Host-Env Audit | /rose-host-env-audit |
Detect GTM loader and Cookie Consent Platform on a client host page; propose tracking_status diff |
| Widget Styling | (auto) | Rules for safely editing the Rose widget styling system — theme tokens, glass shell, CSS delivery |
| Chat Model Routing | (auto) | Guide for ixchat model/provider routing changes under the resolver-owned architecture |
| Frontend Shared Boundaries | (auto) frontend-shared-boundaries |
Enforce @inboundx/shared scoped entrypoints — import rules, export boundaries, lint enforcement |
| Metric Discrepancy | /rose-metric-discrepancy |
Diagnose discrepancies between backoffice client-listing metrics and PostHog dashboards |
| Debug GCloud | /debug-gcloud |
Fetch and analyze Cloud Run production logs by session_id |
Community Skills (Downloaded from Internet)¶
Skills installed from the open skill ecosystem via /find-skills or manual download. These are maintained by third-party authors.
Frontend & UI¶
| Skill | Command | Description | Author |
|---|---|---|---|
| Baseline UI | /baseline-ui |
Enforces typography, animation, accessibility, layout constraints in Tailwind | — |
| Fixing Motion Performance | /fixing-motion-performance |
Fix animation jank, layout thrashing, compositor issues | — |
| Implement Design | /implement-design |
Translate Figma designs into production code (requires Figma MCP) | — |
| Vercel React Best Practices | (auto) | React/Next.js performance optimization guidelines | Vercel |
| TanStack Query | /tanstack-query |
TanStack Query v5 patterns, migration guide, SSR/hydration | — |
Sentry Integration¶
| Skill | Command | Description |
|---|---|---|
| Sentry Fix Issues | /sentry-fix-issues |
Find and fix production issues using Sentry MCP |
| Sentry React Setup | /sentry-react-setup |
Install and configure @sentry/react |
| Sentry Setup Logging | /sentry-setup-logging |
Configure Sentry structured logging (JS, Python, Ruby) |
| Sentry Setup Tracing | /sentry-setup-tracing |
Configure Sentry performance monitoring |
Supabase¶
| Skill | Command | Description | Author |
|---|---|---|---|
| Supabase Security | (auto) | RLS policies, auth hardening, API security, production checklist | Supabase |
| Supabase Postgres Best Practices | (auto) | Query optimization, schema design, connection management | Supabase |
Observability¶
| Skill | Command | Description | Author |
|---|---|---|---|
| Langfuse | /langfuse |
Query/modify Langfuse data via CLI, look up docs, instrument applications | — |
Meta & Tooling¶
| Skill | Command | Description | Author |
|---|---|---|---|
| Create Skill | /create-skill |
Guide for creating new skills with proper structure and validation | — |
| Find Skills | /find-skills |
Discover and install skills from the open ecosystem | — |
| Visual Explainer | /visual-explainer |
Generate self-contained HTML pages for diagrams and data tables | nicobailon |
| Architecture Review | /architecture-review |
Review code against SOLID, DRY, KISS, coupling/cohesion | — |
| Repository Instructions | /claude-md-improver |
Create, audit, and simplify AGENTS.md / CLAUDE.md using shared documentation | — |
MCP Servers¶
MCP (Model Context Protocol) servers provide Claude with external tool integrations. They are configured in .mcp.json (project-level) and ~/.claude.json (global).
Active MCP Servers¶
| Server | Type | Purpose | Configuration |
|---|---|---|---|
| Linear | HTTP | Issue tracking — read/create/update issues, comments, statuses | https://mcp.linear.app/mcp |
| Playwright | stdio | Browser automation — navigate, click, fill forms, screenshots, E2E testing | npx @playwright/mcp@latest |
| Sentry | HTTP | Error tracking — read issues, stack traces, breadcrumbs, traces | https://mcp.sentry.dev/mcp |
| Figma | HTTP | Design files — read Figma nodes, extract design tokens, inspect components | https://mcp.figma.com/mcp |
Server Configuration¶
MCP servers are defined in two places:
- Project-level (
.mcp.json): Servers specific to this repo. Currently configures Linear, Figma, Sentry, Playwright, and Supabase. - Global (
~/.claude.json): Servers available across all projects. Currently configures Linear globally. - Enabled servers (
.claude/settings.json): TheenabledMcpjsonServersarray controls which.mcp.jsonservers are active. Currently:linear-server,figma.
How Skills Use MCPs¶
Several skills depend on MCP servers to function:
| Skill | Required MCP | Usage |
|---|---|---|
| Solve Linear Ticket | Linear | Fetch issues, update status, add comments |
| Browse Playground/Demo/Backoffice | Playwright | Navigate browser, interact with UI, take screenshots |
| Sentry Fix Issues | Sentry | Read production errors, stack traces, breadcrumbs |
| Implement Design | Figma | Read design files, extract component specs |
Adding a New MCP Server¶
-
Add the server config to
.mcp.json: -
For stdio servers:
-
If the server should be active by default, add it to
enabledMcpjsonServersin.claude/settings.json.
Adding New Skills¶
Installing from the Internet¶
Use /find-skills to discover community skills:
/find-skills supabase # Search for Supabase-related skills
/find-skills "visual diagram" # Search by description
Skills are installed into .agents/skills/<skill-name>/SKILL.md.
Creating Internal Skills¶
Each skill needs a SKILL.md file in .agents/skills/<skill-name>/:
---
name: my-skill
description: When to trigger this skill and what it does
allowed-tools:
- "Bash(just test **)"
- "Edit(backend/**/*.py)"
---
# My Skill
Instructions for the workflow...
Use /create-skill for guided skill creation. See the Prompt & Skill Workflow for the full development and testing process.