Role-split scarcity blend: weekly (strategic) vs 5h/time (tactical) windows with 5× weighting and advisory short-window floor #71
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
P1
P2
P3
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Creatidy/scarcity-router#71
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The D-026 scarcity aggregation takes the most restrictive remaining percentage across all applicable windows (
effective_remaining = min(remaining)). This was frozen so a healthy short window can never hide a critical weekly one — but the flip side treats a drained short window as equally fatal as a drained weekly one, which contradicts the owner's real workflow:Additionally, the reset timestamps of windows are deliberately excluded from ranking (D-026), so window duration — the only honest proxy for how long an exhaustion blocks — is currently invisible to selection.
Proposal (owner guidance, 2026-09-13)
Split applicable windows into two roles (frozen mapping in code, no new required config):
kind: weeklywindows (and conservatively, unknown-kind token windows): represent long-horizon subscription health.kind: five_hourandresource: time(Z.aiTIME_LIMIT) windows: represent whether work can happen right now.Blend the two role minima using the owner's planning assumption weekly quota = 5 × five-hour quota (6 total units):
Owner case table (all exact integer divisions):
Plus an advisory-only short-window floor (one optional selector-policy key
short_window_floor_percent, default 10,0disables): a known tactical window below the floor flags the selected/alternative candidate with a finish-risk warning (short_window_below_floor, serialized only when true). Advisory only — it never demotes, excludes or rewrites ranking, and 0% exhaustion still excludes in every role.Acceptance criteria
docs/decisions.md(amends D-026 aggregation; records rejected alternatives: weighted config knobs, reset-proximity penalty, lexicographic weekly-first, floor-as-ranking-class — the last rejected by the owner's 5h=5/w=95 preference).assess_scarcityimplements role pools (most-restrictive within each role), the integer blend, strategic-preferred governing evidence and additivestrategic_window/tactical_windowevidence fields.SelectorPolicy.short_window_floor_percentadditive optional member.selection-policy.md,capacity-model.md).Boundary
scarcity_router/scarcity.py,selector.py,selection_app.pyrendering, tests, docs. No provider adapters, no catalog ratings, no REST/MCP schema-version change, no execution behavior.