Skip to main content

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​

TermFile patternDiscovered byPurpose
Skill.github/skills/<name>/SKILL.mdPlugin manifest (skills:)A focused, callable capability with a documented procedure. Invoked by agents or directly with /<skill-name>.
Agent.github/agents/<name>.agent.mdPlugin 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.mdVS Code Chat prompt pickerA 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.yamlmicrosoft/wazaA 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 modelsEval suite
Scaffold, benchmark, or harden the skill or agent you just wroteReuse 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.md frontmatter name: field must match the directory name; the agent's .agent.md frontmatter name: is a display name and is separate from the file basename.
  • Adding a new file under .github/skills/<name>/ or .github/agents/<name>.agent.md is 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.yaml and create .github/evals/<name>/eval.yaml. See Eval suites.
  • 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