Claude Skill Development Guide

This guide explains the architecture of Claude AI agent skills, demonstrating how to extend Claude CLI capabilities with new, modular actions like direct job applications.

12 stars
Complexity: easy

About this skill

A Claude Skill is a modular package designed to extend the core functionality of the Claude CLI (Command Line Interface). Each skill is a self-contained unit comprising metadata (`skill.json`), instructions for the AI (`prompt.txt`), and executable scripts (`apply.sh`, `install.sh`). These skills are installed locally, allowing the Claude agent to automatically discover and load them, thereby gaining new capabilities tailored to specific tasks. The "Root Ventures Apply" skill serves as a concrete example of this architecture. It enables users to directly apply for positions at Root Ventures through conversational prompts with the Claude CLI. This particular skill streamlines a specific workflow, allowing an AI agent to interpret user intent ("apply to root ventures") and then execute a predefined script to handle the application process, potentially collecting necessary information interactively. Beyond the specific job application, this guide is fundamentally about empowering developers and users to create their own custom skills. It details best practices for structuring prompts, defining activation triggers, managing user interaction flows, and formatting responses, turning Claude into a highly customizable and versatile tool for a wide array of automated tasks.

Best use case

The primary use case is to either directly apply for specific job opportunities (like those at Root Ventures) through an AI agent's command-line interface or, more broadly, to serve as a development template for creating custom AI agent skills for the Claude platform. Individuals or teams looking to automate specific, repeatable tasks within their Claude CLI environment, or those interested in extending Claude's functionality beyond its default capabilities, would benefit most.

This guide explains the architecture of Claude AI agent skills, demonstrating how to extend Claude CLI capabilities with new, modular actions like direct job applications.

A user should expect the Claude AI agent to understand their request, execute the specified skill's script, and provide a relevant response, such as a confirmation of a submitted application or the output of a script.

Practical example

Example input

Claude, apply to Root Ventures for a job.

Example output

Understood. Please provide your resume file path and cover letter details to proceed.

When to use this skill

  • When you want to extend Claude CLI with specific, custom functionalities.
  • When you need an AI agent to automate a predefined workflow, such as submitting applications or processing data.
  • When developing new modular capabilities for the Claude AI agent.
  • When you want Claude to interact with external systems via scripts.

When not to use this skill

  • For tasks that are highly unstructured or require complex reasoning beyond script execution.
  • If you are not using the Claude AI agent or a compatible platform.
  • When the task requires human-level ethical judgment or sensitive decision-making.
  • If you need a general-purpose job application tool that isn't specific to a predefined process.

How Claude Skill Development Guide Compares

Feature / AgentClaude Skill Development GuideStandard Approach
Platform SupportClaudeLimited / Varies
Context Awareness High Baseline
Installation ComplexityeasyN/A

Frequently Asked Questions

What does this skill do?

This guide explains the architecture of Claude AI agent skills, demonstrating how to extend Claude CLI capabilities with new, modular actions like direct job applications.

Which AI agents support this skill?

This skill is designed for Claude.

How difficult is it to install?

The installation complexity is rated as easy. You can find the installation instructions above.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Claude Skill Development Guide

This document explains how the Root Ventures Apply skill is structured and how to create similar Claude skills.

## What is a Claude Skill?

A Claude skill is a package of files that extends Claude CLI with new capabilities. Skills are installed to `~/.claude/skills/` and are automatically loaded when Claude starts.

## Skill Structure

```
~/.claude/skills/root-ventures-apply/
├── skill.json          # Skill metadata and configuration
├── prompt.txt          # Instructions for Claude on how to use the skill
├── apply.sh            # Executable script that performs the main action
└── install.sh          # (optional) Installation script
```

### skill.json

The metadata file that defines the skill:

```json
{
  "name": "root-ventures-apply",
  "version": "1.0.0",
  "description": "Apply to Root Ventures positions directly through Claude",
  "entrypoint": "apply.sh",
  "author": "Root Ventures",
  "triggers": [
    "apply to root ventures",
    "root ventures application",
    "apply for root ventures job"
  ]
}
```

**Fields:**
- `name`: Unique identifier for the skill (kebab-case)
- `version`: Semantic version number
- `description`: Brief description of what the skill does
- `entrypoint`: The main script file that executes the skill's action
- `author`: Creator of the skill
- `triggers`: Array of phrases that should activate this skill

