fix(poteto-mode): define the multi-step floor and surface gate skips - #15
Conversation
Three live poteto-mode 2.1.4 sessions cleared every multi-step reading (subagent dispatch, command verification, file reads) yet skipped the todolist, the throughput checkpoint, and how routing entirely. Pins the floor definition, the checkpoint re-anchor, and the investigation skip contract before the prose lands. Tracking issue #14.
The todolist non-negotiable now defines an objective floor: a task is multi-step the moment it dispatches a subagent, runs a command to verify its own work, or edits any file. The throughput checkpoint trigger anchors to the same floor, and investigation step 1 gains the how skip contract feature step 1 already carries. Bumps 2.1.4 to 2.1.5 across both manifests and UPSTREAM.md, records the third audit gates in CHANGES.md. Closes #14.
The live 2.1.5 probe cleared the floor and built the todolist but wrote no checkpoint, and the investigation probe answered without how and without a skip marker because it never opened the playbook. Pins the one-line n/a checkpoint form and the reply-level how skip in SKILL.md before the prose lands.
The checkpoint trigger names the one-line n/a form for read-only floor tasks, and answering an investigation directly without how carries the skip in the reply where the session that never opens the playbook still reads it. Extends the third audit gates in CHANGES.md.
Independent verification verdict: FAILVerified SHA: Local gates — all pass
Pin review: all five new tests in One PR-body nit: "The 175-test scripts suite grows to 177" — five tests were added, so the before-count was 172, not 175. The after-count 177 is correct. Live gate — both sessions missedProbe ( Session (a) — floor task, one read-only scout, cwd
Session (b) — read-only investigation of
Why FAILThe PR's stated purpose is that sessions past the multi-step floor write the checkpoint one-liner and direct investigation answers carry a visible how-skip. On fresh real Machine restored ✅
|
The independent PR 15 verifier passed every local gate and the install probe, then watched both live sessions drop the checkpoint line, one of them acknowledging the rule in thinking before skipping it. Pins the reply-format clause before the prose lands.
Writing the reply now owns the checkpoint: past the floor it is the Feature step 3 form, read-only and below-floor work carry the one-line n/a form, skip markers ride the same rule, and a reply without it is not done. Records the verifier round in CHANGES.md.
Independent verdict: PASS (re-verification after FAIL)Verified SHA Pin reviewThe new Gates
Live gate, every prompt doubledReal Floor task (scout count), run 1 — Floor task, run 2 — Investigation (session mandate), run 1 — Investigation, run 2 — All four sessions cleared; the failure mode from the prior verdict (checkpoint line dropped at reply composition) did not recur in any run. Machine restored
PASS. |
Closes #14
Why
A third audit launched three real
omp -psessions with poteto-mode 2.1.4 in a fresh worktree from main. All three read the full SKILL.md and then skipped every process gate. The session that dispatched a scout, waited on it, and verified its count built no todolist and wrote no checkpoint. The investigation session answered withouthowand without a skip marker. The binding words "multi-step" and "nontrivial" carried no floor a small ask could not sink under, and the skip contract lived only in a playbook file the session never opened.Scope
SKILL.mddefines an objective multi-step floor. A task is multi-step the moment it dispatches a subagent, runs a command to verify its own work, or edits any file, however small the ask.throughput checkpoint: n/a, read-onlyform for read-only work with no fan-out.howto carryhow skipped: <reason>in the reply.playbooks/investigation.mdstep 1 gains the same inline skip contractfeaturestep 1 gained in 2.1.4.check-playbooks.test.tspins every clause red-first in two red/green rounds..omp-plugin/marketplace.json,plugins/pstack/.omp-plugin/plugin.json, andUPSTREAM.md;CHANGES.mdrecords the third audit gates.Tradeoffs
The reply-level
how skippedmarker sits in the SKILL.md trigger list instead of forcing sessions below the todolist floor to open a playbook. Sub-floor investigations stay lightweight; their skips stay visible because the reply is the one surface every session writes.Blast Radius
Sessions that invoke poteto-mode read two tightened trigger lines and one lengthened non-negotiable. The floor adds no step to work that already carried a todolist. The 175-test scripts suite grows to 177. The version bump rides the normal install and upgrade path; nothing migrates.
Verification
Local gates in the worktree.
bun run testinplugins/pstack/skills/poteto-mode/scriptsreports 177 pass and 0 fail.bun run typecheckruns all three strict tsconfig projects clean.bun test tests/reports 18 pass. Manifest parse andbash tests/skill-collision-repro.shreport all five invariants ok with the version row at 2.1.5.Live evidence:
pstack@omp-pstack2.1.4 disabled for the probe. A version probe session repliedFLOOR=yesthenONE-LINER=yes, so sessions loaded the candidate text. After the probe the machine was restored;omp plugin listservespstack@omp-pstack (2.1.4)andbun tests/verify-installed-version.tsprintsrepo 2.1.4 | served 2.1.4 | cache 2.1.4.omp -psessions in the worktree, same prompts that produced the audit failures.plugins/pstack/skills, and one read-only investigation of the session mandate rule.todocalls, zero checkpoint lines, and zerohowrouting or skip markers across their transcripts.skip:reason, marked items done as they landed, and its reply ended withthroughput checkpoint: n/a, read-only investigation,how skipped: deliverable is a single count, not a subsystem explanation., and two principles named with the decisions they drove. The investigation stayed below the floor with no todolist, and its reply carriedhow skipped: deliverable is a cited read-only answer, no design fork. throughput checkpoint: n/a, read-only.The floor task also caught its scout reporting 51 against the scout's own 52-name list and reported the verified 52.Verifier round
An independent verifier returned FAIL on the first live gate: both probe sessions dropped the checkpoint line, one acknowledging the rule in thinking before skipping it, while every local gate, the pin review, and the install probe passed. Verdict comment at #15 (comment). The fix moves the clause into "Writing the reply", the contract reply composition actually consults: every reply ends with the throughput checkpoint line, one-line n/a form for read-only and below-floor work, skip markers ride the same rule, a reply without it is not done. Pinned red-first, recorded in CHANGES.md as the verifier round. The scripts suite is now 178 tests.