Repository navigation
sync(upstream): port eb4db2b..e73df47 (statechart update, ketchup-video, script fixes) - #304
Conversation
|
Verdict: PASS+NOTES Independent Shipping verification (trail reviewer, opus@xhigh). The checkout was detached at the head. Base
|
…eo, script fixes) Port upstream cursor/plugins commits touching pstack/ from eb4db2b to e73df47: - 7698375 (#776), 4ec7ffa (#779), 076f4b2 (#791): statechart skill and scripts brought to upstream; tests stay under tests/skills/statechart. - 00d5dec (#794): create-formal-verification-skill points generated TLA+ verify skills at the statechart skill. - 3c0fdb4 (#797): new ketchup-video skill, gated through agents/openai.yaml. - 7054003 (#800): reflect never edits an installed skill copy (needs judgment). - 96dec8e (#801), fe096ef (#802): watch-pr fork heads and deadline sleeps. - 86c2448 (#803): check-plan matching inline code delimiters. - 3c596e7 (#804): orch prefers a branch's open PR, Origin path only. - e73df47 (#807): swarm Phase D wording. Not ported: b1a1298/642289e version bumps, a0b0ad9 (#806) Claude Code marketplace note, f83fbe6 (#805) worktree-audit stat/date (the port already reads mtimes with Python).
Write e73df471cd4bd918367e99f3dd9c51bd53ddf5f0 to .github/upstream-sha and add evals/promises/results/2026-10-24-sync-e73df47.md for the changed live owners (poteto-help, skill-listing, swarm, reflect).
… path The port has no plugin cache, and npx skills installs into the same directories a copy would go to, so #800's rule names no safe destination. PORTING records it as left out. GitHub frontier discovery now prefers a branch's open PR over its closed or merged history, as the Origin path does since #804; two open PRs, or only historical ones, still fail.
2c654ee to
542d07e
Compare
live promises (#310) Record the Claude Code live promise runs owed since the ripgrep pin blocked them, now unblocked by #307. Eight bound cases ran at d7ae919 and cover the promises whose owners changed in #297, #300, and #304: 9 PASS, 1 INCONCLUSIVE handed to a judge, and no FAIL. Two turns hit the 300-second cap after the routed skill had loaded. Swarm workers were all BLOCKED because the sandbox cannot read dirname; #309 tracks that.
A sync keeps only the edits the entry lists. It missed two older ones: the imports and scripts constant that point back into skills/ since #297 moved the file to tests/, and the /srv/u fixture path that check-personal-paths.py needs since #304. It also cited a test-location rule by a name PORTING.md never defines, so it now names the entry that states the rule. The count covers the new fake-mise findTlc test.
A sync keeps only the edits the entry lists. It missed two older ones: the imports and scripts constant that point back into skills/ since #297 moved the file to tests/, and the /srv/u fixture path that check-personal-paths.py needs since #304. It also cited a test-location rule by a name PORTING.md never defines, so it now names the entry that states the rule. The count covers the new fake-mise findTlc test.
Ports the upstream cursor/plugins commits that touch
pstack/fromeb4db2btoe73df47, and recordse73df47in.github/upstream-sha.Upstream commits
eb4db2bexactly. Removedscripts/model/, as upstream did. The test and the newband.mmdandregions.mmdfixtures go undertests/skills/statechart/, with imports pointing atskills/statechart/scripts/.SKILL.mddropsdisable-model-invocation. One fixture path~/Count.tlabecame/srv/u/Count.tla, because the personal-paths lint rejects/home/<name>./statechart.ketchup-videoskillagents/openai.yaml, not the frontmatter flag. "Follow/ketchup" became "Use the ketchup skill.", and the description says "as the ketchup skill does". The user-typed/ketchup-videoand/ketchuppassage is inUSER_FACING. Registered inPSTACK_SKILLS, the trigger cases, the README table, the poteto-help table,GUIDE_SLASH_SKILLS, and guide page 10.skills/and pass ahost, which the port'sRepositoryrequires.originBranchPullRequest). Upstream's tests were rewritten as Origin-path tests. The port's own Origin ambiguity cases now use two active PRs (open and draft) or two closed PRs. The port'sghbulk path now applies the same rule, by operator decision. See below.statanddateplugin.json.PORTING.md records #806 in the plugin-install row, and records #804's Origin-only scope in the Orchestrate bullet.
Operator decisions (2026-10-24)
npx skillsinstalls into the same.agents/skills/directories a copy would go to, so the rule names no safe destination.skills/reflect/SKILL.mdmatchesmain, and PORTING records #800 as left out.ghpath too. GitHub frontier discovery now prefers a branch's open PR over its closed or merged history, as the Origin path does. Two open PRs on a branch, or history alone with no open PR, still fail. A red-first test inorch.test.tscovers it, and the poteto-mode bun suite passes (554).js/incomplete-multi-character-sanitizationin upstream's statechart test helpertextLines()was dismissed as used in tests. The helper strips tags from the tool's own SVG to compare label text, and the result never reaches HTML.PATH, upstream's new statechart tests install TLC and run. The independent verifier reproduced the same 18 failures on upstream's own tree ate73df47on this host. The causes are rename tests that rely onLD_PRELOAD, which macOS ignores;/varvs/private/varpath comparisons; andMISE_CEILING_PATHSagainst a symlinked temp folder. CI has no mise, so it skips them. The port keeps upstream's tests unchanged, and a follow-up issue tracks the macOS fixes and a green TLC run.Guide promises
dbf2d6ecabb8(10-recipes-and-pitfalls.md, "To watch the catch-up instead, run /ketchup-video."), sources upstream and port, classcontext.fe89b2fd0770(the same page, "It shows what happened in a short silent video of slides…"), sources upstream and port, classpromise, bound to the new static promiseketchup-video-shows-catch-up-as-video. It quotes two sentences ofskills/ketchup-video/SKILL.md.statechart-audit-marks-differences-and-bug-paths,statechart-checks-agreed-chart-rules-before-code,statechart-draws-user-view-from-tla-model,statechart-marks-states-and-numbers-bug-paths(which also gains a quote for green states),statechart-reader-rules-become-invariants,statechart-replays-bugs-in-real-code,statechart-shows-code-chart-differences, andstatechart-writes-tla-skeleton-from-agreed-chart.statechart-help.mjsis added to the owners of the first and fourth.ledger.py audit --upstream-ref upstream/main: 0 problems.Checks
Tools: the real
bun1.4.2 andrg15.1.0 from mise installs, put ahead of the shims; Node 24.20.0. I compared against amainbaseline worktree at0bc7cf9, fetched just before.tools/gate-check.sh lint: all PASS.tools/gate-check.sh test: FAIL. Two tiers fail:test_claude_codenative tests error (NativeGit×3,NativeClaude×1) withIsolationUnavailable: unsupported executable: /Applications/ChatGPT.app/Contents/Resources/codex-cli/codex-path/rg. This is pre-existing: the same tests fail with the same message onmain.mainhas no counterpart (onmainthe old suite gives 27 pass and 31 skipped). The same 18 tests fail on upstream's own tree ate73df47on this macOS host, so the port's relocation does not cause them. WithTMPDIRset to a path that has no symlink, 14 of them pass. The 4 left are rename-failure simulation tests. Needs judgment: these look host-specific (macOS/var→/private/var, and an untrustedmise.tomlin a temp dir). CI on Ubuntu is authoritative for this tier.python3 evals/promises/ledger.py audit --upstream-ref upstream/main: 0 problems.skill-ci check: exit 0.Live promise cases
Receipt:
evals/promises/results/2026-10-24-sync-e73df47.md, run with--skills-at 96a676a.poteto-helpPASS ×2,name-only-unnamedPASS,deslop-handoffPASS,swarm-runPASS / PASS / INCONCLUSIVE. The INCONCLUSIVE is for fan-out: the worker briefs are encrypted. Twoname-only-route-*runs were refused withunapproved_worktree.rgIsolationUnavailable.grok loginis needed.native main database is absent). The batch then stopped on the compaction case, sodeslop-handoffandswarm-rundid not run.reflect-runandverify-skill-runare deferred cases and did not run.No CI checks have run on this branch yet. The results above are local only.
Updates from git push no-mistakes