{"id":50537284,"url":"https://github.com/f4rkh4d/forge-skill","last_synced_at":"2026-06-03T17:30:46.422Z","repository":{"id":359561251,"uuid":"1246625847","full_name":"f4rkh4d/forge-skill","owner":"f4rkh4d","description":"Skills with teeth. Discipline across every domain an AI agent touches, with a verifier under every skill.","archived":false,"fork":false,"pushed_at":"2026-05-22T16:52:30.000Z","size":2462,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T17:44:57.599Z","etag":null,"topics":["agent-design","agent-skills","ai","ai-agents","anthropic","anti-slop","claude","claude-code","codex","coding","cursor","frontend","linter","lowcode","nocode","skill","skill-pack","skills","verifier","vibecoding"],"latest_commit_sha":null,"homepage":"https://f4rkh4d.github.io/forge-skill/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/f4rkh4d.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-22T11:36:37.000Z","updated_at":"2026-05-22T16:52:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/f4rkh4d/forge-skill","commit_stats":null,"previous_names":["f4rkh4d/forge-skill"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/f4rkh4d/forge-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f4rkh4d%2Fforge-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f4rkh4d%2Fforge-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f4rkh4d%2Fforge-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f4rkh4d%2Fforge-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/f4rkh4d","download_url":"https://codeload.github.com/f4rkh4d/forge-skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f4rkh4d%2Fforge-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33876327,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-design","agent-skills","ai","ai-agents","anthropic","anti-slop","claude","claude-code","codex","coding","cursor","frontend","linter","lowcode","nocode","skill","skill-pack","skills","verifier","vibecoding"],"created_at":"2026-06-03T17:30:46.369Z","updated_at":"2026-06-03T17:30:46.417Z","avatar_url":"https://github.com/f4rkh4d.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/banner.png\" alt=\"Forge Skill - the discipline kit for AI agents\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eForge Skill\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eSkills with teeth. 51 opinionated rules for AI coding agents, 33 with a verifier that fails when ignored.\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"BENCHMARKS.md\"\u003e\u003cstrong\u003e−72% verifier-visible slop on Sonnet, −58% on Haiku\u003c/strong\u003e\u003c/a\u003e, 20 adversarial prompts × 3 runs per arm. Per 1000 LOC: \u003cstrong\u003e−85% Sonnet, −71% Haiku\u003c/strong\u003e. Same model both arms, only the skills change.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/f4rkh4d/forge-skill/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/f4rkh4d/forge-skill?style=for-the-badge\u0026logo=github\u0026labelColor=0B0E13\u0026color=FF5C2B\" alt=\"Stars\"/\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/MIT-0B0E13?style=for-the-badge\u0026labelColor=0B0E13\u0026color=F4F4F2\" alt=\"MIT\"/\u003e\u003c/a\u003e\n  \u003ca href=\"BENCHMARKS.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sonnet-%E2%88%9272%25%20slop-FF5C2B?style=for-the-badge\u0026labelColor=0B0E13\" alt=\"Sonnet\"/\u003e\u003c/a\u003e\n  \u003ca href=\"BENCHMARKS.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/Haiku-%E2%88%9258%25%20slop-0B0E13?style=for-the-badge\u0026labelColor=0B0E13\u0026color=F4F4F2\" alt=\"Haiku\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://f4rkh4d.github.io/forge-skill/playground/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Try%20live-Playground-FF5C2B?style=for-the-badge\u0026labelColor=0B0E13\" alt=\"Playground\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://f4rkh4d.github.io/forge-skill/playground/\"\u003e\u003cstrong\u003eLive playground\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"#install\"\u003eInstall\u003c/a\u003e ·\n  \u003ca href=\"#skills\"\u003eSkills\u003c/a\u003e ·\n  \u003ca href=\"BENCHMARKS.md\"\u003eBenchmarks\u003c/a\u003e ·\n  \u003ca href=\"examples/orders-api/\"\u003eWorked example\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n## What it does\n\nYou give Claude / Cursor / Codex a prompt. It writes code. Most \"skill packs\" stop there - a long markdown file the agent is told to read. **Forge ships executable verifiers** that run on the output and fail when the agent ignored the rule. Same verifiers run in four places:\n\n| Entry point | When it fires |\n|-|-|\n| [`hooks/`](hooks/README.md) - Claude Code post-edit hook | Every Edit/Write/MultiEdit, blocking with feedback the model sees |\n| [`vscode-extension/`](vscode-extension/README.md) - VS Code \u0026 Cursor | On save, inline `Diagnostic` warnings with line/column |\n| [`mcp-server/`](mcp-server/README.md) - MCP server | Any agent that speaks MCP - call `verify_snippet` / `verify_file` on demand |\n| [`.github/actions/forge-verify/`](.github/actions/forge-verify/README.md) - GitHub Action | Every PR; sticky comment, optional merge gate |\n\n51 skills across 14 domains. 33 ship a verifier (shell, AST, or both). The remaining 18 are style registers (brutalist / minimalist / soft / redesign), image-direction (brandkit / imagegen-*), and methodology / orchestration (rag / evals / citation / research / agent-*) - guidance by nature, not mechanically checkable, marked as such.\n\n## Quick proof\n\nThe numbers in [`BENCHMARKS.md`](BENCHMARKS.md). 35 prompts total (20 adversarial + 15 neutral) × 3 runs per arm, same model both arms:\n\n| Sonnet 4.6 | Baseline | Forge | Δ | Violations / 1000 LOC |\n|-|-:|-:|-:|-|\n| **Adversarial** | 115 | **32** | **−72.2%** | 19.87 → 2.98 (**−85%**) |\n| **Neutral** | 54 | **9** | **−83.3%** | 9.57 → 1.05 (**−89%**) |\n| **Combined** | 169 | **41** | **−75.7%** | 14.79 → 2.12 (**−86%**) |\n\n| Haiku 4.5 | Baseline | Forge | Δ | Violations / 1000 LOC |\n|-|-:|-:|-:|-|\n| **Adversarial** | 127 | **54** | **−57.5%** | 28.53 → 8.33 (**−71%**) |\n\nPer skill on Sonnet: `forge-api-design` 20→1 (−95%), `forge-error-handling` 61→20 (−67%), six skills zeroed (kubernetes, migrations, logging, frontend, github-actions, prompt-engineering).\n\nReproduce: `cd benchmarks \u0026\u0026 npm install \u0026\u0026 BENCH_N_RUNS=3 BENCH_CORPUS=adv npm run all`. No API key - uses your local `claude` CLI.\n\n## Install\n\nDrop any `SKILL.md` into your project. The Claude Code post-edit hook auto-discovers them:\n\n```bash\ngit clone https://github.com/f4rkh4d/forge-skill\ncd forge-skill\n./hooks/install.sh                 # one-shot install at the user level\n./hooks/install.sh --project       # or per-project (this repo only)\n```\n\nAfter install, every file Claude Code edits is checked against the applicable forge verifiers automatically. If a verifier flags a violation, the hook exits with code 2 and Claude sees the violation text on its next turn - it fixes them without you in the loop.\n\nFor other agents, see the [MCP server](mcp-server/README.md), [GitHub Action](.github/actions/forge-verify/README.md), or [VS Code extension](vscode-extension/README.md).\n\n## Skills\n\n51 skills across 14 domains. Each is a folder with a `SKILL.md` (the rules for the model to read) and optionally `verify/check_*.sh` (the script that runs on the output and fails when the rules were ignored).\n\n| Domain | Skills | Verified |\n|-|-:|-:|\n| [Design](skills/design/) | 9 | 4 |\n| [Backend](skills/backend/) | 9 | 7 |\n| [Data](skills/data/) | 2 | 2 |\n| [Infra](skills/infra/) | 5 | 5 |\n| [Security](skills/security/) | 1 | 1 |\n| [Testing](skills/testing/) | 1 | 1 |\n| [Output](skills/output/) | 1 | 1 |\n| [Docs](skills/docs/) | 1 | 1 |\n| [MCP](skills/mcp/) | 3 | 2 |\n| [Multi-agent](skills/agents/) | 3 | 0 |\n| [LLM apps](skills/llm/) | 5 | 4 |\n| [Dev workflow](skills/dx/) | 5 | 3 |\n| [Image direction](skills/imagegen/) | 3 | 0 |\n| [Research](skills/research/) | 2 | 1 |\n\nBrowse [`skills/`](skills/) for the full list. **AST-grade verifiers** (real TypeScript AST traversal, not regex) cover the top 8: `forge-frontend`, `forge-typescript`, `forge-api-design`, `forge-error-handling`, `forge-validation`, `forge-react-hooks`, `forge-tests`, `forge-naming`.\n\n## How the verifiers work\n\n```\nskills/\u003cdomain\u003e/\u003cskill\u003e/\n├── SKILL.md            # rules + BAD/GOOD examples (the model reads this)\n└── verify/\n    └── check_*.sh      # shell script, exits non-zero with VIOLATION lines\n```\n\nA verifier returns exit code 0 on clean output, non-zero with a list of violations otherwise. Eight skills delegate to [`verify/lib/ts-ast.mjs`](verify/lib/ts-ast.mjs) which parses the actual TypeScript AST. Card-in-card detected even when extracted to a variable. `c.req.json()` flagged when consumed without `.parse()` on the same flow. Hooks flagged when called inside `if` / loop / ternary / `\u0026\u0026` / after early return.\n\nInstall with `npm install` at the repo root for AST mode; falls back to grep heuristics without Node. The verifiers themselves are covered by a [test corpus](tests/README.md) of 22 fixtures that runs in CI - regressions in verifier logic don't ship silently.\n\n## Worked example\n\n[`examples/orders-api/`](examples/orders-api/) is a small but real Hono + Postgres service built by dogfooding ten skills together. ~1100 lines of TypeScript across 17 files. Read it to see what the kit looks like applied end-to-end on real code.\n\n## Try it live\n\n[`f4rkh4d.github.io/forge-skill/playground/`](https://f4rkh4d.github.io/forge-skill/playground/) loads the actual TypeScript compiler in your browser and runs the six AST checks. Paste TypeScript or TSX, hit Run, see violations with line/column. Nothing leaves your browser. Five \"Try this\" presets included.\n\n## Contributing\n\nThe skill format is intentionally lightweight. To add `forge-rust` or `forge-python-fastapi`:\n\n1. `mkdir skills/\u003cdomain\u003e/forge-\u003cname\u003e` with a `SKILL.md` (frontmatter + Quick reference + Hard rules + BAD/GOOD examples, see existing skills for shape).\n2. If the rules are grep- or AST-checkable, add `verify/check_*.sh`. The CLI auto-discovers it.\n3. Add a fixture to `tests/bad/` and `tests/good/` so the verifier is regression-tested.\n4. Open a PR. CI gates: shellcheck on the verifier, frontmatter present, the corpus passes.\n\n## License\n\nMIT. Built by [@f4rkh4d](https://github.com/f4rkh4d).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff4rkh4d%2Fforge-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ff4rkh4d%2Fforge-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff4rkh4d%2Fforge-skill/lists"}