Repository navigation
feat(port): drop setup-pstack and exclude it from the build - #39
Merged
Merged
Conversation
AlexNegrescu26
added a commit
that referenced
this pull request
Oct 31, 2026
AlexNegrescu26
force-pushed
the
fix/gate-blind-spots
branch
from
October 31, 2026 19:10
f381939 to
96e65b7
Compare
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
force-pushed
the
chore/drop-setup-pstack
branch
from
October 31, 2026 19:13
3414238 to
cf07514
Compare
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
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.
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
modelRolesaliases andtask.agentModelOverridesentries, 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.txtlists upstream paths the port does not ship.extract_upstreamdeletes them right after the export, and the newexcluded pathscheck fails when one is in the tree or a tree file names it.references/setup-pstack-config.md.rules.sedpoints poteto-help there, and three nets catch a reworded/setup-pstackline. 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.readonly: falsetoken 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 leverchecked 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 contractchecked setup-pstack's ownership contract, aliases, effort ladder,apply-models.mjsrouting, and the config reference. All of those files are deleted.omp model leversnow checks poteto-mode alone, because setup-pstack was its other file.setup config contractcases andsetup model lever.owned path moved upstreamnow records an old poteto-mode object, because no owned path has an upstream counterpart.Setup script tests, which ran the deletedapply-models.test.mjs.Scope
check-port.shas the merge gate, which is what this stack runs. ci(upstream-sync): merge a sync only after gate.yml passes on it #36 widens that gate to all of gate.yml.ci/gate-before-sync-merge) also carries theSetup script testsstep in gate.yml. Drop that step when ci(upstream-sync): merge a sync only after gate.yml passes on it #36 rebases, or its gate runs tests from a deleted directory.Blast Radius
Users who ran
/skill:setup-pstackkeep 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, thenbash omp-port/check-port.sh. PASS, withrule shadowingat 0 rows andexcluded pathspassing.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/pstackfinds nothing.