## Why
skill-author explicitly excludes agent definition files ("Do not use to author
agent definition files"). No factory skill existed to create or improve the
.md / .agent.md files that define Claude Code subagents and Copilot CLI agents
in a plugin, project, or user scope. This fills that gap.
## Implementation Notes
Single-root scaffold convention: new-agent.sh <name> <root> derives both
provider file paths from the root by convention — plugin scope (plugin.json
present) writes both files into <root>/agents/; non-plugin scope writes
.claude/agents/<name>.md and .github/agents/<name>.agent.md. This keeps
input minimal while always generating both provider files. See ADR-0015.
Routing is file-level (not directory-level like skill-author): neither file
exists → create flow; at least one exists → improve flow; scaffold is a
file-by-file no-op so retries are safe.
No companion agent-audit skill — inline validation in the close step covers
the simpler agent field contract. agent-audit is tracked as a follow-on.
## Impact
Closes the skill-author gap for agent definitions. Follow-ons tracked in
Gitea #11: agent-audit skill and --copilot-dest override flag for non-standard
Copilot project paths.
---
ADR: docs/adr/0015-agent-author-dual-provider-scaffold.md
Refs: #10
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
572 B
572 B
scripts/
new-agent.sh
Scaffolds agent definition files for both Claude Code and GitHub Copilot CLI from a single root directory input.
Usage: new-agent.sh <agent-name> <root>
Detects scope from the root: plugin.json present → plugin scope (both files in <root>/agents/); ~ → user scope (~/.claude/agents/ + ~/.copilot/agents/); otherwise project scope (.claude/agents/ + .github/agents/). Each file is a no-op if it already exists. See --help for full usage.
Tests: tests/new-agent.bats (requires bats-support and bats-assert).