Skip to content

chore: sync port with upstream pstack 0.15.0 - #3

Open
adjohn wants to merge 3 commits into
mainfrom
worktree-sync-upstream-0.15.0
Open

chore: sync port with upstream pstack 0.15.0#3
adjohn wants to merge 3 commits into
mainfrom
worktree-sync-upstream-0.15.0

Conversation

@adjohn

@adjohn adjohn commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Why

Upstream pstack moved from 0.14.3 to 0.15.0 (cursor/plugins main, df3fb15, 2026-09-07). This brings the Claude Code port up to that snapshot without redoing the port by hand.

Scope

Two commits. e865e30 on the upstream-vendor branch is the pure upstream snapshot of pstack/, parented on the original import commit d66f80f, so git knows the port's base. abd0404 merges it into the port.

Upstream changes carried in:

  • Prose density pass across every skill and playbook (upstream #329, #331).
  • Two new principle leaves: principle-attack-the-premise, principle-test-behavior-not-implementation.
  • Forge-neutral shipping, babysit, and autopilot playbooks. GitHub CLI by default, Origin when its CLI is available, Graphite no longer required.
  • Fable 5.1 defaults. bug-fix, perf-issue, and hillclimb now default to fable instead of sonnet.
  • The how skill loses critique mode. The how critics role and its two reference files are gone.

Port-side changes:

  • scripts/port-from-cursor.sh is new. It holds every Cursor-to-Claude Code substitution the original port made by hand (model slugs, AskQuestion, Task, transcript paths, cursor-team-kit control skills, /deslop, /goal, create-skill, pinned-chat wording). It is idempotent and scoped to skills/, agents/, and docs/.
  • README gains a "syncing with upstream" recipe and a port-table row for make-bot-ui.
  • .claude-plugin/plugin.json version is 0.15.0.

Left out on purpose:

  • skills/make-bot-ui. It drives Cursor webhook routines and a Grok Bot. No Claude Code counterpart.
  • assets/logo.png. The Claude Code manifest has no field that consumes it.

Tradeoffs

Conflicts were resolved by taking upstream's text and re-running the substitution script, rather than hand-merging each hunk. That keeps future syncs mechanical, at the cost of one pass of manual review for phrases the script does not know yet. The three files the original port rewrote wholesale (README.md, plugin.json, setup-pstack/SKILL.md) were reconciled by hand.

Blast Radius

Every skill and playbook text changes, mostly punctuation and trimming from upstream. Behavioral changes for users of this plugin: three role defaults move to fable, the how critics role no longer exists, and shipping playbooks stop assuming Graphite. A personal ~/.claude/pstack-models.md that still lists how critics or bug-fix: sonnet keeps working; the former is ignored and the latter overrides the new default as before.

Verification

  • Script idempotency: a second run of scripts/port-from-cursor.sh leaves an identical checksum over all skill, playbook, and guide files.
  • Cursor-ism sweep: grep over skills/, agents/, docs/ for Cursor slugs, tool names, paths, and cursor-team-kit terms returns only the deliberate mentions (the Bugbot triage reference, the poteto-mode review-bot trigger, and the word "precursor").
  • Frontmatter: every SKILL.md and agent file carries only name, description, disable-model-invocation, and one paths. No Cursor-only keys.
  • Every references/, playbooks/, and scripts/ path cited from the routed skills exists on disk.
  • claude plugin validate . passes.
  • bun test in skills/poteto-mode/scripts passes 53 of 53 on two of three runs. One run had a single timing flake. Neither this merge nor upstream touched that directory.

🤖 Generated with Claude Code

https://claude.ai/code/session_01X8ENwh7GfaGvuwDRykTGxx

adjohn and others added 2 commits September 9, 2026 11:51
Merges the upstream-vendor branch (cursor/plugins@df3fb15, pstack 0.15.0)
into the Claude Code port. Every conflict region was resolved to upstream's
text, then scripts/port-from-cursor.sh re-applied the Cursor-to-Claude Code
substitutions the original port made by hand.

Upstream changes carried in:
- Prose density pass across every skill and playbook (#329, #331).
- Two new principle leaves: attack-the-premise, test-behavior-not-implementation.
- Forge-neutral shipping, babysit, and autopilot playbooks (gh by default,
  Origin when available, Graphite no longer required).
- Fable 5.1 defaults: bug-fix, perf-issue, and hillclimb now default to fable.
- The how skill loses critique mode; the "how critics" role is gone.

Port decisions:
- scripts/port-from-cursor.sh is the checked-in lever for the next sync;
  the README's "syncing with upstream" section describes the recipe.
- make-bot-ui is not ported: it drives Cursor webhook routines and a Grok
  Bot, with no Claude Code counterpart.
- The upstream logo asset is left out; the Claude Code manifest has no
  consumer for it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X8ENwh7GfaGvuwDRykTGxx
@adjohn
adjohn marked this pull request as ready for review September 9, 2026 19:09
Upstream's babysit step 8 now posts review replies with gh api --input
<payload.json>, which supersedes the -F @file fix from PR #2.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X8ENwh7GfaGvuwDRykTGxx
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.

1 participant