Skip to content

Pin read-only seats and restore judgment spawn rules - #26

Merged
caelaxie merged 2 commits into
mainfrom
cursor/readonly-seat-droids-9106
Oct 21, 2026
Merged

caelaxie merged 2 commits into
mainfrom
cursor/readonly-seat-droids-9106

Conversation

@caelaxie

@caelaxie caelaxie commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Closes #17
Closes #18

Are two more droids too much?

No. tools: read-only is what actually enforces the upstream readonly: true guarantee. A sentence in the brief does not. explorer cannot pin a seat model, so it is only the auto / inherit-parent path. The two twins keep the model panel: poteto-agent-readonly (grok-4.7) and poteto-judgment-readonly (claude-opus-5-5).

/how, /interrogate, and the arena judge spawn those droids. Arena candidates still use the full-tool seats, because they write. /setup-pstack writes or deletes the read-only twin whenever it writes or deletes the seat, so a personal model pin applies to both.

poteto-judgment is the code-seat droid's description again, with the judgment-seat role, the judgment model, and "on the judgment seat" in the body. The spawn, resume, and worker substitution sentences are back.

Validate plugin compared droid filenames (still ending in .md) with ids (the .md stripped). - sorts before ., so poteto-agent-readonly.md came out ahead of poteto-agent.md, while the id poteto-agent comes ahead of poteto-agent-readonly. The checker now sorts both sides as ids. That is the only workflow change.

Open in Web Open in Cursor 

how, interrogate, and the arena judge spawn droids with tools: read-only. poteto-judgment keeps the spawn, resume, and substitution rules, and setup pins the read-only twins with the seats.

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.

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

content matches #17 and #18's smallest fixes: read-only twins with tools: read-only, how/interrogate/arena pointed at them, the "say so in the brief" sentences gone, explorer only for auto/inherit-parent, and poteto-judgment's spawn/resume/worker sentences restored. the setup-pstack twin-pinning line is a needed follow-on, fine.

blocking:

  1. ci is red on a339165. Validate plugin fails ~13s in (log line 228, exit 1). every other open droid pr is green at the same base 3a60c35, so this diff broke it. my guess (unverified) is the install/loaded-droids check or droid rejecting the new tools: read-only frontmatter. fix and get ci green at the final head.
  2. harness proof. this adds droids and a new frontmatter key, so ci alone isn't enough. post in the pr: droid plugin marketplace add pstack-ports/droid-pstack#<branch> + droid plugin install pstack@<name> + droid plugin list at the final head sha, the installed droids/ listing showing both -readonly twins, and proof droid honors tools: read-only (e.g. a spawn of poteto-agent-readonly whose tool list has no edit/execute tools, or droid's own droid listing showing its tools). if a live model turn is blocked only by cli auth, say so and show the installed copy.

non-blocking nit inline.

@@ -0,0 +1,11 @@
---
name: poteto-agent-readonly
description: Read-only delegate subagent for code-writing and helper tasks spawned during a `/poteto-mode` run. Use for delegates, not as the runner for `/poteto-mode` itself. Spawn a fresh `poteto-agent-readonly` for each new task, and resume one only in the strict cases that poteto-mode's Subagents section names. Reads the `poteto-mode` skill's `SKILL.md` in full before any work, including its inline Principles index. Substituting `worker` skips that read and drifts.

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.

nit: "Read-only delegate subagent for code-writing and helper tasks" contradicts itself; the parent reads this to pick a seat. consider "Read-only delegate subagent for exploration, review, and helper tasks" or just "Read-only delegate subagent for helper tasks". not blocking.

Filename order puts poteto-agent-readonly.md ahead of poteto-agent.md, while the id order does the reverse. Compare both sides as sorted ids so the read-only twins pass Validate plugin.

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

cursor Bot commented Oct 21, 2026

Copy link
Copy Markdown

Harness proof for d09b04a. Command output is unedited.

HOME=/tmp/droid-proof-readonly2
which=/tmp/droid-proof-readonly2/.local/bin/droid
0.245.0
===== droid plugin marketplace add =====
Successfully added marketplace: droid-pstack@cursor-readonly-seat-droids-9106
marketplace_add_exit=0
===== droid plugin install =====
Successfully installed pstack@droid-pstack@cursor-readonly-seat-droids-9106 (d09b04a)
install_exit=0
===== droid plugin list =====
Installed plugins:
Active:
  pstack@droid-pstack@cursor-readonly-seat-droids-9106  [user]  d09b04a
list_exit=0
$ git -C /tmp/droid-proof-readonly2/.factory/plugins/cache/droid-pstack@cursor-readonly-seat-droids-9106-0b00786518ab/pstack-7171b73fae68/d09b04aa218a rev-parse HEAD
d09b04aa218ad6e48b7d41e472d14b2bc6df2d5a
(exit 0)
$ echo expected
d09b04aa218ad6e48b7d41e472d14b2bc6df2d5a
$ git -C /workspace diff --name-status 3a60c3580a01bba100804e6efe3395d9f5dd924e HEAD
M	.github/workflows/ci.yml
A	droids/poteto-agent-readonly.md
A	droids/poteto-judgment-readonly.md
M	droids/poteto-judgment.md
M	skills/arena/SKILL.md
M	skills/how/SKILL.md
M	skills/interrogate/SKILL.md
M	skills/setup-pstack/SKILL.md
(exit 0)
MATCH .github/workflows/ci.yml
MATCH droids/poteto-agent-readonly.md
MATCH droids/poteto-judgment-readonly.md
MATCH droids/poteto-judgment.md
MATCH skills/arena/SKILL.md
MATCH skills/how/SKILL.md
MATCH skills/interrogate/SKILL.md
MATCH skills/setup-pstack/SKILL.md
===== droid exec =====
Skill "how" activated
Error during droid execution: Authentication failed. Please log in using /login or set a valid FACTORY_API_KEY environment variable.
exec_exit=1

@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.

verdict: pass at d09b04a, merging.

  • ci is green now. the ci.yml change is one .sort() so droid ids compare as ids; needed for the new -readonly filenames, nothing else touched.
  • matches #17 and #18's smallest fixes. the twins differ from their seats only in name, a Read-only prefix, and tools: read-only; poteto-judgment differs from poteto-agent only in name, model, seat role, and "on the judgment seat".
  • droid facts check out against custom droids: tools: read-only category, built-in explorer is read-only, task has no readonly field.
  • no cursor files. Closes #17 / Closes #18, not a draft.

non-blocking: the twins' descriptions still say "code-writing" and "hardest changes" while the droid can't write. every spawn site names them explicitly, so it's fine for now.

@caelaxie
caelaxie merged commit d1b6ca2 into main Oct 21, 2026
1 check passed
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.

audit: poteto-judgment drops the spawn, resume, and substitution rules audit: read-only spawns are only a sentence in the brief

2 participants