Spaces:
Running
title: Skill Forge
emoji: ๐ ๏ธ
colorFrom: indigo
colorTo: purple
sdk: static
app_file: index.html
pinned: false
license: mit
short_description: Validate, lint & scaffold Agent Skills in-browser
tags:
- agents
- skills
- developer-tools
- mcp
๐ ๏ธ Skill Forge
Author better Agent Skills. A SKILL.md is a YAML frontmatter block plus a
Markdown body; the description is how an agent decides when to use the skill,
and a weak one means it silently never fires. Skill Forge catches that before you
ship โ and runs entirely client-side, so nothing you paste leaves the page.
Rides the current wave of skill-centric agents โ e.g. Repo-To-Skill: Distilling GitHub Repositories Into AI4AI Skills (a 5,000-skill library lifting an ML-research agent +134% on MLE-bench) โ by making the authoring loop fast and checkable.
What it does
| Tab | Use |
|---|---|
| Validate | Parse SKILL.md; flag broken frontmatter, non-kebab name, over-long or trigger-less description, empty/unstructured body, absolute bundled-file links. |
| Lint description | Score the description 0โ100 for trigger reliability: length band, explicit "use when", action verbs, concrete examples, third-person phrasing. |
| Scaffold | Generate a valid starter SKILL.md from a name + description + trigger, then validate it. |
Files
| File | |
|---|---|
index.html + skillforge.js |
the static app (js-yaml from CDN) |
skillforge.py |
same logic in Python โ validate_skill, lint_description, scaffold_skill, package_skill |
app.py |
Gradio UI + MCP server (skill_validate, skill_lint_description, skill_scaffold) for running locally / on a PRO Space |
test_skillforge.py, test_skillforge.mjs |
self-checks for both ports |
Run the MCP server locally
pip install -r requirements.txt
python app.py # UI on :7860, MCP at /gradio_api/mcp/sse
{ "mcpServers": { "skill-forge": { "url": "http://localhost:7860/gradio_api/mcp/sse" } } }
Scope
Only the stable, host-agnostic structure of the format is enforced โ no
host-specific frontmatter keys are required, and unknown keys are reported as
info, not errors. The linter is opinionated about description quality because
that is what determines whether the skill is ever used.
MIT licensed. All original code.