I2396 — The CI critical path of 2026-10-10 is measured, recorded, and explained before anything is changed
Record what a pull request's verdict costs today, from the forge's own runs, so that every change of the V4 delivery work is compared with a measurement rather than with a belief.
DONE wave 0 · p0 · implementation profile · parallel safe
Objective
Record what a pull request's verdict costs today, from the forge's own runs, so that every change of the V4 delivery work is compared with a measurement rather than with a belief.
Why
The owner set a bound of five minutes at the 95th percentile for a pull request's required verdict and asked for the integration process to be diagnosed before it is changed. The last measurement on record (.ai/repo/ci/baseline.json) is from 2026-09-05, before the CI model existed.
Current state
scripts/ci-baseline records runs, jobs and steps; nothing on master holds a measurement of the current CI, and docs/CI.md names no critical path.
Desired state
.ai/repo/ci/baseline-2026-10-10.json holds the last 60 validate runs; docs/CI.md states the verdict's percentiles, the share of runner time spent on runs that do not end green, the jobs that set the wall clock with their queue, and the causes of the failed runs, each reproducible from the file.
Scope
- .ai/repo/ci/baseline-2026-10-10.json
- docs/CI.md
- .ai/repo/project/issues/I2396.yaml
- docs/generated
- docs/PLAN_STATUS.md
- docs/PAGES_STATUS.md
- site/content
- site/data
Out of scope
- Changing any workflow, gate or cache: the later V4 issues do that against this measurement.
Dependencies
None. This issue is a root of the graph.
Acceptance criteria
- .ai/repo/ci/baseline-2026-10-10.json is the output of scripts/ci-baseline over 60 validate runs
- docs/CI.md states p50 and p95 of a green pull request's verdict, the runs that did not end green and their share of runner time, the long jobs with their queue, and the causes of failure, each with a command that reproduces it from the file
Validation
- jq '.runs | length' .ai/repo/ci/baseline-2026-10-10.json
- bin/majordomus plan validate
Evidence required
- ci_critical_path_recorded
Evidence
| covers | type | command | result | at commit |
|---|---|---|---|---|
| ci_critical_path_recorded | artifact | jq '.runs | length' prints 60; percentiles stated in docs/CI.md (run 2026-10-14 between 07:40Z and 07:58Z on master ce5959db59) | ce5959d |
Timeline
- started
- 2026-10-14T08:00:38Z
- verified
- —
- completed
- 2026-10-14T08:00:44Z
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I2396.yaml. Read it back with majordomus plan show I2396.