Claude Code Mastery

March 30, 2026 · View on GitHub

Expert skill for Claude Code CLI -- CLAUDE.md optimization, skill authoring, subagent creation, hooks automation, and context engineering.

Keywords

claude-code, claude-cli, CLAUDE.md, skill-authoring, subagents, hooks, context-window, token-budget, MCP-servers, worktrees, permission-modes, prompt-engineering, context-engineering, slash-commands


Quick Start

# Scaffold a new skill package
python scripts/skill_scaffolder.py my-new-skill --domain engineering --description "Brief description"

# Analyze and optimize an existing CLAUDE.md
python scripts/claudemd_optimizer.py path/to/CLAUDE.md

# Estimate context window usage across a project
python scripts/context_analyzer.py /path/to/project

# All tools support JSON output
python scripts/claudemd_optimizer.py CLAUDE.md --json

Tools

Skill Scaffolder

Generates a skill directory with SKILL.md template, scripts/, references/, assets/ directories, and YAML frontmatter.

python scripts/skill_scaffolder.py my-skill --domain engineering --description "Does X"
ParameterDescription
skill_nameName for the skill (kebab-case)
--domain, -dDomain category
--descriptionBrief description for frontmatter
--versionSemantic version (default: 1.0.0)
--licenseLicense type (default: MIT)
--output, -oParent directory for skill folder
--jsonOutput as JSON

CLAUDE.md Optimizer

Analyzes a CLAUDE.md file and produces optimization recommendations.

python scripts/claudemd_optimizer.py CLAUDE.md --token-limit 4000 --json

Output includes: line count, token estimate, section completeness, redundancy detection, missing sections, scored recommendations.

Context Analyzer

Scans a project to estimate context window consumption by file category.

python scripts/context_analyzer.py /path/to/project --max-depth 4 --json

Output includes: token estimates per category, percentage of context consumed, largest files, budget breakdown, reduction recommendations.


Workflow 1: Optimize a CLAUDE.md

  1. Audit -- Run python scripts/claudemd_optimizer.py CLAUDE.md and capture the score.
  2. Structure -- Reorganize into these sections:
    ## Project Purpose         -- What the project is
    ## Architecture Overview   -- Directory structure, key patterns
    ## Development Environment -- Build, test, setup commands
    ## Key Principles          -- 3-7 non-obvious rules
    ## Anti-Patterns to Avoid  -- Things that look right but are wrong
    ## Git Workflow            -- Branch strategy, commit conventions
    
  3. Compress -- Convert paragraphs to bullets (saves ~30% tokens). Use code blocks for commands. Remove generic advice Claude already knows.
  4. Hierarchize -- Move domain details to child CLAUDE.md files:
    project/
    ├── CLAUDE.md              # Global: purpose, architecture, principles
    ├── frontend/CLAUDE.md     # Frontend-specific: React patterns, styling
    ├── backend/CLAUDE.md      # Backend-specific: API patterns, DB conventions
    └── .claude/CLAUDE.md      # User-specific overrides (gitignored)
    
  5. Validate -- Run python scripts/claudemd_optimizer.py CLAUDE.md --token-limit 4000 and confirm score improved.

Workflow 2: Author a New Skill

  1. Scaffold -- python scripts/skill_scaffolder.py my-skill -d engineering --description "..."
  2. Write SKILL.md in this order:
    • YAML frontmatter (name, description with trigger phrases, license, metadata)
    • Title and one-line summary
    • Quick Start (3-5 copy-pasteable commands)
    • Tools (each script with usage and parameters table)
    • Workflows (numbered step-by-step sequences)
    • Reference links
  3. Optimize the description for auto-discovery:
    description: >-
      This skill should be used when the user asks to "analyze performance",
      "optimize queries", "profile memory", or "benchmark endpoints".
      Use for performance engineering and capacity planning.
    
  4. Build Python tools -- standard library only, argparse CLI, --json flag, module docstring, error handling.
  5. Verify -- Confirm the skill triggers on expected prompts and tools run without errors.

Workflow 3: Create a Subagent

  1. Define scope -- One narrow responsibility per agent.
  2. Create agent YAML at .claude/agents/agent-name.yaml:
    name: security-reviewer
    description: Reviews code for security vulnerabilities
    model: claude-sonnet-4-20250514
    allowed-tools:
      - Read
      - Glob
      - Grep
      - Bash(git diff*)
    custom-instructions: |
      For every change:
      1. Check for hardcoded secrets
      2. Identify injection vulnerabilities
      3. Verify auth patterns
      4. Flag insecure dependencies
      Output a structured report with severity levels.
    
  3. Set tool access -- read-only (Read, Glob, Grep), read+commands (+ Bash(npm test*)), or write-capable (+ Edit, Write).
  4. Invoke -- /agents/security-reviewer Review the last 3 commits
  5. Validate -- Confirm the agent stays within scope and produces structured output.

