← All tools

NetAnlatAkademi/skillforge

AI Agent
Popularity 75 Updated AI & Agents

Lint, inspect, package and diff AI agent skills (SKILL.md). A .NET 10 CLI that reports signals, never a safety verdict.

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

<p align="center" <picture <source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.svg" <img src="assets/logo.svg" alt="SkillForge" width="296" height="72" </picture </p

SkillForge

A local, open source CLI for AI agent skills. SkillForge creates, validates, inspects and packages SKILL.md-based skills, and reports findings as human-readable console output, JSON or SARIF.

Status: released as 26.210.1 — v0.2 and v0.3 complete; v0.4's migration inventory and MCP inspection in. All seven commands work end to end. CI builds and tests on Linux and Windows, and runs the CLI over the sample skills.

Try it

dotnet run --project src/SkillForge.Cli -- validate ./samples/valid-skill
dotnet run --project src/SkillForge.Cli -- validate ./samples/broken-references --verbose
SkillForge Validate

Skill: broken-references
Path:  ./samples/broken-references

x SF0007 The referenced file 'references/checklist.md' does not exist in the skill. (SKILL.md:16)
x SF0007 The referenced file 'scripts/analyze.ps1' does not exist in the skill. (SKILL.md:17)
! SF1010 No agent compatibility is declared. (SKILL.md:1)

Result: INVALID
Errors: 2  Warnings: 1  Info: 0

Exit codes: 0 clean · 1 validation failure, or a warning under --strict · 2 usage error · 3 unexpected failure. Options: --strict, --quiet, --verbose, --no-color (the NOCOLOR environment variable works too). See SKILLFORGEROADMAP.md for scope and TODO.md for progress.

Why

Agent skills are executable instructions that ship with real permissions. SkillForge lets a developer notice a broken or risky skill in seconds — locally, and in CI — without sending anything to a service.

SkillForge reports concrete diagnostics and risk signals. It deliberately does not label a skill "safe" or "unsafe".

Commands

| Command | Purpose | |---|---| | skillforge init <name | Scaffold a skill that already passes validation | | skillforge validate <path | Validate structure, frontmatter, quality rules and provider compatibility | | skillforge inspect <path | Summarise files, links, scripts and inferred capabilities | | skillforge diff <before <after | Compare two versions by what they can do, not which bytes changed | | skillforge eval <path | Check a skill against the expectations declared under evals/, optionally by asking a model | | skillforge pack <path | Produce a deterministic .skill.zip with a SHA-256 hash and manifest | | skillforge migrate inspect | Report the agent tooling installed here: skills, MCP servers and instruction files, per provider |

Full options are in docs/cli-reference.md; CI usage, including SARIF upload, is in docs/ci.md.

Checking a skill against an agent provider

A skill is checked against the providers it declares under compatibility, and against nothing else — judging every skill against every provider would report portability problems to authors who never claimed to be portable. --provider asks the other question without editing the skill to find out:

skillforge validate ./skills --provider claude-code

claude-code, codex, cursor and github-copilot are recognised. Only claude-code has documented limits in SkillForge today; the others are recognised so that declaring them is not reported as a typo, and an unread limit is never checked rather than guessed at. The reasoning and the measurements are in docs/validation-rules.md.