Classify a rollout guard as ship, limit, or hold from deterministic readiness inputs.

rollout guard Rollout readiness can be modeled as scalar checks before any live deployment system sees it.

Rollout Guard Reliability Report

pendingMigrations
rollout_guard.js
Replay: real traced execution (multi-file project)
const pendingMigrations = 1;
const errorBudget = 8;
let rolloutStatus = "hold";

if (pendingMigrations === 0 && errorBudget >= 8) {
    rolloutStatus = "ship";
} else if (pendingMigrations <= 1 && errorBudget >= 6) {
    rolloutStatus = "limit";
}

console.log(`pending=${pendingMigrations} budget=${errorBudget} status=${rolloutStatus}`);
const pendingMigrations = 0;
const errorBudget = 8;
let rolloutStatus = "hold";

if (pendingMigrations === 0 && errorBudget >= 8) {
    rolloutStatus = "ship";
} else if (pendingMigrations <= 1 && errorBudget >= 6) {
    rolloutStatus = "limit";
}

console.log(`pending=${pendingMigrations} budget=${errorBudget} status=${rolloutStatus}`);
const pendingMigrations = 3;
const errorBudget = 8;
let rolloutStatus = "hold";

if (pendingMigrations === 0 && errorBudget >= 8) {
    rolloutStatus = "ship";
} else if (pendingMigrations <= 1 && errorBudget >= 6) {
    rolloutStatus = "limit";
}

console.log(`pending=${pendingMigrations} budget=${errorBudget} status=${rolloutStatus}`);
  1. pendingMigrations ← 1, errorBudget ← 8, rolloutStatus ← hold

    1const pendingMigrations→ 1 = 1;  //@pendingMigrations=0, 32const errorBudget→ 8 = 8;3let rolloutStatus→ hold = "hold";
  2. if (pendingMigrations <= 1 && errorBudget >= 6)

    6    rolloutStatus = "ship";7} else if (pendingMigrations1 <= 1 && errorBudget8 >= 6) {8    rolloutStatus = "limit";9}
  3. console.log(`pending=${pendingMigrations} budget=${errorBudget} status…

    8    rolloutStatus = "limit";9}1011console.log(`pending=${pendingMigrations1} budget=${errorBudget8} status=${rolloutStatuslimit}`);
    outputpending=1 budget=8 status=limit
  1. pendingMigrations ← 0, errorBudget ← 8, rolloutStatus ← hold

    1const pendingMigrations→ 0 = 0;2const errorBudget→ 8 = 8;3let rolloutStatus→ hold = "hold";
  2. if (pendingMigrations === 0 && errorBudget >= 8)

    2const errorBudget = 8;3let rolloutStatus = "hold";45if (pendingMigrations0 === 0 && errorBudget8 >= 8) {6    rolloutStatus = "ship";7} else if (pendingMigrations <= 1 && errorBudget >= 6) {
  3. console.log(`pending=${pendingMigrations} budget=${errorBudget} status…

    8    rolloutStatus = "limit";9}1011console.log(`pending=${pendingMigrations0} budget=${errorBudget8} status=${rolloutStatusship}`);
    outputpending=0 budget=8 status=ship
  1. pendingMigrations ← 3, errorBudget ← 8, rolloutStatus ← hold

    1const pendingMigrations→ 3 = 3;2const errorBudget→ 8 = 8;3let rolloutStatus→ hold = "hold";45if (pendingMigrations === 0 && errorBudget >= 8) {6    rolloutStatus = "ship";7} else if (pendingMigrations <= 1 && errorBudget >= 6) {8    rolloutStatus = "limit";9}1011console.log(`pending=${pendingMigrations3} budget=${errorBudget8} status=${rolloutStatushold}`);
    outputpending=3 budget=8 status=hold