dependency-check
Check for required dependencies (Chrome DevTools MCP, OpenRouter API) before running commands that need them. Use at the start of /implement, /review, /validate-ui commands to provide helpful setup guidance.
What this skill does
# Dependency Check Skill
This skill provides standardized dependency checking for frontend plugin commands that require external tools and services.
## When to Use This Skill
Claude should invoke this skill at the **start** of commands that require:
1. **Chrome DevTools MCP** - For automated UI verification, screenshot capture, DOM inspection
- Commands: `/implement` (UI validation), `/validate-ui`, browser-debugger skill
2. **OpenRouter API Key** - For multi-model orchestration with external AI models
- Commands: `/implement` (multi-model code review), `/review`
## Dependency Check Protocol
### Phase 1: Check Chrome DevTools MCP
**When to check:** Before any command that needs browser automation (screenshots, UI testing, DOM inspection)
**How to check:**
```bash
# Check if chrome-devtools MCP tools are available
# Try to list pages - if MCP is available, this will work
mcp__chrome-devtools__list_pages 2>/dev/null
```
**If MCP is NOT available, show this message:**
```markdown
## Chrome DevTools MCP Not Available
For automated UI verification (screenshots, DOM inspection, visual regression testing),
this command requires the **chrome-devtools-mcp** server.
### Why You Need It
- Capture implementation screenshots for design comparison
- Inspect DOM structure and computed CSS values
- Run automated UI tests in real browser
- Debug responsive layout issues
- Monitor console errors and network requests
### Easy Installation (Recommended)
Install `claudeup` - a CLI tool for managing Claude Code plugins and MCP servers:
\`\`\`bash
npm install -g claudeup@latest
claudeup mcp add chrome-devtools
\`\`\`
### Manual Installation
Add to your `.claude.json` or `.claude/settings.json`:
\`\`\`json
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}
\`\`\`
### Continue Without It?
You can continue, but:
- UI validation will be **skipped** (no design fidelity checks)
- Browser testing will be **unavailable**
- Manual verification will be required for UI changes
Do you want to continue without Chrome DevTools MCP?
```
**Use AskUserQuestion:**
```
Chrome DevTools MCP is not available. What would you like to do?
Options:
- "Continue without UI verification" - Skip automated UI checks, proceed with implementation
- "Cancel and install MCP first" - I'll install the MCP and restart
```
### Phase 2: Check OpenRouter API Key
**When to check:** Before any command that uses external AI models via Claudish
**How to check:**
```bash
# Check if OPENROUTER_API_KEY is set
if [[ -z "${OPENROUTER_API_KEY}" ]]; then
echo "OPENROUTER_API_KEY not set"
else
echo "OPENROUTER_API_KEY available"
fi
# Also check if Claudish is available
npx claudish --version 2>/dev/null || echo "Claudish not installed"
```
**If OpenRouter API key is NOT set, show this message:**
```markdown
## OpenRouter API Key Not Configured
For multi-model AI orchestration (parallel code reviews, multi-expert validation),
this command uses external AI models via OpenRouter.
### Why You Need It
- Run multiple AI models in parallel for 3-5x faster reviews
- Get diverse perspectives from different AI experts (Grok, Gemini, GPT-5, DeepSeek)
- Consensus analysis highlights issues flagged by multiple models
- Catch more bugs through AI diversity
### Getting Started with OpenRouter
1. **Sign up** at [https://openrouter.ai](https://openrouter.ai)
2. **Get your API key** from the dashboard
3. **Set the environment variable:**
\`\`\`bash
# Add to your shell profile (.bashrc, .zshrc, etc.)
export OPENROUTER_API_KEY="your-api-key-here"
\`\`\`
### Cost Information
OpenRouter is **affordable** and even has **free models**:
| Model | Cost | Notes |
|-------|------|-------|
| openrouter/polaris-alpha | **FREE** | Good for testing |
| x-ai/grok-code-fast-1 | ~$0.10/review | Fast coding specialist |
| google/gemini-2.5-flash | ~$0.05/review | Fast and affordable |
| deepseek/deepseek-chat | ~$0.05/review | Reasoning specialist |
Typical code review session: **$0.20 - $0.80** for 3-4 external models
### Easy Setup (Recommended)
Install `claudeup` for easy API key management:
\`\`\`bash
npm install -g claudeup@latest
claudeup config set OPENROUTER_API_KEY your-api-key
\`\`\`
### Continue Without It?
You can continue, but:
- Only **embedded Claude Sonnet** will be used for reviews
- No parallel multi-model validation
- Fewer diverse perspectives on code quality
- Still functional, just less comprehensive
Do you want to continue without external AI models?
```
**Use AskUserQuestion:**
```
OpenRouter API key is not configured. What would you like to do?
Options:
- "Continue with embedded Claude only" - Use only Claude Sonnet for reviews (still good!)
- "Cancel and configure API key first" - I'll set up OpenRouter and restart
```
## Implementation Patterns
### Pattern 1: Check Both Dependencies (for /implement command)
```bash
# At the start of /implement command
echo "Checking required dependencies..."
# Check 1: Chrome DevTools MCP
CHROME_MCP_AVAILABLE=false
if mcp__chrome-devtools__list_pages 2>/dev/null; then
CHROME_MCP_AVAILABLE=true
echo "✓ Chrome DevTools MCP: Available"
else
echo "✗ Chrome DevTools MCP: Not available"
fi
# Check 2: OpenRouter API Key
OPENROUTER_AVAILABLE=false
if [[ -n "${OPENROUTER_API_KEY}" ]]; then
OPENROUTER_AVAILABLE=true
echo "✓ OpenRouter API Key: Configured"
else
echo "✗ OpenRouter API Key: Not configured"
fi
# Check 3: Claudish CLI (for external models)
CLAUDISH_AVAILABLE=false
if npx claudish --version 2>/dev/null; then
CLAUDISH_AVAILABLE=true
echo "✓ Claudish CLI: Available"
else
echo "✗ Claudish CLI: Not available"
fi
```
### Pattern 2: Conditional Workflow Adaptation
Based on dependency availability, adapt the workflow:
```markdown
## Workflow Adaptation Based on Dependencies
| Dependency | Available | Workflow Impact |
|------------|-----------|-----------------|
| Chrome DevTools MCP | ✓ | Full UI validation with screenshots |
| Chrome DevTools MCP | ✗ | Skip PHASE 2.5 (Design Fidelity Validation) |
| OpenRouter + Claudish | ✓ | Multi-model parallel code review (3-5x faster) |
| OpenRouter + Claudish | ✗ | Single-model embedded Claude review only |
### Graceful Degradation
Commands should ALWAYS complete, even with missing dependencies:
1. **Missing Chrome DevTools MCP:**
- Skip: Design fidelity validation, browser testing
- Keep: Code implementation, code review, testing
- Message: "UI validation skipped - please manually verify visual changes"
2. **Missing OpenRouter API:**
- Skip: External multi-model reviews
- Keep: Embedded Claude Sonnet review (still comprehensive!)
- Message: "Using embedded Claude Sonnet reviewer only"
3. **Missing Both:**
- Still functional for core implementation
- Skip: UI validation, multi-model review
- Message: "Running in minimal mode - core functionality preserved"
```
### Pattern 3: One-Time Check with Session Cache
Store dependency status in session metadata to avoid repeated checks:
```bash
# In session-meta.json
{
"dependencies": {
"chromeDevToolsMcp": true,
"openrouterApiKey": false,
"claudishCli": true,
"checkedAt": "2025-12-10T10:30:00Z"
}
}
```
## Quick Reference Messages
### claudeup Installation (Copy-Paste Ready)
```bash
# Install claudeup globally
npm install -g claudeup@latest
# Add Chrome DevTools MCP
claudeup mcp add chrome-devtools
# Configure OpenRouter API key
claudeup config set OPENROUTER_API_KEY your-api-key
```
### OpenRouter Quick Start
1. Visit: https://openrouter.ai
2. Sign up (free account)
3. Get API key from dashboard
4. Set in terminal: `export OPENROUTER_API_KEY="sk-or-..."`
### Why Multi-Model Matters
| Single Model | Multi-Model |
|--------------|-------------|
| 1 perspective | 4-5 perspectives |
| ~5 min review | ~5 min (parallel!) |
| May miss issues | Consensus catches more |
| Good | Better |
## IntegratiRelated in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.