### prompt.txt

Instructions that tell Claude how to use the skill. This file is read by Claude when the skill is loaded.

**Key sections:**

1. **Activation Detection**: When and how to trigger the skill
2. **User Interaction Flow**: How to collect information from users
3. **Execution Instructions**: How to call the entrypoint script
4. **Response Formatting**: How to present results to users

**Best Practices:**

- Be explicit about when to activate
- Provide clear examples of user interactions
- Specify exact command formats for script invocation
- Include conversational guidelines (tone, pacing, emoji usage)
- Give examples of complete flows

### Entrypoint Script (apply.sh)

The executable that performs the skill's main action. Must be:
- Executable (`chmod +x`)
- Self-contained or with clear dependencies
- Return clear success/failure messages
- Handle errors gracefully

**This skill's apply.sh:**
- Accepts command-line arguments (`--name`, `--email`, etc.)
- Makes API call to Attio CRM
- Returns formatted success/failure message
- Includes source tracking for analytics

## How Skills Work

1. **Installation**: Files are copied to `~/.claude/skills/[skill-name]/`
2. **Loading**: When Claude CLI starts, it reads all `prompt.txt` files
3. **Activation**: Claude detects trigger phrases and follows prompt instructions
4. **Execution**: Claude invokes the entrypoint script via Bash tool
5. **Response**: Claude formats the script output for the user

## Creating Your Own Skill

### Step 1: Define the Use Case

Determine:
- What action should the skill perform?
- What information needs to be collected?
- What external systems will it interact with?
- How should it handle errors?

### Step 2: Create skill.json

```json
{
  "name": "your-skill-name",
  "version": "1.0.0",
  "description": "Brief description",
  "entrypoint": "action.sh",
  "author": "Your Name",
  "triggers": [
    "trigger phrase 1",
    "trigger phrase 2"
  ]
}
```

### Step 3: Write prompt.txt

Structure it as:
```
You have access to [skill name] installed on this computer.

## When to Activate

Detect when the user expresses [specific intent]:
- "trigger phrase 1"
- "trigger phrase 2"
- [variations]

## How to Handle [Action]

1. [Step-by-step instructions for Claude]
2. [Information to collect]
3. [How to invoke the script]
4. [How to format responses]

## Example Flow

User: "trigger phrase"
You: [Expected response]
```

### Step 4: Build the Entrypoint Script

```bash
#!/bin/bash

# Parse arguments
while [[ $# -gt 0 ]]; do
  case $1 in
    --arg1)
      ARG1="$2"
      shift 2
      ;;
    --arg2)
      ARG2="$2"
      shift 2
      ;;
    *)
      echo "Unknown option: $1"
      exit 1
      ;;
  esac
done

# Validate inputs
if [ -z "$ARG1" ]; then
  echo "Error: --arg1 is required"
  exit 1
fi

# Perform action
# [Your logic here]

# Return formatted output
echo "✅ Action completed successfully!"
```

### Step 5: Create install.sh (Optional)

```bash
#!/bin/bash

SKILL_NAME="your-skill-name"
SKILL_DIR="$HOME/.claude/skills/$SKILL_NAME"

echo "🚀 Installing $SKILL_NAME..."

# Create directory
mkdir -p "$SKILL_DIR"

# Download files
curl -fsSL "https://raw.githubusercontent.com/you/repo/main/skill.json" -o "$SKILL_DIR/skill.json"
curl -fsSL "https://raw.githubusercontent.com/you/repo/main/prompt.txt" -o "$SKILL_DIR/prompt.txt"
curl -fsSL "https://raw.githubusercontent.com/you/repo/main/action.sh" -o "$SKILL_DIR/action.sh"

# Make executable
chmod +x "$SKILL_DIR/action.sh"

echo "✅ $SKILL_NAME installed successfully!"
```

## Testing Your Skill

### Local Testing

1. **Install locally:**
   ```bash
   mkdir -p ~/.claude/skills/your-skill-name
   cp * ~/.claude/skills/your-skill-name/
   chmod +x ~/.claude/skills/your-skill-name/*.sh
   ```

2. **Test the script directly:**
   ```bash
   ~/.claude/skills/your-skill-name/action.sh --arg1 "test" --arg2 "test"
   ```

