skill-system-foundry/SKILL.md
Designs and evolves AI-agnostic skill systems. Triggers on skill/capability creation, role definition, or router migration; use when auditing consistency or improving token efficiency.
npx skillsauth add milanhorvatovic/skill-system-foundry skill-system-foundryInstall 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.
A meta-skill for constructing and evolving AI-agnostic skill systems.
This skill governs the creation and maintenance of a two-layer architecture: skills (with optional capabilities) and roles. All skills produced by this system follow the Agent Skills specification. They incorporate authoring best practices from official vendor guides. Role contracts align with tool integration guidance for seamless deployment across platforms.
Important: Capabilities are optional, granular sub-skills within a parent skill. Do not create capabilities by default. Only introduce them when the integrator explicitly asks for them or when the domain clearly demands decomposition (3+ distinct operations with different trigger contexts). Start with a standalone skill; evolve to router+capabilities only when justified.
The skill system follows a strict two-layer architecture — skills and roles. Dependencies flow strictly downward — never the reverse. A capability must never know it's being orchestrated. A role references skills but never other roles.
The dependency direction governs references between layers, not where orchestration begins. Two valid orchestration paths exist:
Path 1: orchestration skill → roles → skills (with optional capabilities)
Path 2: skill (standalone or router) → role(s) → skill's capabilities
See references/architecture-patterns.md for decision checklists and constraints per path.
Each layer has a clear responsibility:
Route to the appropriate capability based on the task:
| Capability | Trigger | Path | |---|---|---| | skill-design | Create a skill, capability, role, or manifest; decide architecture; write descriptions | capabilities/skill-design/capability.md | | validation | Validate a skill against the spec; audit system consistency | capabilities/validation/capability.md | | migration | Migrate flat skills to the router+capabilities pattern | capabilities/migration/capability.md | | bundling | Package a skill as a zip bundle for distribution | capabilities/bundling/capability.md | | deployment | Deploy to tools; set up wrappers or symlinks; use tool-specific extensions | capabilities/deployment/capability.md |
Read only the relevant capability file. Do not load multiple capabilities unless the task explicitly spans them.
Shared resources live at the skill root and are referenced by capabilities via relative paths. Each capability's tail ## Key Resources block lists cross-cutting resources with load triggers (when to read, not what they contain); action-specific resources are linked inline at the body step where they apply. The router indexes directories, capabilities index files.
Cross-cutting reference material shared across capabilities. Capabilities reference these by relative path.
Skill, capability, role, and manifest templates copied and filled in when creating new components.
Six entry points (validate_skill.py, audit_skill_system.py, scaffold.py, bundle.py, stats.py, yaml_conformance_report.py) and shared library modules. All entry points support --json for machine-readable output.
stats.py reports two byte-based proxies for a skill's context cost: discovery_bytes (the SKILL.md frontmatter block) and load_bytes (SKILL.md plus every transitively reachable capability and reference file, with scripts/ and assets/ excluded). Bytes are a deterministic on-disk signal, not tokenizer-accurate — use the trend across edits, not the absolute number across models.
All skills must conform to the Agent Skills specification (agentskills.io). Every registered skill directory contains a SKILL.md with valid YAML frontmatter. The name field matches the parent directory name, lowercase + hyphens only, max 64 chars. The description field is max 1024 chars and describes both what the skill does and when to trigger it. Third-person voice is a foundry convention, not a spec requirement.
Note: capabilities are discovery-internal sub-skills. Their entry point is capability.md. Capability frontmatter is optional (use it when portability/promotion to standalone is likely).
Progressive disclosure is respected at all levels:
Discovery tokens are always present and expensive. Execution tokens are only paid when activated. Register one skill per domain, not one per capability. Keep router SKILL.md files lean. Push detail into capabilities or references. Prefer a standalone skill until the domain justifies capabilities.
The model is already smart. Only add context it doesn't already have. Challenge each piece of information: "Does the model really need this explanation?" See references/authoring-principles.md for detailed guidance.
Match specificity to the task's fragility. High freedom for flexible tasks, low freedom for fragile operations. See references/authoring-principles.md.
Domain knowledge is authored exactly once in the canonical layer (skills and roles). When domain knowledge changes, one file changes. Tool-specific deployment pointers, if needed, are optional user-managed customizations. Default to symlinks — zero-maintenance, single source of truth, alignment with this principle. Fall back to wrapper files only when the team includes Windows contributors without Developer Mode or without core.symlinks=true in git config, or the tool requires tool-specific adaptation in its pointer. See references/tool-integration.md for the decision guide.
The most common foot-guns when working with this meta-skill. Surfaced here because by the time you'd think to load references/anti-patterns.md, you've usually already hit them. Each entry links to the long-form treatment.
capability.md), capability-local references use references/<file>; references to shared skill-root resources use ../../<dir>/<file>. From a nested capability reference file (capabilities/<name>/references/foo.md), the offsets shift accordingly. See path-resolution.md.description field is the primary discovery mechanism. Write it for the model selecting between 100+ skills, not as a README summary. Be specific, third-person, include trigger phrases. See authoring-principles.md#writing-descriptions.core.symlinks=true in git config (controls whether git materializes symlinks at checkout time, set with git config core.symlinks true). Verify the team's OS mix before defaulting; fall back to wrapper files when either prerequisite cannot be guaranteed. See anti-patterns.md#symlinks-without-team-platform-verification.tools
Greets a recipient through one of two registered tones — formal or casual — by dispatching to a dedicated capability. Activates when the conversation asks for a tone-specific welcome or a switch between formal and casual greetings; use when comparing the two styles. Demonstrates the router pattern in the Skill System Foundry — a thin SKILL.md entry point routing to capability files, with allowed-tools declared in frontmatter so capability shell fences pass validation.
testing
Greets a single recipient with a friendly welcome message rendered in a formal or casual tone. Activates when the conversation asks to say hello or welcome someone; use when a minimal standalone skill is needed. Demonstrates the smallest valid standalone skill in the Skill System Foundry — required name and description frontmatter plus an optional metadata block — and how its layout passes validation.
development
Governs the configuration.yaml file that serves as the single source of truth for all validation rules in the Skill System Foundry. Triggers when adding, modifying, or reviewing validation rules, limits, patterns, or reserved words. Also triggers when working with constants.py, yaml_parser.py, or any code that reads from configuration.yaml. Use this skill when asked to add a new validation check, change a limit or threshold, update reserved word lists, add SPDX license identifiers, modify regex patterns, or troubleshoot why a validation rule is not working as expected. Activates on mentions of configuration, validation rules, constants, thresholds, or pattern definitions.
testing
Validates a skill directory against the Agent Skills specification (agentskills.io/specification). Checks file reference consistency, frontmatter compliance, progressive disclosure, and structural correctness. Triggers when asked to validate a skill against the spec, check skill references, verify spec compliance, audit a skill's structure, or confirm a skill is ready for distribution. Also triggers on phrases like "is this skill valid," "check spec compliance," "validate file references," "verify the skill structure," or "does this skill follow the spec." Use this skill to catch structural issues, broken references, and spec violations in any skill directory.