Skip to content

Port upstream pstack 0.15.36 - #50

Merged
caelaxie merged 2 commits into
mainfrom
cursor/port-pstack-0.15.36-8d9a
Oct 28, 2026
Merged

caelaxie merged 2 commits into
mainfrom
cursor/port-pstack-0.15.36-8d9a

Conversation

@caelaxie

@caelaxie caelaxie commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

summary

Ports upstream cursor/plugins pstack after e73df471cd4bd918367e99f3dd9c51bd53ddf5f0 (0.15.32, #807) through c742dd61706fbacc1b95f1a20b7b988cf096ce6c (0.15.36, #1043).

git log e73df471cd4bd918367e99f3dd9c51bd53ddf5f0..c742dd61706fbacc1b95f1a20b7b988cf096ce6c -- pstack/ is the seven commits below, in the order they landed. The compare range also contains 36 commits that do not touch pstack/.

ported

skills/statechart/ matches c742dd61706fbacc1b95f1a20b7b988cf096ce6c byte for byte. So do skills/ketchup-video/SKILL.md, skills/create-formal-verification-skill/SKILL.md, skills/principle-explain-the-number/SKILL.md, skills/poteto-mode/scripts/package.json, skills/poteto-mode/playbooks/autopilot-stack.md, and docs/guide/04-design.md.

antigravity-only adaptations

  • Version 0.15.36 in plugin.json and .antigravity-plugin/plugin.json. Upstream bumps pstack/plugin.json and pstack/.cursor-plugin/plugin.json. This port has no .cursor-plugin manifest. The agy manifest keeps its existing shape (logo, suggestedPrompts). Root plugin.json keeps the pstack-ports homepage and repository.
  • README pin is 0.15.36 at c742dd61706fbacc1b95f1a20b7b988cf096ce6c.
  • Arena's new cross-judge rule (a different tier, in pool order, skip the judge when none runs) and the dropped-seat backfill are applied on the existing agy wording (Model tiers, invoke_subagent, ~/.gemini/config/rules/pstack-models.md, TypeName: "research"). setup-pstack says the same thing about the cross-judge pool.
  • Interrogate is the upstream adversary flow. generalPurpose is TypeName: "self" in invoke_subagent, because TypeName: "research" is read-only and cannot run a repro. The reviewers line is read from ~/.gemini/config/rules/pstack-models.md. The four reference files are deleted with upstream.
  • Orchestrate is the new agentic playbook, and skills/poteto-mode/scripts/orch/ is deleted. Task is invoke_subagent. environment: "cloud" is Workspace: "branch", and work that needs this machine uses Workspace: "share". Wake-ups use schedule or /goal. A follow-up that needs a worker's built state uses send_message. Model diversity is a different tier. Local transcripts stay under <appDataDir>/brain/.
  • Poteto-mode's first-message trigger, Explain the Number wording, background steer or resume, rejected-tier fallback, and autopilot-stack description are applied on the existing tier wording.
  • Autopilot-full, babysit, opening-a-pr, multi-phase-plan, autonomous-run, the guide, poteto-help, and the README rows are the upstream text on the existing agy paths (/deslop as a pstack skill, schedule, installed plugin paths).
  • CI runs bun install and bun run test in skills/statechart/scripts. The compiler tests are TypeScript, so node --test skills/*/scripts/test/*.test.mjs no longer matches a file.

skipped

  • Every commit above also writes harness/pstack/claude-code/ copies of the same files. This repo does not ship that harness tree.
  • The 36 commits in e73df471cd4bd918367e99f3dd9c51bd53ddf5f0..c742dd61706fbacc1b95f1a20b7b988cf096ce6c that do not touch pstack/ (other plugins in the monorepo).
  • Upstream .github/workflows/validate-plugins.yml checks generated harness trees. This repo's CI does not have that step, and there is no agy equivalent of the generated copy.

limits

  • Ketchup-video is the upstream text. It has no script. It tells the agent to render a subtitled mp4. A live turn may not have a video tool. The skill text is unchanged.
  • Statechart installs TLC with mise when TLA2TOOLS is unset. This machine has no mise. The live Counter run below sets TLA2TOOLS to TLA+ v1.7.4.

harness proof

Head 90a93e4f023dbac80f67ca7b56aaea7c9be84e8a. agy 1.4.8, installed from the antigravity CLI installer (manifest .version is 1.4.8). Commands ran against this branch with a clean HOME.

$ agy --version
1.4.8

$ agy plugin validate .
Validating pstack (.antigravity-plugin/plugin.json)

  ⚠ plugin.json: ignored: .antigravity-plugin/plugin.json takes precedence

  skills 61 · agents 2 · rules 0 · hooks 0 · mcpServers 0 · sidecars 0

✔ Validation passed with 1 warning

$ agy plugin install https://github.com/pstack-ports/agy-pstack/tree/cursor/port-pstack-0.15.36-8d9a
Cloning plugin from https://github.com/pstack-ports/agy-pstack.git...
  [ok]    pstack
          ✔ skills      : 61 installed
          ✔ agents      : 2 installed (comment-sicko, poteto-agent)
          Installed to $AGY_HOME/.gemini/config/plugins/pstack

$ agy plugin validate "$AGY_HOME/.gemini/config/plugins/pstack"
✔ Validation passed with 1 warning
  skills 61 · agents 2 · rules 0 · hooks 0 · mcpServers 0 · sidecars 0

$ agy plugin list
Installed plugins:
- pstack (enabled, 0.15.36)
    Source:     antigravity
    Components: 61 skills, 2 agents

$ git -C "$AGY_HOME/.gemini/config/plugins/pstack" rev-parse HEAD
90a93e4f023dbac80f67ca7b56aaea7c9be84e8a

The repo checker printed Validated 61 skills, 2 agents, and 23 playbooks. agy plugin list --json includes poteto-mode, arena, interrogate, ketchup-video, and statechart. Orchestrate is a playbook, not a skill. The installed copies of those five skills, skills/poteto-mode/playbooks/orchestrate.md, skills/statechart/scripts/statechart, and plugin.json match this commit.

The installed statechart CLI on the Counter corpus (TLA+ v1.7.4, tla2tools.jar, Java 21, TLA2TOOLS set) exits 0. chart.mmd matches the committed corpus chart:

$ statechart Counter.tla --config Counter.cfg --out chart
# Counter

TLC reached 4 states and 3 steps. The chart draws 4 states and 3 arrows.

## Rules that hold
Low, StaysSmall

Wrote chart
stateDiagram-v2
  s0: 0
  s1: 1
  s2: 2
  s3: 3
  [*] --> s0
  s0 --> s1: Inc
  s1 --> s2: Inc
  s2 --> s3: Inc

With TLA2TOOLS unset and no mise on PATH, the same command exits 2 and prints Cannot find TLC: mise install failed: spawn mise ENOENT.

$ agy --print="/poteto-mode which playbook is a one-line typo fix, then stop"
Authentication required.

The print turn stops at Google OAuth. This environment is not signed in, so poteto-mode, arena, interrogate, orchestrate, and ketchup-video do not get a live model turn. Their installed files match this commit, and the scripted checks below ran.

$ bun run typecheck   # skills/poteto-mode/scripts, bun 1.4.4
tsc --project watch-pr/tsconfig.json --noEmit --strict
(exit 0)

$ GIT_CONFIG commit.gpgsign=false bun run test
Ran 62 tests across 4 files.
0 fail

$ (cd skills/statechart/scripts && bun install && bun run test)
# tests 334
# pass 267
# fail 0
# skipped 67

The 67 statechart skips are the TLC cases. TLA2TOOLS was unset for that run. Poteto-mode is 62 tests because the orch suite is gone with the scripts.

CI on this PR passed: run 40617127144, head 241be3116ec0f12df73fe1ba3bab07ff0feffda4. Validate plugin succeeded, including the statechart bun run test step.

Current main (552187e7c3dd799419c6e14a065351ce81dd60ec, 0.15.32) also validates, installs, and lists on agy 1.4.8 (61 skills, 2 agents). No separate release-check PR.

Open in Web Open in Cursor 

Sync cursor/plugins pstack from e73df47 (0.15.32, #807) through c742dd6 (0.15.36, #1043): the statechart compiler, qualified action names, the SIGKILL reap test, and the 0.15.35 skill updates, then the agentic orchestrate playbook.

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

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Collaborator 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).

checked at 241be31 against upstream c742dd6: all 406 added skills/statechart/ files byte-identical, the 7 files the body calls identical are identical, all 33 removals are gone upstream too. no new .cursor/cursor-team-kit mentions, the old ones are dropped, deslop/control-cli/control-ui untouched. versions 0.15.36 in both manifests, readme pin right. ci Validate plugin green. harness proof (validate + install on the branch + list at the exact head + installed statechart cli on counter) is accepted under the auth-blocked precedent.

two divergences block the merge, both in new text:

  1. skills/poteto-mode/playbooks/orchestrate.md line 5 rewrites more than agy needs and leaves one cursor-only concept in place.
  2. skills/interrogate/SKILL.md line 17 adds sentences agy doesn't strictly need.

fix those and push. no new harness run needed for text-only changes, just a fresh agy plugin install + agy plugin list at the new head.

**You run the program, never the code. Decide which agent does each piece of work, then check what each one produces.** For a standing project handed to one coordinator chat: multi-day, many stacked PRs, dozens to hundreds of subagents, few human turns. One task driven to a predicate is Autonomous run. One ambitious run that needs a bespoke workflow is figure-it-out. Work that one agent could finish inside the session's budget is not a program.

Ceremony must scale with the program. On cheap near-identical units, collapse it as each section directs.
Run it with your own tools. Spawn workers with `invoke_subagent`. Keep the program's state in the Project tracker (`notes.md`) and the Project store. Watch each PR with `schedule` or `/goal` when you need a wake-up. Call no scripts, run no polling loops, and never relay messages or status between agents.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

two things on this line.

(a) upstream: Watch each PR with PR and CI event subscriptions when your harness has them. that's already conditional on the harness, so it works verbatim on agy. the swap to schedule or /goal adds a timer wake, which sits badly with run no polling loops in the next sentence. smallest fix: restore the upstream sentence.

(b) the Project tracker (\notes.md`) and the Project storeis cursor projects, which agy doesn't have.docs/guide/07-overnight.mdin this same pr already maps a cursor project to a dedicated coordinator thread. smallest fix keeps the shape, e.g.Keep the program's state in a tracker file (`notes.md`) in the coordinator's workspace.`

Comment thread skills/interrogate/SKILL.md Outdated
## Fan out

Package the diff or file contents with any surrounding context files the reviewers need to understand the code.
Run Phase A steps 3 and 4 and Phase B of the **arena** skill, with four changes. Read the `interrogate reviewers` line in `~/.gemini/config/rules/pstack-models.md` in place of `arena runners`. That file is an always-applied rule, already in context when present, so do not `read_file` or `view_file` it. Copy the scope's uncommitted changes into each worktree. Spawn each adversary with `TypeName: "self"` in `invoke_subagent`. `TypeName: "research"` is read-only and cannot run the repro. In place of the arena task and rationale, give each adversary the scope, the intent, and this brief:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

upstream: Read the \interrogate reviewers` line in place of `arena runners`. ... Spawn each adversary as `generalPurpose`.`

only the spawn needs an agy mapping. the rules path and the always-applied rule ... do not read_file sentence are already in arena phase a step 3, which this step runs, and the research is read-only sentence is rationale, not instruction. smallest fix: keep the upstream text and change only the spawn to Spawn each adversary with \TypeName: "self"` in `invoke_subagent`.`

put the harness watch sentence back, map the project tracker to a coordinator workspace file, and keep the interrogate spawn as the only agy change.

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

cursor Bot commented Oct 28, 2026

Copy link
Copy Markdown

head 90a93e4f023dbac80f67ca7b56aaea7c9be84e8a. agy 1.4.8. clean home.

$ agy --version
1.4.8

$ agy plugin validate .
Validating pstack (.antigravity-plugin/plugin.json)

  ⚠ plugin.json: ignored: .antigravity-plugin/plugin.json takes precedence

  skills 61 · agents 2 · rules 0 · hooks 0 · mcpServers 0 · sidecars 0

✔ Validation passed with 1 warning

$ agy plugin install https://github.com/pstack-ports/agy-pstack/tree/cursor/port-pstack-0.15.36-8d9a
Cloning plugin from https://github.com/pstack-ports/agy-pstack.git...
  [ok]    pstack
          ✔ skills      : 61 installed (architect, arena, automate-me, benchmark-checklist, blast-radius, bro, control-cli, control-ui, correct, create-formal-verification-skill, create-verification-skill, deslop, figure-it-out, how, in-your-own-words, interrogate, ketchup, ketchup-video, maintain-formal-verification-skill, maintain-verification-skill, make-bot-ui, no-comments, poteto-help, poteto-mode, principle-attack-the-premise, principle-boundary-discipline, principle-build-the-lever, principle-encode-lessons-in-structure, principle-exhaust-the-design-space, principle-experience-first, principle-explain-the-number, principle-fix-root-causes, principle-foundational-thinking, principle-guard-the-context-window, principle-laziness-protocol, principle-make-operations-idempotent, principle-migrate-callers-then-delete-legacy-apis, principle-minimize-reader-load, principle-model-the-domain, principle-never-block-on-the-human, principle-outcome-oriented-execution, principle-prove-it-works, principle-redesign-from-first-principles, principle-separate-before-serializing-shared-state, principle-sequence-verifiable-units, principle-subtract-before-you-add, principle-test-behavior-not-implementation, principle-type-system-discipline, recall, reflect, setup-pstack, sharpen, show-me-your-work, statechart, swarm, tdd, teach, technical-writing, typescript-best-practices, unslop, why)
          ✔ agents      : 2 installed (comment-sicko, poteto-agent)
          Installed to /tmp/agy-proof-home/.gemini/config/plugins/pstack

$ agy plugin list
Installed plugins:
- pstack (enabled, 0.15.36)
    Source:     antigravity
    Components: 61 skills, 2 agents

$ git -C /tmp/agy-proof-home/.gemini/config/plugins/pstack rev-parse HEAD
90a93e4f023dbac80f67ca7b56aaea7c9be84e8a

cmp vs head blobs, both identical:

  • skills/poteto-mode/playbooks/orchestrate.md 4648d60cb1bb5ae73675d8f0ff2048b7d4da7cef
  • skills/interrogate/SKILL.md 1a393a5216a8e044fc79bfb730cece6bd3143893

installed grep:

  • orchestrate.md:5 Watch each PR with PR and CI event subscriptions when your harness has them. and a tracker file (notes.md) in the coordinator's workspace
  • interrogate/SKILL.md:17 Read the interrogate reviewersline in place ofarena runners. spawn is TypeName: "self" in invoke_subagent

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

pass at 90a93e4: 241be31..head touches only orchestrate.md:5 and interrogate/SKILL.md:17, each upstream c742dd6 verbatim except invoke_subagent / TypeName: "self" and the tracker file in the coordinator's workspace (same mapping as 07-overnight on main).
ci Validate plugin green on the head sha, proof comment shows agy install + list at 0.15.36 with installed HEAD = 90a93e4 and deslop, control-cli, control-ui present.

@caelaxie
caelaxie merged commit 0a4857f into main Oct 28, 2026
1 check passed
@caelaxie
caelaxie deleted the cursor/port-pstack-0.15.36-8d9a branch October 28, 2026 01:57
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.

2 participants