Skip to content

Commit aed1e5f

Browse files
committed
docs(agent): update supported agents list and clarify agent install behavior
- Revise CONTRIBUTING.md to describe universal vs symlinked agent targets and requirements for adding new targets - Update DOCUMENTATION.md to clarify agent install command usage and differentiate universal and symlinked agents - Expand README.md with a detailed supported agents table, including canonical ids, aliases, and skills folder locations - Update src/lib/agent-targets.ts with added agents, corrections to skillsDir and universal flags, and alias mappings - Modify unit tests and e2e tests to reflect renamed and updated agent targets, replacing deprecated aliases like gemini-cli with antigravity-cli and windsurf with devin-desktop - Ensure single source of truth for skills at `.agents/skills`, symlink strategy for non-universal agents, and consistency across docs and code
1 parent f198eae commit aed1e5f

7 files changed

Lines changed: 185 additions & 177 deletions

File tree

CONTRIBUTING.md

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,21 @@ Pre-decided policies, so proposals don't have to relitigate them:
5656
runtime dependency needs explicit maintainer sign-off **in the issue,
5757
before the PR**. Utility modules land only together with the consumer
5858
that uses them — standalone libraries are declined.
59-
- **`agent install` targets.** Shipped: `claude`, `antigravity`, `cursor`,
60-
`cline`, `codex`, `kiro`, `windsurf`, `copilot`. Accepted and in progress:
61-
`gemini`.
62-
A proposal for a new target needs (1) the editor's official rules/skill
63-
file mechanism, documented, and (2) the proposer prepared to maintain the
64-
target going forward.
59+
- **`agent install` targets.** The CLI supports a registry of agent ids (see
60+
the [supported-agents tables](./README.md#supported-agents) in the README for
61+
the current set), each classified as **universal** (reads the shared
62+
`.agents/skills/` folder directly — Cursor, Codex, Copilot, Amp, …; one
63+
install serves all of them) or **symlinked** (keeps skills in its own folder,
64+
e.g. `.claude/skills`, with a per-skill symlink back to `.agents/skills/` so
65+
every agent reads the same single source of truth). A proposal adding a
66+
target must, in the same PR: (1) cite the agent's **current** skills docs
67+
proving its skills folder and classification (universal = reads
68+
`.agents/skills/` natively; symlinked = installs into its own `<dir>`); (2)
69+
add it to the registry (`src/lib/agent-targets.ts` — id, `skillsDir`,
70+
`universal` flag, and any alias); (3) update the unit-test target list
71+
(`src/lib/agent-targets.test.ts`); and (4) add a row to the matching
72+
supported-agents table in the README, with the agent's name and a link to its
73+
skills docs.
6574
- **Outbound network calls.** The CLI talks only to the configured
6675
TestSprite API endpoint. The one approved exception is an opt-out-able
6776
npm registry version check (at most once per 24h, carrying nothing but

DOCUMENTATION.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -109,20 +109,22 @@ Every artifact in the bundle shares one `snapshotId`; the CLI will not mix a fai
109109
`testsprite agent install` writes the TestSprite skills into your project so your coding agent knows the commands, the exit codes, and the failure-bundle layout — no prompt engineering required. It's a pure-local command: no network, no credentials.
110110

111111
```bash
112-
testsprite agent install claude-code # .agents/skills/<skill>/SKILL.md + .claude/skills/<skill> symlink
113-
testsprite agent install codex # writes the canonical copy (Codex reads .agents/skills directly)
114-
testsprite agent install cursor # universal — reads the canonical copy
115-
testsprite agent install gemini-cli # universal
116-
testsprite agent install github-copilot # universal
117-
testsprite agent install kiro-cli # .kiro/skills/<skill> symlink → canonical
118-
testsprite agent install windsurf # .windsurf/skills/<skill> symlink → canonical
119-
testsprite agent list # every supported agent, its skills folder, and universal vs symlink
120-
testsprite agent status # check installed skills against this CLI version
112+
testsprite agent install claude-code
113+
testsprite agent install codex
114+
testsprite agent install cursor
115+
testsprite agent install kiro-cli
116+
testsprite agent list
117+
testsprite agent status
121118
```
122119

123-
`--target` accepts any agent id from the standard registry (70+), plus the legacy short aliases (`claude`, `codex`, `cursor`, `cline`, `antigravity`, `kiro`, `windsurf`, `copilot`). Omitting `--target` in a non-interactive shell defaults to `claude-code`; in a terminal the CLI prompts.
120+
`--target` accepts any agent id from the registry — see [Supported agents](./README.md#supported-agents) in the README for the full list. Omitting `--target` in a non-interactive shell defaults to `claude-code`; in a terminal the CLI prompts.
124121

125-
Because every universal agent reads the same `.agents/skills/` folder, **installing for one universal agent makes the skill available to all of them**`agent install --target codex` also serves Cursor, Cline, Gemini CLI, Copilot, etc.
122+
There are two kinds of agent:
123+
124+
- **Universal agents** (Skills folder `.agents/skills`) read the skill directly from the shared folder. Installing for **one** of them makes the skill available to **all** of them — `agent install --target codex` also serves Cursor, Copilot, Amp, and every other universal agent.
125+
- **Symlinked agents** (every other folder) get a per-skill symlink from their own skills folder back to `.agents/skills/`, so they read the same bytes as the universal ones.
126+
127+
`.agents/skills/` is the **single source of truth**: it is written on every install, even when you target a symlinked agent — `agent install --target claude-code` lands the skill in `.agents/skills/` (covering every universal agent) **and** links it into `.claude/skills/`. Because each symlink points _into_ `.agents/skills/`, you only ever edit a skill there and every symlinked agent reflects the change automatically (on systems where symlinks are unavailable — e.g. Windows without Developer Mode — a plain copy is written instead, which won't auto-update).
126128

127129
`agent status` checks the canonical skill file (and each symlinked landing) against the current CLI version and reports `ok`, `stale`, `modified`, or `unmarked` for every agent that has an install (absent agents are omitted to keep output focused). It exits `1` when anything needs attention, so `testsprite agent status && …` can gate a CI step; `--dir <path>` inspects a different project root.
128130

0 commit comments

Comments
 (0)