skills_categorized/domain-utilities/writing-skills/SKILL.md
Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dependencies, and rust-documentation skills.
npx skillsauth add activer007/ordinary-claude-skills writing-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Comprehensive guide for creating and managing skills in Claude Code with auto-activation system, following Anthropic's official best practices including the 500-line rule and progressive disclosure pattern.
Automatically activates when you mention:
UserPromptSubmit Hook (Proactive Suggestions)
.claude/hooks/skill-activation-prompt.tsSKILL_DEBUG=true to see matching logic--validate flag to check configurationLocation: .claude/skills/skill-rules.json
Defines:
"suggest" is implemented)Purpose: Provide comprehensive guidance for specific areas
Characteristics:
"domain""suggest" (advisory, non-blocking)"high" or "medium"Examples in HASH:
rust-error-stack - Error handling with error-stack cratecargo-dependencies - Cargo.toml dependency management patternsrust-documentation - Rust doc comment best practiceswriting-skills - This skill! Meta-guidance for creating skillsWhen to Use:
Guardrail skills with blocking enforcement ("block") are designed but not yet implemented. These would enforce critical patterns and prevent common mistakes.
Location: .claude/skills/{skill-name}/SKILL.md
Template:
---
name: my-new-skill
description: Brief description including keywords that trigger this skill. Mention topics, file types, and use cases. Be explicit about trigger terms.
---
# My New Skill
## Purpose
What this skill helps with
## When to Use
Specific scenarios and conditions
## Key Information
The actual guidance, documentation, patterns, examples
Best Practices:
See SKILL_RULES_REFERENCE.md for complete schema.
Basic Template:
{
"my-new-skill": {
"type": "domain",
"enforcement": "suggest",
"priority": "medium",
"promptTriggers": {
"keywords": ["keyword1", "keyword2"],
"intentPatterns": ["(create|add).*?something"]
}
}
}
Test with specific prompt:
echo '{"session_id":"test","prompt":"your test prompt","cwd":".","permission_mode":"auto","transcript_path":""}' | \
yarn workspace @local/claude-hooks run:skill
Validate configuration:
yarn lint:skill
Debug matching logic:
echo '{"session_id":"test","prompt":"your test prompt","cwd":".","permission_mode":"auto","transcript_path":""}' | \
yarn workspace @local/claude-hooks dev:skill
Based on testing:
\\b(keyword)\\b instead of just keyword✅ Keep SKILL.md under 500 lines ✅ Use progressive disclosure with reference files ✅ Add table of contents to reference files > 100 lines ✅ Write detailed description with trigger keywords ✅ Test with 3+ real scenarios before documenting ✅ Iterate based on actual usage
Currently only SUGGEST enforcement is implemented:
Future: Blocking enforcement ("block") and warning enforcement ("warn") are designed in the schema but not yet implemented.
Yarn Commands:
yarn lint:skill - Validate configurationyarn workspace @local/claude-hooks run:skill - Run skill activation with test promptyarn workspace @local/claude-hooks dev:skill - Run with debug output enabledEnvironment Variables:
SKILL_DEBUG=true - Show detailed matching logic to stderr (automatically set by yarn dev:skill)CLAUDE_PROJECT_DIR - Override project directory (auto-detected if not set)Validation shows:
When creating a new skill, verify:
.claude/skills/{name}/SKILL.mdskill-rules.jsonyarn workspace @local/claude-hooks dev:skill)jq . .claude/skills/skill-rules.jsonyarn lint:skillFor detailed information on specific topics, see:
Complete guide to trigger types (currently implemented):
Note: File path and content pattern triggers are documented but not yet used by the hook.
Complete skill-rules.json schema:
Deep dive into hook internals:
Note: PreToolUse hooks and session state management are documented but not yet implemented.
Comprehensive debugging guide:
SKILL_DEBUG=true)Ready-to-use pattern collection:
Ideas for expanding the skill system:
.claude/skills/{name}/SKILL.md with frontmatter.claude/skills/skill-rules.jsonyarn lint:skill and yarn workspace @local/claude-hooks dev:skillSee trigger-types.md for complete details.
yarn workspace @local/claude-hooks dev:skill - Show detailed matching logicyarn lint:skill - Validate configuration.claude/hooks/skill-activation-prompt.ts for implementation✅ 500-line rule: Keep SKILL.md under 500 lines ✅ Progressive disclosure: Use reference files for details ✅ Table of contents: Add to reference files > 100 lines ✅ One level deep: Don't nest references deeply ✅ Rich descriptions: Include all trigger keywords (max 1024 chars) ✅ Test first: Build 3+ evaluations before extensive documentation ✅ Gerund naming: Prefer verb + -ing (e.g., "processing-pdfs")
Test hooks manually:
# Test with prompt
echo '{"session_id":"test","prompt":"test","cwd":".","permission_mode":"auto","transcript_path":""}' | \
yarn workspace @local/claude-hooks run:skill
# Validate configuration
yarn lint:skill
# Debug matching
echo '{"session_id":"test","prompt":"test","cwd":".","permission_mode":"auto","transcript_path":""}' | \
yarn workspace @local/claude-hooks dev:skill
See troubleshooting.md for complete debugging guide.
Configuration:
.claude/skills/skill-rules.json - Master configuration.claude/hooks/state/ - Session tracking.claude/settings.json - Hook registrationHooks:
.claude/hooks/skill-activation-prompt.ts - UserPromptSubmit.claude/hooks/error-handling-reminder.ts - Stop event (gentle reminders)All Skills:
.claude/skills/*/SKILL.md - Skill content filesSkill Status: COMPLETE - Restructured following Anthropic best practices ✅ Line Count: < 500 (following 500-line rule) ✅ Progressive Disclosure: Reference files for detailed information ✅
Next: Create more skills, refine patterns based on usage
tools
Generate typed TypeScript SDKs for AI agents to interact with MCP servers. Converts verbose JSON-RPC curl commands to clean function calls (docs.createDocument() vs curl). Auto-detects MCP tools from server modules, generates TypeScript types and client methods, creates runnable example scripts. Use when: building MCP-enabled applications, need typed programmatic access to MCP tools, want Claude Code to manage apps via scripts, eliminating manual JSON-RPC curl commands, validating MCP inputs/outputs, or creating reusable agent automation.
testing
Generate structured task lists from specs or requirements. IMPORTANT: After completing ANY spec via ExitSpecMode, ALWAYS ask the user: "Would you like me to generate a task list for this spec?" Use when user confirms or explicitly requests task generation from a plan/spec/PRD.
tools
Create compelling story-format summaries using UltraThink to find the best narrative framing. Support multiple formats - 3-part narrative, n-length with inline links, abridged 5-line, or comprehensive via Foundry MCP. USE WHEN user says 'create story explanation', 'narrative summary', 'explain as a story', or wants content in Daniel's conversational first-person voice.
testing
Navigate through the original three-world shamanic technology. Deploy when soul retrieval, power animal guidance, or journey between realms emerges. Deeply respectful of Tungus, Buryat, Yakut, Evenki traditions. Use for consciousness navigation, NOT cultural appropriation.