Skip to content

a-change-is-judged-in-minutes — A change is derived in under a second and judged in minutes, and nothing that could have changed is skipped

The owner should never wait on the toolchain for a change that touched little. An ordinary derive finishes in under a second. A pull request's required verdict arrives within five minutes. Both are measured and enforced, and the speed comes from not repeating work whose inputs did not move, never from weakening a gate.

PLANNED 0 of 10 issues done

ready
2
blocked
8
active
0
verify
0
done
0
cancelled
0

Problem

The owner should never wait on the toolchain for a change that touched little. An ordinary derive finishes in under a second. A pull request's required verdict arrives within five minutes. Both are measured and enforced, and the speed comes from not repeating work whose inputs did not move, never from weakening a gate. Proposed in ADR 0185 (A derivation is a typed graph of the generators the executable already plans, keyed by the content of what each node reads, and the full derive stays its oracle); ADR 0186 (A pull request's required verdict is the feedback lane, a gate whose inputs did not change is reused as inputs_unchanged, and the proof lane judges the combined top before it lands); ADR 0187 (Tests are selected by the impact of a change, derived from what each case declares it reads, and a change of unknown impact runs every case) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c208#3, chatgpt-majordomus:c208#24, chatgpt-majordomus:c228#0, chatgpt-majordomus:c292#0.

Outcome

The owner should never wait on the toolchain for a change that touched little. An ordinary derive finishes in under a second. A pull request's required verdict arrives within five minutes. Both are measured and enforced, and the speed comes from not repeating work whose inputs did not move, never from weakening a gate.

Current state

Its issues extend existing milestones; see each issue's why.

Desired state

Every criterion of the intent is carried by an issue here and proven by its test.

Acceptance criteria

  • A warm derive of an unchanged tree finishes under 1 s p95 on the declared reference machine and runs no generator
  • A derive after one changed canonical input finishes under 1 s p95, excluding a cold executable build
  • For every fixture, an incremental derive under any node order and worker count leaves the same bytes as a full derive, deletions included
  • Required pull-request validation reaches a binding verdict within 300 s p95 from validation start, with queue wait reported separately
  • Every gate the plan does not run carries the proof that nothing it reads changed, and an omitted dependency turns a gate red
  • A derive or CI path that regresses past its noise-aware budget fails a gate and names the stage that caused it

Validation

  • majordomus plan validate

Issues

Each one is an execution contract with its own acceptance criteria, validation command and required evidence. The wave column is the layer of the dependency graph it sits in.

issuestatuswavedepends ontitle
I2848 READY 0 — A pre-push gate that runs the executable does not wait on another worktree's build
I3233 BLOCKED 1 I2521 Stage C renders only the targets that read the index, and the manifest no longer renders every code-only artifact a second time
I3234 BLOCKED 5 I2521, I2525 A derive whose executable is current and whose inputs did not move answers before it waits for the machine's lock
I3235 BLOCKED 3 I2521, I0832 The site generator reads the use-case catalogue once per run
I3238 BLOCKED 6 I2350, I2348, I2527, I3242 A pull request runs the cases its change can affect, chosen from what each case declares it reads, and a change of unknown impact runs them all
I3239 BLOCKED 6 I3242 One job builds a run's executable and every other job of that run uses it
I3240 BLOCKED 6 I2350, I3242 A pull request's browser audit visits the pages its change can reach, and a shared-layout change sweeps them all
I3241 BLOCKED 6 I3242 Only a job that reads history fetches all of it
I3242 BLOCKED 5 I2472, I2350 The pull-request critical path has a committed GitHub baseline and a budget per required job, and a run's summary names its critical path and every cache state
I3838 READY 0 — The plan page renders within the audit budget at every width, because a finding is counted rather than printed once per pair

The graph

a-change-is-judged-in-minutes dependency graphfrom .ai/repo/project
flowchart LR
    I2848["I2848<br/>A pre-push gate that runs the executable does not wait on another worktree's build"]:::ready
    I3233["I3233<br/>Stage C renders only the targets that read the index, and the manifest no longer renders every code-only artifact a second time"]:::blocked
    I3234["I3234<br/>A derive whose executable is current and whose inputs did not move answers before it waits for the machine's lock"]:::blocked
    I3235["I3235<br/>The site generator reads the use-case catalogue once per run"]:::blocked
    I3238["I3238<br/>A pull request runs the cases its change can affect, chosen from what each case declares it reads, and a change of unknown impact runs them all"]:::blocked
    I3239["I3239<br/>One job builds a run's executable and every other job of that run uses it"]:::blocked
    I3240["I3240<br/>A pull request's browser audit visits the pages its change can reach, and a shared-layout change sweeps them all"]:::blocked
    I3241["I3241<br/>Only a job that reads history fetches all of it"]:::blocked
    I3242["I3242<br/>The pull-request critical path has a committed GitHub baseline and a budget per required job, and a run's summary names its critical path and every cache state"]:::blocked
    I3838["I3838<br/>The plan page renders within the audit budget at every width, because a finding is counted rather than printed once per pair"]:::ready
    I3242 --> I3238
    I3242 --> I3239
    I3242 --> I3240
    I3242 --> I3241
    classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
    classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
    classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
    classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
    classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
    classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px

Canonical record: .ai/repo/project/milestones/a-change-is-judged-in-minutes.yaml. Read it back with majordomus plan show a-change-is-judged-in-minutes.

Searches the titles and descriptions of every page this site publishes.