frontend
Comprehensive frontend development toolkit with TypeScript, React 19, Vite, TanStack Router & Query v5, shadcn/ui. Features code-analysis integration via claudemem semantic search (replaces claude-context MCP), session-based artifact isolation, LLM performance tracking, shadcn/ui component library knowledge (60+ components), multi-model plan/code review (parallel, 3-5x speedup), 13 focused skills, intelligent workflow detection, and Chrome DevTools MCP debugging.
View on GitHubTable of content
Comprehensive frontend development toolkit with TypeScript, React 19, Vite, TanStack Router & Query v5, shadcn/ui. Features code-analysis integration via claudemem semantic search (replaces claude-context MCP), session-based artifact isolation, LLM performance tracking, shadcn/ui component library knowledge (60+ components), multi-model plan/code review (parallel, 3-5x speedup), 13 focused skills, intelligent workflow detection, and Chrome DevTools MCP debugging.
Installation
npx claude-plugins install @MadAppGang/mag-claude-plugins/frontend
Contents
Folders: agents, commands, mcp-servers, skills
Files: CHANGELOG.md, DEPENDENCIES.md, QUICK_REFERENCE_SPEC.md, README.md, TIERED_PRICING_SPEC.md, plugin.json, recommended-models.md
Documentation
This directory contains resources shared across all Claude Code plugins.
Purpose
Centralized management of common resources to ensure consistency and reduce duplication.
Architecture
shared/ ← SOURCE OF TRUTH (edit here)
├── recommended-models.md ← Model recommendations
├── QUICK_REFERENCE_SPEC.md ← Quick reference spec
├── README.md ← This file
└── skills/ ← Shared skills
└── claudish-usage/ ← Claudish usage skill
└── SKILL.md ← AUTO-DISTRIBUTED
scripts/
└── sync-shared.ts ← Distribution script (recursive)
plugins/
├── frontend/
│ ├── recommended-models.md ← AUTO-COPIED
│ ├── QUICK_REFERENCE_SPEC.md ← AUTO-COPIED
│ ├── README.md ← AUTO-COPIED
│ └── skills/ ← AUTO-CREATED
│ └── claudish-usage/ ← AUTO-CREATED
│ └── SKILL.md ← AUTO-COPIED
├── bun/
│ ├── recommended-models.md ← AUTO-COPIED
│ ├── QUICK_REFERENCE_SPEC.md ← AUTO-COPIED
│ ├── README.md ← AUTO-COPIED
│ └── skills/ ← AUTO-CREATED
│ └── claudish-usage/ ← AUTO-CREATED
│ └── SKILL.md ← AUTO-COPIED
└── code-analysis/
├── recommended-models.md ← AUTO-COPIED
├── QUICK_REFERENCE_SPEC.md ← AUTO-COPIED
├── README.md ← AUTO-COPIED
└── skills/ ← AUTO-CREATED
└── claudish-usage/ ← AUTO-CREATED
└── SKILL.md ← AUTO-COPIED
How It Works
1. Edit Source Files
All shared resources are stored in shared/ directory. This is the ONLY place you should edit these files.
Example:
# Edit the source
vim shared/recommended-models.md
2. Sync to Plugins
Run the sync script to copy resources to all plugins:
# Sync all shared resources
bun run sync-shared
# Or use the short alias
bun run sync
3. Automatic Distribution
The sync script copies each file from shared/ to all plugin directories:
shared/recommended-models.md→plugins/frontend/recommended-models.mdshared/recommended-models.md→plugins/bun/recommended-models.mdshared/recommended-models.md→plugins/code-analysis/recommended-models.md
4. Plugin Usage
Commands and agents read the synced files using plugin-relative paths:
For flat files:
Read file: ${CLAUDE_PLUGIN_ROOT}/recommended-models.md
For skills:
Read file: ${CLAUDE_PLUGIN_ROOT}/skills/claudish-usage/SKILL.md
This ensures each plugin always has access to the latest recommendations and shared skills.
Shared Skills
What are Shared Skills?
Shared skills are reusable knowledge modules that are distributed across all plugins. They provide:
- ✅ Consistent guidance across plugins
- ✅ Centralized knowledge management
- ✅ Automatic updates when skills are improved
- ✅ Reduced duplication
Current Shared Skills
- claudish-usage (
skills/claudish-usage/SKILL.md)- How to use Claudish CLI with OpenRouter models
- File-based sub-agent patterns
- Model selection and cost tracking
- Best practices for AI agents
Adding New Shared Skills
- Create skill directory:
shared/skills/skill-name/ - Add
SKILL.mdfile with YAML frontmatter:--- name: skill-name description: Clear description of what the skill does and when to use it --- - Write skill content (instructions, examples, best practices)
- Run
bun run sync-shared - Skill is automatically distributed to all plugins and discovered by Claude
Using Shared Skills in Commands/Agents
Skills are automatically discovered - Claude loads them based on the task at hand.
Skills must have YAML frontmatter with name and description:
---
name: claudish-usage
description: Guide for using Claudish CLI to run Claude Code with OpenRouter models. Use when working with external AI models, multi-model workflows, or cost optimization.
---
How it works:
- Startup: Skill metadata (name + description) loaded into system prompt (~100 tokens/skill)
- Task matching: When user request matches description, Claude automatically reads SKILL.md via bash
- Progressive loading: Claude only loads relevant skills, avoiding context pollution
You do NOT need to:
- ❌ Manually read skill files with
Readtool - ❌ Reference skills in agent/command prompts
- ❌ Load skills into context explicitly
Claude automatically uses skills when:
- ✅ Task matches the skill’s description
- ✅ User mentions keywords from description (e.g., “Claudish”, “OpenRouter”, “Grok”)
- ✅ Workflow requires skill’s cap
…(truncated)
Included Skills
This plugin includes 4 skill definitions:
api-integration
Use when integrating Apidog + OpenAPI specifications with your React app. Covers MCP server setup, type generation, and query layer integration. Use when setting up API clients, generating types from OpenAPI, or integrating with Apidog MCP.
View skill definition
API Integration (Apidog + MCP)
Integrate OpenAPI specifications with your frontend using Apidog MCP for single source of truth.
Goal
The AI agent always uses the latest API specification to generate types and implement features correctly.
Architecture
Apidog (or Backend)
→ OpenAPI 3.0/3.1 Spec
→ MCP Server (apidog-mcp-server)
→ AI Agent reads spec
→ Generate TypeScript types
→ TanStack Query hooks
→ React Components
Process
1. Expose OpenAPI from Apidog
Option A: Remote URL
- Export OpenAPI spec from Apidog
- Host at a URL (e.g.,
https://api.example.com/openapi.json)
Option B: Local File
- Export OpenAPI spec to file
- Place in project (e.g.,
./api-spec/openapi.json)
2. Wire MCP Server
// .claude/mcp.json or settings
{
"mcpServers": {
"API specification": {
"command": "npx",
"args": [
"-y",
"apidog-mcp-server@latest",
"--oas=https://api.example.com/openapi.json"
]
}
}
}
With Local File:
{
"mcpServers": {
"API specification": {
"command": "npx",
"args": [
"-y",
"apidog-mcp-server@latest",
"--oas=./api-spec/openapi.json"
]
}
}
}
Multiple APIs:
{
"mcpServers": {
"Main API": {
"command": "npx",
"args": ["-y", "apidog-mcp-server@latest", "--oas=https://api.main.com/openapi.json"]
},
"Auth API": {
"command": "npx
...(truncated)
</details>
### api-spec-analyzer
> Analyzes API documentation from OpenAPI specs to provide TypeScript interfaces, request/response formats, and implementation guidance. Use when implementing API integrations, debugging API errors (400, 401, 404), replacing mock APIs, verifying data types, or when user mentions endpoints, API calls, or backend integration.
<details>
<summary>View skill definition</summary>
# API Specification Analyzer
This Skill analyzes OpenAPI specifications to provide accurate API documentation, TypeScript interfaces, and implementation guidance for the caremaster-tenant-frontend project.
## When to use this Skill
Claude should invoke this Skill when:
- User is implementing a new API integration
- User encounters API errors (400 Bad Request, 401 Unauthorized, 404 Not Found, etc.)
- User wants to replace mock API with real backend
- User asks about data types, required fields, or API formats
- User mentions endpoints like "/api/users" or "/api/tenants"
- Before implementing any feature that requires API calls
- When debugging type mismatches between frontend and backend
## Instructions
### Step 1: Fetch API Documentation
Use the MCP server tools to get the OpenAPI specification:
mcp__Tenant_Management_Portal_API__read_project_oas_f4bjy4
If user requests fresh data or if documentation seems outdated:
mcp__Tenant_Management_Portal_API__refresh_project_oas_f4bjy4
For referenced schemas (when $ref is used):
mcp__Tenant_Management_Portal_API__read_project_oas_ref_resources_f4bjy4
### Step 2: Analyze the Specification
Extract the following information for each relevant endpoint:
1. **HTTP Method and Path**: GET /api/users, POST /api/tenants, etc.
2. **Authentication**: Bearer token, API key, etc.
3. **Request Parameters**:
- Path parameters (e.g., `:id`)
- Query parameters (e.g., `?page=1&limit=10`)
- Request body sch
...(truncated)
</details>
### browser-debugger
> Systematically tests UI functionality, validates design fidelity with AI visual analysis, monitors console output, tracks network requests, and provides debugging reports using Chrome DevTools MCP. Use after implementing UI features, for design validation, when investigating console errors, for regression testing, or when user mentions testing, browser bugs, console errors, or UI verification.
<details>
<summary>View skill definition</summary>
# Browser Debugger
This Skill provides comprehensive browser-based UI testing, visual analysis, and debugging capabilities using Chrome DevTools MCP server and optional external vision models via Claudish.
## When to Use This Skill
Claude and agents (developer, reviewer, tester, ui-developer) should invoke this Skill when:
- **Validating Own Work**: After implementing UI features, agents should verify their work in a real browser
- **Design Fidelity Checks**: Comparing implementation screenshots against design references
- **Visual Regression Testing**: Detecting layout shifts, styling issues, or visual bugs
- **Console Error Investigation**: User reports console errors or warnings
- **Form/Interaction Testing**: Verifying user interactions work correctly
- **Pre-Commit Verification**: Before committing or deploying code
- **Bug Reproduction**: User describes UI bugs that need investigation
## Prerequisites
### Required: Chrome DevTools MCP
This skill requires Chrome DevTools MCP. Check availability and install if needed:
```bash
# Check if available
mcp__chrome-devtools__list_pages 2>/dev/null && echo "Available" || echo "Not available"
# Install via claudeup (recommended)
npm install -g claudeup@latest
claudeup mcp add chrome-devtools
Optional: External Vision Models (via OpenRouter)
For advanced visual analysis, use external vision-language models via Claudish:
# Check OpenRouter API key
[[ -n "${OPENROUTER_API_KEY}" ]] && echo "OpenRouter confi
...(truncated)
</details>
### claudish-usage
> CRITICAL - Guide for using Claudish CLI ONLY through sub-agents to run Claude Code with OpenRouter models (Grok, GPT-5, Gemini, MiniMax). NEVER run Claudish directly in main context unless user explicitly requests it. Use when user mentions external AI models, Claudish, OpenRouter, or alternative models. Includes mandatory sub-agent delegation patterns, agent selection guide, file-based instructions, and strict rules to prevent context window pollution.
<details>
<summary>View skill definition</summary>
# Claudish Usage Skill
**Version:** 1.1.0
**Purpose:** Guide AI agents on how to use Claudish CLI to run Claude Code with OpenRouter models
**Status:** Production Ready
## ⚠️ CRITICAL RULES - READ FIRST
### 🚫 NEVER Run Claudish from Main Context
**Claudish MUST ONLY be run through sub-agents** unless the user **explicitly** requests direct execution.
**Why:**
- Running Claudish directly pollutes main context with 10K+ tokens (full conversation + reasoning)
- Destroys context window efficiency
- Makes main conversation unmanageable
**When you can run Claudish directly:**
- ✅ User explicitly says "run claudish directly" or "don't use a sub-agent"
- ✅ User is debugging and wants to see full output
- ✅ User specifically requests main context execution
**When you MUST use sub-agent:**
- ✅ User says "use Grok to implement X" (delegate to sub-agent)
- ✅ User says "ask GPT-5 to review X" (delegate to sub-agent)
- ✅ User mentions any model name without "directly" (delegate to sub-agent)
- ✅ Any production task (always delegate)
### 📋 Workflow Decision Tree
User Request ↓ Does it mention Claudish/OpenRouter/model name? → NO → Don’t use this skill ↓ YES ↓ Does user say “directly” or “in main context”? → YES → Run in main context (rare) ↓ NO ↓ Find appropriate agent or create one → Delegate to sub-agent (default)
## 🤖 Agent Selection Guide
### Step 1: Find the Right Agent
**When user requests Claudish task, follow this process:**
1. **Check for
...(truncated)
</details>
## Source
[View on GitHub](https://github.com/MadAppGang/claude-code)