skill-forge / README.md
WhySoCodius's picture
Skill Forge: static browser app + Python/MCP port for Agent Skills
4fa5831 verified
|
Raw
History Blame Contribute Delete
2.48 kB
metadata
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.