openspec/changes/add-cartridge-pack/tasks.md

Tasks

  • pack.py: desired ids + envelope → resident / refused / evict / log
  • Property tests: legal packs; oversize refuses; exclusive-tag refuses; always-on not dropped; sag evicts AI not record
  • Checker main(): 4K-pair (sam2-4k+maxine-4k) refuses; 3090 swap-set (klein+sam2+clip) seats
  • Checker raises cleanly when no cart seats
  • Default envelope 3090; t4000 is a second call