Hieu-ccsetup claude-extensibility
Claude Code extensibility: agents, skills, output styles. Capabilities: create/update/delete agents and skills, YAML frontmatter, system prompts, tool/model selection, resumable agents, CLI-defined agents. Actions: create, edit, delete, optimize, test extensions. Keywords: agent, skill, output-style, SKILL.md, subagent, Task tool, progressive disclosure. Use when: creating agents/skills, editing extensions, configuring tool access, choosing models, testing activation.
git clone https://github.com/dige04/hieu-ccsetup
T=$(mktemp -d) && git clone --depth=1 https://github.com/dige04/hieu-ccsetup "$T" && mkdir -p ~/.claude/skills && cp -r "$T/config/skills/claude-extensibility" ~/.claude/skills/dige04-hieu-ccsetup-claude-extensibility && rm -rf "$T"
config/skills/claude-extensibility/SKILL.mdClaude Code Extensibility
CRUD operations for agents, skills, and output styles following Anthropic best practices.
Related Skills
IMPORTANT: When creating or editing prompts, use
prompt-enhancer skill to improve quality.
Skill("prompt-enhancer") → Enhance skill/agent prompt content
Core Principles
- Simplicity: Direct tool calls, avoid complex abstractions
- Focus: Single, clear responsibility per extension
- Conciseness: Target <500 lines, use progressive disclosure
- Efficiency: Optimize for token usage and response time
Extension Types
| Type | Invocation | Purpose | Location |
|---|---|---|---|
| Agents | Task tool | Specialized sub-processes | |
| Skills | Model-invoked (autonomous) | Domain knowledge | |
| Output Styles | command | Modify main agent behavior | |
Agent Development
Reference:
references/agent-development.md - Full YAML structure, model/tool selection, system prompt patterns, optimization techniques.
Quick Start: Agent
--- name: agent-name description: Use this agent when [use case]. Use PROACTIVELY for [triggers].\n\nExamples:\n<example>\nContext: [situation]\nuser: [request]\nassistant: [response]\n<commentary>[reasoning]</commentary>\n</example> tools: Grep, Glob, Read, Bash model: haiku permissionMode: default skills: skill-name --- # Agent Name Brief mission statement. ## Core Strategy ### 1. Phase Name Approach and techniques <format> Expected output structure </format>
YAML Fields
| Field | Required | Description |
|---|---|---|
| Yes | Lowercase, hyphens (e.g., ) |
| Yes | Single line with for newlines, include examples |
| No | Comma-separated; inherits all if omitted |
| No | , , , (default: sonnet) |
| No | , , , , |
| No | Comma-separated skill names to auto-load |
Model Selection
| Model | Use When | Target Time |
|---|---|---|
| Fast tasks, exploration, search | < 3s |
| Balanced, most use cases | < 10s |
| Complex reasoning, architecture | < 30s |
| Match main conversation model | varies |
Built-in Subagents
| Agent | Model | Tools | Purpose |
|---|---|---|---|
| Sonnet | All | Complex research, multi-step operations |
| Sonnet | Read, Glob, Grep, Bash | Research in plan mode |
| Haiku | Read-only | Fast codebase search (quick/medium/very thorough) |
Agent Locations
| Location | Scope | Priority |
|---|---|---|
| Project | Highest |
| User (all projects) | Lower |
Plugin | Plugin-specific | Varies |
CLI flag | Session only | Medium |
CLI-Defined Agents
claude --agents '{ "code-reviewer": { "description": "Expert code reviewer. Use proactively after code changes.", "prompt": "You are a senior code reviewer...", "tools": ["Read", "Grep", "Glob", "Bash"], "model": "sonnet" } }'
Resumable Agents
Continue previous conversations:
- Each execution gets unique
agentId - Transcript stored in
agent-{agentId}.jsonl - Resume with previous
to continue with full contextagentId
Skill Development
Reference:
references/skill-development.md - Full structure, trigger patterns, hook system.
Quick Start: Skill
--- name: skill-name description: "[What it does]. [Technologies]. Capabilities: [list]. Actions: [verbs]. Keywords: [triggers]. Use when: [scenarios]." allowed-tools: Read, Grep, Glob --- # Skill Name ## Purpose What this skill helps with ## When to Use Specific scenarios and conditions ## Key Information Guidance, patterns, examples
YAML Fields
| Field | Required | Description |
|---|---|---|
| Yes | Lowercase, hyphens, max 64 chars |
| Yes | WHAT + WHEN format, max 1024 chars, quoted |
| No | Restrict tool access (security) |
Description Format (WHAT + WHEN)
Structure:
"[Core purpose]. [Technologies/Stack]. Capabilities: [list]. Actions: [verbs]. Keywords: [triggers]. Use when: [scenarios]."
Good example:
description: "Extract text and tables from PDF files, fill forms, merge documents. Formats: .pdf. Tools: pypdf, pdfplumber. Capabilities: text extraction, form filling, document merging. Actions: extract, fill, merge PDFs. Keywords: PDF, form, document, pypdf, pdfplumber. Use when: working with PDF files, extracting data from documents, filling PDF forms."
Bad examples:
description: Helps with documents # Too vague description: PDF skill # Missing WHEN triggers
Tool Access Control
Restrict Claude's tools with
allowed-tools:
--- name: safe-reader description: "Read-only file access. Use when viewing code without modifications." allowed-tools: Read, Grep, Glob ---
Skill Locations
| Location | Scope |
|---|---|
| Project (shared via git) |
| User (all projects) |
Plugin | Plugin-bundled |
Skill Structure
my-skill/ ├── SKILL.md (required) ├── references/ (optional - detailed docs) ├── scripts/ (optional - utilities) └── templates/ (optional - templates)
Output Styles
Modify Claude Code's main agent behavior.
Quick Start: Output Style
--- name: My Custom Style description: Brief description of behavior keep-coding-instructions: true --- # Custom Style Instructions You are an interactive CLI tool that helps users... ## Specific Behaviors [Define assistant behavior...]
YAML Fields
| Field | Purpose | Default |
|---|---|---|
| Display name | Filename |
| UI description | None |
| Retain coding instructions | |
Built-in Styles
- Default: Standard software engineering
- Explanatory: Educational insights between tasks
- Learning: Collaborative with
markersTODO(human)
Output Style Locations
- User:
~/.claude/output-styles/ - Project:
.claude/output-styles/
Usage
/output-style # Access menu /output-style explanatory # Switch directly
Testing
Key Question: Does it activate when expected?
Agent Testing:
Task( subagent_type="agent-name", description="Test task", prompt="Detailed test prompt" )
Skill Testing:
- Test prompts that SHOULD trigger
- Test prompts that should NOT trigger
- Debug with:
claude --debug
Common Workflows
Create Agent
- Create
.claude/agents/{name}.md - Write YAML frontmatter (name, description, tools, model)
- Write system prompt (<500 lines)
- Test with Task tool
- Optimize based on performance
Create Skill
- Create
.claude/skills/{name}/SKILL.md - Write YAML frontmatter with WHAT + WHEN description
- Write content (<500 lines)
- Use
to improve promptSkill("prompt-enhancer") - Add reference files for detailed content
- Test: Does it activate when expected?
Optimize Extension
- Measure baseline (lines, token usage, response time)
- Move details to reference files
- Use
to improve promptsSkill("prompt-enhancer") - Remove second-person voice
- Use code blocks over prose
- Add XML structure
- Test and verify improvements
Best Practices
Anthropic Guidelines
✅ 500-line rule: Keep SKILL.md and agent prompts under 500 lines ✅ Progressive disclosure: Use reference files for detailed content ✅ Proactive language: Include "use PROACTIVELY" in descriptions ✅ WHAT + WHEN descriptions: Both capability and triggers ✅ Test first: Build 3+ evaluations before extensive documentation ✅ Least privilege: Limit tools to necessary set
Anti-Patterns
❌ Vague descriptions without triggers ❌ Over 500 lines without references ❌ Second-person voice ("you should...") ❌ All tools when subset suffices ❌ No examples in agent descriptions
Quick Reference
Agent Model Selection:
- Haiku: Fast, simple tasks (< 3s)
- Sonnet: Balanced, most use cases (< 10s)
- Opus: Complex reasoning (< 30s)
- Inherit: Match main conversation
File Locations:
- Agents:
.claude/agents/*.md - Skills:
.claude/skills/{name}/SKILL.md - Output Styles:
.claude/output-styles/*.md
Management Commands:
- Interactive agent management/agents
- Switch output styles/output-style
Status: Production Ready | Lines: ~200 | Progressive Disclosure: ✅