Repository navigation
Conversation
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…n needed (GST-1833) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
4 tasks done
…ode-into-crew-gst-1833 Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> # Conflicts: # README.md # crew/README.md # test/crew-skills-on-capy.test.ts
…tain Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
capy-ai
Bot
changed the base branch from
capy/crew-tools-load-on-capy-only-gst-1833
to
main
November 7, 2026 22:22
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
…ode-into-crew-gst-1833
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…rew/ Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…s they drive Review-Finding: p1/specialist-batched#1 reader=testing Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
… a later change Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…/ move Setup now copies crew/lib into every host's runtime root beside bin and lib, so Windows installs (which copy instead of linking) can still start gstack-ship-receipt, gstack-pregate and the other commands that import it. The release bisect runs the train-gate script from wherever the checked-out commit has it, so a bisect over commits from before the move still gets a verdict. Review-Finding: p1/outside-voice#1 reader=outside-voice Review-Finding: p1/outside-voice#2 reader=outside-voice Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…w/ move Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…odules moved Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ode-into-crew-gst-1833 Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> # Conflicts: # crew/lib/ship-queue-train-gate.ts # crew/test/ship-recheck.test.ts # docs/captain.md # scripts/harness-pins/scripts/test-pr-profile.ts.json
…T-1833) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the tools that only Capy crews use to merge and release gstack into a
crew/folder, along with their tests. Nothing changes for anyone who installs gstack, so the public install stays small and fast for outside users.Do not land before the scheduled stable cut on Sun 2026-11-08 14:00Z finishes. This PR moves files the release path runs (
weekly-release.yml,release-gate.yml, the release-cut script and the release-gate command).What changed
Capy-crew-only commands and modules move from
bin/,lib/andscripts/intocrew/, so the public tree holds only what outside users run.Before/after as text: Capy-crew-only commands and modules move from bin/, lib/ and scripts/ into crew/
gstack-release-gateandgstack-coauthor-trailerstocrew/bin/; the merge-train and wave modules, release gate, release cut and cadence, gate-cost reports and the train and backstop eval scripts tocrew/lib/,crew/scripts/andcrew/test/.crew/docs/. The old pathsdocs/captain.mdanddocs/recommended-harness.mdkeep a one-line pointer.gstack-flaky,lib/flaky-run.tsandlib/factory-scorecard.tsstay public, becausedocs/flaky.mdtells outside users to runbin/gstack-flaky.crew/alone was taken out of this PR and comes back in a later one.Why
Garry approved keeping the crew tools in this repo under
crew/and loading them only on Capy machines, so everyone else gets gstack without them. This PR does the move with no behavior change. Later phases unhook the few public modules that still importcrew/.Blast radius
The move touches every workflow, import, doc and test fixture that named an old path. Free Tests at b7da0b7 (run 42426000235, 36,305 tests at tree 98d620a95bcb) passed with every crew test planned. Two install paths needed more than a rename:
bin/andlib/, or by copying them on Windows. Root commands such asgstack-ship-receiptandgstack-pregatenow importcrew/lib/, so setup copiescrew/lib/beside them. A copied folder from this branch failed withCannot find module '../crew/lib/...'before the fix. A new test intest/env-host-runtime-assets.test.tsbuilds a Windows-style copied folder and starts both commands; it failed before the fix and passes after it.scripts/train-gate.tswhen a commit predates the move.On a Capy machine the launch file adds
crew/binto PATH afterbin, sogstack-release-gateandgstack-coauthor-trailersstill work by bare name; a test covers it.Approvals
Approved: yes (record r-99e90e0c8eb1). The full approval record stays private: this repository is public or its visibility is unknown.
Plan: approved (record r-dade9f38e7ca)
Plan check: approved (record r-dade9f38e7ca)
Summary
Capy-crew-only tooling moves into
crew/with its tests, and every caller, workflow and doc points at the new paths. /ship's review found two places where a rename was not enough: Windows installs copybin/andlib/withoutcrew/lib/, and a release bisect over older commits looked for the script at its new path. Both are fixed here, with a regression test for the install.Test Coverage
All changed code paths have test coverage. Step 7 audit (audit-only, 0 tests written): the 4 paths the coverage map flagged are each a one-line path change already exercised by existing suites (
test/base-red.test.ts,test/pregate-remote-gate-runs.test.ts,test/test-free-shards.test.tsandtest/windows-native-workflows.test.ts, all green in the audit's local run);bin/gstack-factory-scorecardchanged only a comment.Tests ran: the free suite carried from CI run 42433004325/1 at this tree (count in the receipt); no local suite ran in this /ship.
Pre-Landing Review
Pre-Landing Review: 2 issues — 0 auto-fixed, 0 asked (0 fixed, 0 skipped), 0 deferred, 2 noted. Step 11's voices added 5 informational notes (one a duplicate of the first), none blocking. One full pass at 456e024 (gate class: specialists batched, red team, targeted money review, a native adversarial reader and an outside voice on openai/gpt-6.1-sol). No blocking findings, so no fix round. The merge-resolution delta since the last /ship (baf3c31) was checked by hand:
crew/lib/ship-queue-train-gate.ts,ship-queue-wave.tsandship-queue-train-land.tsdiffer from main'slib/copies only in import paths, comments, the runner path depth and the existingcrew/area-key line.REVIEW_LOOP: passes=1 blocking_found=0 deferred=0 noted=2 fixed=0 scope=frozen ledgers_read=2 dispatches=2
Gate edits: none new since the last /ship's scan at baf3c31 (183 listed, 170 read, 0 findings); the merge brought no gate edits.
Outside review: completed (openai/gpt-6.1-sol), clean.
Review notes
Below the blocking floor (advisory, informational, test-gap or wording items); recorded here and not fixed in this PR.
scripts/test-pr-profile.ts:342DERIVABLE_PREFIXES lacks crew/, so crew-only PRs fall back to the full paid PR profile (fails closed: more spend, no lost coverage). Targeted reader raised the same (targeted#1, money). Kept as decided earlier on this PR: crew/ stays out of DERIVABLE_PREFIXES..gstack/pregate.json:40Pregate module-size and conflict-marker guard path filters do not name crew/**; CI's free suite still enforces the ratchet.lib/pregate/import-graph.ts:492The pregate import graph parses extensionless entrypoints only under bin/, so crew/bin files have no outgoing edges; local focused test selection narrows, CI still runs everything..github/workflows/evals.yml:463Recover-receipts and gate-reuse steps check only crew/scripts paths; a manual run with a pre-move base_sha skips reuse and pays a full gate.bin/gstack-install-registry.sh:1gstack_on_capy now accepts any ~/.capy entry; a leftover ~/.capy keeps /captain registered. Kept as decided earlier on this PR.docs/captain.md:1Pointer stubs for moved manuals drop old section anchors for outside deep links. Pointer-stub layout decided earlier on this PR.lib/pregate/import-graph.ts:492The pregate import graph parses extensionless entrypoints only underbin/, socrew/binfiles have no outgoing edges; local focused test selection narrows, CI still runs everything (adversarial)..github/workflows/evals.yml:463Recover-receipts and gate-reuse steps check onlycrew/scriptspaths; a manual run with a pre-movebase_shaskips reuse and pays a full gate (adversarial).bin/gstack-install-registry.shCapy detection accepts any~/.capyentry; carried note, kept per the lane brief (adversarial).docs/captain.md:1Pointer stubs drop old section anchors for outside deep links; carried note (adversarial).crew/stays out of DERIVABLE_PREFIXES per the earlier decision.Exploratory QA
Functional smoke, 2 probes, verdict pass (checkpoint 002 under
~/.capy/work/ship-4145-456e024/qa/functional):crew/bin/gstack-release-gate --helpruns from its new path (exit 0).bin/gstack-ship-queue --helpstarts; its import closure reachescrew/lib(exit 0).Not run here: the full free suite and typecheck, which CI ran at this tree and the receipt carries.
Design Review
No frontend files changed, so design review was skipped.
Eval Results
Prompt files changed (
captain/SKILL.md.tmpl,retro/SKILL.md.tmpl, path prefixes only), but no paid evals ran: this lane's paid budget is $0. The merge owner's gate decides paid coverage.Review bot comments
No review bot comments.
Scope Drift
Scope Check: CLEAN
Intent: move Capy-crew-only code into
crew/with no behavior change (GST-1833 Phase 1), without the crew-test skip (owner's option A).Delivered: the move, repointed callers, crew/bin on PATH on Capy, the review-depth
crew/prefix, and two fixes so copied installs and older bisects keep working.Plan Completion
Plan: docs/designs/GSTACK_ON_CAPY.md (Phase 1 of GST-1833). 3 of 3 items done, 0 changed, 0 not done.
crew/and repoint callerscrew-move-layout,crew-skills-on-capy,gstack-capy-install,env-host-runtime-assets)Issues
No issues are fixed or referenced.
gstack-issue-linksprinted only the review-finding trailers as references:Verification Results
All 43 pull-request checks passed at 456e024 with none pending (12 skipped by their path filters), including free-tests run 42433004325/1, windows-smoke, windows-setup and the macOS jobs. Pregate verify passed on the final tree with its four remote lanes cleared from those runs.
TODOS
No TODO items completed in this PR.
Documentation
Status: current. The docs match the move of crew-only code into
crew/; no edits were needed.Scope: the diff from 914e7b6 to 456e024 (210 files; nothing staged, unstaged or untracked), including the docs main brought in through the merge at d866187. Every tracked
.mdand.tmplfile (except CHANGELOG, changelog.d and golden fixtures) was searched for the 59 non-test files that moved intocrew/.Documentation health:
crew/docs/captain.md: current. The plain-title paragraph from main is here, and itsdocs/ship-policy.md#plain-titleslink resolves.crew/docs/recommended-harness.mdandcrew/README.md: current, with no broken relative links.docs/captain.mdanddocs/recommended-harness.md: current pointer stubs.docs/ship-policy.md,CONTRIBUTING.md,docs/skills.mdanddocs/troubleshooting.md: current, with no references to moved paths.docs/designs/: kept as written. They name old paths as a record of history.Coverage debt: none new. The move changes no public surface.
Diagram drift: none found.
Test plan
bun run test(free suite): carried from Free Tests CI run 42433004325/1 at the pushed head (see receipt)crew/bin/gstack-release-gate --help,bin/gstack-ship-queue --helpAgent notes
gstack-flaky,flaky-runandfactory-scorecardstay public.captain/(the skill folder) does not move, because the skill generator only finds top-level folders. Install /captain only on Capy machines (GST-1833) #4143 keeps it unregistered off Capy.crew/import edges remain (ship-queue-gate, ship-queue-train-record, ship-queue-land-lock, version-gate-train, eval-input-cache, recover-receipts, restamp-release). Phase 2 removes them.