CtrlK
BlogDocsLog inGet started
Tessl Logo

nitinjain999/platform-skills

Production-grade platform engineering handbook — Kubernetes, Terraform, Flux CD, GitHub Actions, AWS, and more.

64

Quality

80%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

setup-agents-add.mdreferences/

add Mode Steps

Add one agent to an existing setup without re-running the full interview.

Step 1 — Ask

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?

Step 2 — Find coordinator and read context

# 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/null

Note: 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.

Step 3 — Generate new agent

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 fi

Include 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.

Step 3b — Model selection

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.

Step 4 — Patch coordinator

Add handoff entry for the new agent to coordinator's ## Boundaries section.

Step 5 — Update AGENTS.md

  • Managed (marker present): add row to Agent roster table
  • Hand-authored: append new row at the bottom of the roster section only

Step 6 — Update metadata block

Append to the <!-- setup-agents metadata --> block in AGENTS.md:

additions:
  - date: YYYY-MM-DD
    agent: <role>
    reason: |
      <why this agent was added>

Step 7 — Update .platform-skills/manifest

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/manifest

Valid 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/manifest

If .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

BEFORE_AFTER.md

CHANGELOG.md

CODE_OF_CONDUCT.md

COMMANDS.md

CONTRIBUTING.md

EDITOR_INTEGRATIONS.md

GETTING_STARTED.md

HOW_IT_WORKS.md

install.sh

INSTALLATION.md

LAUNCH.md

PROMPTS.md

QUICKSTART.md

README.md

renovate.json

SECURITY.md

SKILL.md

tessl.json

tile.json