Skip to content

docs(policy): supersede release-batched Vercel retention with active ordinary mode - #1031

Merged
qnbs merged 5 commits into
mainfrom
docs/vercel-retention-active-mode
Oct 13, 2026
Merged

qnbs merged 5 commits into
mainfrom
docs/vercel-retention-active-mode

Conversation

@qnbs

@qnbs qnbs commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

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" with ACTIVE_MODE, ACTIVE_DESTRUCTIVE_WRITER, SUPERSEDES, SUPERSESSION_AUTHORITY and six writer predicates (exact dpl_ IDs only, never a project name for vercel remove; complete inventory; live revalidation before each deletion or alias removal; branch-alias proof; fail-closed stops; a no-candidate pass is complete). The docs(policy): batch Vercel preview retention until release #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-13 section to docs/VERCEL-PREVIEW-RETENTION-POLICY.md, keeping the docs(policy): batch Vercel preview retention until release #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 moved main stops the run.
  • Points AGENTS.md, docs/DEPLOYMENT.md, docs/PR-CI-MERGE-WORKFLOW.md, and docs/CURSOR-CLOUD-AGENT.md at 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.md entry, 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.

Written for commit 0bf6ae7. Summary will update on new commits.

View guided diff Turn on auto-fix

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.

…ordinary mode

