pcstack
| name | poteto-mode-conductor |
|---|---|
| description | Conductor only: how to run /poteto-mode and the vendored PStack skills inside a Conductor workspace or session. Triggers solely when the host is Conductor (CONDUCTOR_IS_LOCAL is set or /conductor/bin exists) and a prompt mentions /poteto-mode, poteto-mode, poteto, or PStack. Agents on Cursor or any other host must not invoke this skill. |
PStack for Conductor
PStack is vendored byte-identical at .agents/skills/vendor/pstack/. /poteto-mode means read .agents/skills/vendor/pstack/poteto-mode/SKILL.md in full and follow it; this file lists only the Conductor differences. Its empirical claims were probed live on Conductor Cloud, 2026-08-22/23, against a beta CLI and API (conductor 0.1.0) whose shapes may move, so re-check conductor --help, conductor model, and the live tool contracts before relying on a slug, flag, or event path. Resolve a bare skill name to top-level .agents/skills//SKILL.md when that exists, else to .agents/skills/vendor/pstack//SKILL.md; top-level copies win. Where a skill says .cursor/skills/, read .agents/skills/ (.claude/skills and .cursor/skills are committed symlinks to it). Skill discovery is host-specific: claude sessions surface only top-level entries, while codex hosts' catalogs list the vendored pstack entries too (both observed live). CONDUCTOR_IS_LOCAL=0 means you are in a cloud sandbox.
Delegation
Cursor's Task tool does not exist here. The CLI is /conductor/bin/conductor (also on PATH); session create defaults --workspace to CONDUCTOR_WORKSPACE_ID, and workspace create defaults to the current workspace's project. Three layers:
- Internal subagent. A subordinate worker owned by your session, sharing its filesystem. The tool is host-specific; inspect its live schema instead of assuming the other host's facts.
- Codex hosts expose
spawn_agent: GPT models from the host inventory,reasoning_effortas a spawn parameter, asynchronous by default with norun_in_backgroundparameter, and four total collaboration slots including the root as measured. A full-history fork inherits the parent's model and effort; a no-history or last-N-turns fork may override both. Children may delegate within the slot limit. - Claude hosts expose the
Agenttool: claude-family models,run_in_backgroundas a native parameter, no effort parameter on the inspected tool, and five concurrent measured. Full-history forks (subagent_type: "fork") inherit the parent's model; fresh-context subagents may override it within the family, and subagents may delegate further. - Neither tool echoes the resolved model or effort back, so parameter acceptance is the only receipt you get.
- Codex hosts expose
- Conductor session. A separate first-class chat in the same workspace. Any supported agent/model/effort combination from
conductor model: the live inventory listed claude, codex, and cursor models, the CLI parsesacpbut the inventory listed no ACP model, and Conductor documents effort for claude and codex. Fresh transcript. Shares the filesystem and branch, including uncommitted changes./conductor/bin/conductor --json session create --agent --model --effort --name --messageLong prompts go through--message-file. Follow up withmessage create --session --message. - Conductor workspace. Full isolation: its own checkout, branch, environment, and review path, and creation also creates the first session. Same model surface as sessions.
/conductor/bin/conductor --json workspace create --project-id --branch --name --session-name --agent --model --effort --message--branchselects the base branch; Conductor creates an isolated workspace branch and checkout, so uncommitted parent state does not transfer. Clean up withworkspace archive(session archiveandsession cancelfor finished or runaway sessions).
Reading a reply. Done means the transcript's last reply answers the prompt; one prompt can emit several progress notes shaped exactly like the answer, and a reply announcing waiting or backgrounded work means keep waiting. Never trust session status for doneness: idle shows before pickup and can show mid-work, so a turn is complete only when the transcript contains the answering reply; working is at most a delivery confirmation. Read with session message --limit 100 and page with --after to the end; the default page is five events and the service clamps pages to 100, so an unpaged read hands you an early intermediate line as the answer. Wait by re-running session message --after on a sleep loop, inside your turn: a first reply can take minutes and a max-effort critic took twenty, and a session that ends its turn on a progress note sits idle until someone nudges it. Observed shapes (beta API, not a contract): each message wraps the agent event in a Conductor envelope at content.rawPayload. Claude replies are Claude Code stream-json, text in assistant events and answers repeated in result events. Codex reply text sits at rawPayload.event.item.text in item.completed events with item.type agentMessage; an item.phase field (final_answer vs commentary) appears inconsistently across readback paths, so select by position per the done rule, never by phase. A working session can still supersede its newest reply, so the done rule decides, not event arrival.
Task parameter map
Cursor Task | Conductor |
|---|---|
| a plain delegate | an internal subagent or a Conductor session |
subagent_type: "poteto-agent" | the delegation prefix above |
model | --agent, --model, --effort per the table below; on the internal tool, a host-family model (plus reasoning_effort on codex) |
run_in_background: true | native on claude's Agent tool; codex's spawn_agent is async by default; for sessions, launch and keep working, then confirm the reply per the reading rule (page the transcript, never watch session status) |
readonly: true | instruct-only. Sessions share the tree, so read-only is a prompt instruction, not an enforcement. Say so when reporting. |
environment: "cloud" | already true; a separate workspace only when isolation is needed |
environment: "local" | unavailable |
cloud_base_branch | workspace create --branch |
Models
This whole section is project policy (Vincent's rules), not a Conductor limitation. Map pstack slugs through this table; ignore setup-pstack and ~/.cursor/rules/pstack-models.mdc. Grok slugs go to codex, never through the cursor agent, even though the live cursor inventory lists grok models.
| pstack slug | Conductor |
|---|---|
claude-fable-5-thinking-max | claude fable-5, effort max |
gpt-5.6-sol-max | codex gpt-5.6-sol, effort max |
grok-4.6-fast-xhigh | codex gpt-5.6-sol, effort xhigh |
claude-opus-5-thinking-xhigh | claude opus-5-1m, effort xhigh |
inherit-parent, auto | a full-history internal fork, or do the role yourself |
A slug's trailing tier maps to the same-named Conductor effort; when a family's enum lacks the name, use its top effort. conductor --json model lists the live inventory (claude low through max, codex none through ultra). On an actual usage limit, and never preemptively, switch to the equivalent model at the equivalent thinking level in the other provider (codex gpt-5.6-sol high → claude fable-5 high). One exception: fable to sol goes one thinking level higher (claude fable-5 high → codex gpt-5.6-sol xhigh), never the reverse; at the top of the enum, stay at the top.
Also missing
- Cursor transcript paths (
~/.cursor/projects//agent-transcripts/), so the transcript-mining steps ofrecall,reflect,automate-me,session-pickup, andshow-me-your-work's audit step do not work as written.session messagereads one raw session transcript;conductor sql(read-only SQL oversession_transcripts_view) searches across sessions;session-pickupcan still start from a Conductor link, an API transcript, or a pushed branch; steps that use git, GitHub, or live files still work. - Cursor's
AskQuestion. Under the claude agent usemcp__conductor__AskUserQuestion; the probed codex host had no equivalent. - The
Comment Sickosubagent type and thedeslop,control-cli, andcontrol-uiskills. The hosts exposeunslopandskill-creator: run the pre-commit deslop pass withunslopon the branch diff, author skills withskill-creator, and do the control-surface passes yourself. - A todo tool. Honor poteto-mode's todolist non-negotiable with a scratch file outside the checkout (for example
/tmp/-todo.md), updated as steps complete: it survives context compaction, and any session sharing the workspace can read it. Never put it inside the repo tree, where it could be committed.