Skip to content

sync pstack through upstream 182f2ce - #2

Merged
caelaxie merged 2 commits into
mainfrom
cursor/sync-upstream-pstack-796a
Oct 18, 2026
Merged

caelaxie merged 2 commits into
mainfrom
cursor/sync-upstream-pstack-796a

Conversation

@caelaxie

@caelaxie caelaxie commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

baseline 2418e86 matches upstream pstack at e5136d8 (#633). diffed the baseline tree against pstack/ at e5136d8 and at its parent 850d7f2. the parent still has the pre-#633 principle text. the only path in e5136d8 that the baseline lacks is pstack/.cursor-plugin/, which this port never carried (devin uses .devin-plugin/plugin.json).

upstream main has no pstack commits after 019a6a2. version is still 0.15.25 upstream, so plugin.json, .devin-plugin/plugin.json, and the readme stay at 0.15.25. synced to 019a6a20592c10bf92869e5740368f578a9997fd.

ported:

  • 99743e9 (#634) cut marginal sections from interrogate/references/lead-judgment.md, principle-migrate-callers-then-delete-legacy-apis, principle-type-system-discipline, and swarm. kept the existing devin frontmatter (triggers: [user]) and the existing devin swarm wording. the #634 readme table edit drops "refuse to lie to the compiler" from the upstream principle index. this port's readme no longer has that index, and the phrase lived only in the skill description, which is updated.
  • 0317eb8 (#700) brand via a type guard in typescript-best-practices SKILL.md and references/patterns.md. kept triggers: [user, model] and the dropped paths frontmatter.
  • a968159 (#702) poteto-mode frontmatter name is now poteto-mode. make-bot-ui already had name: make-bot-ui from the devin port. other skills already matched their folders.
  • 019a6a2 (#704) guide prose and the autopilot-full claim in docs/guide/02 through 10. kept existing devin wording (/pstack: prefixes, cloud sessions, .devin paths).

skipped:

  • e5136d8 (#633) is already the baseline.
  • 182f2ce (#637) is claude code generated-tree install. core pstack/skills is unchanged. the "benny is cursor-only" sentence is skipped because this port already runs benny as devin sessions.
  • a968159 generator check in scripts/generate-pstack-harness-trees.mjs. that script builds the claude code tree and does not apply to this repo.
  • 1b80080 (#705) is claude code packaging. it edits docs/harness/claude-code.md, the generated harness/pstack/claude-code tree, the generator, and the claude code install blurb in the upstream readme. no skill text under pstack/skills changes. this port has no claude code adapter.
  • 019a6a2 scripts/check-pstack-docs.mjs and the regenerated claude code copies. the check hardcodes a pstack/ subdirectory, the full upstream readme tables, and a sibling cursor-team-kit. this repo is the plugin at the root with a short devin readme, so the script does not apply as-is. the upstream readme edits that only touch the claude code install blurb, the cursor custom-mode paragraph, and the built-in /babysit to /autopilot rename are also skipped. this port's readme does not have those sections, and docs/guide/01-setup.md already tells devin to pin the style in AGENTS.md instead of a cursor custom mode. the autopilot-full claim from that readme table is ported in docs/guide/07-overnight.md.
Open in Web Open in Cursor 

The 0.15.25 baseline already matches cursor/plugins e5136d8. Apply the
#634 cuts to the four skills, keeping the existing Devin frontmatter
and swarm wording. Leave versions at 0.15.25.

Co-authored-by: Kaitian Xie <[email protected]>
@cursor

cursor Bot commented Oct 17, 2026

Copy link
Copy Markdown

harness proof

devin cli 3000.11.92 (7f4e64980e22), installed with curl -fsSL https://cli.devin.ai/install.sh | bash. the installer then tried to log in and printed Error: Login canceled. no devin credentials are on this vm. devin auth login needs a browser or a pasted token (--force-manual-token-flow), neither of which i have.

plugin install, plugin list, and slash-command runs all stop at that login. the @branch source was not parsed: cli help for this version only documents owner/repo, a git url, or a local path, and the login check returns before source handling.

$ devin --version
devin 3000.11.92 (7f4e64980e22)

$ devin auth status
Not logged in.
  Credentials path: /home/ubuntu/.local/share/devin/credentials.toml
Run `devin auth login` to authenticate.

$ devin plugins install -y pstack-ports/devin-pstack@cursor/sync-upstream-pstack-796a
Error: You must be logged in to manage plugins. Run `devin auth login` first.
exit:1

$ devin plugins list
Error: You must be logged in to manage plugins. Run `devin auth login` first.
exit:1

$ devin plugins install --local -y /workspace
Error: You must be logged in to manage plugins. Run `devin auth login` first.
exit:1

$ devin plugins install --local -y pstack-ports/devin-pstack@cursor/sync-upstream-pstack-796a
Error: You must be logged in to manage plugins. Run `devin auth login` first.
exit:1

$ devin --respect-workspace-trust false -p -- "/pstack:poteto-mode"
Error: Login canceled
exit:1

fail: devin plugins install pstack-ports/devin-pstack@cursor/sync-upstream-pstack-796a (auth).
fail: devin plugins list (auth).
fail: /pstack:poteto-mode, /pstack:swarm, /pstack:principle-type-system-discipline, /pstack:principle-migrate-callers-then-delete-legacy-apis as plugin slash commands. print mode cancels login before a session starts, so those commands never load through the plugin.

unauthenticated fallback that did run: symlink each skill into ~/.config/devin/skills/ (a directory devin skills paths lists) and ask the cli to load them. this is not a plugin install and does not register the /pstack: prefix.

$ devin skills list
Available Skills

  /interrogate [user] (./skills/interrogate) - Use for "interrogate", "adversarial review", "multi-model review", "challenge this", "stress test this code", "find blind spots", or "tear this apart". Multiple LLM reviewers challenge changes from independent angles.
  /poteto-mode [user] (./skills/poteto-mode) - poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work. Use for poteto, /pstack:poteto-mode, or requests to work in this style.
  /principle-migrate-callers-then-delete-legacy-apis [user] (./skills/principle-migrate-callers-then-delete-legacy-apis) - Apply when introducing a new internal API while old callers still exist. Migrate callers and delete the old API in the same wave instead of preserving compatibility layers.
  /principle-type-system-discipline [user] (./skills/principle-type-system-discipline) - Apply when designing types, reviewing a function signature, or writing code in any statically-typed language. Make illegal states unrepresentable, brand semantic primitives, parse external data at boundaries, exhaust variants, derive from authoritative schemas.
  /swarm [user] (./skills/swarm) - Fan out N parallel workers, drain them, and return one report. Use for /pstack:swarm, 'swarm this', or parallel coverage, races, gauntlets, and exploration.
  ...built-in devin-cli, declarative-repo-setup, upload-secrets omitted...
exit:0

devin skills show exited 0 for poteto-mode, swarm, principle-type-system-discipline, principle-migrate-callers-then-delete-legacy-apis, and interrogate. each printed Provider: Devin, Triggers: user, and the skill body. the type-system description loaded without "refuse to lie to the compiler".

pass: skill files parse and load through devin skills list / devin skills show.
fail: plugin install, plugin list, and /pstack: invocation, all blocked on login.

@caelaxie
caelaxie marked this pull request as ready for review October 17, 2026 03:25

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

portreview: changes requested (posted as a comment, github won't let this account request changes on its own pr). blocker is harness proof.

  • minimum changes: pass. the four touched files match upstream pstack/ at 182f2ce line for line, devin frontmatter (triggers: [user]) and devin swarm wording aside. skipping #637 (claude code packaging) is right.
  • parity: pass. upstream is still 0.15.25, manifests and readme stay there.
  • harness: fail. devin plugins install and devin plugins list both exit 1 on devin auth login, and none of the four changed skills ran as /pstack: commands. devin skills list / skills show from a symlinked skills dir proves the files parse, not that the plugin installs. this can't merge until the pr shows devin plugins install + devin plugins list passing and the changed skills (swarm, interrogate, principle-type-system-discipline, principle-migrate-callers-then-delete-legacy-apis) exercised through the plugin.
  • linkage: n/a, no open issue.

next: get an authenticated devin cli on the run, rerun install/list, paste the output here. no content changes needed.

Apply the #700 brand type guard and rename poteto-mode to its folder.
Apply the #704 guide edits on top of the existing Devin wording.
Leave versions at 0.15.25.

Co-authored-by: Kaitian Xie <[email protected]>
@cursor

cursor Bot commented Oct 18, 2026

Copy link
Copy Markdown

harness proof

devin cli 3000.11.92 (7f4e64980e22) is still installed. no credentials on this vm, so plugin install and /pstack: sessions still cannot run. this pass loads the skills whose SKILL.md changed in 2605879 through devin skills list and devin skills show, after symlinking them into ~/.config/devin/skills/ (a path from devin skills paths). that is not a plugin install and does not register the /pstack: prefix.

$ devin --version
devin 3000.11.92 (7f4e64980e22)

$ devin auth status
Not logged in.
  Credentials path: /home/ubuntu/.local/share/devin/credentials.toml
Run `devin auth login` to authenticate.

$ devin skills list
Available Skills

  /poteto-mode [user] (./skills/poteto-mode) - poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work. Use for poteto, /pstack:poteto-mode, or requests to work in this style.
  /typescript-best-practices [user,model] (./skills/typescript-best-practices) - TypeScript best practices. Use when reading or editing any .ts or .tsx file.
  ...other previously symlinked skills and built-ins omitted...
exit:0

$ devin skills show poteto-mode
Skill: poteto-mode

Provider: Devin
Description: poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work. Use for poteto, /pstack:poteto-mode, or requests to work in this style.
Base directory: /home/ubuntu/.config/devin/skills/poteto-mode
Triggers: user
exit:0

$ devin skills show typescript-best-practices
Skill: typescript-best-practices

Provider: Devin
Description: TypeScript best practices. Use when reading or editing any .ts or .tsx file.
Base directory: /home/ubuntu/.config/devin/skills/typescript-best-practices
Triggers: user, model

| Branded types | Brand primitives with `& { readonly __brand: "X" }` so they can't be mixed up. Validate once at the boundary. A brand comes from a verifying type guard (`input is AgentId`), never from `as`. |
exit:0

pass: devin skills list and devin skills show for poteto-mode and typescript-best-practices. the loaded name is poteto-mode, and the branded-types row is the type-guard wording.
fail: devin plugins install and /pstack: invocation. still blocked because devin auth status is not logged in, and there is no token to complete devin auth login.

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

portreview: changes requested on 2605879 (posted as a comment, github won't let this account request changes on its own pr). blocker is still harness proof.

  • minimum changes: pass. every line 2605879 adds to docs/guide/02–10, skills/poteto-mode/SKILL.md, and skills/typescript-best-practices/{SKILL.md,references/patterns.md} is in upstream pstack/ at 019a6a2, and every pstack/ line #700, #702, #704 add is here, except: 10-recipes-and-pitfalls.md keeps "cloud sessions" for "cloud agents" (existing devin wording, fine), and the readme / 01-setup.md custom-mode and claude-code hunks, which this 21-line devin readme and the AGENTS.md pin don't carry. skips of #637, #705, and the generator/docs-check scripts are right.
  • parity: pass. upstream pstack head is 019a6a2, still 0.15.25; both manifests stay at 0.15.25.
  • harness: fail. devin auth status is still not logged in, so devin plugins install and devin plugins list never ran, and poteto-mode / typescript-best-practices were only loaded via symlinked devin skills show, not through the plugin. same bar as before: show devin plugins install + devin plugins list passing and the changed skills exercised as /pstack: commands.
  • linkage: n/a, no open issue.

next: no content changes needed. get an authenticated devin cli on the run, rerun install/list, paste the output.

@caelaxie
caelaxie merged commit 07dea45 into main Oct 18, 2026
@caelaxie
caelaxie deleted the cursor/sync-upstream-pstack-796a branch October 18, 2026 14:42
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