Problem
Epic #8211 track B capstone. With per-repo storage + resolution in place, the loosening loop still evaluates one global corpus. A repo whose own labeled history clears the floors should earn ITS OWN loosening step; a sparse repo must keep inheriting the global value.
Requirements
⚠️ Required pattern. Same tick, same double gating, same one-alert-per-step discipline as runScheduledKnobLoosening — extended, not forked. Per-repo evaluation runs ONLY for repos whose slice is eligible per the density stats; everything else stays global-only. Never-on-noise is the load-bearing invariant.
- Per eligible repo per live knob: evaluate the REPO SLICE from the repo's current resolved value; apply writes the repo-scoped key; the audit event + alert carry the repo dimension (
ev stays per-knob, repo in metadata, per the Sentry-fingerprint discipline).
- Global evaluation continues unchanged over the FULL corpus.
- Bounded work per tick: cap evaluated repos per run (deterministic order), cursor in system_flags — a thousand-repo future must not turn the tick into a stampede.
- Status endpoint's per-repo section shows evaluation provenance (earned-here vs inherited).
Deliverables
Links & Resources
#8211 (epic), the storage/resolution sub-issue (blocked-by), src/services/knob-loosening-run.ts
Boundaries
Loosening-only movement, same hard minimums per scope. No cross-repo inference — a repo's evidence moves only that repo.
maintainer-only — gate-authority loop extension.
Problem
Epic #8211 track B capstone. With per-repo storage + resolution in place, the loosening loop still evaluates one global corpus. A repo whose own labeled history clears the floors should earn ITS OWN loosening step; a sparse repo must keep inheriting the global value.
Requirements
evstays per-knob, repo in metadata, per the Sentry-fingerprint discipline).Deliverables
Links & Resources
#8211 (epic), the storage/resolution sub-issue (blocked-by), src/services/knob-loosening-run.ts
Boundaries
Loosening-only movement, same hard minimums per scope. No cross-repo inference — a repo's evidence moves only that repo.
maintainer-only — gate-authority loop extension.