Skip to content

Pass only the model id from a role line - #45

Merged
caelaxie merged 2 commits into
mainfrom
cursor/spawn-model-id-only-ea3b
Nov 9, 2026
Merged

caelaxie merged 2 commits into
mainfrom
cursor/spawn-model-id-only-ea3b

Conversation

@caelaxie

@caelaxie caelaxie commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Closes #43

Role lines stay grok-4.6 xhigh. Spawn passes only the model id (grok-4.6), checked against grok models. This CLI's spawn_subagent has no effort argument, so the child keeps the parent's effort.

Open in Web Open in Cursor 

Role lines stay grok-4.6 xhigh. spawn_subagent receives the model id, checked against grok models. This CLI has no effort argument, so the child keeps the parent's effort.

Co-authored-by: Kaitian Xie <caelaxie@users.noreply.github.com>

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes requested (comment review, same account as author).

content mostly matches #43's smallest fix: role lines stay grok-4.6 xhigh, model gets only the id, validated against grok models, and the no-effort-argument note is in. Validate plugin is green on 01d3c82. two things before merge:

  1. poteto-mode:96 splits upstream's ", and the hardest changes read hardest tasks" into extra sentences. keep that clause verbatim and change only the model part (inline suggestion).
  2. no grok harness proof yet. this touches skill text, so post on 01d3c82: grok plugin validate, grok plugin install --trust of the exact head, grok plugin list, and the installed copy (or inspect) showing the changed how/why/reflect/swarm/arena/architect/poteto-mode/setup-pstack text. per the 2026-10-19 precedent, install+list+installed-copy is enough if a live turn is auth-blocked.

Comment thread skills/poteto-mode/SKILL.md Outdated
**Use `subagent_type: "pstack:poteto-agent"` for any subagent you spawn inside a playbook step** (code-writing delegates, ad-hoc helpers). The chat that receives `/poteto-mode` runs the playbook and is the only chat that may call `spawn_subagent`. A child cannot spawn. Never spawn a `poteto-agent` to run the playbook itself. Routed workflow skills (`how`, `why`, `interrogate`, `reflect`, `swarm`) omit `subagent_type`, or set the type they name. Respect what the skill prescribes, don't override to `poteto-agent`.

**Defaults for every `spawn_subagent` call.** `run_in_background: true` (a steer or resume of a running agent too, because a foreground call holds your turn while other reports wait). There is no readonly flag. When a child must not edit files, say so in the prompt. MCP stays available through `search_tool` and `use_tool`. Pass file pointers, not inlined context. Pass `model` only when the tool schema includes it. Otherwise omit `model` so the child inherits the parent. If it rejects a slug, use the closest slug from `grok models` and say so. Defaults are `grok-4.6` at `xhigh` for code and for prose and judgment. Code delegates tier by difficulty. The hardest changes (cross-cutting design, gnarly concurrency, subtle algorithms) go to your strongest judgment model (`grok-4.6` at `xhigh`), whether the task needs judgment on vague intent or is a precisely specified sequence of steps to execute to the letter. Trivial mechanical edits go to your fast code model. Per-role lines in `~/.grok/rules/pstack-models.md` (written by `/setup-pstack`) override these defaults and the model choices in the routed skills (`how`, `why`, `arena`, `swarm`, `architect`, `interrogate`, `reflect`). A role with no line keeps its default, and a role line of `inherit-parent` or `auto` runs that role on the parent chat model (omit `model`). Each code playbook's configured model comes from its line (`feature, refactoring`, `bug-fix`, `perf-issue`, or `hillclimb`), and the hardest changes read `hardest tasks`. Prose and judgment read `judgment and prose`. When `spawn_subagent` has no `model` argument, omit `model` for this session so every role inherits the parent, and apply step 1 of **setup-pstack** so the next session can pass `model`.
**Defaults for every `spawn_subagent` call.** `run_in_background: true` (a steer or resume of a running agent too, because a foreground call holds your turn while other reports wait). There is no readonly flag. When a child must not edit files, say so in the prompt. MCP stays available through `search_tool` and `use_tool`. Pass file pointers, not inlined context. Pass `model` only when the tool schema includes it. Otherwise omit `model` so the child inherits the parent. If it rejects a slug, use the closest slug from `grok models` and say so. Defaults are `grok-4.6` at `xhigh` for code and for prose and judgment. Code delegates tier by difficulty. The hardest changes (cross-cutting design, gnarly concurrency, subtle algorithms) go to your strongest judgment model (`grok-4.6` at `xhigh`), whether the task needs judgment on vague intent or is a precisely specified sequence of steps to execute to the letter. Trivial mechanical edits go to your fast code model. Per-role lines in `~/.grok/rules/pstack-models.md` (written by `/setup-pstack`) override these defaults and the model choices in the routed skills (`how`, `why`, `arena`, `swarm`, `architect`, `interrogate`, `reflect`). A role with no line keeps its default, and a role line of `inherit-parent` or `auto` runs that role on the parent chat model (omit `model`). Each code playbook passes only the model id from its line (`feature, refactoring`, `bug-fix`, `perf-issue`, or `hillclimb`), validated against `grok models`. The id is `grok-4.6` in `grok-4.6 xhigh`. The hardest changes read `hardest tasks`. Prose and judgment read `judgment and prose`. When `spawn_subagent` has no `model` argument, omit `model` for this session so every role inherits the parent, and apply step 1 of **setup-pstack** so the next session can pass `model`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minimum change: keep upstream's sentence shape and swap only the model part, e.g.

