You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Windsurf (Cascade) is a widely-used AI editor that reads workspace rules
from `.windsurf/rules/*.md`. Add it as an own-file agent target so
`testsprite agent install --target windsurf` (and `setup --agent windsurf`)
wires the verification-loop skill into a Windsurf project.
The rule file uses Cascade's YAML frontmatter with `trigger: model_decision`
— the equivalent of the Cursor `.mdc` `alwaysApply: false` mode: only the
`description` is surfaced up front and Cascade pulls in the full body when it
is relevant, which matches how this skill should activate. (Cascade's other
triggers are `always_on`, `manual`, and `glob`.)
Budget handling: a `.windsurf/rules/*.md` file is capped at ~12 K characters,
and the full skill body (~21 KB) would be silently truncated by Cascade. The
windsurf target therefore renders the COMPACT body (the same trimmed variant
the codex/AGENTS.md target already uses, ~5 KB) via a new `compactBody` flag
on the target spec — the rendered file is ~5.5 KB, well within budget, while
still carrying the H1, the when-to-run guidance, and the load-bearing
`testsprite test run … --wait` / `test artifact get` commands. `agent.ts` and
`renderForTarget` select the same body so installed bytes match the asserted
render.
The target otherwise flows through existing machinery automatically — the
`agent list` table, `setup --agent` choices, and skill-nudge install
detection all derive from the TARGETS map. Updated the hardcoded help strings
in `agent.ts`, the help snapshot, the agent-targets + agent unit tests (incl.
a render test asserting the Cascade frontmatter and a budget test that the
windsurf render stays under 12 K and uses the compact body), the e2e matrix
guards and multi-target/content-integrity coverage, and the
README/DOCUMENTATION target lists.
The `codex` target uses **managed-section mode** — it writes only a sentinel-delimited section inside your existing `AGENTS.md`, so your project instructions are never clobbered. Re-running without `--force` replaces the section in-place; user content outside the sentinels is always preserved.
`testsprite setup` prompts for your [API key](https://www.testsprite.com), verifies it, and installs the verification-loop skill for your coding agent (`claude`, `cursor`, `cline`, `antigravity`, `codex`, etc.) — one command, so your agent is wired to verify its own work. Non-interactive (CI / onboarding scripts):
64
+
`testsprite setup` prompts for your [API key](https://www.testsprite.com), verifies it, and installs the verification-loop skill for your coding agent (`claude`, `cursor`, `cline`, `windsurf`, `antigravity`, `codex`, etc.) — one command, so your agent is wired to verify its own work. Non-interactive (CI / onboarding scripts):
65
65
66
66
```bash
67
67
TESTSPRITE_API_KEY=sk-... testsprite setup --from-env --yes --agent claude
@@ -110,7 +110,7 @@ Prefer to configure each step by hand (or learn the surface offline with `--dry-
110
110
||`test rerun`| Cheap replay of one/many tests (FE verbatim; BE with deps); `--all --project <id>` reruns all tests |
111
111
||`test wait`| Block on a `runId` until terminal |
112
112
||`test artifact get`| Download the failure bundle for a specific `runId`|
113
-
|**Agent**|`agent install` / `agent list`| Add or list coding-agent targets (pure-local): `claude`, `codex`, `cursor`, `cline`, `antigravity`|
113
+
|**Agent**|`agent install` / `agent list`| Add or list coding-agent targets (pure-local): `claude`, `codex`, `cursor`, `cline`, `windsurf`, `antigravity`|
114
114
115
115
> The earlier command names — `init`, `auth configure`, `auth whoami`, `auth logout` — still work as hidden, deprecated aliases (each prints a one-line notice pointing at the new name), so existing scripts keep running. `auth configure` now runs the full `setup` (it also installs the skill).
0 commit comments