Scale the blocker window by lane risk, converging with risk-nexus
risk-nexus accepted the offer to match their convention rather than grow a second one, and published it: 14d critical/high, 30d medium, 60d low, nothing auto-closing on staleness alone. Their preference — point warden route gaps at those windows and the two registers agree without a shared mechanism — is better than a joint tool. blocker_stale_days() now maps lane risk onto those windows. A flat 14 would have been wrong in both directions: too aggressive for a low-risk pointer, and it treated an admin PAT lane the same as one. ungraded takes the shortest window, not the longest. ADR-0007 makes an absent grade a defect and ADR-0008 makes a grade cover the whole path, so a lane nobody graded is the one whose blocker deserves least trust. Encoding that as 60 days would have been the fail-open default this repo already fixed once. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
55f0f47a02
commit
e18894ee5b
7 changed files with 96 additions and 24 deletions
|
|
@ -194,7 +194,21 @@ while they shared one 90-day threshold. They should not.
|
|||
| Claim | Question | Default | Where |
|
||||
| --- | --- | --- | --- |
|
||||
| Pointer freshness | Is this still the right owner and page? | **90 days** | `warden route list --stale` |
|
||||
| Interim blocker | Has the intended owner answered / can they front this yet? | **14 days** | `warden route gaps` |
|
||||
| Interim blocker | Has the intended owner answered / can they front this yet? | **risk-scaled, 14–60 days** | `warden route gaps` |
|
||||
|
||||
The blocker window scales with what the lane holds, matching `risk-nexus`'s stall
|
||||
windows (`docs/method/check-procedure.md`) so the two registers agree without a
|
||||
shared tool:
|
||||
|
||||
| Lane `risk` | Window | risk-nexus equivalent |
|
||||
| --- | --- | --- |
|
||||
| `high`, `ungraded` | **14 days** | critical / high |
|
||||
| `standard` | **30 days** | medium |
|
||||
| `low`, `accepted` | **60 days** | low |
|
||||
|
||||
`ungraded` takes the *shortest* window, not the longest. `ADR-0007` makes an
|
||||
absent grade a defect and `ADR-0008` makes a grade cover the whole path — a lane
|
||||
nobody has graded is the one whose blocker deserves least trust.
|
||||
|
||||
A pointer genuinely is a quarterly question. A blocker is not: it is a claim
|
||||
about another repo's state at a date, and this estate invalidates those in days.
|
||||
|
|
@ -230,8 +244,8 @@ re-establishing the claim is the failure this section exists to prevent, and it
|
|||
is cheap to avoid — most of these are answerable by reading the owner's repo.
|
||||
|
||||
```bash
|
||||
warden route gaps # 14-day blocker cadence, plus unverified lanes
|
||||
warden route gaps --stale-days 30 # looser threshold
|
||||
warden route gaps # risk-scaled cadence, plus unverified lanes
|
||||
warden route gaps --stale-days 30 # flat override for every lane
|
||||
warden route gaps --fail-on-stale # exit 3 — for a cron job or a gate
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue