Skip to content

feat(port): drop setup-pstack and exclude it from the build - #39

Merged
AlexNegrescu26 merged 3 commits into
mainfrom
chore/drop-setup-pstack
Oct 31, 2026
Merged

AlexNegrescu26 merged 3 commits into
mainfrom
chore/drop-setup-pstack

Conversation

@AlexNegrescu26

Copy link
Copy Markdown
Collaborator

Why

pstack on omp needs no model configuration. An agent with no override runs on its frontmatter model, then on the parent session's model. setup-pstack only wrote modelRoles aliases and task.agentModelOverrides entries, which an operator can write by hand. This PR removes the skill and keeps upstream's Cursor copy from coming back on the next build.

What changed

  • omp-port/excluded.txt lists upstream paths the port does not ship. extract_upstream deletes them right after the export, and the new excluded paths check fails when one is in the tree or a tree file names it.
  • The omp-mechanics "Choose models" section replaces references/setup-pstack-config.md. rules.sed points poteto-help there, and three nets catch a reworded /setup-pstack line. The bare-slug tier rules and the slug-enumeration rule matched only setup-pstack text, so they go, with the one stale exemption among them.
  • A separate commit moves rule 156 above the readonly: false token rule that starved it and deletes rule 170, which duplicated rule 149 (numbers as of f381939). shadow-exempt.tsv has no rows now.

Removed gates

  • chat-model lever checked that setup-pstack told the user to pick the chat model with /model. The skill is gone, and the omp-mechanics note names /model.
  • setup config contract checked setup-pstack's ownership contract, aliases, effort ladder, apply-models.mjs routing, and the config reference. All of those files are deleted.
  • omp model levers now checks poteto-mode alone, because setup-pstack was its other file.
  • Its mutations go with them: six setup config contract cases and setup model lever. owned path moved upstream now records an old poteto-mode object, because no owned path has an upstream counterpart.
  • gate.yml loses Setup script tests, which ran the deleted apply-models.test.mjs.

Scope

Blast Radius

Users who ran /skill:setup-pstack keep the config it wrote. omp reads those entries as before. The skill count drops from 60 to 59.

Verification

  • CANON=/tmp/cursor-plugins bash omp-port/sync-upstream.sh rebuild, then bash omp-port/check-port.sh. PASS, with rule shadowing at 0 rows and excluded paths passing.
  • bash omp-port/test-gate-mutations.sh. PASS, 32 rejected, including both new exclusion cases.
  • bun omp-port/smoke-plugin.mjs. PASS, 59/59 skills, down from 60/60. grep -rn setup-pstack plugins/pstack finds nothing.

Rule 156 sat below the `readonly: false` token rule, which rewrote the
inside of its match first. A reflect sentence that missed its sentence
rule kept "agent mode (full tools per spawn)". The rule now runs first
and writes "full tools per spawn".

Rule 170 wrote the same `agent`: `poteto-agent` text as the generic
`subagent_type: "..."` rule above it.

Both rows leave shadow-exempt.tsv. The rebuilt tree at c742dd6 is
unchanged, and `rule shadowing` passes with no recorded rows.
pstack on omp needs no model configuration. An agent with no override
runs on its frontmatter model, then on the parent session's model.
setup-pstack only wrote `modelRoles` aliases and
`task.agentModelOverrides` entries, which an operator can write by hand.

omp-port/excluded.txt lists upstream paths the port does not ship.
extract_upstream deletes them right after the export, so the build,
the rule probes, and the slug report never see that text. Without the
list, install_tree would reinstall upstream's Cursor setup-pstack.

The new `excluded paths` check fails when an excluded path is in the
tree or a tree file names it. Two mutations prove both halves.

The omp-mechanics "Choose models" section replaces the setup reference.
rules.sed points poteto-help at it, and three nets catch a reworded
`/setup-pstack` line. Rules that only setup-pstack text matched go.

Removed gates: `chat-model lever` and `setup config contract` checked
setup-pstack and its reference only. `omp model levers` now checks
poteto-mode alone. The owned-drift mutation records an old poteto-mode
object, because no owned path has an upstream counterpart now.
The README now says who the port is for, installs in two commands, and
starts a task with `/poteto-mode` and no configuration. "Why this port"
makes only claims a file in this repository backs, and the comparison
with dsebban/skills keeps its credit.
@AlexNegrescu26
AlexNegrescu26 changed the base branch from fix/gate-blind-spots to main October 31, 2026 19:13
@AlexNegrescu26
AlexNegrescu26 force-pushed the chore/drop-setup-pstack branch from 3414238 to cf07514 Compare October 31, 2026 19:13
@AlexNegrescu26
AlexNegrescu26 merged commit b2c792f into main Oct 31, 2026
2 checks passed
@AlexNegrescu26
AlexNegrescu26 deleted the chore/drop-setup-pstack branch October 31, 2026 19:14
AlexNegrescu26 added a commit that referenced this pull request Oct 31, 2026
* ci: bump omp to v18.14.1, bun to 1.4.4, and checkout to v7

The smoke pinned omp v18.12.6, six releases behind. The v18.14.1 digest
matches the release asset and the sha256 of the downloaded file.
actions/checkout@v4 runs on Node.js 20, and every job warned about it.

* ci(gate): check every shell script, extension test, and the statechart suite

The syntax step read only omp-port/*.sh, and the extension step named two
test files, so a new script or extension test was never checked. The
statechart suite had no CI step at all. It runs on Node 22 through the
package's own test script and the fast-check pin in its package.json.

* ci(upstream-sync): merge a sync only after gate.yml passes on it

The sync job opened the PR and squash-merged it in one step, after
check-port.sh alone. PRs #19 and #32 landed 3 to 4 seconds after they
opened, and no gate.yml run checked either one.

gate.yml now takes a workflow_call ref. upstream-sync splits into sync,
gate, and merge jobs. The gate job calls gate.yml on the sync commit,
and the merge job needs both earlier jobs to pass and the PR head to
still match that commit. PORTING.md drops the claim that a token-opened
PR starts no pull_request run.

* docs(porting): re-confirm two omp claims on 18.14.1

The builtin tool probe on the v18.14.1 release asset lists wait and no
hub. `omp read omp://approval-mode.md` on that binary still states the
three approval facts. The 18.12.2 and 18.1.13 lines keep their versions
because their probes did not run again.

* docs(ci): describe the real-turn smoke legs

* ci: drop setup-pstack script tests, removed in #39
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