/validate-skills
Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command.
$ npx -y skills add callstackincubator/agent-skills --skill validate-skills --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/validate-skills
Context preview
The summary Claude sees to decide when to auto-load this skill.
Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command.
SKILL.md
validate-skills.SKILL.mdname: validate-skills
description: Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command.
license: MIT
metadata:
author: Callstack
tags: validation, linting, skill-authoring
Validate Skills
Validate all skills in `skills/` against the agentskills.io spec and Claude Code best practices.
Validation Checklist
For each skill directory, verify:
Spec Compliance (agentskills.io)
| Check | Rule | |-------|------| | `name` format | 1-64 chars, lowercase alphanumeric + hyphens, no leading/trailing/consecutive hyphens | | `name` matches directory | Directory name must equal `name` field | | `description` length | 1-1024 characters, non-empty | | Optional fields valid | `license`, `metadata`, `compatibility` if present |
Best Practices (Claude Code)
| Check | Rule | |-------|------| | Description format | Third person, describes what + when to use | | Body length | Under 500 lines | | Loading is one-level deep | `SKILL.md` is the only progressive-disclosure entry point: every reference file must be reachable from `SKILL.md`. References may cross-link each other for navigation (see note below). | | Links are markdown | Use `[text](path)` not bare filenames | | No redundancy | Don't repeat description in body | | Concise | Only add context Claude doesn't already have |
> **One-level-deep vs. cross-linking.** The one-level-deep rule targets *progressive-disclosure loading chains* — a reference that can only be discovered by loading another reference first (`SKILL.md` → `a.md` → `b.md`, where `b.md` is not linked from `SKILL.md`). That is a defect: it hides content from the loader. > > It does **not** forbid *navigational* cross-links. Per [AGENTS.md](../../../AGENTS.md), reference files end with a "Related Skills" footer linking sibling references, and this is required. A cross-link is fine as long as both endpoints are also reachable directly from `SKILL.md`. Only flag a reference that is reachable *exclusively* through another reference.
How to Run
1. Find all skill directories:
fd -t d -d 1 . skills/
2. For each skill, read `SKILL.md` and check against the rules above
3. Report issues in this format:
## Validation Results
### skills/example-skill
- [PASS] name format valid
- [FAIL] name "example" doesn't match directory "example-skill"
- [PASS] description length OK (156 chars)
References
- [agentskills.io spec](https://agentskills.io/specification)
- [Claude Code best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)
Read more
name: validate-skills description: Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command. license: MIT metadata: author: Callstack tags: validation, linting, skill-authoring
Validate Skills
Validate all skills in `skills/` against the agentskills.io spec and Claude Code best practices.
Validation Checklist
For each skill directory, verify:
Spec Compliance (agentskills.io)
| Check | Rule | |-------|------| | `name` format | 1-64 chars, lowercase alphanumeric + hyphens, no leading/trailing/consecutive hyphens | | `name` matches directory | Directory name must equal `name` field | | `description` length | 1-1024 characters, non-empty | | Optional fields valid | `license`, `metadata`, `compatibility` if present |
Best Practices (Claude Code)
| Check | Rule | |-------|------| | Description format | Third person, describes what + when to use | | Body length | Under 500 lines | | Loading is one-level deep | `SKILL.md` is the only progressive-disclosure entry point: every reference file must be reachable from `SKILL.md`. References may cross-link each other for navigation (see note below). | | Links are markdown | Use `[text](path)` not bare filenames | | No redundancy | Don't repeat description in body | | Concise | Only add context Claude doesn't already have |
> **One-level-deep vs. cross-linking.** The one-level-deep rule targets *progressive-disclosure loading chains* — a reference that can only be discovered by loading another reference first (`SKILL.md` → `a.md` → `b.md`, where `b.md` is not linked from `SKILL.md`). That is a defect: it hides content from the loader. > > It does **not** forbid *navigational* cross-links. Per [AGENTS.md](../../../AGENTS.md), reference files end with a "Related Skills" footer linking sibling references, and this is required. A cross-link is fine as long as both endpoints are also reachable directly from `SKILL.md`. Only flag a reference that is reachable *exclusively* through another reference.
How to Run
1. Find all skill directories:
fd -t d -d 1 . skills/
2. For each skill, read `SKILL.md` and check against the rules above
3. Report issues in this format:
## Validation Results ### skills/example-skill - [PASS] name format valid - [FAIL] name "example" doesn't match directory "example-skill" - [PASS] description length OK (156 chars)
References
- [agentskills.io spec](https://agentskills.io/specification)
- [Claude Code best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)
Callstack Agent Skills give AI coding assistants practical React Native knowledge drawn from our work on production apps.
Repo: callstackincubator/agent-skills
Other skills on callstackincubator-agent-skills.
- /assess-react-native-migration
Assesses whether and how an existing mobile product should migrate to React Native. Use when auditing one or more product repositories for migration readiness, including products whose iOS, Android, and other clients live in separate directories or repositories; choosing
Open skill - /create-react-native-library
Scaffolds React Native libraries with create-react-native-library for standalone libraries or local native modules and views. Use when creating or working on React Native libraries or adding native functionality in an existing app.
Open skill - /github-actions
GitHub Actions workflow patterns for React Native iOS simulator and Android emulator cloud builds with downloadable artifacts. Use when setting up CI build pipelines or downloading GitHub Actions artifacts via gh CLI and GitHub API.
Open skill - /react-native-best-practices
Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations. Applies to tasks involving Hermes optimization, JS thread blocking, bridge overhead, FlashList, native modules, or debugging jank and frame drops.
Open skill - /react-native-brownfield-migration
Implements an accepted incremental brownfield migration from native iOS or Android to React Native or Expo using @callstack/react-native-brownfield. Use after the brownfield path has been selected, when setting up the integration, packaging XCFramework or AAR artifacts, or
Open skill - /react-native-tv-best-practices
Reviews React Native TV apps for focus/D-pad navigation, 10-foot UI layout, TV playback/DRM integration, low-memory TV performance, and TV accessibility. Use when building, debugging, or reviewing react-native-tvos, Expo TV, Amazon Vega/Kepler, or React Native web TV targets
Open skill

