Skip to content

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)

  1. action items already exist (world_state.has_action_items) -> ready. Decomposition done; execute against current step.
  2. density='developed' or 'dense' -> ready. User pre-developed.
  3. sparse + manual + medium/high involvement + has_deadline -> ready. Sparse-but-intentional; trust the user's brevity.
  4. sparse + agent-inferred + low involvement + stale -> NOT ready. Old, weakly-attested capture; develop first.
  5. 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.