Production-grade platform engineering handbook — Kubernetes, Terraform, Flux CD, GitHub Actions, AWS, and more.
64
80%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Add one agent to an existing setup without re-running the full interview.
What role should the new agent have?
(e.g. "data-pipeline", "ml", "security", "release" — or describe what it should own)Then:
What files/directories does it own?
What is explicitly off-limits for it?
What triggers a handoff to it from the coordinator?# Look in all five output targets — not just Copilot/Cursor
COORD=$(ls .github/agents/coordinator.agent.md \
.cursor/rules/coordinator.mdc 2>/dev/null | head -1)
# Codex-only repos: openai.yaml holds all agents, read the whole file
[ -z "$COORD" ] && [ -f agents/openai.yaml ] && COORD=agents/openai.yaml
# Claude Code only: Agent Context table in CLAUDE.md
[ -z "$COORD" ] && grep -q "## Agent Context" CLAUDE.md 2>/dev/null && COORD=CLAUDE.md
[ -n "$COORD" ] && cat "$COORD"
cat AGENTS.md 2>/dev/nullNote: when COORD is agents/openai.yaml or CLAUDE.md, the file contains all agents — read it for full roster context, not just the coordinator entry.
Use 3-section format from references/setup-agents-prompts.md. Apply the managed-file marker in the correct comment syntax for the target format — see references/setup-agents-schemas.md → "Managed-file marker".
Overwrite guard — before writing any file that already exists:
managed() { head -1 "$1" 2>/dev/null | grep -q 'generated by platform-skills'; }
# if [ -f "$target" ] && ! managed "$target"; then warn and skip fiInclude in ## Boundaries:
**Always read `AGENTS.md` first** before acting on any request.Active staleness guard: verify every path referenced in ## How to work here exists before writing.
Use the default suggestion for the role (see generate mode Step 6b role table). Ask the developer to confirm or change:
Suggested model for <role>: <tier-default>
Accept or change?Write model: only in targets that support it (Copilot .agent.md, Codex agents/openai.yaml). Omit for Cursor .mdc and Claude Code CLAUDE.md.
Add handoff entry for the new agent to coordinator's ## Boundaries section.
Append to the <!-- setup-agents metadata --> block in AGENTS.md:
additions:
- date: YYYY-MM-DD
agent: <role>
reason: |
<why this agent was added>If .platform-skills/manifest exists, append the new tool target(s) for this agent. This keeps scripts/verify-agents.sh aware of the new output:
# Example: adding the first Cursor agent to a Copilot-only repo
echo "cursor" >> .platform-skills/manifestValid manifest tokens: copilot-vscode, copilot-cloud, copilot-app, cursor, codex, windsurf, vscode-mcp. One token per line. Lines starting with # are comments. Do not add duplicate tokens — check first:
grep -qx "cursor" .platform-skills/manifest 2>/dev/null || echo "cursor" >> .platform-skills/manifestIf .platform-skills/manifest does not exist (setup pre-dates manifest support), create it and populate from the agents that are currently present:
ls .github/agents/*.agent.md 2>/dev/null && echo "copilot-vscode" >> .platform-skills/manifest
ls .cursor/rules/*.mdc 2>/dev/null && echo "cursor" >> .platform-skills/manifest
test -f agents/openai.yaml && echo "codex" >> .platform-skills/manifest.claude-plugin
.github
assets
commands
docs
examples
agent-self-improve
argocd
awesome-docs
aws
cloudfront
functions
lambda-edge
functions
azure
compliance
conventional-commits
datadog
llm-observability
demo
documentation
dora
dynatrace
fluxcd
github-actions
composite-actions
configure-cloud
db-migrate
docker-build-push
k8s-deploy
notify-slack
pr-comment
release-tag
security-scan
setup-env
setup-terraform
terraform-plan
helm
web-service
templates
karpenter
kubernetes
kyverno
mcp
observability
openshift
pr-review
ownership
runtime-security
setup-agents
terraform
references
scripts
skills
platform-skills
tests