mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-11 03:00:26 +01:00
* Teach crews to keep work owned and treat outside PRs as bug reports (GST-2077) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Name the credit range and who posts a verdict in the outside-PR docs (GST-2077) Review-Finding: p1/red-team#2 reader=red-team Review-Finding: p1/red-team#3 reader=red-team Review-Finding: p1/red-team#4 reader=red-team Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Name the changelog fragment after the branch and mention the credit range (GST-2077) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Check fork authors before adding contributor credit (GST-2077) Review-Finding: p1/red-team#1 reader=red-team Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Describe contributor PRs as rewritten fixes in the harness options table (GST-2077) 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>
57 lines
3.1 KiB
Markdown
57 lines
3.1 KiB
Markdown
# gstack on Capy
|
|
|
|
This folder holds the parts of gstack that only Capy crews use: the tools that
|
|
run a crew of coding agents under a Captain. It stays in the public repo, but
|
|
`./setup` loads it only on a Capy machine. Anywhere else, setup skips it and
|
|
gstack works exactly as it does without it.
|
|
|
|
## What Capy users get on top of gstack
|
|
|
|
- **Captains.** `/captain` runs many agent threads from one controller: lanes
|
|
send a READY block and never merge, the controller keeps the digest, relays
|
|
approvals in a fixed shape and runs a daily flaky-test pass
|
|
([docs/captain.md](docs/captain.md)).
|
|
- **A merge queue.** `gstack-ship-queue` lands verified pull requests alone or
|
|
in trains, checks the exact head before it merges, and stamps the version
|
|
only at release time.
|
|
- **Receipts.** `/ship` leaves a receipt for the head it checked, so the
|
|
controller can tell that a pull request was reviewed and tested at the commit
|
|
it merges.
|
|
- **Budgets.** `/ship` and `/autoplan` meter their own spend against the cap a
|
|
brief sets, and stop or hand off before they cross it
|
|
([docs/ship-budget.md](../docs/ship-budget.md)).
|
|
|
|
How the whole factory fits together: [capy/README.md](../capy/README.md).
|
|
|
|
## How it is loaded
|
|
|
|
A Capy machine is one where `CAPY_MACHINE_CONFIG` is set (cloud machines) or
|
|
`~/.capy` exists (cloud machines and paired devices, such as a Mac running
|
|
Capy). Any `~/.capy` counts, so when it is unclear the crew skills install
|
|
rather than a Capy user losing `/captain`. `gstack_on_capy` in
|
|
`bin/gstack-install-registry.sh` is that test, and
|
|
`GSTACK_CREW_SKILLS` there lists the crew skills. On a Capy machine setup and
|
|
`gstack-relink` register them like any other skill; elsewhere they get no entry
|
|
on any host, and an entry an earlier install made is removed.
|
|
|
|
On Capy the session launch file (`bin/gstack-capy-install`) also puts
|
|
`crew/bin/` on PATH, so the crew commands keep their bare names there. Public
|
|
CI runs `crew/test/` with the rest of the free suite.
|
|
|
|
## What is here
|
|
|
|
| Path | What it holds |
|
|
|---|---|
|
|
| `bin/` | `gstack-release-gate` (the paid gate on main every 8 hours) and `gstack-coauthor-trailers` (credit for contributor lines a rewrite carries over) |
|
|
| `lib/` | merge trains and waves (`ship-queue-train*`, `ship-queue-wave`, the land lock, screens, rechecks), the release gate, version-gate trains and lane ownership |
|
|
| `scripts/` | the release cut and its daily check (`release-cut`, `release-cadence`), and the paid-eval CI steps only our crews run (train gate and backstop, gate cost, gate reuse, receipt recovery, census arms, judge calibration configs) |
|
|
| `test/` | their tests |
|
|
| `docs/` | the manuals: [running a Captain crew](docs/captain.md) and [the recommended harness](docs/recommended-harness.md) |
|
|
|
|
The crew tooling moves here in stages. Code that no public skill calls comes
|
|
first; the steps `/ship`, `/review` and `/autoplan` take only for crews move
|
|
after they call it through one switch. Some crew tools stay outside `crew/` for
|
|
now because public code still calls them: `/captain`'s own folder (the skill
|
|
generator reads top-level folders), `gstack-ship-queue`, receipts, the
|
|
pre-gate, spend caps and approvals.
|