From 70a2c333d9ce29fab551a8ed69e0da7d280fd025 Mon Sep 17 00:00:00 2001 From: Tanq16 <37408906+Tanq16@users.noreply.github.com> Date: Fri, 17 Jul 2026 22:43:03 -0400 Subject: [PATCH] cross-ai: fix stale agy/cursor model ids and cursor trust gate The embedded cross-ai skill shipped model ids that no longer resolve, causing failures when the skill was used: - agy flagship gemini-3.1-pro -> gemini-3.1-pro-high (no bare form exists; only Low/High tiers). Updated in the dispatch table and both pty truncation-guard commands. - cursor flagship gpt-5.5 -> gpt-5.5-high (no bare form exists). - cursor also blocked on a Workspace Trust prompt in any untrusted directory; added --trust (grants directory trust only, not --force/--yolo, so the read-only posture holds) and documented it. - Refreshed both override-table 'other selectable' lists with ids verified against agy/cursor-agent directly; dropped ones that no longer resolve (agy claude-sonnet, cursor gemini/grok-4.3). - Documented agy's display-name-vs-id quirk in the stale-id rule. codex row left unchanged per current preference. All updated ids were confirmed with live one-line test runs against each CLI. --- .../embedded/default-skills/cross-ai/SKILL.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/internal/embedded/default-skills/cross-ai/SKILL.md b/internal/embedded/default-skills/cross-ai/SKILL.md index 29d7f1e..a0d8a5c 100644 --- a/internal/embedded/default-skills/cross-ai/SKILL.md +++ b/internal/embedded/default-skills/cross-ai/SKILL.md @@ -26,21 +26,23 @@ Run these verbatim, substituting `` and ``. Each is read-only — no | Agent | Command | |-------|---------| -| `agy` | `agy -p " @" --model gemini-3.1-pro --dangerously-skip-permissions < /dev/null 2>&1` | +| `agy` | `agy -p " @" --model gemini-3.1-pro-high --dangerously-skip-permissions < /dev/null 2>&1` | | `gemini` | `gemini -m gemini-3.1-pro-preview -p " @" --output-format json \| jq -r '.response'` | | `codex` | `codex exec -m gpt-5.5 --skip-git-repo-check "" 2>/dev/null` | -| `cursor` | `cursor-agent -p "" --model gpt-5.5 --output-format json \| jq -r '.result'` | +| `cursor` | `cursor-agent -p "" --model gpt-5.5-high --trust --output-format json \| jq -r '.result'` | | `claude` | `claude -p "" --model claude-opus-4-8 --output-format json --allowedTools "Read,Grep,Glob,Bash" \| jq -r '.result'` | `@` injection is for `agy`/`gemini`. `codex`/`cursor`/`claude` read the current working directory themselves — reference paths in `` and they will open them. `agy` truncation guard: if its output looks cut off or garbled (it misbehaves on a non-TTY pipe), rerun under a pty and strip ANSI. `script`'s flags differ by OS — claudex runs on both: -- macOS (BSD `script`): `script -q /dev/null agy -p " @" --model gemini-3.1-pro --dangerously-skip-permissions` -- Linux (GNU `script`): `script -qec 'agy -p " @" --model gemini-3.1-pro --dangerously-skip-permissions' /dev/null` +- macOS (BSD `script`): `script -q /dev/null agy -p " @" --model gemini-3.1-pro-high --dangerously-skip-permissions` +- Linux (GNU `script`): `script -qec 'agy -p " @" --model gemini-3.1-pro-high --dangerously-skip-permissions' /dev/null` Pipe either through `perl -pe 's/\e\[[0-9;]*[A-Za-z]//g'` to strip color codes (portable across macOS/Linux). +`cursor` workspace trust: cursor-agent refuses to run in an untrusted directory (it blocks on a "Workspace Trust Required" prompt instead of answering). The `--trust` in its command grants directory trust so the headless run proceeds; it is NOT `--force`/`--yolo` and does not auto-approve edits or command execution, so the read-only posture holds. + ## Execution recipe 1. **Stage context the agent can't see on its own.** It starts blank — it does not inherit this conversation. If the task needs our analysis, a specific diff, or files outside its cwd, write that to a temp file first: `CTX=$(mktemp)`; e.g. `git diff > "$CTX"` or `gh pr diff > "$CTX"` for "review current PR". If the agent can gather it itself in the cwd (codex/cursor/claude can run `git diff`), skip this. @@ -54,16 +56,16 @@ Default to the flagship in the table. If the user names a model after the agent | Agent | Flag | Flagship (default) | Other selectable | |-------|------|--------------------|------------------| -| `agy` | `--model` | `gemini-3.1-pro` | `gemini-3.5-flash`, `claude-opus`, `claude-sonnet`, `gpt-oss-120b` | +| `agy` | `--model` | `gemini-3.1-pro-high` | `gemini-3.5-flash-low`, `claude-opus-4-6-thinking`, `gpt-oss-120b-medium` | | `gemini` | `-m` | `gemini-3.1-pro-preview` | `gemini-3-pro-preview`, `gemini-2.5-pro`, `gemini-3-flash` | | `codex` | `-m` | `gpt-5.5` | `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.3-codex-spark` | -| `cursor` | `--model` | `gpt-5.5` | `gpt-5.5-fast`, `opus-4.8`, `sonnet`, `gemini-3.1-pro`, `grok-4.3`, `composer-2.5` | +| `cursor` | `--model` | `gpt-5.5-high` | `gpt-5.5-high-fast`, `claude-opus-4-8-thinking-high`, `composer-2.5`, `cursor-grok-4.5-high`, `gpt-5.3-codex` | | `claude` | `--model` | `claude-opus-4-8` | `claude-sonnet-4-6`, `claude-opus-4-8[1m]` | ## Rules of engagement - **Just run it.** Assume the binary is installed and authenticated. Do NOT `which`, version-check, `--help`, or test-run first. Build the command and execute in one step. - **Read-only by default.** Never pass write/auto-approve flags (`--force`, `--yolo`, `--sandbox workspace-write`, `--permission-mode acceptEdits`) unless the user explicitly asks the external agent to modify files. -- **Stale model id is the only thing to check.** If a run fails because a model id was rejected, that is the one time to look: run the tool's list (`agy models`, `gemini --list-models`, `cursor-agent --list-models`, or check `--help`), pick the current flagship, and rerun. Model ids drift; the table is a snapshot. +- **Stale model id is the only thing to check.** If a run fails because a model id was rejected, that is the one time to look: run the tool's list (`agy models`, `gemini --list-models`, `cursor-agent --list-models`, or check `--help`), pick the current flagship, and rerun. Model ids drift; the table is a snapshot. `cursor-agent --list-models` prints real ids. But `agy models` prints *display names*, not ids — the id is a lowercased/hyphenated form with a tier suffix (`Gemini 3.1 Pro (High)` → `gemini-3.1-pro-high`), the mapping is inconsistent (not every displayed tier resolves, and the dotted vs dashed version separator varies by family), so confirm a specific agy id with a one-line `agy -p "OK" --model --dangerously-skip-permissions` run before trusting it. - **Auth failure → report and stop.** If a run fails with an auth/login error, surface it verbatim and stop. Don't try to fix the other tool's credentials. - **Not for Claude sub-agents.** `claude` here is the headless CLI process. The native Task tool ("launch a sub-agent") is unrelated and not dispatched through this skill.