Authoring Overview
Git-Ape is a GitHub Copilot agent plugin. The plugin manifest at the repo root declares two directories that Copilot discovers automatically:
plugin.json
{
"name": "git-ape",
"agents": ".github/agents/",
"skills": ".github/skills/"
}
Everything else β prompts, eval suites, the CI matrix β supports the contents of those two directories.
Vocabularyβ
| Term | File pattern | Discovered by | Purpose |
|---|---|---|---|
| Skill | .github/skills/<name>/SKILL.md | Plugin manifest (skills:) | A focused, callable capability with a documented procedure. Invoked by agents or directly with /<skill-name>. |
| Agent | .github/agents/<name>.agent.md | Plugin manifest (agents:) | A persona with a tools: allowlist that orchestrates one or more skills to deliver a workflow. Invoked with @<agent-name> in Copilot Chat or /<agent-name> in the CLI. |
| Prompt | .github/prompts/<name>.prompt.md | VS Code Chat prompt picker | A scripted authoring workflow (onboard, benchmark, improve, promote) you run while writing skills and agents. Not shipped to end users. Invoked with /<prompt-name>. |
| Eval suite | .github/evals/<name>/eval.yaml and .github/evals/agents/<name>/eval.yaml | microsoft/waza | A spec + tasks that score a skill or agent across models. |
Repo layoutβ
.github/
βββ agents/
β βββ azure-policy-advisor.agent.md
β βββ git-ape.agent.md
β βββ ...
βββ skills/
β βββ azure-cost-estimator/SKILL.md
β βββ prereq-check/SKILL.md
β βββ ...
βββ prompts/
β βββ skill-onboard.prompt.md
β βββ skill-bench.prompt.md
β βββ skill-improve.prompt.md
β βββ skill-promote.prompt.md
β βββ agent-onboard.prompt.md
β βββ agent-bench.prompt.md
β βββ agent-improve.prompt.md
β βββ agent-promote.prompt.md
βββ evals/
β βββ manifest.yaml # CI matrix configuration
β βββ <skill-name>/eval.yaml # Skill evals
β βββ agents/<agent-name>/eval.yaml # Agent evals
βββ workflows/
βββ waza-evals.yml # Per-PR skill evals
βββ waza-agent-evals.yml # Per-PR agent evals
plugin.json # Plugin manifest
.waza.yaml # Project-level waza config
When to add whatβ
| You want to⦠| Add a⦠|
|---|---|
| Wrap a single API or workflow step (cost lookup, policy query, naming rule check) | Skill |
| Coordinate several skills behind a persona (deployment, advisory, onboarding) | Agent |
| Score quality of a skill or agent across models | Eval suite |
| Scaffold, benchmark, or harden the skill or agent you just wrote | Reuse an existing prompt β onboard β bench β improve β promote covers the loop. New prompts are rarely needed. |
Naming and registrationβ
- Skill directory names and agent file basenames use lowercase kebab-case. The skill's
SKILL.mdfrontmattername:field must match the directory name; the agent's.agent.mdfrontmattername:is a display name and is separate from the file basename. - Adding a new file under
.github/skills/<name>/or.github/agents/<name>.agent.mdis all you need to register it β there is no separate index to update. The plugin manifest scans the directories on load. - For a new skill to appear in CI evals, append a
{ name, tier }entry to.github/evals/manifest.yamland create.github/evals/<name>/eval.yaml. See Eval suites.
Read nextβ
- Authoring skills β frontmatter, structure, and minimum bar
- Authoring agents β persona-lock,
tools:taxonomy, sub-agent wiring - Eval suites β what graders score, how tasks are structured
- Prompts β onboard, bench, improve, and promote your skill or agent from creation