Skip to main content

claude-skills

This skill should be used when creating Claude Code skills with Claude-specific features like allowed-tools, context modes (fork/inherit), argument-hint, or model overrides. Triggers on "Claude skill", "allowed-tools", "context fork", "skill arguments".

معلومات المصدر

المستودع
outfitter-dev/agents
آخر نشاط في المصدر
٢٧ يناير ٢٠٢٦ في ١٥:٤٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢٩
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
4 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
claude-skills
description
This skill should be used when creating Claude Code skills with Claude-specific features like allowed-tools, context modes (fork/inherit), argument-hint, or model overrides. Triggers on "Claude skill", "allowed-tools", "context fork", "skill arguments".
metadata
{"version":"1.0.0","related-skills":["skills-dev","claude-plugins","claude-commands","claude-hooks"]}
allowed-tools
Read Write Edit Grep Glob Bash TaskCreate TaskUpdate TaskList TaskGet
# Claude Code Skills ## Steps 1. Load the `outfitter:skills-dev` skill 2. Consider the Claude Code-specific features that extend the base specification within this skill ## Frontmatter Extensions Claude Code extends the base Agent Skills frontmatter: | Field | Type | Description | |-------|------|-------------| | `allowed-tools` | string | Space-separated tools that run without permission prompts | | `user-invocable` | boolean | Default `true`. Set `false` to prevent `/skill-name` access | | `disable-model-invocation` | boolean | Prevents auto-activation; requires manual Skill tool invocation | | `context` | string | `inherit` (default) or `fork` for isolated subagent execution | | `agent` | string | Agent for `context: fork` (e.g., `Explore`, `outfitter:analyst`) | | `model` | string | Override model: `haiku`, `sonnet`, or `opus` | | `hooks` | object | Lifecycle hooks: `on-activate`, `on-complete` | | `argument-hint` | string | Hint shown after `/skill-name` (e.g., `[file path]`) | ### Example ```yaml --- name: code-review version: 1.0.0 description: Reviews code for bugs, security, and best practices. Use when reviewing PRs, auditing code, or before merging. allowed-tools: Read Grep Glob Bash(git diff *) argument-hint: [file or directory] model: sonnet --- ``` ## Tool Restrictions Use `allowed-tools` to specify which tools run without permission prompts. ### Syntax ```yaml # Space-separated list allowed-tools: Read Grep Glob # With Bash patterns allowed-tools: Read Write Bash(git *) Bash(npm run *) # MCP tools (double underscore format) allowed-tools: Read mcp__linear__create_issue mcp__memory__store ``` ### Bash Pattern Syntax | Pattern | Meaning | Example | |---------|---------|---------| | `Bash(git *)` | All git commands | `git status`, `git commit` | | `Bash(git add:*)` | Specific subcommand | `git add .`, `git add file.ts` | | `Bash(npm run *:*)` | Nested patterns | `npm run test:unit` | ### Common Patterns ```yaml # Read-only analysis allowed-tools: Read Grep Glob # File modifications allowed-tools: Read Edit Write # Git operations allowed-tools: Read Write Bash(git *) # Testing workflows allowed-tools: Read Write Bash(bun test:*) Bash(npm test:*) # Full development allowed-tools: Read Edit Write Bash(git *) Bash(bun *) Bash(npm *) ``` ### Tool Names (Case-Sensitive) | Tool | Purpose | |------|---------| | `Read` | Read files | | `Write` | Write new files | | `Edit` | Edit existing files | | `Grep` | Search file contents | | `Glob` | Find files by pattern | | `Bash` | Execute bash commands | | `WebFetch` | Fetch web content | | `WebSearch` | Search the web | --- ## User Invocable Skills Skills are callable as `/skill-name` by default. Use `user-invocable: false` for auto-activate-only skills. ```yaml --- name: code-review description: Reviews code for bugs and best practices... argument-hint: [file or PR number] --- ``` Users invoke with `/code-review src/auth.ts` or wait for auto-activation. ### Disabling Slash Command Access ```yaml --- name: internal-validator description: Validates internal state when specific patterns are detected... user-invocable: false --- ``` ### Arguments The `argument-hint` field provides context in the command picker: ```yaml argument-hint: [error message or bug description] ``` Arguments available via `$ARGUMENTS` in skill body. --- ## String Substitutions | Pattern | Replaced With | |---------|---------------| | `$ARGUMENTS` | User input after `/skill-name` | | `${CLAUDE_SESSION_ID}` | Current session identifier | | `${CLAUDE_PLUGIN_ROOT}` | Path to the plugin root directory | ### Example ```markdown # Debug Skill Investigating: $ARGUMENTS Session: ${CLAUDE_SESSION_ID} Use the debugging script: ${CLAUDE_PLUGIN_ROOT}/scripts/debug-helper.ts ``` --- ## Dynamic Context Injection Use backtick-command syntax to inject dynamic content: ```markdown ## Current Git Status `git status` ## Recent Changes `git log --oneline -5` ``` Commands execute when Claude loads the skill; output replaces the syntax. **Use cases**: Current branch state, environment info, dynamic config, recent history. --- ## Context Modes The `context` field controls execution environment. ### inherit (default) Skill runs in main conversation context with access to history and prior tool results. ```yaml context: inherit ``` ### fork Skill runs in isolated subagent context. Useful for: - Preventing context pollution - Parallel execution - Specialized processing that shouldn't affect main conversation ```yaml context: fork agent: outfitter:analyst model: haiku ``` When `context: fork`, specify: - `agent`: Which agent handles the fork - `model`: Override model for forked context **In Steps sections**: Use "delegate by loading" language for delegated skills (they run agents, not load instructions): ```markdown 3. Delegate by loading the `outfitter:security-audit` skill for vulnerability scan ``` See [context-modes.md](references/context-modes.md) for patterns. --- ## Testing ```bash claude --debug ``` Debug output shows: - `Loaded skill: skill-name from path` — Skill discovered - `Error loading skill: reason` — Loading failed - `Considering skill: skill-name` — Activation evaluated - `Skill allowed-tools: [list]` — Tool restrictions applied ### Testing Process 1. **Verify loading**: `claude --debug` and check for load messages 2. **Test discovery**: Ask something that should trigger the skill 3. **Verify tool restrictions**: Confirm permitted tools run without prompts 4. **Test with real data**: Run actual workflows ### Force Skill Reload Skills are cached per session. To reload after changes: ``` /clear ``` --- ## Troubleshooting ### Skill Not Loading Check file location: ```bash # Personal skills ls ~/.claude/skills/my-skill/SKILL.md # Project skills ls .claude/skills/my-skill/SKILL.md # Plugin skills ls <plugin-path>/skills/my-skill/SKILL.md ``` Validate YAML frontmatter: ```bash # Check for tabs (YAML requires spaces) grep -P "\t" SKILL.md ``` ### Skill Not Activating Improve description specificity: ```yaml # Before (too vague) description: Helps with files # After (specific with triggers) description: Parse and validate JSON files including schema validation. Use when working with JSON data, .json files, or configuration files. ``` Add trigger keywords users naturally say: file types (`.pdf`, `.json`), actions (`parse`, `validate`), domains (`API`, `database`). ### Tool Permission Errors Tool names are case-sensitive: ```yaml # Correct allowed-tools: Read Grep Glob # Wrong allowed-tools: read grep glob ``` Bash patterns need wildcards: ```yaml # Correct allowed-tools: Bash(git *) # Wrong (matches nothing) allowed-tools: Bash(git) ``` MCP tools use double underscores: ```yaml # Correct allowed-tools: mcp__memory__store # Wrong allowed-tools: mcp_memory_store ``` --- ## Integration Patterns ### With Commands Skills activate automatically when commands need their expertise: **Command** (`.claude/commands/analyze-pdf.md`): ```markdown --- description: Analyze PDF file --- Analyze this PDF file: $ARGUMENTS Use the PDF processing skill for extraction and analysis. ``` ### With Hooks Hooks can suggest skill usage: ```json { "hooks": { "PostToolUse": [ { "matcher": "Write(*.ts)|Edit(*.ts)", "hooks": [{ "type": "command", "command": "echo 'Consider typescript-linter skill'" }] } ] } } ``` ### Using Skill Tool Load skills programmatically: ``` Use the Skill tool to invoke the pdf-processor skill ``` Useful for forcing activation, chaining skills, loading for agents. See [integration.md](references/integration.md) for advanced patterns. --- ## Master-Clone Architecture **For orchestrating specialized work with context isolation:** **Master Agent**: Coordinates, maintains conversation context, delegates specialized tasks **Clone Agents**: Isolated context, loads specific skill, returns focused output ``` User request | Master agent decides: needs security analysis | Launch clone agent with security-audit skill | Clone returns findings (only findings in main context) | Master synthesizes and continues ``` ### Implementation ```yaml --- name: security-audit context: fork agent: outfitter:reviewer model: sonnet --- ``` Or via Task tool: ```json { "description": "Security audit of auth module", "prompt": "Review src/auth/ for vulnerabilities using security-audit skill", "subagent_type": "outfitter:reviewer", "run_in_background": true } ``` --- ## References | Reference | Content | |-----------|---------| | [context-modes.md](references/context-modes.md) | Fork vs inherit patterns | | [integration.md](references/integration.md) | Commands, hooks, MCP integration | | [performance.md](references/performance.md) | Token impact, optimization |
عرض على GitHub