refactor: rename to pstack-flex, add intake and diff-behavior, add the local and live gate docs - #26
Merged
Merged
Conversation
Rename the marketplace from open-pstack to pstack-flex in both the Claude Code and Codex marketplace files, and point the plugin manifests, package name, install commands, and docs at thisguymartin/pstack-flex. The plugin keeps the name pstack, so skill names (pstack:poteto-mode), the opt-in hook, and monitor detection are unchanged. The monitor's Codex detection also matches the new plugin cache path (pstack-flex/pstack/). Attribution to open-pstack, pstack-claude, and Cursor pstack stays in README, NOTICE, and the upstream docs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSWNeBzAMt5FQZVziZCGLs
The monitor was 82% of the fork's added code but no pstack skill depends on it. It now ships as pstack-monitor, a second plugin in the pstack-flex marketplace, with its own manifests, version, Bun package, and CI steps. Users install it only if they want it, and monitor fixes no longer need a pstack release. The lane journal is the only interface between the two plugins. monitor/lane-contract.ts restates the runner's journal and receipt shapes; lane-contract.test.ts fails at typecheck when they drift, and a static check fails if monitor code imports the runner directly. version.ts reads the new plugin's manifest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSWNeBzAMt5FQZVziZCGLs
- codex-tools.md said the default panel keeps four-provider diversity. It runs four lanes on three providers; Fable and Opus are both Claude. - LANES.md said OpenRouter needs a local translator. Per issue #7, OpenRouter documents a direct Claude Code connection but guarantees it only for Anthropic models, so other models must pass the #7 probes before a lane ships. - The monitor's Codex rule matched "pstack" inside "pstack-flex" and "pstack-monitor", so talking about this repo marked a Codex session as pstack work. It now matches pstack only as its own word. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSWNeBzAMt5FQZVziZCGLs
intake (#10) turns GitHub issues into ready-to-run poteto-mode briefs. It reads the issue and every comment, grounds it with how, picks one playbook, and writes a brief with an observable exit condition, a unit/live/perf verification plan, and numbered open questions. Briefs with open product questions are parked; ready ones get a worktree. It is read-only and launches poteto-mode only when asked. diff-behavior (#15) builds trunk and head in separate worktrees, runs one scenario set on both through swarm, normalizes, and classifies every difference as intended, unintended, or noise. Noise is fixed in the normalizer and rerun; ratios are never computed between unlike scenarios. Both are new fork-owned skills. No upstream skill body changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSWNeBzAMt5FQZVziZCGLs
scripts/check.sh runs every local check a pull request needs for both plugins: install, tests, strict typecheck, manifest parse, static invariants, and claude plugin validate when the CLI is present. docs/LIVE-GATE.md explains how to install the exact candidate in Claude Code and Codex, which live checks to run per kind of change, the evidence format for the pull request, and the merged PRs that still need a live test. AGENTS.md and README point at both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSWNeBzAMt5FQZVziZCGLs
…tor) Main moved the agent monitor to its own repository, psf-monitor (#28). Take that: drop the in-repo pstack-monitor plugin this branch had split out, with its marketplace entries, CI steps, check.sh steps, .gitignore line, and static checks. Keep main's psf-monitor docs and lane journal wording; keep this branch's rename, intake, diff-behavior, doc fixes, check.sh, and LIVE-GATE.md, with the monitor row replaced by a lane journal check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSWNeBzAMt5FQZVziZCGLs
thisguymartin
marked this pull request as ready for review
October 5, 2026 04:27
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #10, #15
What changed
pstack-flex(wasopen-pstack) in both marketplace files. Manifests, package names, install commands, and docs point atthisguymartin/pstack-flex. The plugin keeps the namepstack, so skill names (pstack:poteto-mode) and the opt-in hook are unchanged. Attribution to open-pstack, pstack-claude, and Cursor pstack stays.intake(Addintakeskill: turn a GitHub/linear issue into a scoped poteto-mode run #10) turns GitHub issues into ready-to-run poteto-mode briefs; it is read-only.diff-behavior(Adddiff-behaviorskill: run the same scenarios on trunk and head, report every observable difference #15) runs one scenario set on trunk and head and classifies every difference as intended, unintended, or noise. No upstream skill body changes; wiring them into poteto-mode and the multi-phase-plan regression lane is a follow-up.codex-tools.mdsaid the panel keeps four-provider diversity; it is four lanes on three providers.LANES.mdno longer says OpenRouter needs a local translator (per Add OpenRouter as a gateway for pstack model roles #7).scripts/check.shruns every local check.docs/LIVE-GATE.mdgives install steps, checks per change, the evidence format, and the merged PRs that still need a live test.pstack-monitorplugin this branch had split out is dropped, with its marketplace entries, CI steps, and checks. The lane journal stays in the runner.Breaking for existing installs: reinstall as
pstack@pstack-flex.Verification
Local gate on
778055b(bash scripts/check.sh, Bun 1.4, run as root in a cloud sandbox): install and strict typecheck pass; tests 206 pass, 2 fail. The two failures are the chmod-based tests that cannot fail as root (same as noted in #16); CI runs non-root and theverifycheck passed on778055b. Manifests parse, static invariants pass, andclaude plugin validatepasses for the marketplace and the plugin.Live evidence:
None. Merged without a live test at the owner's direction. Rows A, B, F, and G of
docs/LIVE-GATE.mdare still owed in Claude Code and Codex; the outstanding-tests table there lists this PR.🤖 Generated with Claude Code
https://claude.ai/code/session_01LSWNeBzAMt5FQZVziZCGLs