A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
docs/INTEGRATION_ROLLOUT.md
Integration rollout record
What it is
- URI
majordomus://document/docs/INTEGRATION_ROLLOUT.md- Kind
document- Identity
docs/INTEGRATION_ROLLOUT.md- Path
docs/INTEGRATION_ROLLOUT.md- Provenance
- declared
- Media type
text/markdown- As a capability
- document.docs/INTEGRATION_ROLLOUT.md
Front matter
{}Content
# Integration rollout record
The record of each stage of the integration rollout that ADR 0101 §13 stages and
[`INTEGRATION.md`](INTEGRATION.md#rollout) lists. Each stage is taken against the real
repository with a released, installed executable and records what was run, what it answered
and what moved. A dry run writes nothing to the audit trail, so for stage 1 this file is the
record. Stages 2 and 3 are recorded on the trail itself, as merges the continuous-mode gate
counts.
## Stage 1: dry run, 2026-10-06
**Taken under:** rule `project.integration-follows-the-current-master` version 2, rule
`project.land-and-publish` version 1, and ADR 0101 (status `proposed`, dated 2026-09-30, as at
master `5908234ce0`).
**Executable:** majordomus 0.14.0, the published release, installed by the advertised installer
into a prefix of its own, so no other installation was used or changed:
```bash
sh install.sh --version 0.14.0 --prefix <prefix> --install-dir <prefix>/bin
<prefix>/bin/majordomus --version # majordomus 0.14.0
```
**Repository:** `korczis/prismatic-majordomus`, from a clone of it (`<repo>`) with
`MAJORDOMUS_BIN` and `MAJORDOMUS_SHARE` unset, so the installed release answered and not a build
of the tree. The forge's master was `5908234ce001f521e22c2534f837ee939b70a7c6`, the commit that
records the 0.14.0 release.
<!-- majordomus:unrun this is the transcript of one run against the real forge, which needs the network and a token; the integration tests run these commands against a scripted one -->
```bash
cd <repo>
majordomus prs refresh # exit 0
majordomus prs status # exit 0
majordomus prs drain --dry-run # exit 0
majordomus prs prove-dry-run # exit 0
```
### What it answered
`prs refresh`:
```text
observed 16 open pull request(s) of korczis/prismatic-majordomus at 2026-10-06T15:10:10Z; master is 5908234ce0
```
`prs status`:
```text
korczis/prismatic-majordomus · master at 5908234ce0 · observed 2026-10-06T15:10:10Z (16 open)
lanes: held 2 · repair 6 · waiting 8
rank pr disposition risk reason title
1 #746 needs_refresh medium behind_master:171 fix(finish): a note is read once, and kept before the outco…
2 #789 needs_refresh medium behind_master:134 fix(generate): the registry counts the web surfaces every c…
3 #747 needs_refresh medium behind_master:197,required_checks… fix(server): a server serving code that no longer exists st…
4 #743 needs_refresh medium behind_master:232,required_checks… feat(cockpit): the plan, one milestone and one issue, with …
5 #742 needs_refresh high behind_master:233,required_checks… fix(lint): a reporter that sets a flag is a reporter
6 #741 needs_refresh high behind_master:233,required_checks… feat(pack): a source pack for ChatGPT, verified to carry on…
7 #739 needs_refresh high behind_master:246,required_checks… feat(continuity): a handover moves between machines as a si…
8 #667 waiting_for_dependency high stacked_on:#650,conflicts_on:3,re… feat(evidence): a recording carries what its run measured, …
9 #745 needs_repair medium required_check_failed,behind_mast… feat(timing): the timing report is one line of JSON under -…
10 #732 needs_repair medium required_check_failed,behind_mast… feat(site): one status vocabulary, the challenge as proof, …
11 #734 conflicting high conflicts_on:1,required_check_fai… feat(site): one feature card; /features/ is the product by …
12 #785 conflicting high conflicts_on:1,required_check_fai… fix(release): prose names no version label, and the limitat…
13 #788 conflicting high conflicts_on:3,required_check_fai… integrate(batch-n3): features by domain, one status vocabul…
14 #292 conflicting high conflicts_on:20,required_checks:m… feat(completion): done is one policy, a derived stage, and …
15 #650 other_base medium base_is:feature/evidence-is-judge… feat(evidence): a crate binary that ran nothing is not a pa…
16 #552 other_base medium base_is:fix/the-cockpit-areas-are… feat(cockpit): the plan, its milestones and issues, the ses…
```
`prs drain --dry-run`:
```text
idle: nothing is ready; 7 pull request(s) need master brought in first: #746 #789 #747 #743 #742 #741 #739
stopped: nothing is ready; 7 pull request(s) need master brought in first: #746 #789 #747 #743 #742 #741 #739
```
`prs prove-dry-run`:
```text
refresh observed 16 open pull request(s); master is 5908234ce001f521e22c2534f837ee939b70a7c6
plan nothing is ready to merge
drain --dry-run idle: nothing is ready; 7 pull request(s) need master brought in first: #746 #789 #747 #743 #742 #741 #739; nothing is ready; 7 pull request(s) need master brought in first: #746 #789 #747 #743 #742 #741 #739
cleanup nothing to close
observed classification (base master):
#746 0594c009784a needs_refresh bring master in with the derived merge driver, derive, push; CI runs again
#789 e6392cc17476 needs_refresh bring master in with the derived merge driver, derive, push; CI runs again
#747 8c29f1f3a63a needs_refresh bring master in with the derived merge driver, derive, push; CI runs again
#743 a23e632a31fc needs_refresh bring master in with the derived merge driver, derive, push; CI runs again
#742 15f95faf92d3 needs_refresh bring master in with the derived merge driver, derive, push; CI runs again
#741 748b4cd22930 needs_refresh bring master in with the derived merge driver, derive, push; CI runs again
#739 fd36929ae0df needs_refresh bring master in with the derived merge driver, derive, push; CI runs again
#667 e3582b1d8fcf waiting_for_dependency land #650; its merge retargets this onto master
#745 3142d2762746 needs_repair the author fixes the failing required check
#732 c3a04f44134f needs_repair the author fixes the failing required check
#734 8f7ec3cc89c1 conflicting the author merges master and resolves site/templates/feature.html
#785 f76abc08f699 conflicting the author merges master and resolves docs/README.md
#788 4153efdd4a5a conflicting the author merges master and resolves apps/majordomus-cli/Cargo.lock, apps/majordomus-cli/Cargo.toml, site/templates/feature.html
#292 1d22b89dd7dc conflicting the author merges master and resolves .ai/repo/evidence/ledger.json, README.md, apps/majordomus-cli/src/capability/builtin/gates.rs, apps/majordomus-cli/src/cockpit/mod.rs, apps/majordomus-cli/src/cockpit/nav.rs, apps/majordomus-cli/src/gates/done.rs, apps/majordomus-cli/src/gates/mod.rs, apps/majordomus-cli/src/release/version.rs, apps/majordomus-cli/tests/cockpit.rs, docs/DISTRIBUTION.md, docs/README.md, docs/SCHEMAS.md, lib/derive.sh, lib/finish.sh, scripts/generate-site-data, scripts/lib/executable-site.jq, site/data/homepage.toml, site/data/marketing.toml, site/data/nav.toml, site/templates/index.html
#650 de2945d9a660 other_base
#552 85188af5d085 other_base
nothing moved (remote, forge, trail, lease, local refs)
```
### What it shows
- **Nothing moved.** The proof checks the remote, the forge, the trail, the lease and the local
refs before and after, and finds every one unchanged. The observation carried no diagnostic.
- **Nothing was ready, so stage 2 has nothing to merge yet.** Of the 16 open pull requests,
seven are `needs_refresh`: master is what they lack, and their only conflicts with it are
derived files. One waits for the pull request it is stacked on, two need their failing
required check repaired, four conflict on authored files, and two target another base.
- **The dispositions were checked by hand.** For example, #746 is `needs_refresh` and not
redundant: `git cherry` finds none of its three commits on master, and master's
`lib/finish.sh` still copies the note after the outcome is written. #788 conflicts on
`Cargo.toml` and `Cargo.lock`, which the 0.14.0 release changed on master after the branch
last took master in.
- **Stage 2 needs one `ready` pull request.** `prs repair <n> --apply` brings master into one
of the `needs_refresh` pull requests (or `prs drain --refresh` brings in the first), and stage
2 can be taken once its required checks pass on the new head.