Description
Loop6 independent cross-document review at4f0b5fa found docs/traps.md:712-714 states private scans retain an existing90-day lifecycle, while current configuration and storage code use positive configurable scan_retention_days for scans and the raw-match view. Ninety is the module default, not a fixed retention promise. This file was excluded from all loop6 edit ownership, so the note is explicitly tracked instead of silently changing its contract.
Acceptance Criteria
- #1 The trap states90days is a module default and links to the canonical configurable current/noncurrent retention contract
- #2 No fixed observation-age erasure promise or broader view-expiry claim is introduced
Definition of Done
- #1 just test
- #2 just tf-validate
- #3 just check-identifiers and just no-em-dashes both return clean
Implementation Plan
Loop7 frozen packets: bounded implementation or AC1 research; public-boundary proof, offline gate and CodeRabbit before landing, exact landed CI. Root security review/guard landing, research staff GET probe and conditional reserve decision, integrated review, stable release and dev-only rollout proof. Tracker remains root-owned.
Final Summary
Qualified 90 days as configurable scan_retention_days module default and linked canonical current/noncurrent targeted retention, publication-age resets and asynchronous expiry, without a fixed erasure promise. Landed b1ab9ef4e1cbabf222ff46f69437678514eaa975, exact CI 36872675362 all four required jobs successful, shared L-staff-a1 offline gate/CodeRabbit completed. Root reviewed final diff and exact CI readback; effective AWS retention remains outside this documentation criterion.