verdict: NEEDS_CHANGES

gaps:
  - severity: high
    claim: "AC-9 / VER-9 / REG-5 docs verification is unfalsifiable: the OR-pattern rg matches existing doc content unchanged, so the command exits 0 even if the implementer never updates the docs."
    evidence: "docs/plans/BACKUP-AUTOMATED-RETENTION-DEFAULTS.md:48-50 (AC-9), :179-181 (VER-9), :203-205 (REG-5); README.md:530,570,573,575,578 already contains '--out', 'backup_retain_count', and 'MEMPALACE_BACKUP_RETAIN_COUNT'; docs/BACKUP_RESTORE.md:195-205 already states 'manual and scheduled archives are unbounded by default' and references the same env var; docs/AGENT_INSTALL.md:890 already references MEMPALACE_BACKUP_RETAIN_COUNT. The rg alternation matches today's docs without any change."
    suggested_fix: "Replace the single OR-pattern rg with a stricter check that actually observes the new content. Examples: (a) split into multiple rg commands each required to succeed (e.g., 'rg \"newest 14\" README.md docs/BACKUP_RESTORE.md docs/AGENT_INSTALL.md' AND 'rg \"scheduled.*newest 14|scheduled .* bounded\" README.md docs/BACKUP_RESTORE.md'); (b) add a 'rg --files-with-matches \"manual and scheduled archives are .* unbounded by default\" README.md docs/BACKUP_RESTORE.md' that must return no files (assert absence of the stale claim); (c) use 'rg --quiet \"newest 14\" docs/BACKUP_RESTORE.md && rg --quiet \"newest 14\" README.md && rg --quiet \"bounded\" docs/AGENT_INSTALL.md' so every required token must be present. The verification must fail when REQ-7 ('docs must no longer describe scheduled backups as unbounded by default') is not actually fulfilled."
  - severity: medium
    claim: "AC-7 places the new test in 'TestListBackups' but existing stale/oversized annotation tests live in 'TestListBackupsAnnotations'. The targeted class either doesn't exist as named or splits stale assertions across two classes."
    evidence: "docs/plans/BACKUP-AUTOMATED-RETENTION-DEFAULTS.md:43 (AC-7 references TestListBackups::test_stale_flags_use_kind_aware_retention_defaults); tests/test_backup.py:360 defines class 'TestListBackups' (path/listing tests only) and tests/test_backup.py:929 defines class 'TestListBackupsAnnotations' (existing stale/oversized tests like test_stale_annotation_for_kind, test_stale_false_when_retain_zero)."
    suggested_fix: "Pin the new stale-flag test to 'TestListBackupsAnnotations' (where stale assertions already live) so AC-7 and REG-3 nodeids match the actual class, or explicitly note that the plan intends to land the new test in 'TestListBackups' alongside a deliberate reorganisation rationale."
