feat(pstack): support optional Sonnet Astra Luna and Terra families - #55
Conversation
|
Tick the box to add this pull request to the merge queue (same as
|
Greptile SummaryThis PR expands pstack's model registry with opt-in Sonnet, Astra, Luna, and Terra families while retaining the existing first-run panel.
Confidence Score: 4/5The PR should not merge until setup rejects an empty active-family set or supports completing its behavioral smoke for an alias-only configuration. Removing all active families can pass validation and write the model sheet, after which the required smoke has no active descriptor or cross-judge to run. Files Needing Attention: plugins/pstack/skills/setup-pstack/SKILL.md
|
| Filename | Overview |
|---|---|
| plugins/pstack/skills/setup-pstack/SKILL.md | Generalizes setup to configurable active-family sets, but does not prevent an empty set that makes post-write smoke impossible. |
| plugins/pstack/skills/poteto-mode/references/provider-dispatch.md | Expands the authoritative model matrix and routing contract while preserving the original first-run panel. |
| plugins/pstack/skills/poteto-mode/scripts/runner/model-aliases.ts | Adds Sonnet to the shared rolling-Claude-alias boundary and concrete revision normalization. |
| plugins/pstack/skills/poteto-mode/scripts/runner/model-matrix.test.ts | Updates matrix parsing and assertions for eight families, explicit first-run membership, and native profiles. |
| tests/skill-collision-repro.sh | Derives the default panel from active matrix rows and broadens checks against pinned Claude revisions. |
| plugins/pstack/agents/pstack-sonnet-high.md | Adds a representative bounded native Sonnet profile; the other four effort variants follow the same contract. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Load and normalize role map] --> B[Derive current active families]
B --> C[Operator adds or removes families]
C --> D[Build final role assignments]
D --> E[Select effort per active family]
E --> F[Probe active families]
F --> G[Render and validate family-set equality]
G --> H[Confirm and write configuration]
H --> I[Run mixed-panel behavioral smoke]
C -->|All families removed| Z[Empty active set]
Z --> F
Z -->|No descriptor or cross-judge available| I
Reviews (1): Last reviewed commit: "feat(pstack): support optional Sonnet As..." | Re-trigger Greptile
Review: Empty Active Set Persists
ericlitman
left a comment
There was a problem hiding this comment.
Gavel verdict: Approve
0 blocking findings; 1 unconfirmed plausible finding; 0 killed by adjudication.
Quorum: 4/3 successful reviewers.
Continuity: 0 open · 0 resolved · 0 reopened.
Scope: initial full review.
Top findings
No blocking findings.
Non-blocking findings
- MEDIUM
plugins/pstack/skills/setup-pstack/SKILL.md:123 RIGHTBatch native smoke lanes within Codex's child limit — On a four-slot Codex parent with Sol, Astra, Luna, and Terra active, this launches four nativespawn_agentsmoke lanes before draining any, but the parent leaves only three child slots. The fourth launch is rejected after step 9 has already written the configuration, so setup cannot complete for a newly supported target set. Run native smoke lanes in capacity-bounded waves and retain their outputs for the subsequent judge. - LOW
plugins/pstack/skills/setup-pstack/SKILL.md:46 RIGHTLive evidence does not cover the reviewed head — The reviewed head adds the alias-only/empty-active-set rejection here, but the only commit identified in the recorded verification isae37a16, while the candidate is8ef15f8. No installed version or real-surface result demonstrates this new behavior from the current head in either Claude Code or Codex, so the non-draft PR does not satisfy the repository's exact-candidate merge gate. Install8ef15f8, exercise this rejection from both affected harnesses, and record the installed commit, action, and result.
Gavel run panel:8ef15f8b93bb5123b97c547d9238ecda4e44bb28:kvLSXLRl85t:yPAZicdhlC8 · Commit 8ef15f8b93bb5123b97c547d9238ecda4e44bb28
Judge: native (primary) openai/gpt-6-astra · tools: yes
Full record: GET /gavel/run/panel:8ef15f8b93bb5123b97c547d9238ecda4e44bb28:kvLSXLRl85t:yPAZicdhlC8
Closes #54
What changed
The model matrix now supports opt-in Sonnet, GPT-6 Astra, GPT-5.6 Luna, and GPT-5.6 Terra families at every selectable effort. The existing Fable, Sol, Grok, and Opus first-run panel stays byte-identical.
Setup derives active families from the final role map. It probes and smokes only that set, rejects mismatches before writing, and keeps unchanged reruns byte-identical. Sonnet uses rolling aliases and five native Claude agent definitions. The existing runner handles all cross-provider routes without fallback.
Astra expands the upstream issue for PAT-3792.
Verification
Live evidence:
ae37a16passed 160 Bun tests, strict TypeScript checks, manifest parsing, static invariants, andgit diff --check.--plugin-dir. Nativepstack-sonnet-highreturnedPSTACK_NATIVE_SONNET_OKfromclaude-sonnet-5.pstack:setup-pstackreturnedPSTACK_CODEX_PLUGIN_OKwith all four optional descriptors in matrix order.PSTACK_MODEL_PROBE_OKfor Sonnet, Astra, Luna, and Terra. Sonnet verified the provider-reportedclaude-sonnet-5; all three Codex receipts preserved the requested model andhigheffort in exact argv.higheffort.