Workflow 4: Configure Hooks

Hooks run custom scripts at lifecycle events without user approval.

HookFires WhenBlocking
PreToolUseBefore tool executesYes (exit 1 blocks)
PostToolUseAfter tool completesNo
NotificationClaude sends notificationNo
StopClaude finishes turnNo
  1. Add hook config to .claude/settings.json:
    {
      "hooks": {
        "PostToolUse": [
          {
            "matcher": "Edit|Write",
            "hooks": [{ "type": "command", "command": "prettier --write \"$CLAUDE_FILE_PATH\" 2>/dev/null || true" }]
          }
        ],
        "PreToolUse": [
          {
            "matcher": "Bash",
            "hooks": [{ "type": "command", "command": "bash .claude/hooks/validate.sh" }]
          }
        ]
      }
    }
    
  2. Test -- Trigger the relevant tool and confirm the hook fires.
  3. Iterate -- Add matchers for additional tools as needed.

Workflow 5: Manage Context Budget

  1. Audit -- python scripts/context_analyzer.py /path/to/project
  2. Apply budget targets:
    CategoryBudgetPurpose
    System prompt + CLAUDE.md5-10%Project configuration
    Skill definitions5-15%Active skill content
    Source code (read files)30-50%Files Claude reads
    Conversation history20-30%Messages and responses
    Working memory10-20%Reasoning space
  3. Reduce overhead -- Keep root CLAUDE.md under 4000 tokens. Use hierarchical loading. Avoid reading entire large files. Use /compact after completing subtasks.
  4. Validate -- Re-run context analyzer and confirm overhead dropped.

Quick Reference

Slash Commands

CommandDescription
/compactSummarize conversation to free context
/clearClear conversation history
/modelSwitch model mid-session
/agentsList and invoke custom agents
/permissionsView and modify tool permissions
/costShow token usage and cost
/doctorDiagnose configuration issues
/initGenerate CLAUDE.md for current project

Permission Modes

ModeBehaviorBest For
DefaultAsks permission for writesNormal development
AllowlistAuto-approves listed toolsRepetitive workflows
YoloAuto-approves everythingTrusted automation
{ "permissions": { "allow": ["Read", "Glob", "Grep", "Bash(npm test*)"],
                    "deny": ["Bash(rm -rf*)", "Bash(git push*)"] } }

CLAUDE.md Loading Order

  1. ~/.claude/CLAUDE.md -- user global, always loaded
  2. /project/CLAUDE.md -- project root, always loaded
  3. /project/.claude/CLAUDE.md -- project config, always loaded
  4. /project/subdir/CLAUDE.md -- subdirectory, loaded when files accessed

MCP Servers

ServerPurpose
server-filesystemFile access beyond project
server-githubGitHub API (issues, PRs)
server-postgresDatabase queries
server-memoryPersistent key-value store
server-brave-searchWeb search
server-puppeteerBrowser automation

Reference Documentation

DocumentPath
Skill Authoring Guidereferences/skill-authoring-guide.md
Subagent Patternsreferences/subagent-patterns.md
Hooks Cookbookreferences/hooks-cookbook.md
Skill Templateassets/skill-template.md
Agent Templateassets/agent-template.md

Troubleshooting

ProblemCauseSolution
CLAUDE.md changes not picked upClaude loads CLAUDE.md at session startStart a new conversation or use /clear to reload configuration
Skill not triggering on expected promptsDescription field in YAML frontmatter missing trigger phrasesAdd quoted user phrases to the description field (e.g., "optimize queries", "profile memory")
Context window exhausted mid-taskRoot CLAUDE.md too large or too many files readRun context_analyzer.py to audit token usage, then move domain content to child CLAUDE.md files
Hook not firing after tool useMatcher in .claude/settings.json does not match the tool nameVerify the matcher regex matches the exact tool name (e.g., Edit|Write, not edit|write)
Subagent exceeds scope and edits unrelated filesallowed-tools list is too permissiveRestrict to read-only tools (Read, Glob, Grep) and add write tools only when necessary
Scaffolder fails with "Directory already exists"Target skill directory already present on diskRemove or rename the existing directory, or choose a different skill name
Optimizer reports low score despite good structureToken count exceeds the default 6000 limitPass --token-limit matching your actual budget (e.g., --token-limit 10000)

Success Criteria

  • CLAUDE.md optimizer score of 80+ on all project CLAUDE.md files
  • Root CLAUDE.md stays under 4000 tokens (verified by claudemd_optimizer.py --token-limit 4000)
  • Auto-loaded configuration (all CLAUDE.md files combined) consumes less than 10% of the context window
  • Every new skill scaffolded passes the optimizer with zero "critical" missing sections
  • Subagents stay within their declared allowed-tools scope during testing
  • Hooks execute in under 500ms to avoid perceptible delay on tool use
  • Context analyzer shows 50%+ of the context window available for source code and reasoning

