
Agents Md
- 65 installs
- 1 repo stars
- Updated July 23, 2026
- devarfeen/agent-skills-kit
agents-md is an agent skill (agent-tooling) that documents canonical AGENTS.md usage and Antigravity CLI tool-call equivalents for standard coding-agent tools.
About
agents-md is the reference slice of the Agent Skills Kit for solo builders standardizing on Antigravity CLI. It is not a feature generator; it is the contract that tells your agent how familiar Claude-style tool names map to Antigravity primitives like read_file, write_file, replace, run_command, grep_search, glob, write_todos, search_web, read_url_content, and subagent dispatch. That matters when you are tired of agents hallucinating tool names or when you migrate a workflow from another agent stack into a workspace-first CLI. The doc also clarifies orchestration: @ references files, not agents, and parallelism comes from the Agent Manager and start_subagent rather than ad-hoc bash loops. For Prism’s audience—one person shipping with agents—the payoff is a single AGENTS.md you can regenerate or extend so every session starts with the same executable playbook. Use it whenever you adopt this kit, refresh workspace bindings, or onboard a new repo to Antigravity without duplicating vendor-specific shims.
- Maps 11 common agent tools (Read, Write, Edit, Bash, Grep, Glob, TodoWrite, Skill, WebSearch, WebFetch, Task) to Antigra
- Documents @ file references, parallel subagents via start_subagent, and optional isolated Git worktrees
- States Antigravity reads AGENTS.md from the active workspace with no Antigravity-specific shim in this kit
- Explicit memory guidance: no repo memory files or memory MCP servers—use generated AGENTS.md and binding context only
- Points to tool-calling.md and memory guidance for full kit behavior
Agents Md by the numbers
- 65 all-time installs (skills.sh)
- Ranked #6,085 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/devarfeen/agent-skills-kit --skill agents-mdAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 65 |
|---|---|
| repo stars | ★ 1 |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 23, 2026 |
| Repository | devarfeen/agent-skills-kit ↗ |
What it does
Generate and align a canonical AGENTS.md plus tool-call mappings so Antigravity CLI agents know which workspace tools replace familiar Read/Write/Bash/Skill patterns.
Who is it for?
Best when you're adopting devarfeen’s agent-skills-kit with Antigravity CLI and want one canonical instruction file and a clear tool-name cheat sheet.
Skip if: Skip if you do not use Antigravity CLI or and need persistent cross-repo memory stores this kit explicitly discourages.
When should I use this skill?
Setting up or updating Antigravity CLI workspace context with AGENTS.md from the agent-skills-kit.
What you get
After applying the kit guidance, your workspace ships a consistent AGENTS.md and tool-calling index so agents invoke the right CLI commands and avoid unsupported memory-file hacks.
- Aligned AGENTS.md convention
- Tool-name mapping reference for agents
- Memory policy guidance (no repo memory files)
By the numbers
- 11 tool mappings listed in the tool-calling index table
Files
AGENTS.md Generator
Generate agent instructions for VS Code workspaces only.
Scope
- Target root must contain a
*.code-workspacefile. - If no
*.code-workspacefile exists, stop. Do not generate files. - Do not support individual project or repo generation.
- Do not generate per-project or per-repo
AGENTS.md. - Generate one workspace-root
AGENTS.md. - Generate one workspace-root
CLAUDE.md. - Support both multi-folder and single-folder
.code-workspacefiles.
Source Of Truth
AGENTS.mdis the single source of truth for Codex CLI, Claude CLI, Antigravity CLI, Cursor CLI, Opencode CLI, and GitHub Copilot CLI.CLAUDE.mdis only a redirect shim for Claude CLI.CLAUDE.mdmust contain only the@AGENTS.mdforward plus the short redirect note shown below. Do not add or read any other context fromCLAUDE.md.- Do not duplicate operating rules in
CLAUDE.md. - Put context, native-memory policy, issue-routing, skill-use, and operating instructions in
AGENTS.md.
Use this exact CLAUDE.md:
# Agent Instructions
@AGENTS.md
This file redirects Claude CLI to AGENTS.md. AGENTS.md is the source of truth.AGENTS.md Tone And Intro
- Generated
AGENTS.mdmust be spartan, direct, concise, and clear. - No fluff.
- No verbose explanation.
- Start generated
AGENTS.mdwith:
# Agent Instructions
[one concise workspace intro inferred from the .code-workspace name and folder scan]Workspace Scan
- Use only two input sources: the
.code-workspacefile and the small-scan of its workspace folders. - Do not read or copy from the agent's own global or user instruction files. This includes global
AGENTS.md, user or globalCLAUDE.md,~/.claude/CLAUDE.md,~/.codex/, and any personal memory or rules file. - Never copy the agent's personal global rules (co-author, memory, context, issue-routing, or similar) into the generated
AGENTS.mdorCLAUDE.md. - Parse the
.code-workspacefolderslist. - Build the Project Matrix only from that
folderslist. - Derive each project's PROJECT-CODE from the folder's
name(see Project Matrix Format). Use path/package metadata only whennameis missing. - Support multi-folder and single-folder
.code-workspacefiles. - Small-scan every workspace folder before generating
AGENTS.md. - Infer stack details from real files such as
composer.json,package.json,requirements.txt,pyproject.tomland other common stack indicators.
- Generate the multi-technology warning from scan results.
- When multiple stacks are detected, the intro must tell agents that the workspace contains multiple technologies and that they must not mix and match conventions or code across projects.
Stack Detection
The Stack cell is fact read from manifests, not a guess from a folder's name or the mere presence of a file.
- Find the real app root. Code often lives in a nested dir (
application/,app/,src/), not the folder top. Read the manifest there and note the dir, e.g.(application/). - Read manifest contents; never infer from a file's existence. A
phpunit.xmlis not proof of PHPUnit; anapplication/dir is not proof of Vite. - PHP —
composer.json:require.phpfor version, frameworks fromrequire(laravel/framework,livewire/livewire). CodeIgniter version fromsystem/core/CodeIgniter.phpCI_VERSION. List every primary framework — a Livewire app must say Livewire. - Frontend build — read the app's own
package.json(usuallyapplication/package.json, not the repo root). ListVite/Tailwindonly whenvite/laravel-vite-plugin/tailwindcssare in its deps. Never assume Laravel implies a frontend build. - JS / TS —
package.json: runtime + version (react-native,next, …); markTypeScriptwhen atypescriptdep ortsconfig.jsonis present; package manager from the lockfile (package-lock.json→ npm,yarn.lock→ yarn,pnpm-lock.yaml→ pnpm). - Python — framework from
requirements.txt/pyproject.toml(fastapi,django,flask, …); version fromDockerfileFROM python:X.Y,.python-version, orrequires-python. - A test runner is not the stack. Name one (Pest vs PHPUnit, from
require-dev) only when there is no app framework — e.g. a plain-PHP site. - Distrust the `name` field and root-level manifests. A root
package.jsonmay be mislabeled or belong to a sibling; trust the app-root manifest and lockfiles.
Project Matrix Format
The Project Matrix is a table in the generated AGENTS.md. One row per .code-workspace folder, in folders order. No extra rows. Never invent projects.
Generate it with these exact columns:
| Project | Path | Stack |
| ------- | ---- | ----- |Project: the PROJECT-CODE derived from the foldername— strip emojis, uppercase every letter, replace each run of spaces, separators, or punctuation with a single hyphen, then trim leading/trailing hyphens. Example:Partners API→PARTNERS-API,Web→WEB. This is the single identifier agents use everywhere — chat, docs, ADRs, prompts, issues, PRs, commits, comments, and filenames. Whennameis missing, derive it from the folder path basename.Path: the folderpathfrom the.code-workspace, relative to the workspace root. Use.when a single-folder workspace points at the root.Stack: concise summary from the Stack Detection scan — language, every primary framework, build tooling, package manager. One line, terse, but omit nothing defining. No version padding unless a manifest pins it.
Keep cells terse. No prose in cells.
Example:
| Project | Path | Stack |
| ------------ | -------------- | ---------------------------- |
| PARTNERS-API | ./partners-api | PHP 8.3 / Laravel / Composer |
| WEB | ./apps/web | TypeScript / Next.js / pnpm |Non-Negotiable Rules
Generate this section verbatim in AGENTS.md, after the Project Matrix:
````markdown
Non-Negotiable Rules
1. Target a Project
- Every task must target a project from the Project Matrix. If the prompt names no project, stop and ask which one before doing anything.
- When the user says "meta workspace", apply the task to every project in the matrix.
- Use the PROJECT-CODE from the Project Matrix exactly as written in chat, docs, ADRs, prompts, issues, PRs, commits, comments, and filenames. Never alter, abbreviate, or re-case it.
- In chat, identify projects by PROJECT-CODE, not folder names, repo names, domains, or hostnames. Mention paths only when the path itself matters.
2. Think Before Coding
- State assumptions.
- Present real interpretations.
- Push back on weak plans.
- Stop and ask when unclear.
3. Decision Options
Do not make the user infer your recommendation.
- Label decision options — When asking the user to choose, mark each option with
Recommended,Currently implemented, both, or neither. Put the label in the option title, not buried in the explanation. - Offer enough choices — Provide up to six concrete options when useful, plus a final
Write your ownoption for a custom answer. Do not force three options when the analysis found more real paths. - Recommend one path — If one option is best, label exactly one option
Recommended. If no option is safe to recommend, say why before the list.
4. Simplicity First
- Solve only the asked problem.
- Add no speculative features.
- Add no one-use abstractions.
- Remove complexity when a smaller fix works.
5. Surgical Changes
- Touch only required lines.
- Match local style.
- Do not refactor unrelated code.
- Clean only dead code your change creates.
6. Goal-Driven Execution
- Define success before edits.
- Turn bugs into reproductions.
- Turn changes into checks.
- Verify before reporting done.
7. Systematic Debugging
Find the root cause. Don't patch symptoms.
When something breaks:
- Reproduce the failure before changing anything
- Trace to the underlying cause, not the surface symptom
- No hacks, arbitrary waits/sleeps, or guess-and-check fixes
- After fixing, confirm the original reproduction now passes
Why: Symptom patches hide the real fault and resurface later as flakier, harder bugs.
8. Read Before Write
Before editing, understand why the code exists.
Map the surrounding context first:
- Callers and exports that depend on it
- Shared utilities it relies on
- The original intent behind the code
9. Local Orchestration
The main session is sole orchestrator, merger, conflict resolver, and final judge.
Parallelism:
- Parallelize safe independent lanes by default, across all skills
- Run prerequisites first, then parallelize newly unblocked lanes
- Serialize shared-file edits and integration
Background:
- Run long or noisy independent lanes locally — background/async or worktree-isolated
- Spawn them without asking when safe
- Never use cloud or remote agents: Cursor Cloud Agents, Copilot cloud coding agent, Codex Cloud/web, Antigravity managed/remote execution
- Await and integrate every lane
Roles:
- Use local role lanes: Explorer, Researcher, Planner, Implementer, Reviewer, Tester, Tool-runner
- Match tools to role: read-only for discovery/review/planning, write for implementation, shell for tests/tool runs
- Subagents return summaries, not transcripts
- Final synthesis stays in main
10. Honest State & Reporting
Enforced. No exceptions.
- Before any significant step, anchor state explicitly:
[verified](proven true),[current](in progress),[todo](not started) - At phase changes, send a short visible phase update:
Stage,Found,Next, andNeeds user - Do not bury phase updates inside long narration, raw tool output, or pre-tool chatter
- Continue within the same phase when the next action follows from the request
- Before entering a new phase, make the transition explicit
- Stop only when user input, approval, or a scope decision is needed
- After discovery, investigation, or broad file reads, give the phase update before planning, edits, tests, commits, PRs, or issue updates
- Never report work done while any part is skipped, stubbed, or unverified
- Surface constraints, risks, and assumptions up front — never bury or omit them
- After every successful task completion, end with
Recommended next step:and name the single best follow-up. Include why in one short sentence. - Then offer
Other good options:with up to six labeled choices when useful. Mark each option withRecommended,Currently implemented, both, or neither, following the decision-option rules above. - Include
Write your ownas the final option whenever asking the user to choose a next step. - Suggest only — never chain or auto-advance without the user choosing.
Why: Silent gaps and premature "done" are how broken work ships. Visible phase updates keep the user oriented without blocking routine progress.
11. Zero Attribution
No co-author, AI, tool, or generator attribution.
- Never add
Co-authored-by,Co-Authored-By,Generated by,AI-assisted,Made with, or similar attribution to commits, PR titles, PR bodies, issue comments, release notes, generated docs, or code comments. - If a tool adds attribution automatically, remove it before publishing, committing, pushing, opening a PR, or closing/commenting on an issue.
````
Working With Skills
Generate the gradient table and rules verbatim in AGENTS.md, after the Non-Negotiable Rules:
## Working With Skills
Skills are ad-hoc tools, not a pipeline. Treat every installed skill as available — no distinction between local and third-party.
Work follows this gradient. Pick the skill that fits the step in front of you; there is no required order and no state machine.
| Phase | Skills |
| --------- | --------------------------------------------------------- |
| discover | `/feature-discovery` |
| sharpen | `/feature-prompt` |
| plan | `/grill-with-docs` (→ ADR), `/to-prd` (→ PRD) |
| slice | `/to-issues` |
| implement | `/tdd` |
| verify | `/review`, `/diagnosing-bugs` |
| ship | `/commit-push-close`, `/commit-push-pr`, `/release-notes` |
- After finishing a step, suggest a sensible next skill when one fits. Suggest only — never chain or auto-advance.
- Do not assume a skill exists; use what is installed.
### Companion Skills And MCPs
These are optional separate installs. Use them beside this kit when installed and task-fit. Do not vendor them into this kit.
| Companion | Use when |
| --------- | -------- |
| ask-matt | You want Matt's upstream router for choosing a user-invoked skill flow. |
| domain-modeling | Project terminology, aliases, or ADR-backed domain language need sharpening. |
| codebase-design | Module boundaries, seams, or interface design decisions matter. |
| Graphify | Querying a generated code/docs/media graph would save broad file reads. |
| Codex plugin for Claude Code | Claude Code needs Codex for review or delegated work. |
| Impeccable | Frontend design quality, visual polish, or browser-backed UI checks matter. |
| notebooklm-py | The user asks to work with NotebookLM sources or artifacts. |
| agent-browser | Browser automation, app QA, screenshots, scraping, or Electron app control is needed. |
| herdr | Running inside herdr and managing panes, tabs, or worker agents is needed. |
| docker-expert | Dockerfiles, Compose, images, containers, or registry workflows are central. |
| Laravel Boost | A Laravel project has Boost installed and Laravel-specific MCP context helps. |
| Figma MCP | A task references Figma designs, components, frames, tokens, or design-to-code. |
| MySQL/Postgres MCP | Approved local or staging database inspection is needed. Default read-only. |
- Treat companion tools as helpers, not authority. Repo code, tests, ADRs, `CONTEXT.md`, and user instructions still win.
- Never assume a companion is installed. If missing, say so and continue with the best local fallback.
- Use MCPs only for the current task. Do not browse unrelated external data.
- For database MCPs, use the narrowest approved connection and read-only access unless the user approves a specific write.
### Matt Skill Routing
Use `/ask-matt` when the user asks which Matt skill or flow fits. It is a router over user-invoked Matt skills, not an executor. Do not auto-run the flow it suggests.
- Main flow for an idea: `/grill-with-docs` → decide if runnable uncertainty needs `/handoff` + `/prototype` + `/handoff` → for multi-session work, `/to-prd` then `/to-issues`.
- For each sliced issue, start a fresh session. Matt's upstream flow uses `/implement`; this kit still prefers `/tdd` as the implementation discipline when available.
- Use `/triage` only for raw incoming issues. Do not triage issues already created by `/to-issues`.
- Use `/improve-codebase-architecture` for codebase health. A chosen improvement becomes an idea to take into `/grill-with-docs`.
- `/handoff` forks context into a new session. `/compact` continues the same conversation; use it only at intentional phase breaks.Then, under the same ## Working With Skills heading, generate a ### Runtime Tool-Calling subsection from the kit's tool-calling docs. Read references/tool-calling.md (the "All runtimes (index)", "Parallel & background mechanism by runtime", and "Highest elevated permission by runtime" tables) and the per-runtime *-tools.md files, and emit three compact tables for the supported runtimes: (1) how each runtime invokes a skill, (2) its local parallel/background mechanism, and (3) the highest elevated launch / permission preset. Inline the results in AGENTS.md — do not link to the reference files; they do not ship into the generated workspace. Emit only the per-runtime mechanism; do not restate the Local Orchestration rule. In the elevated-permission table, say to use those presets only when the user explicitly asks for highest/elevated/full/YOLO permission and prefers an isolated container, VM, dev container, or disposable worktree.
Context & Native Memory
Generate this section verbatim in AGENTS.md, after the Working With Skills section. Leave the placeholder paths for the user to fill after project setup:
## Context & Native Memory
### Retrieval order
1. **Binding** — `CONTEXT.md` (<!-- set during setup: path to CONTEXT.md -->) and ADRs (<!-- set during setup: path to docs/adr -->). Read before implementing. These bind.
2. **Current task context** — the user request, active issue or PRD, named local docs, current code, tests, and command evidence.
3. **Native CLI memory** — use only the current CLI's native memory feature when it is enabled.
### Artifact policy
- Do not create repo `MEMORY.md` files, workspace wiki files, discovery files, or knowledge-graph files as default memory.
- Do not add memory MCP servers or third-party graph/index systems as default memory for this kit.
- Optional graph/index companions may be used only when installed and task-fit. Do not treat their artifacts as binding memory.
- Keep shared project context in `AGENTS.md`, `CONTEXT.md`, and ADRs.
- Use native CLI memory only when the current CLI provides it; do not sync memory between CLIs.
### Do not bulk-read
- `docs/` is an on-demand archive, not reading material. Never load it wholesale.
- Retrieve only what the current task names — by search or a discovery skill.
- Reading the whole archive rots context and wastes tokens. Pull the few relevant passages, nothing more.
### Archived context
When the user triggers `/grill-with-docs`, ask up front — before the Q/A starts — whether they have archived context for the feature: prior discussions, original intent, or decision history. Await their reply.
- The user pastes it, or says to continue without. Ask once; do not block repeatedly.
- Capture any pasted context verbatim in the ADR, with provenance. Maximum fidelity — do not summarize it away:
> Source: "<doc title>" · pasted <date>
>
> <verbatim excerpt — unedited>
- If a paste reveals an old or current feature name, offer to add it to `CONTEXT.md` aliases.
- Pasted history is advisory. If it contradicts a current ADR, flag the contradiction — never silently drop it.GitHub Issue Titles
Generate this section verbatim in AGENTS.md, after the Context & Native Memory section. Emit only this concise block — no extra prose. This is the title/label convention every skill and CLI anchors to; the procedure (routing, dependency order, gates) lives in the issue skills, not here:
## GitHub Issue Titles
Issue titles are findable from GitHub search and from the ADR filename. `<PROJECT-CODE>` is the PROJECT-CODE from the Project Matrix — uppercase, hyphenated, no spaces; use it exactly.
**PRD issue** — title starts exactly with:
`PRD: <PROJECT-CODE> ADR-<adr-number> <adr-name>`
- Derive `<adr-number>` and `<adr-name>` from the ADR filename in `docs/adr/` (without `.md`): `0042-stock-transfer-approvals.md` → `ADR-0042 stock-transfer-approvals`.
- Example: `PRD: PAYMENTS ADR-0042 stock-transfer-approvals`
**PRD slice issue** — title starts exactly with:
`Slice NNNN of <PROJECT-CODE> ADR-<adr-number> <adr-name> (#<prd-issue>): <Short heading>`
- `NNNN`: zero-padded four-digit slice number, local to that PRD, starting at `0001`.
- `<prd-issue>`: GitHub issue number of the parent PRD.
- `<Short heading>`: concise, action-oriented, scannable in an issue list.
- Example: `Slice 0001 of PAYMENTS ADR-0042 stock-transfer-approvals (#4812): Add approval state model`
**Non-PRD issue** — not tied to a PRD:
`<PROJECT-CODE>: <short imperative heading>`
**Labels:** every triaged issue carries exactly one category (`bug` or `enhancement`) and exactly one state (`needs-triage`, `needs-info`, `ready-for-agent`, `ready-for-human`, `wontfix`).Output Style
Generate this section verbatim in AGENTS.md, after the GitHub Issue Titles section:
## Output Style
Chat only. Does not apply to code, docs, PRDs, release notes, PR bodies, or prompts.
### 1. Plain-Language Chat
- Be extremely concise. Sacrifice grammar for the sake of concision.
- Use short, complete sentences when clarity would otherwise suffer. Clarity beats compression.
- Lead with the conclusion.
- Use everyday words. Prefer short common words when the meaning is the same: "fix" over "implement a solution", "big" over "extensive", "unclear" over "ambiguous".
- Default to simple but technical English. Say what failed, then why, in one clear sentence when possible.
- Write for users who may not read English fluently.
- Keep all chat simple: answers, questions, status updates, summaries, options, and recommendations.
- Use short sentences. One idea per sentence.
- Prefer plain words: "use" over "utilize", "help" over "facilitate", "show" over "surface", "before" over "prior to".
- Explain practical effect first. Put code names and system terms after the plain explanation.
- Explain technical terms once, in simple words.
- Rewrite dense findings into simple cause, effect, and choice.
- Avoid heavy words like "parity" unless they are exact code, product, or domain names the user already uses.
- Keep exact code, DB, API, route, screen, and file names verbatim.
- Explain what those names do when they matter to the answer.
- Split dense technical chains into `Correction`, `Why`, `Scope`, `Change`.
- For questions and options, start with the real decision in simple words. Add technical details only where needed.
- For bug, test, or post-mortem explanations, name the plain failure first: "the test data made both cases identical", "the code skipped missing files", or "the old check never tested the real path". Put project terms after the plain failure, not before it.
- Avoid arrow-only flows unless followed by plain words.
- If one sentence has more than three identifiers, split it.
- Do not use unexplained shorthand like "keys off", "guarded", "live path", "canonical flow", or "shared screen".
- Optional brevity skills are user-invoked only.
### 2. Understanding Checks
When the user asks you to repeat, confirm, or restate their understanding:
- Restate only what you understand.
- Ask the user to approve or correct it.
- Stop there. Do not plan, edit, run tools, or continue until the user confirms or corrects the understanding.Tool-calling index: `tool-calling.md`.
| Skill Reference | Antigravity CLI Equivalent |
|---|---|
Read (file reading) | read_file |
Write (file creation) | write_file |
Edit (file editing) | replace |
Bash (run commands) | run_command |
Grep (search content) | grep_search |
Glob (search by name) | glob |
TodoWrite (task tracking) | write_todos |
Skill tool (invoke a skill) | auto-activated from SKILL.md metadata (no explicit tool; mention skill name to force activation) |
WebSearch | search_web |
WebFetch | read_url_content |
Task tool (dispatch subagent) | start_subagent (proto field invoke_subagent); browser_subagent for browser tasks |
Key Notes:
@references files/context (e.g.@src/main.go), not agents.- Parallelism comes from the Agent Manager and
start_subagent: the orchestrator decomposes a goal and spawns dynamic subagents that can share the parent's workspace or run in an isolated Git worktree (clean context window, same model). - Antigravity CLI reads
AGENTS.mddirectly from the active workspace as a supported context file. This kit treatsAGENTS.mdas the canonical instruction file for Antigravity CLI and emits no Antigravity-specific shim. - Memory: No native memory file store in this kit's supported model. Use generated
AGENTS.mdand binding context files. Do not create repo memory files or add memory MCP servers for this kit. See `memory-global-defaults.md`. - Multi-repo workspace policy: use workspace-root MCP config.
- For exact config-file placement by tool, use `tool-calling.md`.
Agents: parallel, background & roles
Parallelism is built into the Agent Manager: start_subagent spawns dynamic, dependency-aware subagents (parallel execution; specific concurrency limit is not publicly documented). Local background: /schedule runs cron-style tasks that survive app close, and Artifacts (plans, diffs, walkthroughs) are written to a folder you review on return. Managed Agents API / remote managed execution is cloud — do not use it.
| Role | Antigravity mechanism |
|---|---|
| Orchestrator | lead agent / Agent Manager (owns merge + final judgment) |
| Explorer | start_subagent with a read-only subagent definition |
| Researcher | start_subagent + search_web / read_url_content |
| Planner | planning mode (task groups, Artifacts) |
| Implementer | start_subagent with a write-enabled subagent definition |
| Reviewer | start_subagent with a read-only reviewer subagent definition |
| Tester | start_subagent running tests / build |
| Tool-runner | start_subagent scoped to shell; browser_subagent for browser sequences |
MCP: project .agents/mcp_config.json; remote HTTP entries use serverUrl. Skills: project .agents/skills/<name>/SKILL.md; user-global ~/.gemini/antigravity/skills/<name>/ (also .agent/skills/ accepted as a back-compat path).
Permissions, hooks, slash commands
- Permission resources (config +
/permissions):read_file,write_file, plus MCP-tool filtering. Rules useaction(target)form with Allow / Deny / Ask lists. - Permission modes:
request-review(default),proceed-in-sandbox,always-proceed,strict. - Highest elevated permission launch:
agy --dangerously-skip-permissions. Do not combine it with--sandboxwhen the goal is full elevation;--sandboxenables terminal restrictions. - Hooks:
PreToolUse/PostToolUsewith regexmatcheron tool name; JSON schema includestoolCall.name,toolCall.args,stepIdx, plus common fields (conversationId,workspacePaths,transcriptPath,artifactDirectoryPath). Hook decision values:allow,deny,ask. - Useful slash commands:
/goal,/grill-me,/schedule,/browser,/artifact,/permissions,/context,/btw,/model,/config. - Non-interactive:
agy -p "<prompt>"for pipelines.
Tool-calling index: `tool-calling.md`.
Authoritative tool reference: https://code.claude.com/docs/en/tools-reference
| Skill Reference | Claude CLI Equivalent |
|---|---|
Read (file reading) | Read |
Write (file creation) | Write |
Edit (file editing) | Edit |
Bash (run commands) | Bash |
Grep (search content) | Grep |
Glob (search by name) | Glob |
TodoWrite (task tracking) | TaskCreate / TaskGet / TaskList / TaskUpdate (TodoWrite is disabled by default as of v2.1.142) |
Task tool (dispatch subagent) | Agent (spawns a subagent in its own context window and returns the final result) |
WebSearch | WebSearch |
WebFetch | WebFetch |
| Skill invocation | /skill-name, the built-in Skill tool, or automatic loading when the request matches the skill description |
Key Notes:
- Tool names are the exact strings used in permission rules (
permissions.allow/deny), subagenttoolslists, and hook matchers. Permission patterns also accept file globs and domain filters:Read(~/secrets/**),Edit(/src/**),Agent(Explore),WebFetch(domain:example.com). - The subagent tool is
Agent. It runs autonomously in a separate context window and returns a single text result; parallel work means multipleAgentcalls in one turn. - Skills run through the built-in
Skilltool — there is no separate per-skill tool entry. Invoke directly with/skill-name, or let Claude CLI auto-load a skill when the request matches itsdescription. - Task tracking uses
TaskCreate/TaskGet/TaskList/TaskUpdate/TaskStop.TodoWriteis disabled by default; setCLAUDE_CODE_ENABLE_TASKS=0to re-enable it. - Skills support
allowed-toolsfrontmatter to restrict which tools a skill may use. - Claude CLI reads
CLAUDE.mdas its canonical workspace file, notAGENTS.md. To share rules across runtimes, keepAGENTS.mdcanonical and write aCLAUDE.mdshim that imports only it (e.g.@AGENTS.md) — this is the pattern theagents-mdskill emits. - Memory: Auto memory is on by default (
autoMemoryEnabledin settings;/memoryto toggle). Native project memory is user-local. Do not create, import, symlink, or sync repo memory files. See `memory-global-defaults.md`. - Other built-in tools available for permission / hook matchers:
AskUserQuestion,EnterPlanMode/ExitPlanMode,EnterWorktree/ExitWorktree,LSP,Monitor,NotebookEdit,PowerShell(Windows default; opt-in elsewhere viaCLAUDE_CODE_USE_POWERSHELL_TOOL=1),ToolSearch,WaitForMcpServers,ScheduleWakeup,PushNotification,RemoteTrigger,SendMessage,ShareOnboardingGuide,TeamCreate/TeamDelete(gated byCLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1),CronCreate/CronList/CronDelete,ListMcpResourcesTool/ReadMcpResourceTool. - Multi-repo workspace policy: use workspace-root MCP config.
- Highest elevated permission launch:
claude --dangerously-skip-permissions, equivalent toclaude --permission-mode bypassPermissions. This bypasses the permission layer; use only in isolated containers, VMs, or disposable worktrees. - For exact config-file placement by tool, use `tool-calling.md`.
Agents: parallel, background & roles
Parallel: issue multiple Agent calls in one turn (each runs in its own context window and returns one summary). The subagent selector parameter is agent_type. Local background: run_in_background: true on Bash; mark a subagent background: true in .claude/agents/<name>.md (background subagents auto-deny permission prompts) or press Ctrl+B; add isolation: worktree for file isolation. List/stop background Bash tasks with /tasks (also via TaskList / TaskStop); manage background subagents via /agents (Running tab). Subagents cannot spawn subagents. Fork the current conversation via the Agent tool's fork mode (a forked Agent inherits the parent conversation and always runs in background). Cloud features (Routines via /schedule / RemoteTrigger, agent teams behind CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1, background agents on claude.ai) are out of scope here — kit policy is local-only.
| Role | Claude CLI mechanism |
|---|---|
| Orchestrator | main session (owns merge + final judgment) |
| Explorer | Agent → Explore (read-only, fast model) |
| Researcher | Agent → general-purpose + WebSearch / WebFetch |
| Planner | Agent → Plan (read-only) |
| Implementer | Agent → general-purpose, or a write-enabled custom .claude/agents/<name>.md |
| Reviewer | custom read-only agent (tools: Read, Grep, Glob) |
| Tester | Agent → general-purpose, or run_in_background Bash for long suites |
| Tool-runner | run_in_background Bash, or a custom agent scoped to Bash |
Custom-agent frontmatter: name, description, tools / disallowedTools, model, permissionMode, maxTurns, background, isolation: worktree, skills, mcpServers, hooks, memory, effort, color, initialPrompt. To restrict which subagents a main-thread agent can spawn, use Agent(type1, type2) in tools. Task tracking uses TaskCreate / TaskGet / TaskList / TaskUpdate / TaskStop.
Tool-calling index: `tool-calling.md`.
| Skill Reference | Codex Equivalent |
|---|---|
Task tool (dispatch subagent) | spawn_agent |
| Send more input to a running subagent | send_input |
| Resume a paused subagent thread | resume_agent |
| Task returns result | wait_agent |
| Task completes automatically | close_agent to free slot |
| Batch fan-out from CSV | spawn_agents_on_csv (each worker calls report_agent_job_result once) |
TodoWrite (task tracking) | update_plan |
Skill tool (invoke a skill) | /skills slash command or $skill-name inline mention; auto-loaded from .agents/skills/, ~/.agents/skills/, /etc/codex/skills/ |
Key Notes:
- Subagent workflows are on by default. Config lives in
~/.codex/config.toml(global) or<workspace-root>/.codex/config.toml(project). - Codex CLI reads
AGENTS.md(andAGENTS.override.md, which wins) hierarchically from~/.codexand from repo root down to CWD, capped atproject_doc_max_bytes(32 KiB default). Thechild_agents_mdfeature flag layers additional per-directory guidance. - Memory: Off by default. Enable globally with
[features] memories = trueand[memories] use_memories/generate_memoriesin~/.codex/config.toml. Native store:~/.codex/memories/. Do not create or sync repo memory files. See `memory-global-defaults.md`. - Multi-repo workspace policy: use workspace-root MCP config.
- Highest elevated permission launch:
codex --dangerously-bypass-approvals-and-sandbox(or explicitcodex --sandbox danger-full-access --ask-for-approval never). This removes sandboxing and approval prompts; use only in an external sandbox or disposable worktree. - For exact config-file placement by tool, use `tool-calling.md`.
Agents: parallel, background & roles
The orchestrator dispatches workers via spawn_agent / send_input / resume_agent / wait_agent / close_agent, plus spawn_agents_on_csv for batch fan-out (each worker calls report_agent_job_result once). Limits live under [agents]: max_threads (default 6), max_depth (default 1 — workers cannot spawn workers), job_max_runtime_seconds (fallback 1800). Switch between live threads with /agent. Worktrees and Automations are Codex app features, not CLI features. Codex Web runs tasks remotely — kit policy is local-only, so do not use it.
Built-in roles: default, worker, explorer. Custom roles live in standalone .codex/agents/<name>.toml or ~/.codex/agents/<name>.toml files. Required fields: name, description, developer_instructions. Optional: model, model_reasoning_effort, sandbox_mode, mcp_servers, skills.config, nickname_candidates.
| Role | Codex mechanism |
|---|---|
| Orchestrator | root Codex session |
| Explorer | explorer built-in role (read-only sandbox) |
| Researcher | worker or custom role + MCP / web |
| Planner | Plan mode (update_plan) |
| Implementer | worker role |
| Reviewer | custom .codex/agents/<name>.toml role, read-only sandbox |
| Tester | worker role running tests/build |
| Tool-runner | worker role |
Tool-calling index: `tool-calling.md`.
| Skill Reference | Copilot CLI Equivalent |
|---|---|
Read (file reading) | view |
Write (file creation) | create |
Edit (file editing) | edit |
Edit (apply patch) | apply_patch |
Bash (run commands) | bash |
Grep (search content) | grep |
Glob (search by name) | glob |
Task tool (dispatch subagent) | task tool + /fleet (orchestrated parallel subagents); built-in agents explore / task / general-purpose / code-review / research / rubber-duck |
| Long-running shell management | list_bash / read_bash / stop_bash / write_bash |
| Ask user / memory | ask_user, memory (Copilot Memory tool) |
WebFetch | web_fetch |
| Skill invocation | skill |
Key Notes:
- Background: promote a running task or shell with
Ctrl+X → b; inspect backgrounded shells withread_bash/list_bash/stop_bash/write_bash. - Modes:
Shift+Tabcycles standard → plan → autopilot. Plan is a mode, not a subagent. - Skills are invoked explicitly (e.g.
/skill-name); plugins bundle agents, skills, hooks, and MCP server configs for distribution. - Cloud handoff:
/delegateships a task to the remote Copilot coding agent (opens PRs). Kit policy: do not use. - The GitHub MCP server ships built in; custom MCP servers add to it.
- Multi-repo workspace policy: use workspace-root MCP config.
- Memory: Enable in GitHub Copilot settings (account); CLI:
/memory on,/memory off,/memory show(persists).store_memorystores recall in GitHub. Do not create or sync repo memory files. See `memory-global-defaults.md`. - Highest elevated permission launch:
copilot --allow-all(alias--yolo). This is equivalent to--allow-all-tools --allow-all-paths --allow-all-urls; combine with--autopilotonly when the user wants autonomous multi-step continuation. - For exact config-file placement by tool, use `tool-calling.md`.
Agents: parallel, background & roles
Parallel: /fleet makes the main agent decompose a prompt into independent subtasks and run them as context-isolated subagents; the underlying primitive is the task tool (with list_agents / read_agent for inspection). Built-in agents the orchestrator delegates to: explore, task, general-purpose, code-review, research. Local background: Ctrl+X → b promotes a running task / shell to the background. Cloud coding agent (runs in GitHub Actions, opens PRs; reachable via /delegate) is remote — do not use it.
Custom agents: .github/agents/<name>.md or .agent.md (repo) or ~/.copilot/agents/<name>.md (user). Frontmatter fields: name (optional), description (required), tools, model, target (vscode | github-copilot), mcp-servers, disable-model-invocation, user-invocable, metadata. The agent's prompt is the markdown body (max 30,000 chars), not a frontmatter field.
| Role | Copilot CLI mechanism |
|---|---|
| Orchestrator | main session / /fleet lead |
| Explorer | explore built-in agent |
| Researcher | research built-in agent (or explore + web_fetch) |
| Planner | Plan mode (Shift+Tab) — no plan subagent; orchestrator plans |
| Implementer | write-enabled custom .github/agents/<name>.md |
| Reviewer | code-review built-in agent |
| Tester | task built-in agent |
| Tool-runner | task built-in agent; Ctrl+X → b background shell |
Cursor CLI Tool Mapping
Mechanics and permissions: `tool-calling.md`.
| Skill Reference | Cursor CLI Equivalent |
|---|---|
Read (file reading) | Read |
Write (file creation) | Write |
Edit (file editing) | StrReplace |
Bash (run commands) | Shell |
Grep (search content) | Grep |
Glob (search by name) | Glob |
Delete (remove file) | Delete |
| Semantic / codebase search | SemanticSearch (indexed workspace; agent may chain with Grep) |
TodoWrite (task tracking) | TodoWrite |
| Skill invocation | /skill-name in chat (auto-discovery via skill description; set disable-model-invocation: true for slash-only) |
Task tool (dispatch subagent) | Task invoking built-in (explore, bash, browser) or custom .cursor/agents/<name>.md |
| Custom subagents | .cursor/agents/<name>.md or ~/.cursor/agents/<name>.md; also /name in chat |
WebSearch | WebSearch |
WebFetch | WebFetch |
GenerateImage | GenerateImage |
| MCP tools | Configured MCP servers; hook matcher MCP:<tool>; CLI permission pattern Mcp(server:tool) |
| Background shell polling | Await (after Shell with background execution) |
| Mode switch (plan vs agent) | SwitchMode or CLI --mode=plan / --mode=ask |
Key Notes:
- Cursor CLI command is
agent(interactive:agent, non-interactive:agent -p "..."). AGENTS.mdis the canonical workspace instruction file; no extra shim is required for Cursor.- Memory: No documented memory flag in
~/.cursor/cli-config.json. IDE “Generate Memories” (Settings → Rules) is IDE-local recall. Do not create repo memory files or add memory MCP servers for this kit. See `memory-global-defaults.md`. - Cursor MCP config files:
<workspace-root>/.cursor/mcp.json(recommended for multi-repo workspaces),~/.cursor/mcp.json(global fallback). - Skills load from
.cursor/skills/,.agents/skills/,~/.cursor/skills/,~/.agents/skills/, plus compat dirs.claude/skills/,.codex/skills/,~/.claude/skills/,~/.codex/skills/. - Subagent dirs:
.cursor/agents/,.claude/agents/,.codex/agents/(project) and~/.cursor/agents/,~/.claude/agents/,~/.codex/agents/(user). - CLI permissions: per-project
<root>/.cursor/cli.json(layered git-root → cwd), global~/.cursor/cli-config.json. IDE-only auto-run allowlist (separate):~/.cursor/permissions.json. - Highest elevated permission launch:
agent --yolo --sandbox=disabled --approve-mcpsfor interactive sessions;cursor-agent -p --force --sandbox=disabled --trust --approve-mcps "prompt"for headless.--yolois the--forcealias. - Built-in subagents Explore, Bash, and Browser are delegated automatically when appropriate; see Subagents.
Agents: parallel, background & roles
Parallel: issue multiple Task calls in one turn (practical cap ~4). Local background: set is_background: true in .cursor/agents/<name>.md and rejoin with Await; for heavier isolation, run up to 8 local agents in separate git worktrees. Cloud Agents (formerly "Background Agents") are remote — do not use them; keep everything local. Custom-agent frontmatter: name, description, model (inherit or an ID), readonly, is_background.
| Role | Cursor mechanism |
|---|---|
| Orchestrator | main agent session (owns merge + final judgment) |
| Explorer | Task → explore subagent |
| Researcher | Task → custom agent + WebSearch / WebFetch |
| Planner | Plan mode (--mode=plan / SwitchMode) or a readonly: true custom agent |
| Implementer | Task → write-enabled .cursor/agents/<name>.md |
| Reviewer | readonly: true custom agent (e.g. .cursor/agents/reviewer.md) |
| Tester | Task → bash subagent |
| Tool-runner | Task → bash subagent; Shell + Await for background output |
The shell subagent type is bash (not shell). ~/.cursor/permissions.json is the IDE auto-run allowlist; CLI permissions live in ~/.cursor/cli-config.json (global) and <root>/.cursor/cli.json (project).
Native Memory Defaults By CLI
Copy-paste snippets for user-level config. Merge into existing files; do not overwrite unrelated keys.
This kit no longer creates repo MEMORY.md, wiki, discovery, or default knowledge-graph memory. Use each supported CLI's native memory only when that runtime provides it. Optional graph/index companions may be used when installed and task-fit, but their artifacts are not binding memory. Keep generated AGENTS.md as the shared workspace instruction file, and keep CONTEXT.md / docs/adr/ as binding project context when those files exist.
---
Codex CLI
File: ~/.codex/config.toml Docs: Memories, Config reference
[features]
memories = true
[memories]
use_memories = true
generate_memories = true
disable_on_external_context = true- Native store:
~/.codex/memories/. - Treat Codex memories as user-local recall. Do not sync them into repo files.
- Keep team/project rules in generated
AGENTS.md,CONTEXT.md, and ADRs. - EEA/UK/CH: native memories may be unavailable.
---
Claude CLI
Files: ~/.claude/settings.json, optional ~/.claude/CLAUDE.md Docs: Memory
{
"autoMemoryEnabled": true
}Optional global reminder in ~/.claude/CLAUDE.md:
## Native Memory
- Use Claude's native project memory for user-local recall.
- Do not create or sync repo MEMORY.md files.
- Shared project rules come from AGENTS.md, CONTEXT.md, and ADRs.autoMemoryDirectoryis user/local settings only (not projectsettings.json).- Do not symlink Claude memory into a repo file.
---
GitHub Copilot CLI
Account: GitHub → profile → Copilot settings → Copilot Memory → Enabled (Pro/Pro+ default on; org/enterprise may be off).
File: ~/.copilot/copilot-instructions.md
## Memory
- Prefer `/memory on` in CLI sessions (`/memory show` to verify).
- Use Copilot Memory for GitHub-hosted user/repo recall when enabled.
- Do not create or sync repo MEMORY.md files.
- Shared project rules come from AGENTS.md, CONTEXT.md, and ADRs.- No
memorykey in~/.copilot/settings.json; enablement is account +/memoryslash commands.
---
Cursor CLI
File: ~/.cursor/cli-config.json — no built-in memory toggle (CLI config).
- Cursor CLI has no documented native memory toggle in CLI config.
- Cursor IDE may offer Settings → Rules → Generate Memories. Treat those as IDE-local recall.
- Do not create repo MEMORY.md files or add MCP memory servers as default memory for this kit.
---
Opencode CLI
File: ~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["AGENTS.md", "CONTEXT.md"]
}- Opencode has no native memory store in this kit's supported model.
- Use
instructionsonly to point at generatedAGENTS.mdand binding context files. - Do not include repo MEMORY.md paths.
---
Antigravity CLI
File: ~/.gemini/antigravity-cli/settings.json — no native memory file store.
- Antigravity CLI has no native memory file store in this kit's supported model.
- Use generated
AGENTS.mdplus binding context files. - Do not add repo MEMORY.md files or third-party memory MCP servers as default memory for this kit.
---
Quick reference
| Runtime | Native memory handling | Shared project context |
|---|---|---|
| Codex CLI | Enable [features] memories = true; user-local store | AGENTS.md, CONTEXT.md, ADRs |
| Claude CLI | autoMemoryEnabled: true when desired; user-local/project-native store | AGENTS.md, CONTEXT.md, ADRs |
| GitHub Copilot CLI | GitHub settings + /memory on | AGENTS.md, CONTEXT.md, ADRs |
| Cursor CLI | No documented native CLI memory toggle; IDE memories are local | AGENTS.md, CONTEXT.md, ADRs |
| Opencode CLI | No native memory store; use instructions for context files only | AGENTS.md, CONTEXT.md, ADRs |
| Antigravity CLI | No native memory file store in supported model | AGENTS.md, CONTEXT.md, ADRs |
Tool-calling index: `tool-calling.md`.
| Skill Reference | Opencode Equivalent |
|---|---|
Read (file reading) | read |
Write (file creation) | write |
Edit (file editing) | edit (also apply_patch) |
Bash (run commands) | bash |
Grep (search content) | grep |
Glob (search by name) | glob |
Task tool (dispatch subagent) | task (subagent_type, optional background) + task_status |
| Ask the user mid-run | question |
| LSP integration (experimental) | lsp (gated by OPENCODE_EXPERIMENTAL_LSP_TOOL=true) |
WebFetch / WebSearch | webfetch / websearch |
TodoWrite (task tracking) | todowrite |
Skill tool (invoke a skill) | skill |
Key Notes:
- opencode exposes plain tool names (
read,write,edit,bash,grep,glob,task, …) — no POSIX (cat/tee/sed/sh) aliasing. Discovery walks up forAGENTS.md(preferred) thenCLAUDE.md(Claude-Code compat); globals at~/.config/opencode/AGENTS.mdand~/.claude/CLAUDE.md. - Memory: No native memory store in this kit's supported model. Use
opencode.jsoninstructionsfor generatedAGENTS.mdand binding context files only. Do not include repo memory paths. See `memory-global-defaults.md`. websearchrequires the opencode provider orOPENCODE_ENABLE_EXA.- Skills resolve from
.opencode/skills/,~/.config/opencode/skills/, plus compat dirs.claude/skills/,.agents/skills/,~/.claude/skills/,~/.agents/skills/. - Multi-repo workspace policy: use workspace-root MCP config.
- Highest elevated permission launch:
opencode run --dangerously-skip-permissions "prompt". For persistent custom agents, set the agentpermissionkeys needed for the task toallow; wildcard{"*":"allow"}is the full tool permission form. - For exact config-file placement by tool, use `tool-calling.md`.
Agents: parallel, background & roles
Parallel: the primary agent issues multiple task calls in one turn (each runs a child session and returns one <task_result>). task takes subagent_type, prompt, optional task_id (resume a child session), and optional background. Local background: task(background=true) runs async and returns a task_id; poll with task_status (gated by OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS=true; otherwise task is synchronous). opencode is fully local — no cloud agent.
Built-in agents: build (primary, full access), plan (primary, analysis-only), general (subagent, multi-step executor), explore (subagent, read-only), scout (subagent, read-only — external docs and dependency research). Hidden system agents (compaction, title, summary) run automatically. Users can also dispatch a subagent manually by mentioning @<agent-name> in a message; task permissions (allow / deny / ask per subagent) gate which children a primary may dispatch. Custom agents: .opencode/agents/<name>.md (project), ~/.config/opencode/agents/<name>.md (global), or inline under "agent" in opencode.json; frontmatter accepts description, mode (primary | subagent | all), model, permission, temperature, top_p, steps, color, disable, hidden, and tools (per-tool toggles, e.g. tools: { skill: false }).
| Role | opencode mechanism |
|---|---|
| Orchestrator | primary build agent |
| Explorer | task → explore (read-only) |
| Researcher | task → general + webfetch / websearch |
| Planner | plan primary agent |
| Implementer | task → general or a write-enabled custom agent |
| Reviewer | custom read-only agent |
| Tester | task → general (bash) |
| Tool-runner | task → general (bash); task(background=true) for long runs |
Tool Calling Reference
How the six supported CLI runtimes invoke tools, and how this kit maps generic skill instructions to each runtime.
Supported runtimes are Codex CLI, Claude CLI, Antigravity CLI, Cursor CLI, Opencode CLI, and GitHub Copilot CLI only. Compatibility filenames used by those tools do not imply support for any other runtime.
Agent Orchestration Model
The main session is the orchestrator. It decomposes work into role-typed lanes, dispatches each lane to a local subagent (or a focused in-process tool pass when the runtime has no subagents), runs independent lanes in parallel, pushes long or noisy lanes to local background/async, and keeps the only seat for merge, conflict resolution, and final judgment. Subagents return summaries, not raw transcripts. This model is enforced by the AGENTS.md Non-Negotiable Rule Local Orchestration.
Local-only policy (no cloud agents)
Use only local subagents and local background/async execution. Local worktree-isolated parallel agents are allowed. Never delegate to cloud or remote background-agent products, even when the runtime makes them one keystroke away:
| Runtime | Cloud/remote product to AVOID | Local equivalent to use instead |
|---|---|---|
| Codex CLI | Codex Web delegated tasks | spawn_agent subagents (on by default); local git worktrees |
| Claude CLI | Routines (/schedule), agent teams (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1), background agents on claude.ai | Agent subagents; run_in_background Bash; background: true subagents; isolation: worktree |
| Antigravity CLI | Managed Agents API / remote managed execution | Agent Manager local parallel instances via start_subagent; /schedule local background |
| Cursor CLI | Cloud Agents (formerly "Background Agents"), &-prefixed cloud hand-off, cursor.com/agents | Task subagents; is_background subagents + Await; local worktree agents |
| Opencode CLI | (no cloud agent in scope) | task subagents / child sessions; task(background=true) + task_status |
| GitHub Copilot CLI | Cloud coding agent via /delegate (runs in GitHub Actions, opens PRs) | task tool + /fleet parallel subagents; Ctrl+X → b background task/shell |
Canonical role lanes
Standard lane roles used across this kit. Each runtime's *-tools.md maps these to that runtime's concrete mechanism. Where a runtime has no dedicated built-in for a role, use its general-purpose subagent with the listed tool profile.
| Role | Tool profile | Purpose |
|---|---|---|
| Orchestrator | full (main session) | Decompose, dispatch, await, merge, final judgment. Never spawned. |
| Explorer | read-only | Search and map the codebase; trace callers and usage sites. |
| Researcher | read-only + web | External docs, web search, dependency source. |
| Planner | read-only | Produce a dependency-aware plan or design. |
| Implementer | write | Make the edits for one independent slice. |
| Reviewer | read-only | Critique a diff for correctness, risk, and convention fit. |
| Tester | shell | Run tests / build / lint / typecheck; report evidence. |
| Tool-runner | shell + MCP | Isolated shell / MCP / tool-call batches; keep noisy output out of main context. |
Parallel & background mechanism by runtime
| Runtime | Parallel dispatch | Local background / async | Custom agent files |
|---|---|---|---|
| Codex CLI | spawn_agent / spawn_agents_on_csv (agents.max_threads, default 6; max_depth 1) — on by default | local git worktrees (Worktrees / Automations are Codex app features, not CLI) | .codex/agents/<name>.toml (or ~/.codex/agents/<name>.toml) |
| Claude CLI | Multiple Agent calls in one turn | run_in_background Bash; background: true subagents; isolation: worktree | .claude/agents/<name>.md |
| Antigravity CLI | start_subagent orchestrator-spawned dynamic subagents (Agent Manager); browser_subagent for browser tasks | /schedule local background; Artifacts for review | .agents/agents.md |
| Cursor CLI | Multiple Task calls in one turn (practical cap ~4); local worktree agents (up to 8) | is_background: true subagent + Await; bash subagent isolates output | .cursor/agents/<name>.md |
| Opencode CLI | Multiple task calls with subagent_type | task(background=true) + task_status | .opencode/agents/<name>.md, ~/.config/opencode/agents/<name>.md, or inline opencode.json agents |
| GitHub Copilot CLI | task tool + /fleet (orchestrated parallel subagents; built-ins explore / task / general-purpose / code-review / research / rubber-duck) | Ctrl+X → b promotes a task or shell to background | .github/agents/<name>.md or .agent.md (user-scope ~/.copilot/agents/) |
Per-runtime role-to-mechanism maps and corrections live in each *-tools.md.
Highest elevated permission by runtime
Use these only when the user explicitly asks for highest/elevated/full/YOLO permission, and prefer isolated containers, VMs, dev containers, or disposable worktrees.
| Runtime | Highest elevated launch / preset | Effect |
|---|---|---|
| Codex CLI | codex --dangerously-bypass-approvals-and-sandbox (or explicit codex --sandbox danger-full-access --ask-for-approval never) | No sandbox and no approval prompts. |
| Claude CLI | claude --dangerously-skip-permissions (equivalent to --permission-mode bypassPermissions) | Skips the permission layer; protected paths are allowed except hard circuit breakers. |
| Antigravity CLI | agy --dangerously-skip-permissions; do not pair with --sandbox for full elevation | Auto-approves tool permission requests without terminal sandbox restrictions. |
| Cursor CLI | agent --yolo --sandbox=disabled --approve-mcps (--yolo is --force) | Force-allows commands unless explicitly denied, disables sandboxing, and approves MCP servers. |
| Opencode CLI | opencode run --dangerously-skip-permissions; for agent config set needed permission keys to allow / wildcard {"*":"allow"} | Auto-approves non-denied permissions; per-agent allow grants tools without prompts. |
| GitHub Copilot CLI | copilot --allow-all (alias --yolo) | Allows all available tools, all paths, and all URLs without approval. |
Cursor CLI
Cursor CLI uses the agent command and the same tool-calling loop: the model emits a structured tool request, the runtime executes it, and results are appended to context before the next turn. There is no practical limit on tool calls per task.
Docs: Tool calling fundamentals, Agent tools overview, CLI usage, Subagents.
Tool names (runtime / hooks)
These are the identifiers used in hook matchers (preToolUse, postToolUse) and in agent traces:
| Tool | Purpose |
|---|---|
Read | Read file contents (images supported for vision models) |
Write | Create or overwrite files |
StrReplace | Exact string replace edits (primary edit path) |
Shell | Run terminal commands; use Await to poll background shells |
Grep | Content search (Instant Grep / ripgrep-backed) |
Glob | Find files by path pattern |
Delete | Remove a file |
SemanticSearch | Codebase search by meaning (indexed workspace) |
Task | Spawn a subagent (subagent_type or custom .cursor/agents/ name) |
TodoWrite | Session task list updates |
WebSearch | Web search queries |
WebFetch | Fetch URL content as markdown |
GenerateImage | Image generation from description |
SwitchMode | Switch to plan or agent interaction mode |
ListMcpResources / FetchMcpResource | MCP resource read |
| MCP tools | Hook matcher: MCP:<tool> (e.g. MCP:search). CLI permission pattern: Mcp(server:tool) (e.g. Mcp(github:*)) |
EditNotebook | Edit Jupyter notebook cells |
Await | Poll a background Shell session |
TabRead / TabWrite | Editor tab read/write (hook matchers only) |
Agent also uses built-in Explore, Bash, and Browser subagents automatically for heavy search, shell series, and browser work. Custom subagents live in .cursor/agents/*.md and are invoked via Task or /subagent-name in chat.
Skill invocation (not a hook tool type)
Skills are separate from the table above:
- Explicit:
/skill-namein chat (e.g./release-notes) - Auto: agent loads skills whose
descriptionmatches the request (unlessdisable-model-invocation: true)
Skill directories: project .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/; user ~/.cursor/skills/, ~/.agents/skills/, ~/.claude/skills/, ~/.codex/skills/ (compat).
Subagents (Task tool)
subagent_type | Role |
|---|---|
explore | Parallel codebase search; keeps noise out of main context |
bash | Isolated shell command batches (canonical type name; some community docs say shell) |
browser | Browser control via MCP; filters DOM/screenshot noise |
| Custom | Any name from .cursor/agents/<name>.md |
Parallel work: multiple Task calls in one assistant turn (practical cap ~4 parallel subagents). Local async: set is_background: true in a subagent's .cursor/agents/<name>.md frontmatter and rejoin with the Await tool. For heavier isolation, Cursor can run up to 8 local agents in separate git worktrees. Resume with the agent ID from a prior subagent run.
Cursor Cloud Agents (formerly "Background Agents") run remotely and are out of policy here — use local subagents/worktrees instead (see Agent Orchestration Model).
Cursor CLI subagent support is documented in Subagents.
Modes and write access
| Mode | CLI flag / command | Tool writes |
|---|---|---|
| Agent | default | Full tools |
| Plan | --mode=plan, /plan | Read-only / planning |
| Ask | --mode=ask, /ask | Read-only Q&A |
Non-interactive CLI: agent -p "prompt" (--print) runs with full tools unless mode restricts edits. Use --sandbox=disabled only when the user wants auto-approved shell.
Highest elevated launch: agent --yolo --sandbox=disabled --approve-mcps for interactive sessions; in headless automation use cursor-agent -p --force --sandbox=disabled --trust --approve-mcps "prompt". --yolo is an alias for --force.
Headless output: --output-format text|json|stream-json (with --stream-partial-output for incremental deltas). Auth via CURSOR_API_KEY. Useful CLI flags: --worktree, --workspace <path>, --resume [thread-id]; sessions managed with agent ls / agent resume.
Permissions
Tool allow/deny uses pattern strings. Examples:
Shell(git)— prefix match: anygitsubcommand.Shell(**)— all shell commands.Mcp(server:tool)— colon-separated (e.g.Mcp(datadog:*),Mcp(*:read_*)).Read(src/**/*.ts),Write(<glob>),WebFetch(*.example.com)— file / web allowlists.- Deny rules take precedence over allow rules.
Permission files:
- CLI:
~/.cursor/cli-config.json(global) and<root>/.cursor/cli.json(per-project, layered git-root → cwd). - IDE only (separate auto-run allowlist for editor):
~/.cursor/permissions.json— usesserver:toolfor MCP and prefix matching for shell.
Kit mapping (generic → Cursor)
See `cursor-tools.md` for the full skill-kit → Cursor equivalence table.
All runtimes (index)
| Runtime | Tool mapping | Skill invocation |
|---|---|---|
| Codex CLI | `codex-tools.md` | runtime skill activation command |
| Claude CLI | `claude-tools.md` | /skill-name |
| Antigravity CLI | `antigravity-tools.md` | runtime skill activation command |
| Cursor CLI | `cursor-tools.md` (details in Cursor section above) | /skill-name |
| Opencode CLI | `opencode-tools.md` | runtime skill activation command |
| GitHub Copilot CLI | `copilot-tools.md` | runtime skill activation command |
Context files (multi-repo workspaces)
| Artifact | Location | Steward |
|---|---|---|
CONTEXT.md | <artifacts-root> | grill-with-docs |
docs/adr/ | <artifacts-root>/docs/adr/ | grill-with-docs |
Native CLI memory defaults: `memory-global-defaults.md`.
MCP placement (multi-repo workspaces)
Keep MCP configuration at workspace root for supported coding tools:
- Codex CLI:
<workspace-root>/.codex/config.toml - Claude CLI:
<workspace-root>/.claude/settings.local.json - Antigravity CLI:
<workspace-root>/.agents/mcp_config.json - Cursor CLI:
<workspace-root>/.cursor/mcp.json(plus optional~/.cursor/mcp.jsonfallback) - Opencode CLI: workspace-root
opencode.json/ MCP config where used - GitHub Copilot CLI:
<workspace-root>/.mcp.jsonor<workspace-root>/.github/mcp.json(user fallback:~/.copilot/mcp-config.json)
Related skills
How it compares
Reference meta-skill for workspace agent conventions—not an MCP server or a task automation integration.
FAQ
Who is agents-md for?
It is for developers and small teams standardizing Antigravity CLI workspaces with the agent-skills-kit, especially when migrating from Claude Code-style tool vocabulary.
When should I use agents-md?
Use it during Build (agent-tooling) when you first scaffold AGENTS.md, when you add parallel subagents, and again in Operate (iterate) when you refresh bindings after tool or workflow changes.
Is agents-md safe to install?
It is documentation-oriented within the kit; review the Security Audits panel on this Prism page and inspect generated AGENTS.md before granting shell or network permissions to your agent.