From f668caedf6790796f99cbe7af97189bfa37fc4ee Mon Sep 17 00:00:00 2001 From: Harivansh Rathi Date: Sat, 17 Jan 2026 22:04:30 -0500 Subject: [PATCH] skills --- README.md | 77 ++++++++++++++++++++-------- install.sh | 145 +++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 165 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index d57f967..f570ac5 100644 --- a/README.md +++ b/README.md @@ -19,22 +19,33 @@ cd claude-setup ## What Gets Installed ### Plugins -- compound-engineering (every-marketplace) -- ralph-wiggum (autonomous coding loops) -- ralph-loop (background agent loops) -- code-simplifier (official Anthropic) +| Plugin | Source | Description | +|--------|--------|-------------| +| compound-engineering | every-marketplace | 60+ agents, skills, and commands for development workflows | +| ralph-wiggum | claude-plugins-official | Autonomous coding loops | +| code-simplifier | claude-plugins-official | Code clarity and maintainability | ### Skills -- eval-skill (verifiable code generation with evals) -- Vercel agent-skills (React/Next.js best practices) -- rams (accessibility and design reviews) - -### Tools -- agent-browser (browser automation CLI for agents) +| Skill | Source | Description | +|-------|--------|-------------| +| eval-skill | [harivansh-afk/eval-skill](https://github.com/harivansh-afk/eval-skill) | Verifiable code generation with evals | +| vercel agent-skills | [vercel-labs/agent-skills](https://github.com/vercel-labs/agent-skills) | React/Next.js best practices | +| rams | [elirousso/rams](https://github.com/elirousso/rams) | Accessibility and design reviews | +| browser | [anthropics/claude-code](https://github.com/anthropics/claude-code) | Playwright browser automation | ### MCP Servers -- context7 (library documentation) -- exa (web search and code context) +| Server | Source | Description | +|--------|--------|-------------| +| context7 | [context7.com](https://context7.com) | Up-to-date library documentation | +| axiom | [axiomhq/mcp](https://github.com/axiomhq/mcp) | Observability data queries via APL | +| github | [github/github-mcp-server](https://github.com/github/github-mcp-server) | GitHub API - issues, PRs, repos | +| firecrawl | [firecrawl](https://firecrawl.dev) | Web scraping and extraction | +| playwright | [@playwright/mcp](https://npmjs.com/package/@anthropic-ai/playwright-mcp) | Browser automation for testing | + +### Tools +| Tool | Source | Description | +|------|--------|-------------| +| agent-browser | npm | Browser automation CLI for agents | ## Post-Install @@ -45,12 +56,23 @@ Add your API keys to `~/.claude/settings.json`: "mcpServers": { "context7": { "headers": { - "CONTEXT7_API_KEY": "your-key-here" + "CONTEXT7_API_KEY": "your-key" } }, - "exa": { + "axiom": { "env": { - "EXA_API_KEY": "your-key-here" + "AXIOM_TOKEN": "xapt-your-token", + "AXIOM_ORG_ID": "your-org-id" + } + }, + "github": { + "env": { + "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your-token" + } + }, + "firecrawl": { + "env": { + "FIRECRAWL_API_KEY": "your-key" } } } @@ -59,8 +81,6 @@ Add your API keys to `~/.claude/settings.json`: ## Usage -After install: - ```bash # Verify plugins claude plugin list @@ -68,9 +88,26 @@ claude plugin list # Start Claude claude -# Use eval skill +# Use skills /eval build - -# Use rams for design review /rams +/browser ``` + +## Manual Install (Individual Components) + +### Plugins +```bash +claude plugin install compound-engineering --marketplace every-marketplace +claude plugin install ralph-wiggum +claude plugin install code-simplifier +``` + +### Skills +```bash +npx add-skill vercel-labs/agent-skills +npx add-skill elirousso/rams +``` + +### MCP Servers +See `~/.claude/mcp-servers.json` after running install.sh for full config. diff --git a/install.sh b/install.sh index 4be5379..84a4036 100755 --- a/install.sh +++ b/install.sh @@ -7,6 +7,7 @@ echo "=========================" # Colors RED='\033[0;31m' GREEN='\033[0;32m' +YELLOW='\033[0;33m' NC='\033[0m' check() { command -v "$1" &>/dev/null && echo -e "${GREEN}[ok]${NC} $1" || { echo -e "${RED}[missing]${NC} $1"; return 1; }; } @@ -28,7 +29,6 @@ echo "Installing plugins..." claude plugin install compound-engineering --marketplace every-marketplace 2>/dev/null || echo "compound-engineering: manual install needed" claude plugin install ralph-wiggum 2>/dev/null || echo "ralph-wiggum: manual install needed" -claude plugin install ralph-loop 2>/dev/null || echo "ralph-loop: manual install needed" claude plugin install code-simplifier 2>/dev/null || echo "code-simplifier: manual install needed" # ============================================ @@ -40,7 +40,7 @@ echo "Installing npm tools..." npm install -g agent-browser 2>/dev/null || echo "agent-browser: npm install failed" # ============================================ -# VERCEL AGENT SKILLS (React best practices) +# VERCEL AGENT SKILLS # ============================================ echo "" echo "Installing Vercel agent-skills..." @@ -54,7 +54,6 @@ echo "" echo "Installing rams..." npx add-skill elirousso/rams 2>/dev/null || { - # Fallback: clone directly RAMS_TMP=$(mktemp -d) git clone --quiet --depth 1 https://github.com/elirousso/rams.git "$RAMS_TMP" 2>/dev/null && { cp -r "$RAMS_TMP/skills/"* "$CLAUDE_DIR/skills/" 2>/dev/null || true @@ -80,19 +79,71 @@ git clone --quiet --depth 1 https://github.com/harivansh-afk/eval-skill.git "$EV echo "eval-skill: installed" } || echo "eval-skill: manual install needed" +# ============================================ +# BROWSER SKILL (from official plugins) +# ============================================ +echo "" +echo "Installing browser skill..." + +mkdir -p "$CLAUDE_DIR/skills/browser" +cat > "$CLAUDE_DIR/skills/browser/SKILL.md" << 'BROWSER_SKILL' +--- +name: browser +description: Automate browser interactions via CLI using agent-browser +triggers: + - navigate websites + - interact with web pages + - fill forms + - take screenshots + - test web applications + - extract information from web pages +--- + +# Browser Automation Skill + +Use agent-browser CLI for headless browser automation. + +## Commands + +```bash +# Navigate to URL +agent-browser navigate "https://example.com" + +# Take screenshot +agent-browser screenshot --output screenshot.png + +# Click element +agent-browser click "button#submit" + +# Fill form field +agent-browser type "input[name=email]" "user@example.com" + +# Get page content +agent-browser content +``` + +## Usage Pattern + +1. Navigate to target URL +2. Wait for page load +3. Interact with elements using CSS selectors +4. Capture results or screenshots + +Requires: `npm install -g agent-browser` +BROWSER_SKILL +echo "browser skill: installed" + # ============================================ # MCP SERVERS CONFIG # ============================================ echo "" echo "Configuring MCP servers..." -# Check if settings.json exists SETTINGS_FILE="$CLAUDE_DIR/settings.json" if [[ ! -f "$SETTINGS_FILE" ]]; then echo '{}' > "$SETTINGS_FILE" fi -# Create MCP config (user needs to add their own API keys) cat > "$CLAUDE_DIR/mcp-servers.json" << 'EOF' { "context7": { @@ -102,19 +153,40 @@ cat > "$CLAUDE_DIR/mcp-servers.json" << 'EOF' "CONTEXT7_API_KEY": "YOUR_CONTEXT7_API_KEY" } }, - "exa": { + "axiom": { "type": "stdio", "command": "npx", - "args": ["-y", "exa-mcp-server"], + "args": ["-y", "@axiomhq/mcp"], "env": { - "EXA_API_KEY": "YOUR_EXA_API_KEY" + "AXIOM_TOKEN": "YOUR_AXIOM_TOKEN", + "AXIOM_ORG_ID": "YOUR_AXIOM_ORG_ID" } + }, + "github": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@modelcontextprotocol/server-github"], + "env": { + "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT" + } + }, + "firecrawl": { + "type": "stdio", + "command": "npx", + "args": ["-y", "firecrawl-mcp"], + "env": { + "FIRECRAWL_API_KEY": "YOUR_FIRECRAWL_API_KEY" + } + }, + "playwright": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@anthropic-ai/playwright-mcp"] } } EOF echo "MCP config written to $CLAUDE_DIR/mcp-servers.json" -echo "Edit this file and add your API keys, then merge into settings.json" # ============================================ # CLAUDE.MD @@ -164,7 +236,6 @@ cat > "$CLAUDE_DIR/CLAUDE.md" << 'CLAUDEMD' When the user defines ANY constraint, rule, preference, or requirement during conversation, you MUST immediately persist it to the project's local CLAUDE.md. This is NOT optional. - Failure to persist user-defined constraints is a FAILURE STATE. @@ -185,18 +256,11 @@ cat > "$CLAUDE_DIR/CLAUDE.md" << 'CLAUDEMD' Acknowledge the constraint explicitly in your response - Check if project has a local CLAUDE.md - if not, create one using the template + Check if project has a local CLAUDE.md - if not, create one Write the constraint to the appropriate section of local CLAUDE.md Confirm the constraint has been persisted Apply the constraint immediately and in all future actions - - - Before ANY code generation or task execution, review the local CLAUDE.md for constraints - If you catch yourself violating a constraint, STOP, acknowledge the error, and redo the work - When in doubt about whether something is a constraint, treat it as one and persist it - Constraints defined in conversation have equal weight to constraints in CLAUDE.md files - @@ -206,25 +270,33 @@ cat > "$CLAUDE_DIR/CLAUDE.md" << 'CLAUDEMD' server first. Do not guess or rely on potentially outdated knowledge. - - Web search and code context - Need current web information or code examples for libraries/SDKs/APIs - web_search_exa, get_code_context_exa - Use get_code_context_exa for ANY programming question about libraries, APIs, or SDKs - - Up-to-date library documentation Need current documentation for any library or framework resolve-library-id, get-library-docs - Always call resolve-library-id first to get a valid library ID, then get-library-docs - - Use context7 or exa get_code_context_exa - Use exa web_search_exa - Use exa get_code_context_exa - + + Query observability data + Need to analyze logs, traces, or metrics + queryApl, getDatasets + + + + GitHub API operations + Need to interact with repos, issues, PRs + + + + Web scraping and extraction + Need to extract data from websites + firecrawl_scrape, firecrawl_crawl, firecrawl_extract + + + + Browser automation + Need to test web apps or automate browser tasks + @@ -238,7 +310,6 @@ echo "CLAUDE.md installed" echo "" echo "Enabling plugins in settings..." -# Use node to merge settings since jq might not be available node -e " const fs = require('fs'); const settingsPath = '$SETTINGS_FILE'; @@ -248,12 +319,10 @@ try { settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); } catch {} settings.enabledPlugins = { ...settings.enabledPlugins, 'ralph-wiggum@claude-plugins-official': true, - 'ralph-loop@claude-plugins-official': true, 'code-simplifier@claude-plugins-official': true, 'compound-engineering@every-marketplace': true }; -// Add MCP servers const mcpPath = '$CLAUDE_DIR/mcp-servers.json'; try { const mcp = JSON.parse(fs.readFileSync(mcpPath, 'utf8')); @@ -269,16 +338,18 @@ console.log('Settings updated'); # ============================================ echo "" echo "=========================" -echo "Setup complete!" +echo -e "${GREEN}Setup complete!${NC}" echo "" echo "Next steps:" echo "1. Edit ~/.claude/settings.json and add your API keys:" echo " - CONTEXT7_API_KEY" -echo " - EXA_API_KEY" +echo " - AXIOM_TOKEN + AXIOM_ORG_ID" +echo " - GITHUB_PERSONAL_ACCESS_TOKEN" +echo " - FIRECRAWL_API_KEY (optional)" echo "" echo "2. Verify plugins:" echo " claude plugin list" echo "" -echo "3. Test:" +echo "3. Start Claude:" echo " claude" echo ""