Repository navigation
fix(poteto-mode): correct failure counting and PR repository selection - #205
Conversation
a5fe7c0 to
a89395a
Compare
a89395a to
e3bb46c
Compare
|
Verdict: FAIL Round 1 swarm at this head: gates + live merge-gate counts + watcher (sonnet@high), merge-gate safety review and playbook-text review (opus@xhigh each; work model sonnet@high). Gates pass. merge-gate's pass/fail outcome is unchanged (failRounds is report-only; trust rules match verdict blocks). Live failRounds equals a manual count on #198, #199, #201, #202, #203. The watcher resolves the fork PR, not upstream, from a fork checkout. Ledger audit clean. Fix-forward (in scope):
Follow-ups (filed, not this PR): watch-pr without --pr resolves the wrong PR on a |
e3bb46c to
59400bb
Compare
|
Verdict: FAIL Round 2 swarm at this head: gates + live counts + gh commands (sonnet@high), counter state-machine review and playbook review (opus@xhigh each; round-2 work on opus@high, so these may be same-family). This is the second FAIL; a third stops the PR. What holds: gates pass; live failRounds equals a manual count on nine PRs (#201 reads 3 stop); every other merge-gate result equals main's; all 137,256 event orders up to length 6 keep a reset to exactly one round, keep stop sticky, ignore untrusted and bot comments, and never change merge-gate's outcome; every prescribed gh command works against the fork. The owner's call stands: a round that sends findings back still counts while an ask is open (otherwise fix-forwards never stop). Fix-forward (in scope):
Notes (no change): -R drops a GitHub Enterprise host when gh is logged in to two hosts (added to #210); a PASS does not clear stop until a reset (stops early, never late); a same-head FAIL after a reset spends the grant. |
59400bb to
b313dc9
Compare
|
Verdict: FAIL Round 3 swarm at this head: gates + live + exhaustive probes (sonnet@high), reducer review and security sweep / documentation-impact review (opus@xhigh each; round-3 work on opus@high, so these may be same-family). This is the third FAIL. Per the autopilot playbook the owner is stopped and the PR goes to the operator. What holds: gates pass; all 137,256 event orders keep every invariant and every malformed-claim shape now counts like a FAIL (the round-2 head fails that probe); 627,462 inserted-claim cases show extra counting only stops early; merge-gate's outcome and exit code equal main's on ten live PRs; every in-scope posting site carries the security exception; documentation-impact review: pass. Blocking (same class as round-2 item 5): code-review.md:7 and deslop/SKILL.md:12, both new in this PR, use |
|
Fail-count reset: the operator approved one more round in chat on 2026-10-12, scoped to the open items in the round-3 verdict. |
|
Verdict: PASS+NOTES Round 4 (operator-granted, scoped to #215 item 1 per the operator's go-ahead in chat) at this head: gates + -R census + live fills (sonnet@high), review and documentation-impact review (opus@xhigh; work on opus@high, so it may be same-family). The round-3 blocking finding is fixed: code-review.md:7, deslop/SKILL.md:12 and Babysit steps 6 and 8 now say Notes (follow-ups): a bare PR number in a fork checkout reviews the fork's PR of that number (PR URLs are safe); Code review and deslop do not mention the GitHub Enterprise host (#210 item 3); #215 items 2-5 stay open. |
…ed repo to gh Autopilot-full step 4 now reads report.failRounds from merge-gate --check. verdict.ts counts distinct Head SHAs of trusted FAIL blocks, a trusted Fail-count reset comment restarts the count, and a Stopped comment keeps the hourly tick from refiling the same issues. Step 4 also defines a recorded run, posts FAIL while a security ask is open, and fixes in-scope security findings forward. Babysit and Opening a PR check the PR body against the PR's full diff at the current head, and a non-owner subagent finalizes the body before it returns the URL. Opening a PR's Forge paragraph passes the resolved owner/repo as -R on every gh call. The watcher's currentPr passes origin's repo and the checked-out branch to gh pr view. Port-owned examples gain -R. Closes #177, closes #169.
…rting documentation
The document step replaced the item with a pointer to Autopilot-full step 4 and dropped the rule that a round is clean only when every lane passes or the remaining findings went to follow-up issues. No #177 item asks for that.
…opped:
failRounds now returns { count, state }. state is open, stop, or stopped,
from a pass over trusted reset, Stopped:, and FAIL comments in time order.
A reset grants exactly one more round, so the next counted FAIL stops.
Stopped: uses the verdict trust rule and holds until a newer FAIL or reset.
A FAIL block with a "Security ask: open" line does not count. Same-second
comments apply reset, then Stopped:, then FAIL, so a tie never hides a stop.
merge-gate --check reports the state, and --pretty prints fail-state.
…om round 1 Autopilot-full step 4 acts on report.failRounds.state, holds the fix-forward when merge-gate exits 1, and keeps security findings off the public repo: in scope and reached for real goes to the owner, every other one goes to the operator directly. A recorded run is a saved run of a real caller or input. The Forge rule scopes -R to gh pr and gh issue, puts the repository in the gh api path, and gives gh auth token none. Shipping steps 4 and 8, why, and its code-archaeology reference pass -R. Opening a PR stops calling the non-owner URL post a merge-ready report.
…d stop A FAIL block posted with a slip such as "Docs: PASS" reads as malformed and failRounds skipped it, so a slipped third round left the stop open. These tests fail until a trusted Verdict: claim whose word is not PASS or PASS+NOTES counts as a FAIL, keyed by its Head when it parses.
… stop failRounds counted only verdict blocks that read in full, so a FAIL posted with a slip such as "Docs: PASS" was skipped and the third round left the stop open. A trusted Verdict: claim whose word is not PASS or PASS+NOTES now counts as a FAIL round, keyed by its Head when that line parses and by the comment otherwise.
… rules Autopilot-full step 4 now says a malformed Verdict: claim counts, has the root confirm its posted block reads before acting, and corrects a block with a new comment because an edit keeps the original time. A second exit 1 from --check goes to the operator instead of a retry loop. The reset comment summarizes the go-ahead without naming a security finding. The ask-only marker is now the neutral "Operator ask: open". Shipping step 1, Multi-phase plan's follow-up-issue rule, and Code review step 9 keep security, privacy, auth, data, and permission-boundary findings off the PR and out of public issues. Shipping steps 4 and 8 and why's code-archaeology reference take <owner>/<repo> from origin's fetch URL. The failRounds comment that said the read may miss newer comments is gone.
… and Babysit -R sites Code review step 1, deslop's Scope, and Babysit steps 6 and 8 passed -R <owner>/<repo> without saying where the value comes from, and none of them loads Opening a PR's Forge rule. In this fork gh's default repo is cursor/plugins, so a guessed value can read the wrong PR. Each site now says <owner>/<repo> comes from origin's fetch URL, as Shipping steps 4 and 8 do. PORTING records why these port-owned sites carry the clause. Refs #215 (item 1).
7e3a5d0 to
fc4e503
Compare
What Changed
Validation
Risk Assessment
✅ Low: Round 3 changes documentation wording at four
-Rsites plus a PORTING note, and it matches the census in the stated intent; the only gap is the GitHub Enterprise host in the shared clause, and that can be handled in a follow-up.Testing
Inspected the scoped instructions, attempted every documented read in an isolated fork checkout, and captured live public API evidence of the repository mismatch. Authentication blocked exact gh reads; disposable files were removed. No UI changed, so visual evidence was unnecessary.
Evidence: Live public API repository contrast
Evidence: Isolated documented-command attempts
Evidence: Anonymous gh API workaround attempts
Pipeline
Updates from git push no-mistakes
✅ **Intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
skills/poteto-mode/playbooks/code-review.md:7- Round 3 adds the clause "with<owner>/<repo>from origin's fetch URL" to each-Rsite. That clause tells the agent to drop origin's host. Opening a PR's Forge rule (opening-a-pr.md:28) says to use<host>/<owner>/<repo>on GitHub Enterprise, but none of these sites loads that rule. Failing case: the origin ishttps://ghe.corp/team/app.gitand gh is logged in to both github.com and ghe.corp. The agent follows the new text and runsgh pr diff 12 -R team/app. gh then picks its default host, github.com, so it reads the wrong PR or gets a 404. Before this branch, the baregh pr diff 12resolved the host from the git remotes. PORTING says the port keeps GHES host support. Babysit avoids the problem because step 6 tells the agent to setGH_HOST. The same clause appears at: skills/deslop/SKILL.md:12 (gh pr view <branch> -R), skills/poteto-mode/playbooks/shipping.md:17 and :21, skills/why/SKILL.md:26, and skills/why/references/sources/code-archaeology.md:47-48. Possible fix: append "(<host>/<owner>/<repo>on GitHub Enterprise)" to the shared clause at every site, which keeps the wording identical everywhere. This is ask-user because the operator asked for wording that matches shipping.md and for a minimal change, and this fix widens the wording at every site.git diff 340be6f9f89303a9520a1c845bd1510f277d497b fc4e503119b72fd6f3c454a736e2cf61e203b6afand the final commit diff; inspected repository tasks and -R placeholder census.Created a disposable checkout with origin mdsmithaustin/pstack, upstream cursor/plugins, and isolated HOME/GH_CONFIG_DIR; derived the repository withgit remote get-url origin.gh auth status,gh pr diff 205 -R mdsmithaustin/pstack, branch-base lookup, and Babysit, Shipping, archaeology, and attachmentgh pr viewreads.Live anonymous HTTP GETs to both repositories'/pulls/205endpoints; asserted distinct URL, state, and branch identities.gh browse --no-browserwith bare and explicit repository selection; attempted anonymousgh apimetadata and diff reads.Saved transcripts and API evidence, removed disposable files, and confirmedgit status --shortwas empty.✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.