Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create or improve portable agent skills with clear trigger metadata, focused instructions, bundled resources, safety boundaries, and real validation. Use when writing, reviewing, refactoring, packaging, or publishing a SKILL.md skill for PapiSkill, Codex, Claude Code, Factory, GitHub Copilot, Cursor, VS Code, or another agent runtime.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 81% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 572% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 81% | 0% |
Use this skill to create, improve, review, or package an agent skill.
A good skill gives a capable agent the missing procedural knowledge it needs to do a repeatable job well. It should not micromanage obvious reasoning, restate generic best practices, or bury the agent in ceremony.
Write for an intelligent agent with limited context.
The skill should answer:
If a section would not change agent behavior, remove it.
A PapiSkill package contains:
textskill-name/ |-- skill.yml `-- SKILL.md
Optional directories:
textdocs/ examples/ scripts/ assets/
Use skill.yml as PapiSkill's canonical registry metadata. Use SKILL.md as the portable runtime entry point.
Official PapiSkill skills should include minimal SKILL.md frontmatter for cross-runtime compatibility:
markdown--- name: skill-name description: What the skill does. Use when the user asks for specific trigger cases, file types, tools, or workflows. ---
Keep SKILL.md frontmatter minimal and portable. Put richer registry fields such as license, categories, tags, compatibility, install targets, source URL, and maintainers in skill.yml.
Before writing, understand the skill from concrete examples.
Collect enough to know:
Ask the user only for answers that change scope, safety, output, or required resources. If the missing detail is minor, make a reasonable assumption and label it.
Create a skill when the workflow is repeatable and benefits from reusable instructions, resources, or safety boundaries.
Good skill candidates:
Poor skill candidates:
Use skills to teach how work should be done. Use MCP/tools to connect to external systems. Use app or agent configuration to control model, permissions, or global behavior.
The description is the most important part of the skill. Many runtimes load only the skill name and description before deciding whether to read the full body.
A strong description:
Good:
yamldescription: Review local code changes for bugs, regressions, missing tests, and risky assumptions. Use when asked to review a diff, pull request, patch, branch, or uncommitted workspace changes before promotion.
Weak:
yamldescription: Helps with code.
For PapiSkill, keep skill.yml.summary human-facing and concise. Put the full trigger contract in both skill.yml.description and SKILL.md frontmatter description.
Do not make every skill a rigid checklist.
Choose the level of control based on fragility:
Use prose for judgment. Use checklists for workflows where steps are easy to skip. Use scripts for deterministic work.
Before adding a rule, ask what failure it prevents or what better judgment it enables. Stable rules can be unconditional; situational guidance should name the condition that activates it and, when useful, the reason it matters. Heavy procedure belongs only in the branch where that rigor is needed.
Avoid rules that are merely sometimes true. Prefer first principles, examples, and scoped decision points that help the agent adapt intelligently when the user's request, available tools, risk level, or desired depth changes.
Prefer this shape, adapting headings when another structure reads better:
markdown# Skill Name Use this skill when... ## Core Judgment What matters most. ## Workflow The main process. ## Resources When to read or run supporting files. ## Safety Actions that require care or approval. ## Verification Evidence that the skill worked.
Include "when not to use" only when the boundary is likely to be confused.
Do not add sections just because a template has them.
Keep the main SKILL.md focused. Move detailed or conditional material into supporting files when it would distract from the core workflow.
Use one-level-deep references from SKILL.md:
markdownFor provider-specific setup, read [docs/aws.md](docs/aws.md) or [docs/gcp.md](docs/gcp.md) only when that provider is relevant.
Good reasons to split files:
Bad reasons to split files:
Every supporting file must be discoverable from SKILL.md with a clear "read this when..." condition.
Use resources intentionally.
docs/Use for source reviews, policy notes, schemas, detailed references, or long examples that should be read only when relevant.
examples/Use when output shape, trigger behavior, or edge cases are easy to misunderstand.
Include compact examples of:
scripts/Use scripts when the operation is deterministic, repetitive, fragile, or easier to verify in code.
Scripts must be inspectable and tested. Do not include scripts that contact external services, mutate production, or handle credentials unless the skill clearly documents the risk and requires user approval.
assets/Use for templates, sample files, images, starter projects, or other files the agent should copy or transform. Assets are not instructions; explain in SKILL.md when to use them.
Before publishing, classify the skill's risk.
Look for:
If the skill can cause side effects, state what requires explicit user approval.
If the skill includes scripts or external resources, treat it like installable software. Users should be able to inspect what it does before running it.
A portable skill should not assume one agent runtime unless it declares that dependency.
Check compatibility with:
skill.yml plus SKILL.mdname and descriptionRuntime-specific features such as invocation controls, subagent execution, pre-approved tools, or dynamic context can be mentioned as optional notes, not required for the portable core.
Do not trust a skill because it looks good.
Minimum validation:
skill.yml matches directory and SKILL.md frontmatterForward-test important skills with realistic prompts:
For high-risk or public official skills, test at least:
Before publishing, verify:
name is short, lowercase, and hyphenatedskill.yml and SKILL.md frontmatter agreeSKILL.md is focused enough to inspect quicklySKILL.mdWhen creating or improving a skill, report:
Other measured skills in the registry, with their headline benchmark lift.