I3241 — Only a job that reads history fetches all of it
Declare in gates.yaml which gates read history, and give fetch-depth 0 only to the jobs that run one of them.
BLOCKED wave 6 · p3 · implementation profile · parallel safe
Blocked. This issue cannot start until I3242 is done. The status is derived from that, not declared.
Objective
Declare in gates.yaml which gates read history, and give fetch-depth 0 only to the jobs that run one of them.
Why
c228#3: a full fetch costs 10-60 s per job on a repository of about 1 GB. It extends milestone ci-critical-path. Sources: chatgpt-majordomus:c228#3, chatgpt-majordomus:c025#3.
Current state
Measured on master 707a04c, 2026-10-18: nine validate.yml jobs check out with fetch-depth 0 (structure, suite-shard, rust, coverage, evidence, site, macos, install, pages); the plan job uses 2.
Desired state
fetch-depth follows the gate model, and a case refuses a full fetch no gate needs.
Scope
- .github/workflows/validate.yml
- .ai/repo/ci/gates.yaml
- scripts/ci-plan
Dependencies
Acceptance criteria
- Each fetch-depth 0 is justified by a declared history gate (case)
- No history-reading gate fails for want of history
Validation
- scripts/ci-plan --check
Evidence required
- fetch_depth_follows_gates_case
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
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/I3241.yaml. Read it back with majordomus plan show I3241.