The maintainer revoked the release-batched Preview retention record from
#1020 and named the local Claude Code CLI session as the executing writer
(GH #627). Add a dated Active mode section that supersedes the record
without rewriting it, and point AGENTS.md and the deployment, merge and
Cursor Cloud runbooks at it so no operative text still names Codex CLI as
the destructive writer.

The section does not reuse the #1020 bootstrap or declare another exception.
Each deletion names one exact deployment ID revalidated against live data,
a project name is never passed to vercel remove, and any 403, 429, 5xx,
contradictory state or moved main stops the run. Tag and publish authority
is not granted. The policy test pins the successor record and the pointer in
every companion document.
@vercel

vercel Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
worldscript-studio Ready Ready Preview Oct 13, 2026 6:07am UTC

@sourcery-ai

sourcery-ai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Sorry @qnbs, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 1 day and 10 hours by commenting @sourcery-ai review. Upgrade to get a review now.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-13T06:10:24.640355Z 0bf6ae7 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@codeant-ai

codeant-ai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Reviewed your PR 0bf6ae7 Oct 13, 2026 · 06:08 06:12
✅ Reviewed your PR 915b4b2 Oct 13, 2026 · 05:39 05:46
✅ Reviewed your PR 2bfc380 Oct 13, 2026 · 05:10 05:10
✅ Incremental review completed 2bfc380 Oct 13, 2026 · 05:07 05:07
✅ Incremental review completed 2bfc380 Oct 13, 2026 · 05:07 05:22

@codeant-ai

codeant-ai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@sourcery-ai

sourcery-ai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Reviewer's Guide

This documentation-and-test change makes ordinary per-merge Vercel Preview retention the active maintainer-authorized mode, names the local Claude Code CLI as its writer, preserves the prior release-batched record as history, updates all operational pointers, and adds tests to prevent policy drift.

Sequence diagram for active per-merge Vercel retention

sequenceDiagram
    participant Claude as ClaudeCodeCLI
    participant Vercel
    participant GitHub

    Claude->>Vercel: enumerate deployments and aliases
    Claude->>Vercel: revalidate exact dpl_ ID before deletion
    alt SAFE_TO_DELETE candidate
        Claude->>Vercel: vercel remove exact dpl_ ID
        Claude->>Vercel: re-enumerate to verify outcome
    else no SAFE_TO_DELETE candidate
        Claude-->>GitHub: record complete no-candidate pass
    end
    Claude-->>GitHub: record SHA, run IDs, counts, deleted IDs, verification
Loading

Flow diagram for retention policy supersession

flowchart LR
    A[Release-batched retention record #1020] -->|superseded 2026-10-13| B[Ordinary per-merge retention]
    B --> C[Local Claude Code CLI writer]
    B --> D[Full inventory and live revalidation]
    B --> E[Fail-closed deletion and alias rules]
    F[AGENTS.md and operational runbooks] -->|point to Active mode| B
Loading

File-Level Changes

Change Details Files
Activates ordinary per-merge Vercel Preview retention and formally supersedes the release-batched record while preserving it as historical evidence.
  • Adds a dated active-mode record naming the local Claude Code CLI as the destructive writer.
  • Defines exact-ID deletion, complete-inventory, live-revalidation, alias-safety, fail-closed, and no-candidate completion predicates.
  • Explicitly preserves post-merge safety requirements and withholds tag, publish, Gate 7, and production-authority permissions.
docs/VERCEL-PREVIEW-RETENTION-POLICY.md
Updates operational documentation to point readers from the revoked Codex/release-batched procedure to the active ordinary-retention policy.
  • Adds dated supersession guidance and identifies the local Claude Code CLI as the active writer.
  • Clarifies that Codex handoff/release-pass language no longer applies and Cursor Cloud has no destructive access.
AGENTS.md
docs/DEPLOYMENT.md
docs/PR-CI-MERGE-WORKFLOW.md
docs/CURSOR-CLOUD-AGENT.md
Adds regression coverage for the successor record and synchronizes project documentation metadata.
  • Tests the active record’s authority, writer, supersession, and safety predicates.
  • Tests that all companion runbooks contain the supersession pointer.
  • Updates changelog and README test-count references from 8543 to 8545.
tests/unit/vercelRetentionTrainPolicy.test.ts
CHANGELOG.md
README.md

Possibly linked issues

  • #unknown: The PR updates the standing retention policy and runbooks for ordinary per-merge cleanup, directly advancing the issue’s retention-policy ownership.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@codeant-ai

codeant-ai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

🏁 CodeAnt Quality Gate Results

Commit: 0bf6ae78
Scan Time: 2026-10-13 06:12:52 UTC

✅ Overall Status: PASSED

Quality Gate Details

Quality Gate Status Details
Secrets ✅ PASSED 0 secrets found
Duplicate Code ✅ PASSED 0.0% duplicated
SAST ✅ PASSED No security issues
Bugs ✅ PASSED Rating S: No bugs
IAC ✅ PASSED No IAC issues

View Full Results

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Oct 13, 2026
codescene-access[bot]

This comment was marked as outdated.

@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Next included review available in 31 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 60 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: qnbs/WorldScript-Studio/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: f505f0c7-24ad-4540-a5c4-b66177b79eb5
📥 Commits

Reviewing files that changed from the base of the PR and between 915b4b2 and 0bf6ae7.

📒 Files selected for processing (2)
  • docs/VERCEL-PREVIEW-RETENTION-POLICY.md
  • tests/unit/vercelRetentionTrainPolicy.test.ts
📝 Walkthrough

The Vercel Preview retention policy now specifies ordinary per-merge reconciliation, its executor, safeguards, and run records. Repository guidance and runbooks reflect the policy. The README updates its reported test totals.

Changes: Preview retention policy

Layer / File(s) Summary
Active retention policy and safeguards
docs/VERCEL-PREVIEW-RETENTION-POLICY.md, tests/unit/vercelRetentionTrainPolicy.test.ts
The policy makes ordinary per-merge reconciliation active, names the local Claude Code CLI session as the destructive writer, and specifies access restrictions, deletion safeguards, stop conditions, and run records. Tests assert policy details and restrictions.
Runbook and changelog guidance
AGENTS.md, CHANGELOG.md, docs/CURSOR-CLOUD-AGENT.md, docs/DEPLOYMENT.md, docs/PR-CI-MERGE-WORKFLOW.md, tests/unit/vercelRetentionTrainPolicy.test.ts
The guidance and changelog mark release-batched retention as superseded and refer to the active mode. Tests assert companion-document references to the decision, date, and executor.
Reported test totals
README.md
The README reports 8,547+ tests instead of 8,544+ in four locations. The 637-file count remains unchanged.

Priority: ⬇️ Low

Merge Risk: 🔵 Low · up to 915b4

The new retention instructions leave two narrow failure cases open to inconsistent handling. Both are bounded to cleanup operations, but clarifying them would make the per-merge process reliable.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

codescene-access[bot]

This comment was marked as outdated.

@codeant-ai

codeant-ai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

CodeAnt Nitpicks

1 code suggestion

1. The two added policy tests move the stated total from 8543 to 8545, so this 8547+ metric overstates the test count by two.

Logic error · README.md:1034

@codeant-ai

codeant-ai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

CodeAnt PR Risk: Medium Risk

  • The PR needs an operational check before merging because it makes per-merge deployment deletion the active mode.
  • Confirm the GH ci(vercel): prune stale Preview deployments after PR closure #627 decision and that the runner enforces the documented per-ID revalidation, alias safeguards, and stop-on-error behavior.
  • The new tests check policy wording, not whether the destructive runner enforces those safeguards.

Assessed commit: 0bf6ae78d09f

@codecov

codecov Bot commented Oct 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@qnbs

qnbs commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

@CodeAnt-AI review

codescene-access[bot]

This comment was marked as outdated.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2bfc3805dd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/VERCEL-PREVIEW-RETENTION-POLICY.md Outdated
Comment thread docs/VERCEL-PREVIEW-RETENTION-POLICY.md Outdated
Comment thread docs/VERCEL-PREVIEW-RETENTION-POLICY.md Outdated
…r implements

Revalidation is per ID before its first write, not before every individual call; a branch alias is removed only when its branch is gone; a write is never retried, and only reads may retry once. Pins the corrected claims in the policy test.
codescene-access[bot]

This comment was marked as outdated.

@qnbs

qnbs commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

@CodeAnt-AI review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 915b4b298b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/VERCEL-PREVIEW-RETENTION-POLICY.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository: qnbs/WorldScript-Studio/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: f12df674-5f47-41e6-bd71-9b24a1a04363
📥 Commits

Reviewing files that changed from the base of the PR and between 2bfc380 and 915b4b2.

📒 Files selected for processing (3)
  • README.md
  • docs/VERCEL-PREVIEW-RETENTION-POLICY.md
  • tests/unit/vercelRetentionTrainPolicy.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • README.md

Included review availability: This review used your included allowance. 1 included review remains after this review. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.

Comment thread docs/VERCEL-PREVIEW-RETENTION-POLICY.md Outdated
Comment thread docs/VERCEL-PREVIEW-RETENTION-POLICY.md Outdated
… the stop rule

A failed read is retried once and stops the run on a second failure; a failed write is never retried and stops the run unless a re-read shows the removal landed, as the runner settles an alias or deployment write of unclear outcome.
@qnbs

qnbs commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

@CodeAnt-AI review

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gates Passed
3 Quality Gates Passed

See analysis details in CodeScene

Quality Gate Profile: The Bare Minimum
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.

@qnbs
qnbs merged commit 7f8ea00 into main Oct 13, 2026
49 checks passed
@qnbs
qnbs deleted the docs/vercel-retention-active-mode branch October 13, 2026 06:27
qnbs added a commit that referenced this pull request Oct 13, 2026
qnbs added a commit that referenced this pull request Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant