diff --git a/.github/upstream-sha b/.github/upstream-sha index a5d6977c..463ddafd 100644 --- a/.github/upstream-sha +++ b/.github/upstream-sha @@ -1 +1 @@ -eb4db2b55b2b7dec3d9282754cddf0a56bf4ff10 +e73df471cd4bd918367e99f3dd9c51bd53ddf5f0 diff --git a/PORTING.md b/PORTING.md index a2436429..535629c7 100644 --- a/PORTING.md +++ b/PORTING.md @@ -31,7 +31,7 @@ Upstream is the source of truth for the workflows themselves. This file records | Opening a PR, Verification: "a link to the arena or swarm directory for the rest" | "a link to the rest. After the PR opens, post the swarm report or the arena synthesis note as a PR comment, leaving out any finding that `playbooks/shipping.md` step 1 keeps off the PR, and link that comment when you finalize the body." Swarm returns its report in the reply, and arena deletes its run directory when the run ends, so neither leaves a directory to link | | arena Phase C: "Prefer a different model family from the parent's." | "Prefer a different model family or capability tier from the parent's." The default pool is `fable`, `opus`, and `sonnet`, which are one family, so a different tier is often the only difference available | | Cursor `/visualize` charts in ketchup ("a chart or diagram from `/visualize`", "a `/visualize` chart for numbers") | "a rendered chart or diagram" and "a rendered chart for numbers". The port's harnesses have no `/visualize` built-in | -| Cursor's Claude Code plugin install (`/plugin marketplace add cursor/plugins`, `/pstack:` prefixes, `~/.claude/rules/pstack-models.md`) and `docs/harness/claude-code.md` (upstream #637, #705) | not ported. The port installs natively through `npx skills`, and the **pstack-harness** skill maps Cursor names to Claude Code. The README, guide page 1, and poteto-help keep the port's install and harness text | +| Cursor's Claude Code plugin install (`/plugin marketplace add cursor/plugins`, `/pstack:` prefixes, `~/.claude/rules/pstack-models.md`) and `docs/harness/claude-code.md` (upstream #637, #705), and its note on enabling marketplace auto-update (upstream #806) | not ported. The port installs natively through `npx skills`, and the **pstack-harness** skill maps Cursor names to Claude Code. The README, guide page 1, and poteto-help keep the port's install and harness text | | poteto-mode's "Bundled skills live at `..//SKILL.md` from this file" line and poteto-agent's `~/.cursor/plugins/` search for poteto-mode (upstream #577, #597) | not ported. The **pstack-harness** skill's **use named sibling skills yourself** rule locates siblings, and the generated persona wrappers carry installed skill paths | | `cursor-grok-*` and `composer-*` slug families in arena's and interrogate's rejected-entry fallbacks (upstream #613) | not ported. The port's entries are aliases or harness model names, and **Spawn a role** owns rejection handling | @@ -81,7 +81,7 @@ Upstream is the source of truth for the workflows themselves. This file records - The models config carries reasoning effort and per-harness sections (port addition, 2026-09): an entry is `model` or `model@effort`; `## codex`, `## claude-code`, `## grok`, and `## hermes` sections override the flat lines for that harness; the layering, the effort policy (floor `high` on Codex and Hermes, `xhigh` there for the hardest roles, `inherit-parent` where subagents inherit the session effort, `max`/`ultra` only when written), and the Codex alias translation (`fable` → `gpt-6-sol@max`, `opus` → `gpt-6-sol@xhigh`, `sonnet` → `gpt-6-sol@high`, `haiku` → `gpt-6-luna@high`, since 2026-10 each run on the newest gpt-6 release Codex lists; Grok Build, since 2026-10, maps every alias to `grok-4.7` and takes effort like Claude Code) are written once, in `skills/setup-pstack/references/models-config.md`, and applied by `check-models-config.py --resolve` (port addition, 2026-10). The **pstack-harness** skill points at the resolver, and every reader points at pstack-harness instead of restating the layering. Since 2026-10 a role's model and effort come from one line, a harness section beats a flat line in either file, and the Codex and Hermes floor applies only when the line names a model, because a full-history fork inherits the parent's effort. `skills/setup-pstack/scripts/check-models-config.py` lints the file (unknown roles, bad efforts, per-model effort support, duplicate roles and sections, `none` or `ultra` under `## claude-code`, and any effort but `low` through `xhigh` under `## grok`); `skills/setup-pstack/examples/pstack-models.md` is the shipped default and CI lints it. On sync, point any new reader upstream adds at **Spawn a role** in the **pstack-harness** skill instead of a per-skill copy of the layering, defaults, or fallbacks. Upstream's setup-pstack budget ask (upstream #366: `unlimited`, `large`, `medium`, `small`) ports onto this grammar: the budget rewrites the `@effort` suffix of every real entry, harness sections and suffixed aliases included, instead of the effort token inside a Cursor slug; `unlimited` pins `max`, which matches upstream since #511, when upstream's defaults dropped to `xhigh` and its label changed from `keep max` to `max reasoning`; the port adds a fifth option, `default — keep as written`, that applies no budget, because it is the only option that keeps every per-role effort as written, and on Claude Code, where the effort policy leaves an unwritten effort at the session effort, it changes nothing; and the `# budget: