Skip to content

ship-gated: add gated /ship pipeline orchestrator#18

Merged
PrzemekGalarowicz merged 4 commits into
mainfrom
ship-gated
Jun 29, 2026
Merged

ship-gated: add gated /ship pipeline orchestrator#18
PrzemekGalarowicz merged 4 commits into
mainfrom
ship-gated

Conversation

@PrzemekGalarowicz

@PrzemekGalarowicz PrzemekGalarowicz commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds .claude/commands/ship.md, a gated orchestrator that runs the existing build loop in order (/plan → [human approves] → /grill → /build → /regress → /verify → /review → [human decides]) without reimplementing any stage.
  • Proceed/stop decisions branch only on each stage's structural floor verdict (validate exit code, regression-report.json .verdict, verify-report.json .verdict) — never on agent judgment or advisory lens output.
  • Preserves both human gates (plan acceptance before /build, post-review merge/fix/abandon decision) and adds no new floor primitive; --loop is explicitly deferred to a follow-up increment.
  • Includes dogfood pipeline artifacts for this increment (PLAN, REGRESSION, VERIFY, REVIEW, green regression-report.json / verify-report.json).

Test plan

  • node floor/validate.mjs . → GREEN, 1 capability (unchanged)
  • /regress on ship-gated → regression-report.json verdict no-regressions
  • /verify on ship-gated → verify-report.json verdict PASS
  • /review dogfood on .claude/commands/ship.md (see features/ship-gated/REVIEW.md)
  • Human review of ship.md guarantee audit (P0) and the two non-negotiable human gates
  • Optional follow-up: end-to-end /ship dogfood on a throwaway increment

Made with Cursor

Summary by CodeRabbit

  • New Features

    • Added a new gated /ship workflow for managing staged progress and human approval points.
    • Introduced supporting ship-gated planning, verification, regression, and review records.
  • Documentation

    • Added clear guidance on required stage order, pass/fail behavior, and what the ship process does not do.
    • Documented deterministic checks and final outcome reporting for the feature.

PrzemekGalarowicz and others added 2 commits June 29, 2026 16:13
The approved /plan artifact for the gated /ship orchestrator. Committed
ahead of /regress so the dirty-tree partition resolves to inside={ship.md}
(= the PLAN's ## Files / declared writes), keeping the /plan artifact out
of `inside` and avoiding a false fix#7 escape (pipeline-integration-probe
CF-1). The /build output (.claude/commands/ship.md) is intentionally left
uncommitted as the feature under test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds .claude/commands/ship.md — a gated orchestrator that runs the build
loop (/plan → [GATE 1] → /grill → /build → /regress → /verify → /review →
[GATE 2]), branching to the next stage only on each stage's STRUCTURAL
floor verdict (validate exit / regression-report.verdict / verify-report
.verdict), presenting /grill+/review free-text as quoted DATA, ending only
at a human gate or a RED-verdict STOP. No role: (capability count stays 1);
adds NO new floor primitive — every guarantee belongs to a sub-stage. NO
--yolo; --loop deferred to the ship-loop increment (OQ1 split).

Pipeline trail (all floor verdicts GREEN): /build floor GREEN · /regress
no-regressions · /verify PASS · /review GREEN (0 blocking). Advisory
review findings (A-1/A-2): the orchestration LOGIC is floor-invisible and
unmechanized until a live dogfood — the standing residual.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@PrzemekGalarowicz, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 26 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f82d58b2-a8c9-4f63-9a39-64371d7cb111

📥 Commits

Reviewing files that changed from the base of the PR and between 86255a7 and defdc0d.

📒 Files selected for processing (9)
  • .claude/commands/ship.md
  • features/ship-loop/PLAN.md
  • features/ship-loop/REGRESSION.md
  • features/ship-loop/REVIEW.md
  • features/ship-loop/VERIFY.md
  • features/ship-loop/regression-report.json
  • features/ship-loop/verify-report.json
  • floor/check-ship.mjs
  • floor/check-ship.test.mjs
📝 Walkthrough

Walkthrough

Introduces .claude/commands/ship.md as a gated meta-orchestrator that sequences /plan → /grill → /build → /regress → /verify → /review with two mandatory human gates and deterministic stop logic based on structural verdicts. Adds the complete features/ship-gated/ pipeline artifact set (PLAN, REGRESSION, VERIFY, REVIEW, and machine-readable JSON reports) produced by running this pipeline.

Changes

Gated /ship orchestrator

Layer / File(s) Summary
/ship command design and PLAN.md spec
features/ship-gated/PLAN.md
Pins spec hash, defines structural verdict surfaces per stage, file impact, end-to-end orchestration semantics, guarantee/trust/determinism audits, and resolves open questions with "APPROVED."
/ship command definition
.claude/commands/ship.md
Defines frontmatter, two-clocks model, two human gates, stage-order orchestration with deterministic branch logic on named verdict fields, writes-scope for SHIP.md, trust constraints, non-goals enumeration, and doc-reconciliation note.
Regression and verify pipeline artifacts
features/ship-gated/REGRESSION.md, features/ship-gated/VERIFY.md, features/ship-gated/regression-report.json, features/ship-gated/verify-report.json
REGRESSION.md records base/head partition and no-regressions verdict; VERIFY.md records floor gate results (lint/test/validate all exit 0) and scopes certification; JSON reports encode both verdicts in machine-readable form.
Review report and advisory findings
features/ship-gated/REVIEW.md
Records GREEN verdict across four lenses (floor, eval, trust, axis), documents four advisory findings (untested orchestration logic, underspecified turn-handoff, slug propagation, style-gate failure), and proposes a memory-promote lesson about floor-invisible increments.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • pharn-dev/pharn-oss#9: Adds the /grill advisory stage command and its pipeline artifacts, which /ship embeds as step 2 of its orchestration sequence.

Poem

🐇 Hop, hop, through the gates I go,
Plan approved, then build we know,
Regress checks — no red in sight,
Verify says all is right,
Review done, the human calls,
SHIP.md written down the halls! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding a gated /ship pipeline orchestrator.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ship-gated

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

PrzemekGalarowicz and others added 2 commits June 29, 2026 16:56
The approved /plan artifact for the ship-loop (--loop mode) increment.
Committed ahead of /regress so the dirty-tree partition resolves to
inside = {ship.md, floor/check-ship.mjs, floor/check-ship.test.mjs}
(= the PLAN's ## Files / declared writes), keeping the /plan artifact out
of `inside` and avoiding a false fix#7 escape (pipeline-integration-probe
CF-1; same discipline as ship-gated). The /build output stays uncommitted
as the feature under test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds --loop to /ship: iterates fix → regress → verify → review until a
floor-grade stop — /verify PASS ∧ /regress clean — or a max-iteration cap
(default 3, --max-iter). The stop is computed by the new tested floor
helper floor/check-ship.mjs, whose inputs are ONLY the two floor verdicts
+ iter/cap (exit 0 STOP_GREEN / 1 STOP_CAP / 2 INCONCLUSIVE / 3 CONTINUE).
So "/review never gates the loop" is STRUCTURAL — the helper has no /review
input — not agent discipline (the fix#3 disease made impossible). 12
hermetic tests in floor/check-ship.test.mjs. The loop guarantees the STOP,
never that a fix works; GATE 1 (plan approval) hit once, never re-entered;
no --yolo.

Pipeline trail (all floor verdicts GREEN): /regress no-regressions ·
/verify PASS · /review GREEN (0 blocking). Includes the post-review fix of
REVIEW finding A-3: the CONTINUE step now re-sets the writes-scope
(set-writes-scope --from-plan) before applying a fix, since each stage's
Step 0 setter overwrites .pharn/writes-scope.json (fix#7 does not persist
across stages). Standing advisory residuals: A-1 (agent compliance with the
stop is advisory), A-2 (loop orchestration unverified until a live --loop
dogfood), A-4 (check-ship hardcodes the stage verdict enums).

Floor capability count unchanged (1): ship.md is a no-role command;
check-ship.{mjs,test.mjs} live in floor/ (path-ignored by validate).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@PrzemekGalarowicz PrzemekGalarowicz merged commit 83a446c into main Jun 29, 2026
5 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