You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The product-expert review of #3974 + #3976 flagged the floor ratchet pattern as the highest-leverage concern in the post-#3962 cluster:
Floor cadence — landing-wrong as a pattern, even if each individual PR is correct. The lower→raise→fix→raise sequence makes the floor file a lagging indicator of PR ordering rather than conformance. A reader of git blame on floors can't tell "real regression" from "shipping artifact." Alternative: floors move once per cluster close, not per PR. Use a scratch/observed file during the cluster, ratchet the canonical floor only when the cluster closes. Or: floors only ratchet up, and #3962 should have been a feature flag / waiver rather than a floor lower.
Four floor-touching PRs in one cluster. Future contributors reading git blame on `.github/workflows/training-agent-storyboards.yml:39-56` get noise instead of signal — the lowered floor in #3962 wasn't a regression, but reads like one.
Proposals (pick one or compose)
Ratchet-up-only invariant. Floor numbers MAY only increase. A PR that needs to ship despite a regression files a waiver issue listing the affected storyboards and sets a waivers: block on the matrix entry instead of touching the floor. The workflow checks the waiver list against actual failures and accepts known-failing storyboards without lowering the global floor.
Cluster-close-only floor changes. Floors move once per regression-cluster-close (i.e., once per Training-agent baseline regressions exposed by @adcp/sdk@6.7.0 bump (PR #3962) #3965-class tracker), not per individual fix-up PR. Individual PRs touching the same cluster reference an observed_floors.yaml scratch file that the workflow reads; the canonical floor file only updates when the cluster closes.
Lock floor changes to a separate review path. Edits to the floor numbers require a floor-change label and dual approval from a codeowner of .github/workflows/training-agent-storyboards.yml. Forces a moment of "do we actually want to lower this?" friction.
The first option is cheapest and closest to how most CI suites handle this. Worth pairing with a build-time lint that compares the new floor to the prior floor on every PR and rejects decreases without a waiver.
The product-expert review of #3974 + #3976 flagged the floor ratchet pattern as the highest-leverage concern in the post-#3962 cluster:
Concrete this cycle:
Four floor-touching PRs in one cluster. Future contributors reading
git blameon `.github/workflows/training-agent-storyboards.yml:39-56` get noise instead of signal — the lowered floor in #3962 wasn't a regression, but reads like one.Proposals (pick one or compose)
Ratchet-up-only invariant. Floor numbers MAY only increase. A PR that needs to ship despite a regression files a waiver issue listing the affected storyboards and sets a
waivers:block on the matrix entry instead of touching the floor. The workflow checks the waiver list against actual failures and accepts known-failing storyboards without lowering the global floor.Cluster-close-only floor changes. Floors move once per regression-cluster-close (i.e., once per Training-agent baseline regressions exposed by @adcp/sdk@6.7.0 bump (PR #3962) #3965-class tracker), not per individual fix-up PR. Individual PRs touching the same cluster reference an
observed_floors.yamlscratch file that the workflow reads; the canonical floor file only updates when the cluster closes.Lock floor changes to a separate review path. Edits to the floor numbers require a
floor-changelabel and dual approval from a codeowner of.github/workflows/training-agent-storyboards.yml. Forces a moment of "do we actually want to lower this?" friction.The first option is cheapest and closest to how most CI suites handle this. Worth pairing with a build-time lint that compares the new floor to the prior floor on every PR and rejects decreases without a waiver.
References