Scope & Limitations

This skill covers:

  • Authoring, structuring, and optimizing CLAUDE.md files for any project
  • Scaffolding new skill packages with correct directory layout and frontmatter
  • Creating and configuring Claude Code subagents with scoped tool access
  • Analyzing and managing context window token budgets across a codebase

This skill does NOT cover:

Integration Points

SkillIntegrationData Flow
senior-architectArchitecture decisions inform CLAUDE.md structure sectionsArchitecture diagrams and patterns feed into the Architecture Overview section of CLAUDE.md
code-reviewerSubagent creation for automated code reviewClaude Code Mastery creates the agent YAML; Code Reviewer provides the review logic
senior-prompt-engineerPrompt optimization for skill descriptions and agent instructionsPrompt engineering techniques improve YAML frontmatter trigger phrases and agent custom-instructions
doc-drift-detectorDetects when CLAUDE.md drifts out of sync with the codebaseContext Analyzer output feeds drift detection; drift findings trigger CLAUDE.md optimization
context-engineAdvanced context management strategiesContext Analyzer provides token budgets; Context Engine applies compression and prioritization
senior-secopsSecurity hooks and permission mode configurationSecOps policies define which tools to deny; Claude Code Mastery configures the permission allowlists

Tool Reference

1. Skill Scaffolder (scripts/skill_scaffolder.py)

Purpose: Generate a complete skill package directory with SKILL.md template, starter Python script, reference document, and proper YAML frontmatter.

Usage:

python scripts/skill_scaffolder.py <skill_name> [options]

Parameters:

ParameterTypeRequiredDefaultDescription
skill_namepositionalYes--Name for the skill in kebab-case (e.g., my-new-skill)
--domain, -dstringNoengineeringDomain category. Options: engineering, marketing, product, project-management, c-level, ra-qm, business-growth, finance, standards, development-tools
--descriptionstringNoauto-generatedBrief description for YAML frontmatter, optimized for auto-discovery
--versionstringNo1.0.0Semantic version for metadata
--licensestringNoMITLicense type for frontmatter
--categorystringNosame as domainSkill category for metadata
--output, -ostringNo. (current dir)Parent directory for the skill folder
--jsonflagNooffOutput results in JSON format

Example:

python scripts/skill_scaffolder.py api-analyzer -d engineering --description "API analysis and optimization" --json

Output Formats:

  • Human-readable (default): Prints skill name, domain, version, location, directory tree, and next-steps checklist.
  • JSON (--json): Returns { success, path, name, domain, version, directories_created, files_created }.

2. CLAUDE.md Optimizer (scripts/claudemd_optimizer.py)

Purpose: Analyze a CLAUDE.md file for structure completeness, token efficiency, redundancy, and verbosity. Produces a scored report with prioritized optimization recommendations.

Usage:

python scripts/claudemd_optimizer.py <file_path> [options]

Parameters:

ParameterTypeRequiredDefaultDescription
file_pathpositionalYes--Path to the CLAUDE.md file to analyze
--token-limitintegerNo6000Maximum recommended token count for the file
--jsonflagNooffOutput results in JSON format

Example:

python scripts/claudemd_optimizer.py path/to/CLAUDE.md --token-limit 4000

Output Formats:

  • Human-readable (default): Displays score (0-100), file metrics (lines, words, tokens), section breakdown with per-section token estimates, section completeness checklist (critical/high/medium), redundancy issues, and prioritized recommendations (HIGH/MEDIUM/LOW).
  • JSON (--json): Returns { success, file, metrics, sections, completeness, redundancies, recommendations, score }.

3. Context Analyzer (scripts/context_analyzer.py)

Purpose: Scan a project directory to estimate how much of Claude Code's context window is consumed by CLAUDE.md files, skill definitions, source code, and configuration. Produces a token budget breakdown with reduction recommendations.

Usage:

python scripts/context_analyzer.py <project_path> [options]

Parameters:

ParameterTypeRequiredDefaultDescription
project_pathpositionalYes--Path to the project directory to analyze
--max-depthintegerNo5Maximum directory traversal depth
--context-windowintegerNo200000Total context window size in tokens
--jsonflagNooffOutput results in JSON format

Example:

python scripts/context_analyzer.py /path/to/project --max-depth 3 --context-window 200000 --json

Output Formats:

  • Human-readable (default): Displays project summary (files scanned, total tokens, auto-loaded tokens), context budget breakdown with visual bar chart, per-category breakdown (Claude Configuration, Skill Definitions, Reference Documents, Source Code, Config & Build, Documentation) with largest files listed, top 20 largest files, and prioritized recommendations.
  • JSON (--json): Returns { success, project_path, context_window, summary, categories, budget, largest_files, recommendations }.