GitHub Copilot Skills

GitHub Copilot Skills

Foundation ships a set of reusable GitHub Copilot Skills — structured prompt files that teach Copilot (and other AI agents, including Claude Code — the primary coding agent) how to perform common, multi-step development tasks consistently across every project that follows this architecture.

Skills live in .github/skills/<skill-name>/SKILL.md. They are picked up automatically by GitHub Copilot when the agent reads the repository.


Why Skills?

Without a skillWith a skill
Agent guesses the right lint/test commandsAgent runs the exact commands from lefthook.yml
Inconsistent fix strategies across sessionsDeterministic, documented procedure every time
Silent failures when a step is skippedRequired steps are explicit; status table always reported

Available Skills

SkillTrigger phrasePurpose
pre-commit-check"run pre-commit checks", "fix lint errors", "green-light this branch"Mirrors lefthook hooks; auto-fixes what it can; reports remaining issues

pre-commit-check

File: .github/skills/pre-commit-check/SKILL.md

📥 Download template

What it does

Mirrors the lefthook hooks exactly, then auto-fixes anything fixable, then reports remaining issues that require manual attention.

HookToolScopeAuto-fixable?
pre-commitBiomeJS check --writeui/ TS/TSX/JS/CSS✅ Yes
pre-commitRuff check --fix + formatapi/ Python✅ Yes
TypeScript tsc --noEmitui/web-app, ui/marketing❌ Manual fix required
pre-pushpytestbackend/api❌ Manual fix required
pre-pushVitestui/web-app❌ Manual fix required

When to invoke it

Use this skill before committing, before opening a PR, or any time you want to confirm a branch is clean:

  • "Run pre-commit checks"
  • "Fix lint errors"
  • "Fix type errors"
  • "Green-light this branch"
  • "Pre-push check"

Procedure summary

  1. Identify scope — check git status for changed packages; honor any argument passed (e.g. "api").
  2. BiomeJS auto-fixpnpm biome check --write . from the repo root, then verify with pnpm biome check ..
  3. Ruff auto-fixuv run ruff check --fix . && uv run ruff format ., then verify.
  4. TypeScript type-check (web-app)cd ui/web-app && pnpm exec tsc --noEmit. Fix errors manually.
  5. TypeScript type-check (marketing)cd ui/marketing && pnpm exec tsc --noEmit. Fix errors manually.
  6. pytestcd backend/api && uv run --extra dev pytest. Never delete tests to make them pass.
  7. Vitestcd ui/web-app && pnpm test.
  8. Final verification — re-run all checks; every command must exit with code 0.

Output

The skill always ends with a status table:

CheckStatusNotes
BiomeJS lint/format✅ / ❌Remaining manual-fix items
Ruff lint/format✅ / ❌Remaining manual-fix items
TypeScript — web-app✅ / ❌Error count
TypeScript — marketing✅ / ❌Error count
pytest✅ / ❌Passed / total
Vitest✅ / ❌Passed / total

Adding a New Skill

  1. Create .github/skills/<skill-name>/SKILL.md in the target repository.

  2. Add the required YAML front matter:

    ---
    name: <skill-name>
    description: '<one-line description + USE FOR: trigger phrases>'
    argument-hint: 'Optional: ...'
    ---
  3. Write the procedure using numbered steps with exact shell commands.

  4. End with a reporting section (status table or structured output).

  5. Copy the file to public/templates/skills/<skill-name>/SKILL.md in this repo and add a row to the Available Skills table above.

Skills are plain Markdown. They do not require special tooling — any AI agent that reads the repository can follow them.