Pickup-time readiness (Slice 7)¶
compute_pickup_readiness pure function -- 5-rule precedence ladder deciding whether a task is ready to execute as-is or should develop first when picked up. Reads creation_effort + user_involvement + provenance + staleness + deadline + has_action_items.
Details¶
automation/pickup (Slice 7)¶
Module: work_buddy/automation/pickup.py.
Function¶
compute_pickup_readiness(task, world_state=None, *, now_iso=None) -> PickupReadiness(ready, reason, signals).
Pure function. Returns a frozen dataclass. The engage flow calls this when a task is picked up (focused or working_on_now); when ready=False, the develop-at-pickup flow runs first.
5-rule precedence ladder (highest first)¶
- action items already exist (world_state.has_action_items) -> ready. Decomposition done; execute against current step.
- density='developed' or 'dense' -> ready. User pre-developed.
- sparse + manual + medium/high involvement + has_deadline -> ready. Sparse-but-intentional; trust the user's brevity.
- sparse + agent-inferred + low involvement + stale -> NOT ready. Old, weakly-attested capture; develop first.
- otherwise -> develop-first default per ROADMAP section 3.6 (develop-at-pickup default).
Tunables (module constants)¶
- SPARSE_STALENESS_DAYS = 7
- HIGH_INVOLVEMENT_PROVENANCES = {'manual'}
Greppable + visible -- the threshold-tuning discussion is a one-file PR.
world_state forward-compat¶
Slice 8 will add attraction_passes and relevance_status to the world_state mapping. Today only has_action_items is consumed.