Skip to content

chore(skills): make /ship single-mode with plan/code ChatGPT review loops - #609

Merged
BorisTyshkevich merged 1 commit into
mainfrom
chore/ship-skill-single-mode
Aug 5, 2026
Merged

chore(skills): make /ship single-mode with plan/code ChatGPT review loops#609
BorisTyshkevich merged 1 commit into
mainfrom
chore/ship-skill-single-mode

Conversation

@BorisTyshkevich

Copy link
Copy Markdown
Collaborator

Summary

Restructures the /ship skill into a single autonomous mode (the former unattended flow) and adds two explicit ChatGPT review loops:

  • Plan loop — every unit, coordinator-run: chatgpt-review plan mode, exit on VERDICT: APPROVED, max 5 passes; exhaustion → full stop, human decides before any code is written.
  • Code loop — on the single PR: exit on VERDICT: SHIP at the exact head with no accepted findings, max 3 passes (script-enforced); certification + green CI + branch protection → auto-merge with no prompt. Any failed proof condition — including 3 passes without certification — → full stop, human decision needed (replaces silent "leave PR open").

Architecture kept: coordinator never implements; fresh worker subagent per unit bounds context; one integration branch and one PR per run.

Consistency fixes folded in

  • Removed the local-e2e contradiction (unattended.md claimed Playwright doesn't run locally while the worker contract mandates it) — workers run Chromium+WebKit locally; PR CI adds Chromium e2e (Playwright e2e never runs on PRs or main — green CI does not mean the browser suite passed #564).
  • Removed the unsatisfiable "CI fully green — all engines" claim.
  • Deleted ship-phase (its redirect note stated a wrong merge rule: "clean third pass" instead of first-clean-pass certification); same stale claim fixed in .wiki/Project-Skills.md and .wiki/Development-Workflow.md.
  • Chrome concurrency hazard closed: all chatgpt-review invocations are coordinator-run and serialized; workers never invoke the skill (new footguns section, incl. plan-session identity = plan-file path).
  • per-issue-cycle.md renumbered to its own steps 1–4; worker-contract wording drift ("steps 2–5" vs "2–4 + CHANGELOG") resolved; $TMPDIR named explicitly.

Process/tooling only — no src/ or product behavior changes, no CHANGELOG entry.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E4bdx3RwYDjVdPdFCggKVQ

…oops

Collapse the attended/unattended split: /ship is now one autonomous flow —
coordinator + fresh worker per unit, one integration branch and one PR per
run. Every unit's plan iterates through a coordinator-run ChatGPT plan
review loop (exit on VERDICT: APPROVED, max 5 passes); the PR iterates the
existing code review loop (exit on VERDICT: SHIP, max 3, script-enforced).
Auto-merge without prompting when all proof conditions hold at one exact
head; any failure — including loop exhaustion — is a full stop for a human
decision.

Also fixes the inconsistencies found in review: the local-e2e contradiction
in unattended.md, the unsatisfiable "CI all engines" claim, the stale
"third pass" merge rule in ship-phase (deleted) and both wiki pages, the
steps-2–5 wording drift, the Chrome single-session concurrency hazard (all
chatgpt-review invocations are coordinator-serialized), and vague
"approved temporary directory" phrasing. per-issue-cycle.md is renumbered
to its own steps 1–4.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E4bdx3RwYDjVdPdFCggKVQ
@BorisTyshkevich
BorisTyshkevich merged commit a312a3b into main Aug 5, 2026
8 checks passed
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