skill-forge
| Field | Value |
|---|---|
| Type | Skill |
| Source | ~/.copilot/skills/skill-forge/SKILL.md |
| Description | Create new Agent Skills, validate existing ones, and sync them across Claude Code, Codex, and GitHub Copilot. Use this for authoring or editing a skill from scratch (naming, frontmatter, triggers, references, templates), validating a skill’s format and standards compliance, or syncing and sharing skills across tools and team folders. Triggers: “create a skill”, “new skill”, “edit this skill”, “improve skill triggering”, “skill eval”, “tune skill description”, “validate this skill”, “sync my skills”, “share this skill”, “convert this skill”, “share these skills with”, “install this skill”, “package a skill”, or “share only certain skills”. |
Bundled Pages
| Group | Name | Source |
|---|---|---|
| References | CLI Reference | ~/.copilot/skills/skill-forge/references/cli.md |
| References | Skill Authoring | ~/.copilot/skills/skill-forge/references/skill-authoring.md |
| References | Standards Linter | ~/.copilot/skills/skill-forge/references/standards-linter.md |
| References | Sync and Share | ~/.copilot/skills/skill-forge/references/sync-and-share.md |
| References | Targets and Formats | ~/.copilot/skills/skill-forge/references/targets-and-formats.md |
| Scripts | Check_skill | ~/.copilot/skills/skill-forge/scripts/check_skill.py |
| Scripts | Skill_sync | ~/.copilot/skills/skill-forge/scripts/skill_sync.py |
| Scripts | Standards_linter | ~/.copilot/skills/skill-forge/scripts/standards_linter.py |
Source Content
Skill Forge
| Domain | Skill design, validation, and distribution across tools |
| Role | Skill author, validator, and DevOps — the guardrail between idea and usable artifact |
| Output | A production-ready SKILL.md under 500 lines + optional references/, scripts/, templates/; validated against standards; synced across tools on demand |
This skill absorbed skill-creator (authoring, scaffolding, description tuning) and skill-sync (validation, format normalization, cross-tool distribution). Both workflows run here; the consolidation plan calls this the standards-linter home.
Route by task
| You’re… | Read | Gate with |
|---|---|---|
| Authoring / Scaffolding | ||
| Starting a new skill from scratch or concrete example | references/skill-authoring.md — triggers, frontmatter, body template, YAML tuning | scripts/check_skill.py <skill-dir> |
| Editing an existing SKILL.md for clarity or better triggering | references/skill-authoring.md — trigger rewrite, progressive disclosure patterns | scripts/check_skill.py <skill-dir> |
| Splitting a bloated SKILL.md into references/ files | references/skill-authoring.md — progressive disclosure rules, table-of-contents thresholds | scripts/check_skill.py <skill-dir> |
| Validation | ||
| Validating a skill’s format and portability before syncing | references/standards-linter.md — checklist for frontmatter, links, paths, entrypoints | scripts/standards_linter.py <skill-dir> |
| Checking a skill will trigger correctly when deployed | references/skill-authoring.md — description tuning, eval phrasings | scripts/check_skill.py + manual prompt test |
| Syncing / Sharing | ||
| Syncing all skills or specific skills to Claude Code, Codex, or Copilot | references/sync-and-share.md — workflows, tool destinations, format dialects | scripts/skill_sync.py sync |
| Sharing selected skills into a team folder or documentation repo | references/sync-and-share.md — folder structures, --prompt flattening, team recipes | scripts/skill_sync.py sync --dir |
| Converting a skill between tool formats (e.g., stripping Copilot-only keys for Codex) | references/sync-and-share.md — frontmatter dialects, --strict rules | scripts/skill_sync.py sync --strict |
| Flattening a skill into a paste-into-ChatGPT prompt | references/sync-and-share.md — prompt generation, size estimates | scripts/skill_sync.py prompt |
| Removing deleted skills from destinations (Claude, Codex) | references/sync-and-share.md — propagation, cleanup after merges | scripts/skill_sync.py remove |
House rules
- SKILL.md stays under 500 lines. Beyond routing table + house rules + use/don’t-use list, push detail into
references/. - Triggers must fire on real user phrasing. Not the canonical skill name — the way users actually ask. Test with a representative prompt.
- Frontmatter always has
name(matches directory) anddescription(~1,200 chars max). The description carries every trigger phrase from every absorbed skill when consolidating. - Every referenced path (
references/,scripts/,templates/) must exist on disk. The standards linter gates this. - Scripts are deterministic and self-contained. No external dependencies beyond stdlib; Python 3.9+; run cleanly on any file or dir passed to them.
Use me for
- Creating a new skill from a concrete example or recurring user request.
- Editing an existing SKILL.md for clarity, leaner context, or better triggering.
- Splitting bloated SKILL.md into
references/files with progressive disclosure. - Validating a skill before committing or deploying it.
- Syncing skills across Claude Code, Codex, Copilot, and team folders.
- Sharing selected skills into a documentation repo or with a team.
- Converting a skill between tool formats.
Don’t use me for
- Authoring the domain knowledge inside a skill (that is the domain skill’s job).
- Configuring the harness (hooks, permissions) →
update-config. - Keyboard shortcuts →
keybindings-help. - Building or refactoring code that a skill’s scripts operate on → the appropriate domain skill.
How I work
- Get the concrete ask. “What would a user actually say? What artifact do they want back?” or “Which skills need syncing where?”
- For authoring: Plan reusable resources (scripts for deterministic steps, references for domain detail, templates for output scaffolds). Write SKILL.md to the template. Tune the trigger line and description until likely user phrasings would fire it. Push bulk beyond the routing table into
references/. - For validation: Run
scripts/standards_linter.py <skill-dir>to check frontmatter, name/directory match, description length, routing table presence, all referenced paths, and script entrypoints. - For syncing: Map skills to destinations (Claude/Codex/Copilot tool dirs, or arbitrary folders). Run validation for each target dialect. Clean-copy (excluding
__pycache__/,.DS_Store,.git/, etc.). Optionally generate paste-into-ChatGPT prompts for non-agent consumers. - For cleanup: Remove stale skill copies from destinations after a merge or deletion.
Self-rubric (run before I respond)
- For authoring: Triggers cover real phrasing, not just the canonical name. SKILL.md is under ~500 lines; routing table is present and matches the workflow. References exist on disk; no dangling links.
- For validation: Standards linter exits 0 — frontmatter valid, name matches directory, description under cap, all paths exist, scripts are executable.
- For syncing: Destination(s) confirmed; dry-run passes; junk excluded (no
__pycache__/,.DS_Store,.git/); format dialect correct (strict dropped foreign keys as intended). - For removal: Skill deleted from source; all destination copies (Claude, Codex, or custom folders) confirmed removed.
References
references/skill-authoring.md— anatomy, triggers, frontmatter tuning, progressive disclosure, templates, the 500-line cap.references/standards-linter.md— the linter’s checklist: frontmatter shape, name/directory match, description length cap, routing table rules, reference link integrity, script entrypoints.references/sync-and-share.md— tool install locations, frontmatter dialects per tool, junk exclusion, clean-copy workflow, prompt generation, team sharing recipes.scripts/check_skill.py— validates frontmatter and reference-link integrity on a single skill.scripts/standards_linter.py— extends check_skill.py to gate the full standards checklist (routing table, script entrypoints, description length, name/directory match).scripts/skill_sync.py— list, validate, sync, prompt, and remove subcommands; the distribution engine.