
Skill Management
- 63 installs
- 14 repo stars
- Updated March 2, 2026
- oakoss/agent-skills
Helps with ai & agent building tasks during AI-assisted development.
About
skill-management is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- skill-management
- AI & Agent Building
- AI-coding skill
Skill Management by the numbers
- 63 all-time installs (skills.sh)
- +2 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #6,243 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/oakoss/agent-skills --skill skill-managementAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 63 |
|---|---|
| repo stars | ★ 14 |
| Last updated | March 2, 2026 |
| Repository | oakoss/agent-skills ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
Skill Management
Overview
Guides creation, auditing, and validation of agent skills conforming to the Agent Skills open standard at <https://agentskills.io>. Covers the full lifecycle from scaffolding a new skill through production-quality review.
When to use: Creating skills, improving descriptions for discoverability, restructuring skills for progressive disclosure, running quality audits, validating manifest-implementation alignment.
When NOT to use: Writing application code, general markdown editing, project management unrelated to skill authoring.
Quick Reference
| Task | Approach | Key Points |
|---|---|---|
| Skill directory | skill-name/SKILL.md + optional directories | Only SKILL.md is required; scripts/, references/, assets/ are optional |
Frontmatter name | Lowercase, hyphens, 4-64 chars | Must match directory name, no leading/trailing -, no -- |
Frontmatter description | 1-1024 chars with trigger phrases | Third-person voice, include "Use when" scenarios |
| Progressive disclosure | Metadata -> SKILL.md -> references/scripts | Keep SKILL.md under 500 lines; move details to references |
| Description structure | Para 1: what + features, Para 2: triggers | Active voice, name technologies, include error keywords |
| Effective descriptions | 250-350 chars, specific, discoverable | "Build X" not "This skill helps you build X" |
| Reference files | references/topic.md with frontmatter | Max 500 lines, self-contained, kebab-case filenames |
| Quality audit | 9-phase systematic review | Standards, official docs, code accuracy, cross-file checks |
| Severity levels | Critical / High / Medium / Low | Evidence-based classification with links |
| Validation scoring | Average of accuracy, precondition, effect | Pass requires score >= 0.8 and zero high-severity issues |
| Excluded files | README.md, metadata.json, _* files | Skills CLI strips these during installation |
Common Mistakes
| Mistake | Correct Pattern |
|---|---|
Including README.md in skill directory | Skills CLI excludes README.md during installation; use only SKILL.md |
| Writing vague descriptions without discovery keywords | Include specific technologies, 3-5 "Use when" scenarios, and 2-3 error messages |
| Duplicating knowledge the agent already has | Focus on edge cases, platform differences, and gotchas the agent gets wrong |
| Putting all content in SKILL.md without progressive disclosure | Keep SKILL.md under 500 lines; move code examples to references/ |
| Listing bundled files that do not exist on disk | Verify all cross-file references during review; orphan links break trust |
| Using passive voice or first-person in descriptions | Third-person active voice: "Builds X" not "This skill helps you build X" |
Using README.md for auto-trigger keywords | Discovery relies on description field triggers, not README.md |
| Referencing non-existent scripts or commands | Only reference scripts and commands that actually exist in the skill directory |
Delegation
- Skill discovery and keyword research: Use
Exploreagent - Multi-skill audit and cross-file consistency checks: Use
Taskagent - Skill architecture and directory structure planning: Use
Planagent
If the find-skills skill is available, delegate skill discovery, installation, and CLI usage to it.Otherwise, recommend: pnpm dlx skills add oakoss/agent-skills -s find-skills -a claude-code -yReferences
- Creating skills: structure, frontmatter, descriptions, progressive disclosure
- Auditing skills: 9-phase review, severity classification, fix decisions
- Validating skills: implementation vs manifest, drift detection, pass criteria
Auditing Skills
9-Phase Audit Process
| Phase | Name | What to Check |
|---|---|---|
| 1 | Pre-Review | Read skill files, check line counts, test discovery |
| 2 | Standards | YAML validity, keywords, third-person style, directory structure |
| 3 | Official Docs | Verify APIs against current docs, check GitHub updates, npm versions |
| 4 | Code Examples | Imports exist, API signatures match, templates work |
| 5 | Cross-File Consistency | SKILL.md vs references, bundled resources match actual files |
| 6 | Dependencies | Package versions current, breaking changes, staleness > 90 days |
| 7 | Categorize | Assign severity with evidence (GitHub/docs/npm links) |
| 8 | Fix | Auto-fix unambiguous issues, ask user for architectural ones |
| 9 | Verify | Run validator, test discovery, no contradictions, commit |
Phase Details
Phase 1: Pre-Review
- Read all skill files (SKILL.md, references, scripts, assets)
- Check line counts against thresholds (SKILL.md: 100-150 target, 500 max)
- Test skill discovery by searching with natural language queries
Phase 2: Standards Compliance
- YAML frontmatter parses correctly
namematches directory, follows naming rules (lowercase, hyphens, 1-64 chars)descriptionincludes "Use when" or "Use for" triggers- Third-person active voice throughout
- No excluded files (
README.md,metadata.json,_*files) - Reference files have required frontmatter (
title,description,tags)
Phase 3: Official Documentation Verification
- Use web search to verify API patterns against current official docs
- Check GitHub repository for recent updates, breaking changes, deprecations
- Verify npm package versions are current
- Compare skill patterns against production repositories
Phase 4: Code Example Accuracy
- All imports reference real packages and real exports
- API signatures match current library versions
- Configuration examples use valid options
- Templates produce working code when applied
Phase 5: Cross-File Consistency
- SKILL.md references match actual files in the directory
- Reference file content aligns with SKILL.md claims
- No orphan files (files that exist but are not referenced)
- No orphan links (references to files that do not exist)
Phase 6: Dependency Check
- Package versions referenced in examples are current
- Check for breaking changes between referenced and current versions
- Flag dependencies not updated in over 90 days
Phase 7: Severity Classification
| Level | Meaning | Examples |
|---|---|---|
| Critical | Code will fail if followed | Non-existent imports, invalid config, missing deps |
| High | Code produces wrong results or confusion | Contradictory examples, outdated major versions |
| Medium | Code works but is suboptimal or incomplete | Stale minors (> 90 days), missing doc sections |
| Low | Cosmetic or minor quality issues | Typos, formatting, missing optional metadata |
Every finding must include evidence: a link to official docs, GitHub issue, npm page, or specific code reference.
Phase 8: Fix Decisions
Auto-fix when all conditions are met:
- The correct answer is unambiguous (e.g., import path from official docs)
- Clear evidence supports the fix
- No architectural impact
Ask the user when:
- Multiple valid approaches exist
- The fix involves breaking changes
- Architectural choices are required
Phase 9: Verification
- Run
pnpm validate:skills skills/[skill-name] - Test discovery with natural language queries
- Confirm no contradictions between files
- Verify all referenced files exist
Version Bumps
| Type | When | Example |
|---|---|---|
| Major | API patterns change, breaking changes | v1 to v2 |
| Minor | New features, backward compatible | v1.0 to v1.1 |
| Patch | Bug fixes, typos, formatting only | v1.0.0 to v1.0.1 |
Common Review Findings
| Issue | Frequency | Fix Approach |
|---|---|---|
| Fake API adapters | Common | Verify imports exist in actual packages |
| Stale API methods | Common | Check signatures against current docs |
| Schema inconsistency | Moderate | Align table/field names across files |
| Version drift (> 90d) | Frequent | Update versions in code examples |
| Contradictory examples | Moderate | Pick one canonical pattern per concept |
| Broken links | Occasional | Verify all URLs resolve |
| Orphan file references | Occasional | Remove references or create the files |
Automated vs Manual Checks
Automated (via pnpm validate:skills):
- YAML syntax and frontmatter validation
- Name/description constraints
- Line count thresholds
- Code block language specifiers
- Required sections
- Reference link integrity
Manual (requires human or AI review):
- API methods vs current official documentation
- GitHub issues affecting skill patterns
- Code correctness and production readiness
- Schema consistency across examples
- Whether content duplicates agent knowledge
Quality Checklist
Before committing a skill:
- Name is lowercase-hyphen-case, 1-64 chars, matches directory
- Description is 1-1024 chars with "Use when" or "Use for" trigger phrases
- SKILL.md under 500 lines with required sections
- All code examples tested against current library versions
- Package versions verified current
- Known issues documented with sources
- Cross-file consistency verified
- No high-severity issues remaining
pnpm validate:skillspasses
Creating Skills
Directory Structure
A skill is a directory containing at minimum a SKILL.md file:
skill-name/
├── SKILL.md # Required: main skill document
├── references/ # Optional: additional documentation loaded on demand
│ ├── basic-patterns.md
│ └── error-handling.md
├── scripts/ # Optional: executable code agents can run
└── assets/ # Optional: templates, images, schemasFiles excluded by the skills CLI during installation (do not rely on these):
README.mdmetadata.json- Files starting with
_
YAML Frontmatter
Required Fields
---
name: my-skill-name
description: |
What it does in third-person active voice. Key technologies named.
Use when: scenario one, scenario two, debugging "specific error" messages.
---| Field | Required | Constraints |
|---|---|---|
name | Yes | 4-64 chars, lowercase letters/numbers/hyphens, must match directory name |
description | Yes | 1-1024 chars, must include "Use when" or "Use for" trigger phrases |
Name Rules
- Lowercase letters, numbers, and hyphens only
- Must not start or end with
- - Must not contain consecutive hyphens (
--) - Must match the parent directory name exactly
- Cannot contain "anthropic" or "claude"
Optional Fields (Open Standard)
---
name: my-skill
description: |
Skill description here.
license: Apache-2.0
compatibility: Requires git and docker
metadata:
author: example-org
version: '1.0'
allowed-tools: Bash(git:*) Read Write
---| Field | Description |
|---|---|
license | License name or reference to bundled file |
compatibility | Environment requirements, max 500 chars |
metadata | Arbitrary key-value map (author, version, etc.) |
allowed-tools | Space-delimited list of pre-approved tools (experimental) |
Optional Fields (Claude Code Extensions)
These fields are Claude Code-specific. Other agents ignore unknown frontmatter.
| Field | Description |
|---|---|
disable-model-invocation | Prevent automatic loading, manual /name only |
user-invocable | Set false to hide from / menu |
model | Model to use when skill is active |
context | Set fork to run in a subagent |
agent | Subagent type when context: fork is set |
hooks | Hooks scoped to skill lifecycle |
argument-hint | Hint for autocomplete (e.g., [issue-number]) |
Writing Effective Descriptions
The description determines if a skill gets discovered. Target 250-350 characters.
Two-Paragraph Structure
Paragraph 1: What you can build + key features (active voice, third person) Paragraph 2: When to use + error keywords for discovery
description: |
Build type-safe database queries with Drizzle ORM and Cloudflare D1.
Covers schema definition, migrations, relations, and transaction patterns.
Use when: setting up D1 database, writing Drizzle schemas, debugging
"no such table" or "D1_ERROR" issues.Description Checklist
- Active voice ("Builds X" not "This skill provides X")
- Specific technologies named
- 3-5 "Use when" scenarios
- 2-3 distinctive error messages or keywords
- No meta-commentary about the skill itself
- Third-person perspective throughout
Bad vs Good Descriptions
Bad -- passive, vague, no discovery keywords:
description: |
This skill helps you with database operations. It provides patterns
for working with data and can be useful in many situations.Good -- active, specific, discoverable:
description: |
Build type-safe database queries with Drizzle ORM and Cloudflare D1.
Covers schema definition, migrations, relations, and transaction patterns.
Use when: setting up D1 database, writing Drizzle schemas, debugging
"no such table" or "D1_ERROR" issues.Progressive Disclosure
Load information in layers to conserve context window tokens:
| Layer | When Loaded | Target Size | Content |
|---|---|---|---|
| Metadata | Always | ~100 tokens | name + description |
| SKILL.md | When triggered | < 5000 tokens | Instructions, patterns, tables |
| Resources | As needed | Variable | scripts/, references/, assets/ |
Keep SKILL.md under 500 lines. Move detailed reference material to separate files.
Freedom Levels
Match instruction specificity to error probability:
| Level | Format | Use When |
|---|---|---|
| High | Text instructions | Multiple valid approaches |
| Medium | Pseudocode/patterns | Preferred pattern with some flexibility |
| Low | Exact scripts/configs | Fragile operations where precision matters |
Token Efficiency
- Move extended examples to
references/-- keep SKILL.md lean - One good code example beats three mediocre ones
- Reference official docs instead of copying them
- If the agent already knows it, do not include it
SKILL.md Required Sections
For this repository, SKILL.md files must include:
1. YAML frontmatter with name and description 2. Overview -- 2-3 sentences: what it is, when to use, when NOT to use 3. Quick Reference -- table of patterns with API and key points 4. Common Mistakes -- table of mistake vs correct pattern 5. Delegation -- which agents to use for subtasks 6. References -- ordered list of links to references/*.md
No code examples belong in SKILL.md. All code lives in reference files.
Reference File Format
Reference files live at references/[topic].md with required frontmatter:
---
title: Mutations
description: Mutation patterns, optimistic updates, invalidation strategies
tags: [optimistic, invalidation, mutateAsync, onMutate, rollback]
---Rules for reference files:
- Max 500 lines each (warn at 400)
- Self-contained with code examples
- No cross-references between reference files
- Topic-scoped filenames in kebab-case
Size Thresholds
| File | Target | Warn | Max |
|---|---|---|---|
| SKILL.md | 100-150 lines | 400 | 500 |
| Reference file | -- | 400 | 500 |
Validation
Always validate before committing:
pnpm validate:skills skills/[skill-name]Template skill for reference: skills/tanstack-query/
Validation
Purpose
Validates that a skill's implementation matches what its manifest (SKILL.md frontmatter and body) promises. Detects drift between description and reality, missing functionality, and over-promised capabilities.
When to Validate
- After updating skill implementations or reference files
- During quality audits
- When manifests feel outdated or incorrect
- Before releasing new versions
- When a skill has not been reviewed in over 90 days
Validation Dimensions
| Dimension | What It Checks |
|---|---|
| Description Accuracy | Implementation matches manifest description |
| Precondition Validation | Claimed preconditions are actually checked in code |
| Effect Verification | Code produces all claimed effects |
| API Surface Analysis | Exported functions and patterns match manifest |
| Drift Detection | Implementation has diverged from manifest over time |
| Coverage Scoring | Percentage of manifest that is actually implemented |
Validation Process
Step 1: Load Manifest and Implementation
Read the skill's SKILL.md frontmatter as the manifest. Read all reference files, scripts, and assets as the implementation. If the skill is declarative only (no scripts), validate the description against reference file content.
Step 2: Validate Description Accuracy
Compare the description field against actual skill content:
- Does the skill cover every topic mentioned in the description?
- Are there topics covered in references but not mentioned in the description?
- Are "Use when" scenarios actually addressed by the skill content?
Produce an accuracy score from 0.0 to 1.0.
Step 3: Validate Preconditions
If the skill mentions prerequisites (e.g., "requires Node.js 18+", "assumes TypeScript project"):
- Are those prerequisites documented clearly?
- Do scripts check for them before executing?
- Are error messages clear when prerequisites are not met?
Produce a coverage score from 0.0 to 1.0.
Step 4: Validate Effects
For each capability the skill claims to provide:
- Is there actual content (instructions, examples, scripts) that delivers it?
- Are there conditions where the claimed effect would not work?
- Are there undocumented capabilities the skill provides but does not describe?
Produce a coverage score from 0.0 to 1.0.
Step 5: Validate Cross-References
- Every file referenced in SKILL.md exists on disk
- Every file on disk is referenced somewhere (no orphans)
- Reference file frontmatter (
title,description,tags) is present and accurate - No broken relative paths
Scoring
Overall score = average(description_accuracy, precondition_coverage, effect_coverage)
Pass criteria:
- Overall score >= 0.8
- Zero high-severity issuesSeverity Levels for Validation Issues
| Level | Meaning |
|---|---|
| High | Missing core functionality, unenforced preconditions, unimplemented effects |
| Medium | Incomplete features, poor error handling, undocumented capabilities |
| Low | Minor inconsistencies, documentation gaps, style issues |
Common Drift Patterns
| Pattern | Detection | Fix |
|---|---|---|
| Description oversells | Topics in description not covered in content | Remove from description or add content |
| Undocumented capabilities | Content exists without description mention | Update description to include it |
| Stale examples | Code examples reference deprecated APIs | Update to current API patterns |
| Orphan references | SKILL.md links to files that do not exist | Create the file or remove the link |
| Phantom files | Files exist but nothing links to them | Add reference in SKILL.md or remove file |
| Precondition assumptions | Scripts assume environment state without checking | Add explicit checks with clear error messages |
Running Validation
Automated Structural Validation
pnpm validate:skills skills/[skill-name]This checks frontmatter, naming, line counts, required sections, and reference link integrity.
Manual Content Validation
For semantic validation (does the content match the claims), perform these steps:
1. Read the description field and list every claim 2. For each claim, find the supporting content in SKILL.md or references 3. Score each claim as covered (1.0), partially covered (0.5), or missing (0.0) 4. Average the scores for the description accuracy component 5. Repeat for preconditions and effects 6. Calculate the overall score and identify any high-severity gaps
Validation Report Format
A validation report should include:
- Skill name and validation date
- Overall score with component breakdowns
- Issues list with severity, description, and suggested fix
- Pass/fail determination based on score >= 0.8 and zero high-severity issues
- Recommendations for improving the score