feat(setup): flex dispatch matrix, assignment-first setup, and lane docs - #2
Merged
Merged
Conversation
9 tasks
provider-dispatch.md gains an additive Flex model matrix section (the stock matrix and its parser contract stay byte-identical), deepseek/ minimax columns in the route table (external runner under both parents), the gateway preflight and receipt semantics, and the panel diversity rule: arena runners and interrogate reviewers span at least two distinct providers unless the operator explicitly confirms otherwise. codex-tools notes that flex descriptors are never spawn_agent lanes.
Mirrors upstream PR ericlitman#73 (issue ericlitman#72): role assignments are chosen first, only assigned families get effort questions and probes, and there is no requirement to assign every matrix family. A failed model demands explicit repair or role reassignment before saving; the fail-closed write rules and the first-run sheet bytes are unchanged. The probe table gains DeepSeek and MiniMax rows (key present, config dir free of OAuth credentials, one-turn probe doubling as the base-URL confirmation), and render-time validation enforces non-empty roles, at least two architect runners, and the two-provider panel diversity rule. model-matrix.test.ts is updated in the same commit because it pins the setup prose, and gains a flex-matrix section check cross-validated against the runner's gateway specs.
LANES.md covers lane kinds, the gateway environment reference, dated prices including DeepSeek's off-peak window, the zero-subscription walkthrough (parent session env-pointed at DeepSeek, MiniMax through the runner), safety rules (unsupported-not-prohibited, never a claude.ai login on a gateway path, per-project privacy opt-in, no silent substitution), the optional OpenRouter and future Ollama lanes, and the live post-merge validation checklist. CHANGES.md records the flex delta.
docs/USAGE.md walks the whole plugin: what pstack-flex is and how it relates to thisguyskills, a mermaid map of task -> poteto-mode -> playbooks -> lane fan-out -> receipts, fork install commands, key handling for gateway lanes, the assignment-first /setup-pstack flow with three worked configurations (full frontier, hybrid saver, zero-subscription duo), copy-paste prompts for poteto-mode, interrogate, arena, swarm, and architect with panel diagrams, a sequence diagram of gateway lane execution including the OAuth guard, a receipt field cheat-sheet, a cost playbook, and a troubleshooting table keyed to receipt statuses. docs/LANES.md gains a "Storing keys" section: macOS Keychain load-on-demand recipe, pass/secret-tool and 1Password CLI alternatives, the direnv plaintext caveat, the honest threat model, and provider spend caps as the real blast-radius control.
The fork section now points newcomers at docs/USAGE.md, and the install commands move from ericlitman/open-pstack to this repository. The marketplace and plugin names are unchanged (pstack@open-pstack), so only the marketplace-add commands change.
Lists the four touch points (GATEWAY_PROVIDERS, GATEWAY_SPECS, the flex matrix row, the setup probe row) and which check fails when each is missing.
thisguymartin
force-pushed
the
flex/dispatch-and-docs
branch
from
September 28, 2026 05:04
342442a to
92dc0bc
Compare
4 tasks
thisguymartin
marked this pull request as ready for review
September 28, 2026 05:09
thisguymartin
marked this pull request as draft
September 28, 2026 05:37
thisguymartin
marked this pull request as ready for review
September 28, 2026 05:42
Merged
4 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.
Closes #4
Builds on the gateway runner merged in #1. This PR adds routing, setup, and docs.
What changed
deepseek-flashand MiniMaxMiniMax-M3flex model rows. Both route through the external runner under Claude Code and Codex. A reported model mismatch fails; a missing report is marked unverified.OpenCode parent support from the legacy repository is outside this PR.
Verification
Local gate on
92dc0bc: 187 Bun tests pass; strict typecheck, manifest parsing, static invariants, andclaude plugin validate plugins/pstackpass. Relative links in the changed guides resolve.Live evidence:
MiniMax source-runner probe passed at
92dc0bcfrom the Codex terminal using Claude Code2.1.283, an isolated config directory, and a synthetic prompt.--provider minimax --model MiniMax-M3 --effort high --mode read-onlyexited 0 and returnedPSTACK_MINIMAX_OK. Receipt:status: complete,reportedModel: MiniMax-M3,modelVerified: true,modelEvidence: provider-report,costUsd: null. The temporary Claude config was removed. This tests the source runner; the installed-plugin and setup-flow gate remains open.DeepSeek source-runner probe passed at
92dc0bcfrom the Codex terminal using Claude Code2.1.283, an isolated config directory, and a synthetic prompt.--provider deepseek --model deepseek-flash --effort high --mode read-onlyexited 0 and returnedPSTACK_DEEPSEEK_OK. Receipt:status: complete,reportedModel: deepseek-flash,modelVerified: true,modelEvidence: provider-report,costUsd: null. The temporary Claude config was removed. This tests the source runner; it does not satisfy the installed-plugin or setup-flow gate.Installed setup tests
Tested candidate
92dc0bcbb794398c7216d626310f2e146fbfcb07, plugin version1.4.1, on 2026-09-28 UTC. An independent byte comparison confirmed all 168 tracked plugin files match the candidate in both test loads, before merge.0.157.1, parentgpt-6-astrapstack@pstack-pr2-livefrom a temporary local marketplace into the Codex plugin cache$setup-pstack; assign only DeepSeek and MiniMax athigh; save the sheet; run both probes, both panel lanes, and a MiniMax cross-judge of the DeepSeek candidate2.1.283--plugin-dir/pstack:setup-pstack; same two-family assignments; run both probes, both panel lanes, and each provider judging the other candidateBoth sessions used synthetic data and redirected only the model-sheet and integration destinations to temporary files. This exercised the installed setup instructions without changing the user's active model choices. All 15 role rows matched the requested assignments; Arena and Interrogate retained two-provider diversity; Why and Reflect remained
inherit-parent. No unassigned family was probed. Codex mirrored the exact sheet bytes inside one bounded block. Claude added one include for its test sheet. Both preserved the existing integration content.Independent inspection of all 11 receipts and output files confirmed the actual parent,
read-onlymode,highrequested effort,deepseek-flashorMiniMax-M3as appropriate,modelVerified: true,modelEvidence: provider-report, andcostUsd: null. This does not claim observability of hidden applied reasoning depth or test the user's permanent configuration paths. All processes were drained and temporary gateway config directories removed.Local evidence:
/tmp/pstack-pr2-installed-evidence.jsoncontains receipt paths and SHA-256 hashes. Complete CLI transcripts, prompts, sheets, integration snapshots, and outputs are retained in the temporarypstack-codex-setup-ck14awo7andpstack-claude-setup-87sptmwrtest directories. Credentials were supplied through process environment and excluded from evidence.GitHub reports no registered CI checks for this fork. The local verification listed above and the installed behavioral tests passed on the exact candidate.