Skip to content
Cockpit0.29.0
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

I2662

Validation leaves the deployment a runner: a branch's checks never hold the pool a publication or a release record needs

Where it stands

devtask.issue
Readiness
ready no dependency and no gate holds it; nobody has started it
Status
READY
Can start
startable
Milestone
Milestone status
ACTIVE
Wave
0
Waiting on
none
Holds back
none
Behind it in all
0
Evidence
0 of 2
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I2662

majordomus plan verify I2662

majordomus plan done I2662

What it is

Objective
Bound what validation may occupy, so that the two things only the trunk can do, publish and record a release, start when they are ready.
Why
The owner, 2026-10-13: 'investigate what is slow ... solve it systemically, prevent it next time' and 'this must be analysed and solved through .ai/; it must not happen again'. Measured that day: a merge reached production 45 to 61 minutes later, and two landings of the evening were not served an hour after they merged.
Now
Measured 2026-10-13: jobs of the pages workflow waited 78 to 876 s for a runner in two finished runs and 20.5 minutes in a third, while several validate runs of branches were queued or running; each validate run starts about nineteen jobs. No rule says how much of the pool validation may take, and a run nobody will read is cancelled only by hand (ADR 0155 clause 7).
Wanted
The validate workflow declares how many of its jobs may run at once and cancels a branch's superseded run by itself; a run on the trunk, a deployment and a release run are never cancelled and never wait behind a branch's matrix. The wait of a pages job for a runner is recorded per run and has a declared bound.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • A new push to a branch cancels that branch's unfinished validate run; the trunk's runs are never cancelled
  • The number of validate jobs running at once has a declared maximum, and a case holds the workflow to it
  • Over a day of landings no pages job waits longer for a runner than the declared bound, read from the recorded timings
Validation
bin/majordomus plan validatescripts/ci/github-checkscripts/ci-plan --check
Evidence required
runner_wait_per_pages_job_over_a_daysuperseded_run_cancelled_case
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
.github/workflows/validate.yml.github/workflows/pages.yml.ai/repo/ci/gates.yamlscripts/ci-plandocs/CI.md.ai/repo/project/issues/I2662.yaml
Not
Buying runnersWhat the gates check
Depends on
unknown: the record declares no `depends_on`
Priority
p1
Profile
implementation
Parallel safe
true
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-10-13
Updated
2026-10-13
Started
unknown: the record declares no `started_at`
Verified
unknown: the record declares no `verified_at`
Completed
unknown: the record declares no `completed_at`

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

LevelCodeMessageReproduce
WARNscope_conflictshares .ai/repo/ci/gates.yaml with I2716; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares .github/workflows/validate.yml with I2717; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares .github/workflows/pages.yml with I2786; they may not run concurrentlymajordomus plan validate