Each code playbook passes only the model id from its line (feature, refactoring, bug-fix, perf-issue, or hillclimb), validated against grok models, and the hardest changes read hardest tasks.

the extra "The id is grok-4.6 in grok-4.6 xhigh." sentence isn't needed here; the id example already lives in setup-pstack and the routed skills.

Pass only the model id, and keep upstream's ", and the hardest changes read `hardest tasks`" wording.

Co-authored-by: Kaitian Xie <caelaxie@users.noreply.github.com>
@cursor

cursor Bot commented Nov 9, 2026

Copy link
Copy Markdown

Harness at head f5a8dbf71b94c9f15e405272a02e05028de25e51, grok 1.0.77 (50ca579fa996). Isolated HOME. No earlier proof comment on this PR.

$ grok --version
grok 1.0.77 (50ca579fa996)

$ grok plugin validate .
Plugin manifest is valid.
  name: pstack
  version: 0.15.36
  components: 1 skill dir(s), 0 command dir(s), 1 agent dir(s)

$ grok plugin install https://github.com/pstack-ports/grok-pstack@cursor/spawn-model-id-only-ea3b --trust
Installed 1 plugin(s) from https://github.com/pstack-ports/grok-pstack@cursor/spawn-model-id-only-ea3b: pstack

$ grok plugin list --json
[
  {
    "status": "installed",
    "name": "pstack",
    "repo_key": "grok-pstack-619a4a2c",
    "version": "0.15.36",
    "path": "/tmp/tmp.SA4tml4itS/.grok/installed-plugins/grok-pstack-619a4a2c",
    "source": "https://github.com/pstack-ports/grok-pstack",
    "marketplace": null
  }
]

Installed checkout HEAD is f5a8dbf71b94c9f15e405272a02e05028de25e51 (cursor/spawn-model-id-only-ea3b). grok plugin validate on that path: Plugin manifest is valid.

grok inspect --json: plugin pstack is enabled (provides.skills 61, provides.agents 1). Agents pstack:poteto-agent and pstack:comment-sicko are loaded. 61 skills come from plugin pstack.

Installed text after the review suggestion. Line 96 keeps , and the hardest changes read hardest tasks``.

skills/poteto-mode/SKILL.md:96:

Each code playbook passes only the model id from its line (`feature, refactoring`, `bug-fix`, `perf-issue`, or `hillclimb`), validated against `grok models`, and the hardest changes read `hardest tasks`.

skills/how/SKILL.md:11, skills/why/SKILL.md:11, skills/reflect/SKILL.md:28:

Set `model` to the model id in that line's value (`grok-4.6` from `grok-4.6 xhigh`), or to the default model id if the rule or the line is missing. Validate the id against `grok models`.

skills/swarm/SKILL.md:22:

Pick the worker model id from the `swarm workers` line in `~/.grok/rules/pstack-models.md` (`grok-4.6` from `grok-4.6 xhigh`), and validate it against `grok models`.

skills/arena/SKILL.md:17:

Use the model id from each `arena runners` entry in `~/.grok/rules/pstack-models.md` (`grok-4.6` from `grok-4.6 xhigh`, `grok-4.5` from `grok-4.5 high`), validated against `grok models`. If the rule or that line is missing, default to one each on `grok-4.6` at `xhigh` and `grok-4.5` at `high`.

skills/architect/SKILL.md:31:

Take the model id from each `architect runners` entry in the `pstack-models.md` rule, in place of the `arena runners` line, and validate it against `grok models`. If the rule or that line is missing, use `grok-4.6` at `xhigh` and `grok-4.5` at `high`.

skills/setup-pstack/SKILL.md:16 and :42:

When `spawn_subagent` lists `model`, pass only the model id (`grok-4.6` from a `grok-4.6 xhigh` line), validated against `grok models`.
Every real model id written must be in the detected set. The effort word after the id is not a slug.

The rule lines in skills/setup-pstack/SKILL.md stay grok-4.6 xhigh.

Local bun run test in skills/poteto-mode/scripts: 61 pass, 0 fail.

A live grok -p turn is auth-blocked (Not signed in).

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pass (comment review, same account as author).

f5a8dbf matches #43's smallest fix: rule lines stay grok-4.6 xhigh, model gets only the id validated against grok models, no-effort-argument note is in. poteto-mode:96 now keeps upstream's ", and the hardest changes read hardest tasks" verbatim. grok 1.0.77 validate + install --trust + list --json + inspect + installed-copy text on the exact head (issuecomment-6731247399), live turn auth-blocked, which the text-only precedent covers. Validate plugin green, Closes #43, not draft. merging.

@caelaxie
caelaxie merged commit 88e8578 into main Nov 9, 2026
1 check passed
@caelaxie
caelaxie deleted the cursor/spawn-model-id-only-ea3b branch November 9, 2026 03:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

role lines pass grok-4.6 xhigh as the model slug

2 participants