docs(policy): supersede release-batched Vercel retention with active ordinary mode
User description
Summary
Supersedes the release-batched Vercel Preview retention record from #1020 with a dated Active mode section, and points AGENTS.md, docs/DEPLOYMENT.md, docs/PR-CI-MERGE-WORKFLOW.md and docs/CURSOR-CLOUD-AGENT.md at it, so that no operative text still names Codex CLI as the destructive retention writer.
Why
The maintainer revoked the release-batched mode and named the local Claude Code CLI session as the executing writer of ordinary per-merge retention (decision recorded in GH #627, comment 6134785538, and QNB-67). The #1020 record's own abort clause already treats a maintainer revocation as an abort into ordinary reconciliation, but the runbooks kept naming a Codex-only writer and an exceptional Codex handoff. The first ordinary pass under this mode is documented in GH #627 (comment 6135201825).
What changes
docs/VERCEL-PREVIEW-RETENTION-POLICY.md: new section "Active mode from 2026-10-13: ordinary per-merge retention" withACTIVE_MODE,ACTIVE_DESTRUCTIVE_WRITER,SUPERSEDES,SUPERSESSION_AUTHORITYand six writer predicates (exactdpl_IDs only, never a project name forvercel remove; complete inventory; live revalidation before each deletion or alias removal; branch-alias proof; fail-closed stops; a no-candidate pass is complete). The #1020 record stays unchanged as history.- The four companions get one dated supersession sentence each.
tests/unit/vercelRetentionTrainPolicy.test.ts: two cases pin the successor record and the pointer in every companion. README test counts follow (8543 → 8545).
Not changed
This does not reuse the #1020 bootstrap, does not declare another exception, and does not waive any post-merge requirement. It grants no tag, publish, Gate 7 or production storage-authority authority. The bounded dependency/toolchain train is unchanged.
Summary by cubic
Supersedes the release-batched Vercel Preview retention record with a dated Active mode section that names the local Claude Code CLI session as the destructive writer, per the maintainer decision in GH #627.
- Adds the
## Active mode from 2026-10-13section todocs/VERCEL-PREVIEW-RETENTION-POLICY.md, keeping the #1020 record unchanged as history. - Requires every deletion to name one exact
dpl_deployment ID, never a project name; each ID is revalidated against live data before its first write, a branch alias is removed only when its branch is gone, a failed read is retried once and a second failure stops the run, and a failed write is never retried and stops the run unless a re-read shows the removal landed. Incomplete inventory or a movedmainstops the run. - Points
AGENTS.md,docs/DEPLOYMENT.md,docs/PR-CI-MERGE-WORKFLOW.md, anddocs/CURSOR-CLOUD-AGENT.mdat the new section so no operative text still names Codex CLI as the retention writer; Cursor Cloud still does not delete deployments. - Adds a
CHANGELOG.mdentry, plus two policy tests pinning the successor record and the pointer in every companion; README test counts follow (8544 → 8547). - Grants no tag, publish, Gate 7, or production storage-authority and waives no post-merge requirement.
Summary by Sourcery
Adopt ordinary per-merge Vercel Preview retention as the active policy and align its documentation and tests with the maintainer-approved execution model.
New Features:
- Define ordinary per-merge Vercel Preview retention as the active mode with a named local Claude Code CLI writer and explicit safety predicates.
Enhancements:
- Supersede the historical release-batched retention record while preserving it as historical context.
- Update operational runbooks to reference the active retention policy and remove Codex CLI from operative retention guidance.
Documentation:
- Document exact deployment-ID targeting, live revalidation, alias safeguards, fail-closed behavior, and retention scope limitations.
- Record the policy change in the changelog and update repository test-count metrics.
Tests:
- Add policy tests covering the successor record, its authority, retention guarantees, and companion-document pointers.
Summary by CodeRabbit
- Documentation
- Updated the Preview deployment retention policy: cleanup now runs after each merge rather than in release batches.
- Clarified that cleanup is handled from a local development environment, with each deployment checked against current provider data before removal.
- Documented safeguards: cleanup stops if inventory or deployment status is uncertain, and Cursor Cloud does not remove deployments.
- Updated deployment, merge, and post-merge guidance to reflect the active policy.
- Chores
- Updated the documented repository test total.
CodeAnt-AI Description
Document ordinary per-merge Vercel Preview cleanup as the active mode
What Changed
- The release-batched procedure is superseded by ordinary cleanup after each merge to
main, carried out by the local Claude Code CLI operator; the old record remains as history. - Runbooks require each deletion to target one exact deployment ID, revalidated before its first write. Branch aliases are removed only when their branch is gone.
- Failed reads retry once; failed writes are not retried, and the run stops unless a fresh read confirms the removal landed. Incomplete or contradictory state also stops the run.
- The policy grants no tag, publish, or production authority, and Cursor Cloud still cannot delete deployments. Tests check the policy and its pointers in companion docs.
Impact
✅ Per-merge Preview cleanup is the active procedure
✅ Fewer risks from broad or stale deployment deletions
✅ Cleanup stops when provider state is unclear
💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
@codeant-ai ask: Your question here
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
@codeant-ai ask: Can you suggest a safer alternative to storing this secret?
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
@codeant-ai: Your feedback here
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
@codeant-ai: Do not flag unused imports.
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
@codeant-ai: review
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.