MCPSkill
MCP and Skill MarketMCP vs Skill
Example

Skill Template Example

A practical starter template for packaging reusable agent expertise.

Recommended layout

my-skill/
β”œβ”€β”€ SKILL.md
β”œβ”€β”€ references/
β”‚   β”œβ”€β”€ domain-rules.md
β”‚   └── examples.md
β”œβ”€β”€ scripts/
β”‚   └── validate-output.js
└── assets/
    └── report-template.md

SKILL.md starter

---
name: my-skill
description: Describe the exact user task this skill should handle, including verbs and expected artifacts.
compatibility:
  runtimes:
    - node >= 18
---

# My Skill

Use this skill when ...
Do not use this skill when ...

## Workflow
1. Inspect the input and identify missing information.
2. Apply the procedure below.
3. Use the output template if the user asks for a report.
4. Validate the result before responding.

## References
- Read `references/domain-rules.md` when the task involves domain-specific policy decisions.
- Read `references/examples.md` if the output format is unclear.

## Scripts
- Run `node scripts/validate-output.js --file PATH` before final delivery when producing a structured file.

## Output
Follow `assets/report-template.md` for final reports.

Example reference file

Use references for domain rules that are useful but too detailed for the main instructions.

# references/domain-rules.md

## Severity levels
- Critical: user data loss, security exposure, payment failure, or production outage.
- High: broken core workflow with no easy workaround.
- Medium: degraded workflow with a workaround.
- Low: cosmetic issue, copy issue, or small usability problem.

## Escalation rule
If severity is Critical or High, include an explicit owner and next action in the final report.

Example asset template

Assets are useful when the final answer must follow a stable structure.

# assets/report-template.md

## Summary

## Findings
| Severity | Finding | Evidence | Recommendation |
| --- | --- | --- | --- |

## Open questions

## Next actions

Example validation script

Scripts should be non-interactive and give clear machine-readable output when possible.

// scripts/validate-output.js
import fs from "node:fs"

const fileIndex = process.argv.indexOf("--file")
const file = fileIndex >= 0 ? process.argv[fileIndex + 1] : null

if (!file) {
  console.error(JSON.stringify({ ok: false, error: "Missing --file PATH" }))
  process.exit(1)
}

const text = fs.readFileSync(file, "utf8")
const required = ["## Summary", "## Findings", "## Open questions", "## Next actions"]
const missing = required.filter((section) => !text.includes(section))

console.log(JSON.stringify({ ok: missing.length === 0, missing }, null, 2))
process.exit(missing.length === 0 ? 0 : 1)

Before publishing

ActivationTest several should-trigger and should-not-trigger prompts.
ContextMove long details out of SKILL.md and reference them conditionally.
ScriptsMake scripts non-interactive and give them helpful errors.
EvaluationRun the Skill on realistic examples and capture failures.