.claude/skills/deploy/SKILL.mdClaude Code
- Dry-run the migrations
- Check feature flags are off
- Tag the release in git
- Post in #deploys
- Roll back if p95 > 400 ms
2days since last edit
SkillForge · Prototype 0.x · Runs on your Mac
Define a skill once. SkillForge compiles it for seven agent platforms, tells you exactly what each one can't express, and reviews it for security before it runs.
Hover or focus a target to trace its build path (illustrative).
→ build/claude-ai/release-notes.zip · native
→ ~/.claude/skills/release-notes/SKILL.md · native
→ build/agent-skills/release-notes/SKILL.md · native
→ build/codex/release-notes/ · gap · 1 · tool allow-list
→ build/gemini-cli/release-notes/ · native
→ build/cursor/release-notes.mdc · gap · 2 · auto-invocation, tool allow-list
→ build/copilot/release-notes.instructions.md · gap · 1 · reference files
1definition
7targets
0silent losses
copies1 truth?
Your team writes a deploy checklist for Claude Code. Someone ports it to Cursor rules. Someone else pastes half of it into Copilot instructions. Three months later nobody knows which copy is right, and nobody knows what the port quietly dropped.
.claude/skills/deploy/SKILL.mdClaude Code
2days since last edit
.cursor/rules/deploy.mdcCursor
41days since last edit
.github/copilot-instructions.mdCopilot
77days since last edit
AGENTS.mdCodex
63days since last edit
GEMINI.mdGemini CLI
94days since last edit
Illustrative paths · one deploy checklist, three months after the first port
Folders, frontmatter, rule files, instruction files: every tool wants its own shape.
Scripts, tool allow-lists and auto-invocation don't exist everywhere.
A port that silently drops a step still looks finished.
Also works from inside Claude or Codex via an MCP connector. The assistant finds, loads and follows the right skill.
› draft release notes from merged PRs
name: release-notes
allowed-tools: Bash, Read
scripts/changelog.ts
Describe the job in plain language. SkillForge interviews you and drafts a complete, validated skill in one canonical model.
release-notes → 7 adapters
Seven adapters compile it into each platform's native shape and take the shortest install route each tool really allows, including straight into the tool's folder on your Mac.
Deterministic structure and quality checks run on every build. Then try it side by side: the same request answered without the skill and with it.
Every save is a version snapshot. Every change is in the audit log. Every platform claim links to the vendor doc behind it.
Each time a target can't express something your skill uses, the Semantic Gap Report records it and says what was done about it.
SEMANTIC GAP REPORT
skill: release-notes v4 · click a row for its diff
7targets
4gaps
0unhandled
canonical · SKILL.md
SKILL.md scripts/changelog.ts templates/notes.md
output · claude.ai
SKILL.md unchanged scripts/changelog.ts unchanged templates/notes.md unchanged
canonical · SKILL.md
allowed-tools: Bash, Read scripts/changelog.ts
output · claude code
allowed-tools: Bash, Read unchanged scripts/changelog.ts unchanged
canonical · SKILL.md
name: release-notes description: Draft release notes…
output · agent skills
name: release-notes unchanged description: Draft release… unchanged
canonical · SKILL.md
- allowed-tools: Bash, Read
output · codex/release-notes
+ ## Tools for this skill + Use only Bash and Read. + (instruction only: not enforced by the platform)
canonical · SKILL.md
scripts/changelog.ts (bundled, invoked by the skill)
output · gemini-cli/release-notes
scripts/changelog.ts (kept as a file) + Step 4: run scripts/changelog.ts and paste its output.
canonical · SKILL.md
- description: Draft release notes from merged PRs - (auto-invoked when the request matches)
output · cursor/release-notes.mdc
+ description: Draft release notes from merged PRs + alwaysApply: false + (closest rule trigger: behaviour may differ)
canonical · SKILL.md
- See templates/notes.md for the layout.
output · copilot instructions
+ ## Template (inlined from templates/notes.md) + ### Highlights … ### Fixes … ### Breaking changes + (+2.1k tokens)
Click any row to open its diff
Illustrative sample built from SkillForge's rules. Target behaviour shown is an example, not a statement of current vendor capability. Real reports link each row to the vendor documentation and its verification date.
38 tests · CI passing on main
enforced in packages/adapters/*.test.ts
Rulepackages/adapters
test: capability requires evidence URL + date
An adapter can't declare support for anything without an evidence URL and a verification date. If it isn't documented, SkillForge doesn't assume it.
Rulegap reports
test: unhandled gap fails the build
Every capability a skill uses that a target lacks produces a Gap entry saying what was done about it. A build with an unhandled gap fails.
$ pnpm testno network · no model calls
✓adapters/claude-code capability 'scripts' evidence: https://… verified: 2026-10-14
✓adapters/codex capability 'scripts' evidence: https://… verified: 2026-10-12
✓gap-report release-notes v4 4 gaps · 0 unhandled
✗adapters/example capability 'hooks' evidence: — → test failed: no evidence URL
Paste a SKILL.md, drop a ZIP or give a GitHub URL. SkillForge parses and analyses it and never executes it. You get a verdict, the coverage, and an A–D grade for operational readiness.
Pasted · pr-summariser/SKILL.mdparsed, not executed
SkillForge runs on your own Mac today, as a background service at localhost:4100, reachable from your network if you allow it. It has individual accounts with private libraries, version snapshots and an audit log. It's built for one person or a small trusted team, not yet for an organisation.
The full list of what isn't yet protected is published in the architecture docs:docs/architecture/overview.md §(e)
We're opening early access to engineering and platform teams running two or more agents. Tell us which ones and we'll get in touch.
No spam. One email when it's ready.