Files
FoundryVTT/.claude/TEMPLATE_CAPABILITIES_ANALYSIS.md
2025-11-06 14:04:48 +01:00

769 lines
25 KiB
Markdown

# Claude Code Template Capabilities Analysis
> **Analysis Date**: 2025-10-20
> **Purpose**: Comprehensive review of all template files against official Claude Code documentation
> **Focus**: Identify missing capabilities, improvement opportunities, and well-implemented features
---
## Executive Summary
### Overall Assessment
The templates demonstrate **strong foundation** with comprehensive guidance, but are **missing several key Claude Code capabilities** documented in official sources. The templates excel at providing structure and MCP integration but lack proper frontmatter configuration examples and some advanced features.
### Completeness Score by Template
| Template | Coverage | Missing Critical Features | Grade |
|----------|----------|---------------------------|-------|
| Commands Template | 75% | `model` frontmatter, comprehensive `allowed-tools` examples | B+ |
| Agent Template | 70% | `allowed-tools`, `model`, `disable-model-invocation` | B |
| Skills Template | 65% | `model` frontmatter, minimal `allowed-tools` examples | B- |
| Output Styles Template | 80% | Model selection guidance | A- |
| CLAUDE.md Template | 90% | Extended thinking instructions | A |
---
## 1. Commands Template (.COMMANDS_TEMPLATE.md)
### ✅ Well-Implemented Features
1. **Argument Handling****EXCELLENT**
- Comprehensive documentation of `$ARGUMENTS`, `$1`, `$2`, `$3`
- Clear examples showing usage
- Multiple scenarios covered (lines 69-88)
2. **File References with @ Syntax****EXCELLENT**
- Well-documented with examples (lines 137-145, 377-390)
- Multiple use cases shown
- Integration with arguments demonstrated
3. **Bash Execution with ! Prefix****GOOD**
- Documented with examples (lines 125-134, 363-375)
- Shows inline execution pattern
4. **Description Field****EXCELLENT**
- Extensive guidance on writing descriptions (lines 274-289)
- Good vs poor examples provided
- Emphasizes visibility in `/help`
5. **argument-hint Field****GOOD**
- Documented with examples (lines 11-14, 318-338)
- Shows format and usage
6. **disable-model-invocation Field****GOOD**
- Documented (lines 16-18, 407-425)
- Use case explained clearly
7. **MCP Server Integration****EXCELLENT**
- Comprehensive section (lines 36-67)
- Clear distinction between Serena (persistent) and Memory (temporary)
### ❌ Missing or Incomplete Features
1. **`model` Frontmatter Field** 🔴 **CRITICAL MISSING**
- **What's Missing**: No documentation of the `model` frontmatter option
- **Official Doc**: "model: Designates a specific AI model for execution"
- **Impact**: Users cannot optimize model selection per command
- **Recommendation**: Add section on model selection strategy
```yaml
# SHOULD ADD:
model: claude-3-5-sonnet-20241022
# or: claude-3-5-haiku-20241022 (for fast, simple commands)
# or: claude-opus-4-20250514 (for complex reasoning)
```
2. **`allowed-tools` Comprehensive Patterns** 🟡 **INCOMPLETE**
- **Current State**: Basic examples exist (lines 292-307)
- **What's Missing**:
- More sophisticated pattern matching examples
- Tool inheritance explanation
- Bash command-specific patterns like `Bash(git status:*)`
- **Official Doc**: "allowed-tools: Bash(git status:*), Bash(git add:*), Read(*)"
- **Recommendation**: Expand with real-world pattern examples
```yaml
# SHOULD ADD MORE EXAMPLES:
allowed-tools: Bash(git *:*), Read(*), Grep(*) # All git commands
allowed-tools: Bash(npm test:*), Read(*), Grep(*) # Specific npm commands
allowed-tools: mcp__* # All MCP tools
```
3. **Extended Thinking Integration** 🟡 **MISSING**
- **What's Missing**: No mention of extended thinking capabilities
- **Official Doc**: "Commands can trigger extended thinking by including relevant keywords"
- **Impact**: Users don't know commands can leverage extended thinking
- **Recommendation**: Add section on triggering extended thinking
```markdown
# SHOULD ADD:
## Extended Thinking in Commands
Commands can trigger extended thinking by using specific phrases:
- "think" - Basic extended thinking
- "think hard" - More computation
- "think harder" - Even more computation
- "ultrathink" - Maximum thinking budget
```
4. **Tool Permission Inheritance** 🟡 **MISSING**
- **What's Missing**: No explanation of how tools inherit from conversation settings
- **Official Doc**: "Inheritance from conversation settings as default"
- **Impact**: Confusion about when `allowed-tools` is needed
### 💡 Improvement Opportunities
1. **Better Tool Pattern Documentation**
- Add table of common tool patterns
- Explain wildcard matching rules
- Show precedence and inheritance
2. **Model Selection Strategy Section**
```markdown
### Choosing the Right Model
| Task Type | Recommended Model | Why |
|-----------|-------------------|-----|
| Quick status checks | Haiku | Fast, cost-effective |
| Code generation | Sonnet | Balanced speed/quality |
| Architecture review | Opus | Deep reasoning required |
| Simple text display | N/A | Use disable-model-invocation |
```
3. **Command Performance Optimization**
- Add guidance on when to disable model invocation
- Explain token efficiency strategies
---
## 2. Agent Template (.AGENT_TEMPLATE.md)
### ✅ Well-Implemented Features
1. **Technology Adaptation Section** ⭐ **EXCELLENT**
- Strong integration with CLAUDE.md (lines 38-50)
- Clear workflow instructions
2. **MCP Server Integration** ⭐ **EXCELLENT**
- Comprehensive documentation (lines 150-205)
- Clear distinction between persistent and temporary storage
- Good use case examples
3. **Output Format Structure** ⭐ **GOOD**
- Well-defined sections (lines 78-94)
- Consistent pattern
4. **Guidelines Section** ⭐ **GOOD**
- Clear Do's and Don'ts (lines 97-108)
### ❌ Missing or Incomplete Features
1. **Frontmatter Configuration** 🔴 **CRITICAL MISSING**
- **What's Missing**: Agent template has minimal frontmatter (only name and description)
- **Official Doc**: Agents support `allowed-tools`, `model`, and other options
- **Impact**: Cannot configure agent tool permissions or model selection
- **Recommendation**: Add complete frontmatter documentation
```yaml
# SHOULD ADD TO TEMPLATE:
---
name: agent-name-here
description: Clear description of when this agent should be invoked
allowed-tools: Read(*), Grep(*), Glob(*), Bash(git *:*)
model: claude-3-5-sonnet-20241022
---
```
2. **`allowed-tools` Field** 🔴 **CRITICAL MISSING**
- **What's Missing**: No documentation of tool restrictions for agents
- **Official Doc**: "Subagent files define specialized AI assistants with custom prompts and tool permissions"
- **Impact**: Cannot create security-restricted agents
- **Use Case**: Read-only review agents, git-only agents
3. **`model` Field** 🔴 **CRITICAL MISSING**
- **What's Missing**: No model selection guidance for agents
- **Impact**: Cannot optimize agent performance/cost
- **Recommendation**: Add model selection per agent type
4. **Agent Storage Locations** 🟡 **INCOMPLETE**
- **Current State**: References "Notes" about cwd reset (line 206)
- **What's Missing**:
- User vs Project agent distinction
- `~/.claude/agents/` (user-wide)
- `.claude/agents/` (project-specific)
- **Official Doc**: Clear distinction between user and project subagents
5. **Agent Invocation Mechanism** 🟡 **MISSING**
- **What's Missing**: No explanation of how agents are invoked
- **Should Add**:
- Model-invoked vs user-invoked
- How descriptions affect discovery
- Trigger keyword optimization
### 💡 Improvement Opportunities
1. **Add Frontmatter Reference Section**
```markdown
## Frontmatter Configuration
Agents support these frontmatter options:
- `name`: Agent display name (shown in agent selection)
- `description`: Discovery description (CRITICAL for activation)
- `allowed-tools`: Restrict tools agent can use
- `model`: Override default model for this agent
```
2. **Tool Restriction Examples**
```markdown
## Example Agent Configurations
### Read-Only Security Reviewer
```yaml
allowed-tools: Read(*), Grep(*), Glob(*)
```
### Git Operations Agent
```yaml
allowed-tools: Bash(git *:*), Read(*), Edit(*)
```
```
3. **Agent Performance Optimization**
- Add section on choosing appropriate model per agent type
- Document token efficiency strategies
---
## 3. Skills Template (.SKILL_TEMPLATE.md)
### ✅ Well-Implemented Features
1. **Discovery Description** ⭐ **EXCELLENT**
- Strong guidance on writing descriptions (lines 187-204)
- Emphasizes trigger keywords
- Good vs poor examples
2. **Progressive Disclosure** ⭐ **EXCELLENT**
- Well-documented pattern (lines 246-260)
- Explains on-demand loading
- Multi-file structure guidance
3. **Tool Permissions Section** ⭐ **GOOD**
- Documents `allowed-tools` (lines 4-11, 141-146, 206-213)
- Provides examples
4. **When to Use Guidance** ⭐ **GOOD**
- Clear activation conditions (lines 43-58)
- Testing checklist (lines 160-173)
### ❌ Missing or Incomplete Features
1. **`model` Frontmatter Field** 🔴 **CRITICAL MISSING**
- **What's Missing**: No documentation of model selection for skills
- **Official Doc**: Skills support model specification in frontmatter
- **Impact**: Cannot optimize skill performance
- **Recommendation**: Add model selection guidance
```yaml
# SHOULD ADD:
---
name: Skill Name
description: What it does and when to use it
allowed-tools: Read, Grep, Glob
model: claude-3-5-sonnet-20241022 # Optional: override default
---
```
2. **Skill vs Command Distinction** 🟡 **INCOMPLETE**
- **Current State**: Basic guidance exists (lines 427-453)
- **What's Missing**:
- Model-invoked vs user-invoked emphasis
- Discovery mechanism explanation
- **Official Doc**: "Skills are model-invoked—Claude autonomously decides when to use them"
3. **Skill Directory Structure** 🟡 **INCOMPLETE**
- **Current State**: Multi-file structure shown (lines 215-230)
- **What's Missing**:
- Required `SKILL.md` naming convention
- Plugin skills vs personal vs project distinction
- **Official Doc**: "SKILL.md (required) - instructions with YAML frontmatter"
4. **Tool Pattern Examples** 🟡 **MINIMAL**
- **Current State**: Basic examples only
- **What's Missing**:
- Advanced pattern matching
- MCP tool integration patterns
- Bash command-specific patterns
### 💡 Improvement Opportunities
1. **Add Model Selection Section**
```markdown
## Choosing the Right Model
Some skills benefit from specific models:
- **Data processing skills**: Haiku (fast iteration)
- **Code generation skills**: Sonnet (balanced)
- **Architecture analysis**: Opus (deep reasoning)
```
2. **Strengthen Discovery Guidance**
```markdown
## Optimizing Skill Discovery
Skills are **model-invoked**, meaning Claude decides when to activate them.
To improve discovery:
1. Include exact terms users would say
2. List file types the skill handles (.pdf, .xlsx)
3. Mention operations (analyze, convert, generate)
4. Reference technologies (React, Python, Docker)
```
3. **Required File Naming**
```markdown
## Critical: File Naming Convention
The main skill file MUST be named `SKILL.md`:
```
.claude/skills/
└── pdf-processing/
├── SKILL.md # Required, exact name
├── reference.md # Optional
└── scripts/ # Optional
```
```
---
## 4. Output Styles Template (.OUTPUT_STYLES_TEMPLATE.md)
### ✅ Well-Implemented Features
1. **Comprehensive Behavior Definition** ⭐ **EXCELLENT**
- Detailed characteristics sections (lines 17-34)
- Clear DO/DON'T lists (lines 42-53)
- Response structure templates (lines 55-67)
2. **Use Case Guidance** ⭐ **EXCELLENT**
- Ideal vs not ideal scenarios (lines 86-94)
- Multiple examples (lines 96-146)
- Comparison to other styles (lines 148-157)
3. **Customization Options** ⭐ **GOOD**
- Variant suggestions (lines 159-174)
- Context-specific adaptations (lines 188-198)
4. **Integration Guidance** ⭐ **GOOD**
- Works with commands, skills, agents (lines 254-267)
5. **Testing Checklist** ⭐ **GOOD**
- Clear validation criteria (lines 287-299)
### ❌ Missing or Incomplete Features
1. **Model Selection for Output Styles** 🟡 **INCOMPLETE**
- **Current State**: Basic mention (lines 207-210)
- **What's Missing**:
- No frontmatter configuration for model
- Unclear if output styles can specify model preference
- **Official Doc**: Limited information on output style model configuration
- **Recommendation**: Add clarification if model can be specified
2. **Frontmatter Options** 🟡 **MINIMAL**
- **Current State**: Only `name` and `description` shown (lines 1-4)
- **What's Missing**:
- Are other frontmatter options supported?
- Can output styles specify allowed-tools?
- **Recommendation**: Document all supported frontmatter fields
3. **System Prompt Replacement Mechanism** 🟡 **GOOD BUT COULD BE CLEARER**
- **Current State**: Mentioned that styles "replace" prompt (line in template)
- **What's Missing**:
- Technical details of how replacement works
- What capabilities are preserved
- Limitations or constraints
### 💡 Improvement Opportunities
1. **Add Model Configuration Section** (if supported)
```markdown
## Model Selection (Optional)
If your output style has specific model requirements:
```yaml
---
name: Ultra-Detailed Reviewer
description: Comprehensive analysis style
model: claude-opus-4-20250514 # Requires most powerful model
---
```
```
2. **Clarify Frontmatter Options**
```markdown
## Frontmatter Configuration
Output styles support these fields:
- `name`: Style display name
- `description`: Brief explanation of style
- `model` (if supported): Preferred model
- Note: Output styles do NOT support `allowed-tools` (tools controlled by conversation)
```
3. **Technical Details Section**
```markdown
## How Output Styles Work
- Replaces entire system prompt
- Preserves all tool capabilities
- Does not affect agent/skill/command behavior
- Active for entire conversation until changed
```
---
## 5. CLAUDE_TEMPLATE.md
### ✅ Well-Implemented Features
1. **Comprehensive Project Documentation** ⭐ **EXCELLENT**
- Technology stack (lines 29-64)
- Code style guidelines (lines 106-322)
- Testing requirements (lines 324-399)
- Git workflow (lines 401-540)
2. **Claude Code Integration Section** ⭐ **EXCELLENT**
- Specific instructions for Claude (lines 935-969)
- Clear behavioral expectations
- Integration with other features mentioned
3. **Environment Configuration** ⭐ **EXCELLENT**
- Detailed env vars (lines 638-682)
- Environment-specific configs
4. **API Documentation** ⭐ **GOOD**
- Structure and patterns (lines 684-729)
### ❌ Missing or Incomplete Features
1. **Extended Thinking Instructions** 🟡 **MISSING**
- **What's Missing**: No guidance on when/how to use extended thinking
- **Official Doc**: Extended thinking is a key Claude Code capability
- **Impact**: Users don't know to use "think", "think hard", etc.
- **Recommendation**: Add section in "Claude Code Specific Instructions"
```markdown
### Extended Thinking
For complex problems, use extended thinking:
- `think` - Basic extended thinking
- `think hard` - Moderate computation increase
- `think harder` - Significant computation increase
- `ultrathink` - Maximum thinking budget
Use for:
- Architecture decisions
- Complex debugging
- Security analysis
- Performance optimization
```
2. **Hooks Integration** 🟡 **MINIMAL**
- **Current State**: Mentioned briefly (line 232)
- **What's Missing**:
- Available hooks (session-start, session-end, pre-bash, post-write, user-prompt-submit)
- When to use each hook
- Integration examples
3. **MCP Server Configuration** 🟡 **MISSING**
- **What's Missing**: No section on which MCP servers are available
- **Impact**: Claude doesn't know which MCP capabilities exist
- **Recommendation**: Add MCP servers section
### 💡 Improvement Opportunities
1. **Add Extended Thinking Section**
```markdown
## Extended Thinking Usage
This project leverages Claude's extended thinking for:
### When to Use Extended Thinking
- [ ] Architecture decisions
- [ ] Complex refactoring plans
- [ ] Security vulnerability analysis
- [ ] Performance optimization strategies
- [ ] Debugging complex race conditions
### How to Trigger
- Prefix requests with "think", "think hard", "think harder", or "ultrathink"
- Each level increases computational budget
```
2. **Add Hooks Section**
```markdown
## Project Hooks
This project uses the following hooks (`.claude/hooks/`):
- **session-start.sh**: Executed when Claude Code starts
- Purpose: [What it does]
- **pre-bash.sh**: Executed before bash commands
- Purpose: [What it does]
- **post-write.sh**: Executed after file writes
- Purpose: [What it does]
- **user-prompt-submit.sh**: Executed after user submits prompt
- Purpose: [What it does]
- **session-end.sh**: Executed when session ends
- Purpose: [What it does]
```
3. **Add MCP Servers Section**
```markdown
## Available MCP Servers
This project has access to the following MCP servers:
### Serena MCP
- Symbol-based code navigation
- Persistent memory storage
- Refactoring operations
### Memory MCP
- In-memory knowledge graph
- Temporary session context
- Entity relationship tracking
### Context7 MCP
- Real-time library documentation
- Framework best practices
- Code examples
### Playwright MCP
- Browser automation
- E2E testing capabilities
- UI interaction
### Fetch MCP
- Web content retrieval
- API testing
```
---
## Missing Capabilities Summary Table
| Capability | Commands | Agents | Skills | Output Styles | CLAUDE.md |
|------------|----------|--------|--------|---------------|-----------|
| **`model` frontmatter** | 🔴 Missing | 🔴 Missing | 🔴 Missing | 🟡 Partial | N/A |
| **`allowed-tools` patterns** | 🟡 Basic | 🔴 Missing | 🟡 Basic | N/A | N/A |
| **Extended thinking** | 🔴 Missing | 🔴 Missing | 🔴 Missing | N/A | 🔴 Missing |
| **Tool inheritance** | 🔴 Missing | 🔴 Missing | 🔴 Missing | N/A | N/A |
| **Storage locations** | ✅ Good | 🟡 Partial | 🟡 Partial | ✅ Good | N/A |
| **Invocation mechanism** | ✅ Good | 🟡 Missing | 🟡 Partial | ✅ Good | N/A |
| **Model selection strategy** | 🟡 Partial | 🔴 Missing | 🔴 Missing | 🟡 Partial | N/A |
| **MCP integration** | ✅ Excellent | ✅ Excellent | ✅ Good | ✅ Good | 🔴 Missing |
| **Hooks integration** | 🟡 Mentioned | 🟡 Mentioned | 🟡 Mentioned | 🟡 Mentioned | 🟡 Minimal |
**Legend**:
- ✅ Well-implemented
- 🟡 Partial/needs improvement
- 🔴 Missing or critically incomplete
- N/A = Not applicable
---
## Priority Recommendations
### 🔥 Critical (Must Add)
1. **Add `model` frontmatter to all templates**
- Commands Template: Lines 4-5 (add after allowed-tools)
- Agent Template: Lines 3-4 (add to frontmatter example)
- Skills Template: Lines 5-6 (add to frontmatter)
- Add model selection strategy sections to each
2. **Expand `allowed-tools` documentation**
- Add comprehensive pattern examples
- Show Bash command-specific patterns
- Document tool inheritance
- Add MCP tool patterns
3. **Add extended thinking documentation**
- Commands Template: New section after "Advanced Features"
- Agent Template: New section in workflow
- CLAUDE.md: New section in "Claude Code Specific Instructions"
### 🟡 High Priority (Should Add)
4. **Document agent/skill invocation mechanisms**
- Agent Template: Add "How This Agent is Invoked" section
- Skills Template: Strengthen "Skills are model-invoked" emphasis
5. **Add frontmatter configuration sections**
- Agent Template: Complete frontmatter documentation
- Output Styles Template: Clarify supported frontmatter fields
6. **Enhance storage location documentation**
- All templates: Add clear user vs project distinction
- Document plugin integration paths
### 🔵 Medium Priority (Nice to Have)
7. **Add model selection strategies**
- Performance vs cost tradeoffs
- Task-appropriate model selection
- Token efficiency guidance
8. **Expand hooks integration**
- CLAUDE.md: Add comprehensive hooks section
- All templates: Reference available hooks
9. **Add MCP server documentation**
- CLAUDE.md: Add "Available MCP Servers" section
- List capabilities and use cases
---
## Strengths of Current Templates
### What's Already Excellent
1. **MCP Integration** 🏆
- Best-in-class documentation of Serena vs Memory MCP usage
- Clear persistent vs temporary distinction
- Excellent use case examples
2. **Argument Handling** 🏆
- Comprehensive $ARGUMENTS, $1, $2 documentation
- Multiple examples and patterns
- Clear integration with other features
3. **File References** 🏆
- Well-documented @ syntax
- Good examples across multiple scenarios
- Integration with arguments shown
4. **Code Style Guidelines** 🏆
- CLAUDE_TEMPLATE.md provides exceptional detail
- Real-world examples throughout
- Technology-agnostic patterns
5. **Discovery and Description Writing** 🏆
- Strong guidance on writing descriptions
- Good vs poor examples
- Trigger keyword emphasis
---
## Comparison to Official Documentation
### Areas Where Templates Exceed Official Docs
1. **MCP Server Integration**
- Templates provide much more detail than official docs
- Clear persistent vs temporary storage guidance
- Practical use cases
2. **Code Style Standards**
- CLAUDE_TEMPLATE.md is far more comprehensive
- Production-ready patterns
- Team workflow integration
3. **Examples and Use Cases**
- Templates provide significantly more examples
- Multiple scenarios covered
- Real-world patterns
### Areas Where Official Docs Have More Detail
1. **Frontmatter Configuration**
- Official docs clearly list all frontmatter options
- Templates missing `model` field documentation
- Tool inheritance explained in official docs
2. **Extended Thinking**
- Official docs explain thinking budget levels
- Templates have no mention of this capability
3. **Invocation Mechanisms**
- Official docs clearly distinguish model-invoked vs user-invoked
- Templates don't emphasize this critical difference
---
## Action Items for Template Updates
### Commands Template
- [ ] Add `model` frontmatter field with examples
- [ ] Expand `allowed-tools` with pattern matching guide
- [ ] Add extended thinking section
- [ ] Add tool inheritance explanation
- [ ] Add model selection strategy table
### Agent Template
- [ ] Add complete frontmatter section with all options
- [ ] Add `allowed-tools` field with examples
- [ ] Add `model` field with selection guidance
- [ ] Add "How This Agent is Invoked" section
- [ ] Clarify user vs project agent storage
- [ ] Add model-invoked vs user-invoked explanation
### Skills Template
- [ ] Add `model` frontmatter field
- [ ] Strengthen "model-invoked" emphasis
- [ ] Add required SKILL.md naming convention
- [ ] Expand tool pattern examples
- [ ] Add model selection strategy
- [ ] Add discovery optimization section
### Output Styles Template
- [ ] Add model configuration guidance (if supported)
- [ ] Clarify all supported frontmatter options
- [ ] Add technical details of prompt replacement
- [ ] Expand model selection recommendations
### CLAUDE.md Template
- [ ] Add extended thinking section
- [ ] Add comprehensive hooks section
- [ ] Add MCP servers section
- [ ] Add model selection guidance
- [ ] Add extended thinking use cases
---
## Conclusion
The templates provide an **excellent foundation** with particularly strong coverage of:
- MCP server integration
- Argument handling and file references
- Code style and team workflows
- Discovery and description writing
However, they are **missing critical capabilities** from the official documentation:
- `model` frontmatter configuration (all templates)
- Extended thinking integration (all templates)
- Comprehensive `allowed-tools` patterns (commands, agents, skills)
- Invocation mechanism clarity (agents, skills)
**Recommendation**: Prioritize adding the "Critical" items listed above to bring templates to 95%+ completeness with official Claude Code capabilities.
---
**Analysis performed by**: Code Reviewer Agent
**Date**: 2025-10-20
**Templates Reviewed**: 5
**Official Docs Consulted**: docs.claude.com
**Missing Capabilities Identified**: 15+
**Well-Implemented Features**: 20+