Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions UPSTREAM.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ The table above is the current Cursor sync point. Open Pstack 1.17.0 imported th

- **#262 — statechart types, no test corpus**: `statechart/scripts/test/` is not imported. It is 2.9 MB of upstream test data and TLC output, more than the review service's reviewers can read, and upstream's CI runs it. The root `bun run typecheck` checks statechart's scripts: `statechart/scripts/package.json` adds pinned `typescript` and `@types/node` and a `typecheck` script, with a `bun.lock`, and the port annotates `exitClass` in `run.ts` with its `0 | 1 | 2` return type, which upstream's code needs under strict checking. Keep these lines during syncs until upstream fixes the type, and keep `scripts/test/` out.

- **#265 — Orchestrate verifier and sub-coordinator**: keep upstream's "on a different model family" for each PR's verifier; do not substitute provider. After upstream's sub-coordinator sentence, the port adds that where a subagent cannot start agents, such as a Claude Code native lane, the coordinator starts the sub-coordinator's workers from the kickoffs it writes and hands their results back to it. `codex-tools.md#subagent-policy` states that native lanes disallow `Agent` and `Task`.

## Check for changes

The repository already names Cursor's repository as the `cursor` remote in the maintainer checkout. A fresh clone can add it once:
Expand Down
4 changes: 2 additions & 2 deletions plugins/pstack/skills/poteto-mode/playbooks/orchestrate.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ Run it with your own tools. Spawn workers through provider dispatch, per the Sub

- **One owner per PR.** The owner is the only writer of its branch and carries the PR from build to merge. Only the owner pushes, rebases, or retargets it. Closing or retargeting a base PR orphans every PR above it, so the owner does that only on your call. You never author or edit code. Conflicted merges, chain rebases, and fixes go to owners.
- **A fresh worker for each independent task.** Its kickoff carries everything it needs, including each upstream report it depends on, pasted in full. Workers can't see their siblings. Each writer runs in its own dedicated local worktree, because Claude Code and Codex have no remote worker environment. Pick each subagent's effort for the job, per the Subagents section.
- **A sub-coordinator only when one area has many parallel workers.** It owns that area's workers and kickoffs and sends you one rollup, never raw worker reports. Stop at three levels: you, sub-coordinators, and workers. Keep about ten workers in flight per coordinator, and start the next one as each finishes instead of waiting on a whole batch.
- **A sub-coordinator only when one area has many parallel workers.** It owns that area's workers and kickoffs and sends you one rollup, never raw worker reports. Where a subagent cannot start agents, such as a [Claude Code native lane](../references/codex-tools.md#subagent-policy), you start its workers from the kickoffs it writes and hand their results back to it. Stop at three levels: you, sub-coordinators, and workers. Keep about ten workers in flight per coordinator, and start the next one as each finishes instead of waiting on a whole batch.
- **Reuse a worker's worktree when new work needs its built state,** such as its checkout, uncommitted changes, or a running process: resume that worker, or start a new worker in that worktree after it stops. Message a worker only for a follow-up on the same work. Never message one to check on it, because a message restarts an idle agent.
- **Each PR gets a verifier that isn't its author,** on a different provider. The owner merges only on that verifier's pass at the current head.
- **Each PR gets a verifier that isn't its author,** on a different model family. The owner merges only on that verifier's pass at the current head.
- **Start with one unit.** Take it through kickoff, owner, verifier, and merge before you fan out, so a flaw in the kickoff costs one agent instead of fifty. On near-identical cheap units, the first unit is that test.

#### Supervision
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ poteto-mode's Subagents section sets the Claude-specific default `subagent_type:
- There is no `poteto-agent` subagent type. Route an ad-hoc subagent through poteto-mode's style by dispatching a `spawn_agent` whose instructions tell it to read the `poteto-mode` skill in full first.
- `spawn_agent` calls already run concurrently with your turn, so `run_in_background: true` has no separate flag. Issue the dispatch and continue.
- There is no `comment-sicko` subagent type either. The **no-comments** skill spawns it on Claude Code; on Codex dispatch a `spawn_agent` whose instructions tell it to read `agents/comment-sicko.md` in full first.
- A Claude Code native lane cannot start agents: each `agents/pstack-*.md` lane disallows `Agent` and `Task`.
- Claude Code runs every subagent on this machine, so the **swarm** skill's workers and the fan-out playbooks (`orchestrate`, `autopilot-full`, `autopilot-stack`) isolate writers with worktrees. The same holds on Codex.
- Keep the rest of the policy unchanged. Pass file pointers not inlined context, give each worker its own worktree or branch when they write, review every subagent's diff yourself.

Expand Down
Loading