3. **Test in Claude CLI:**
   - Launch Claude: `claude`
   - Use a trigger phrase
   - Verify Claude follows the prompt.txt instructions
   - Check that script execution works correctly
   - Verify output formatting

### Integration Testing

1. Test all conversation flows
2. Test error cases (missing data, API failures)
3. Test edge cases (special characters, very long inputs)
4. Test on fresh installation

## Advanced Features

### Environment Variables

Store sensitive data in environment variables:

```bash
# In apply.sh
API_KEY="${ATTIO_API_KEY}"
if [ -z "$API_KEY" ]; then
  echo "Error: ATTIO_API_KEY not set"
  exit 1
fi
```

Users set them in `~/.bashrc` or `~/.zshrc`:
```bash
export ATTIO_API_KEY="your-key-here"
```

### Multi-Step Workflows

For complex skills, prompt.txt can guide Claude through multiple script invocations:

```
1. First, run: ~/.claude/skills/your-skill/validate.sh
2. If validation passes, run: ~/.claude/skills/your-skill/execute.sh
3. Finally, run: ~/.claude/skills/your-skill/confirm.sh
```

### Configuration Files

Create `~/.claude/skills/your-skill/config.json` for user preferences:

```json
{
  "api_endpoint": "https://api.example.com",
  "default_options": {
    "verbose": true
  }
}
```

Read in your script:
```bash
CONFIG_FILE="$HOME/.claude/skills/your-skill/config.json"
ENDPOINT=$(jq -r '.api_endpoint' "$CONFIG_FILE")
```

## Security Considerations

1. **Never hardcode secrets** - Use environment variables
2. **Validate all inputs** - Sanitize user-provided data
3. **Use HTTPS** - For all API calls
4. **Minimal permissions** - Only request what's needed
5. **Clear error messages** - Don't expose sensitive details
6. **Audit logging** - Track when/how the skill is used

## Distribution

See [DISTRIBUTION.md](DISTRIBUTION.md) for details on:
- Publishing to GitHub
- Creating one-line installers
- Marketing the skill
- Analytics and tracking

## Skill Ideas

Potential skills you could create:
- Job application workflows (like this one)
- CRM integrations (create leads, update contacts)
- Project management (create tasks in Jira/Linear)
- Code deployment (push to production with confirmation)
- Data collection (surveys, feedback forms)
- Notification systems (send alerts via Slack/Discord)
- Calendar scheduling (book meetings)
- Document generation (create PDFs, reports)

## Resources

- **Claude CLI Documentation**: https://docs.anthropic.com/claude/cli
- **Example Skills**: https://github.com/anthropics/claude-skills
- **Claude API**: https://docs.anthropic.com/claude/reference

## Support

For questions about this skill:
- GitHub Issues: https://github.com/rootvc/claude-apply-skill/issues
- Email: hello@root.vc

For questions about Claude CLI:
- Claude Documentation: https://docs.anthropic.com/claude/cli
- Discord: https://discord.gg/anthropic

---

## This Skill's Architecture

### Components

**skill.json**
- Defines "root-ventures-apply" as the skill name
- Lists trigger phrases related to applying
- Sets apply.sh as the entrypoint

**prompt.txt**
- Detects application intent from user messages
- Guides Claude through conversational information collection
- Specifies exactly how to call apply.sh with collected data
- Provides tone guidance (casual, not too many exclamation points)

**apply.sh**
- Parses command-line arguments (name, email, linkedin, github, notes)
- Validates required fields (name, email)
- Makes authenticated API call to Attio CRM
- Tags application with "source: Claude Skill"
- Returns formatted success/error message

**install.sh**
- Downloads all necessary files from GitHub
- Creates skill directory structure
- Sets correct permissions
- Launches Claude CLI automatically with skill pre-loaded

### Data Flow

```
User: "I want to apply to Root Ventures"
  ↓
Claude detects trigger (from prompt.txt)
  ↓
Claude collects information conversationally
  ↓
Claude calls: ~/.claude/skills/root-ventures-apply/apply.sh \
  --name "Jane" --email "jane@ex.com" --github "jane" \
  --notes "Interested in deep tech..."
  ↓
apply.sh makes API call to Attio
  ↓
Attio creates/updates person record
  ↓
apply.sh returns success message
  ↓
Claude formats and shows message to user
```

### Customization Points

To adapt this skill for another company:

1. Update skill.json:
   - Change `name` to "company-name-apply"
   - Update `description` and `author`
   - Modify `triggers` to match company name

2. Update prompt.txt:
   - Change company name and position details
   - Adjust information collection requirements
   - Modify tone/style to match company culture

3. Update apply.sh:
   - Replace Attio API endpoint with your CRM/database
   - Update authentication method
   - Modify data fields to match your system
   - Customize success messages

4. Update install.sh:
   - Change GitHub URLs to your repository
   - Update skill name references

5. Test thoroughly with your backend systems

Related Skills

Claude-Zeroclaw SKILL

109
from Crestdrasnip/Claude-Zeroclaw

## Overview

Workflow & ProductivityClaude

Three-Layer Memory System for Claude Code

16
from KimYx0207/claude-memory-3layer

Enhance Claude Code's capabilities with a three-layer memory system for cross-session knowledge extraction, storage, and loading, designed for persistent context retention.

Workflow & ProductivityClaude

ai-pair

169
from axtonliu/ai-pair

AI Pair Collaboration Skill. Coordinate multiple AI models to work together: one creates (Author/Developer), two others review (Codex + Gemini). Works for code, articles, video scripts, and any creative task. Trigger: /ai-pair, ai pair, dev-team, content-team, team-stop

Workflow & ProductivityClaude

review

167
from ArtemXTech/claude-code-obsidian-starter

Daily and weekly review workflows. USE WHEN user says "morning routine", "evening routine", "weekly review", "start my day", "end of day".

Workflow & ProductivityClaude

Beads Issue Tracking Skill

164
from maslennikov-ig/claude-code-orchestrator-kit

> **Attribution**: [Beads](https://github.com/steveyegge/beads) by [Steve Yegge](https://github.com/steveyegge)

Workflow & ProductivityClaude

prd

160
from react-native-vibe-code/react-native-vibe-code-sdk

Generate a Product Requirements Document (PRD) for a new feature. Use when planning a feature, starting a new project, or when asked to create a PRD. Triggers on: create a prd, write prd for, plan this feature, requirements for, spec out.

Workflow & ProductivityClaude

Skill: Runs

154
from ai-analyst-lab/ai-analyst

## Purpose

Workflow & ProductivityClaude

reprompter

97
from AytuncYildizli/reprompter

Transform messy prompts into structured, effective prompts — single, multi-agent, or reverse-engineered from great outputs. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags, "reprompter teams", "repromptverse", "run with quality", "smart run", "smart agents", "campaign swarm", "engineering swarm", "ops swarm", "research swarm", multi-agent tasks, audits, parallel work, "reverse reprompt", "reprompt from example", "learn from this", "extract prompt from", "prompt dna", "prompt genome", reverse-engineering prompts from exemplar outputs. Don't use for simple Q&A, pure chat, or immediate execution-only tasks (see "Don't Use When" section). Outputs: structured XML/Markdown prompt, before/after quality score, optional team brief + per-agent sub-prompts, Agent Cards, Extraction Card (reverse mode). Target quality score: Single ≥ 7/10; Repromptverse per-agent ≥ 8/10; Reverse ≥ 7/10.

Workflow & ProductivityClaudeCodex

session-pack

89
from ten-builder/ten-builder

세션 종료 시 Memory, Handoff를 자동 정리. /pack

Workflow & ProductivityClaude

execute

51
from vinzenz/prd-breakdown-execute

Main entry point for hierarchical task execution. Orchestrates layer-by-layer implementation of PRD tasks with parallel worktree execution.

Workflow & ProductivityClaude

textum

43
from snakeying/Textum

Textum PRD→Scaffold→Story workflow for Codex with low-noise outputs and gate checks.

Workflow & ProductivityClaude

sdd

40
from SpillwaveSolutions/agent_rulez

This skill should be used when users want guidance on Spec-Driven Development methodology using GitHub's Spec-Kit. Guide users through executable specification workflows for both new projects (greenfield) and existing codebases (brownfield). After any SDD command generates artifacts, automatically provide structured 10-point summaries with feature status tracking, enabling natural language feature management and keeping users engaged throughout the process.

Workflow & ProductivityClaude