docs: add durable runtime unblock runbook

This commit is contained in:
Code Queue Review
2026-05-23 02:58:44 +00:00
parent 84211e072f
commit 9f1a904454
2 changed files with 106 additions and 2 deletions
+33
View File
@@ -189,6 +189,38 @@ function assertRuntimePolicyText(value, label) {
assert.ok(value.includes("microservice proxy"), `${label} must name microservice proxy`);
}
function assertIncludes(value, expected, label) {
assert.equal(typeof value, "string", `${label} must be a string`);
assert.ok(value.includes(expected), `${label} must include ${JSON.stringify(expected)}`);
}
function assertDurableRuntimeRunbook(value) {
const label = "docs/reference/dev-runtime-boundary.md durable runtime runbook";
for (const expected of [
"DB live readiness and durable runtime readiness are separate gates",
"runtime_durable_adapter_query_blocked",
"Source migration contract",
"Static runtime boundary contract",
"Public health observation",
"Live DB read verification",
"Live migration/repair apply",
"Do not run `kubectl get secret`",
"secretValuesPrinted=false",
"Before any authorized live migration or repair",
"After an authorized migration/repair",
"Cleared:",
"Moved:",
"Still blocked:",
"No full M3, M4, or M5 acceptance is allowed while runtime durability is blocked",
"node scripts/dev-runtime-migration.mjs --check",
"node scripts/dev-runtime-migration.mjs --dry-run --write-report",
"node scripts/dev-runtime-migration.mjs --dry-run --allow-live-db-read --confirm-dev --write-report",
"node scripts/dev-runtime-migration.mjs --apply --confirm-dev --confirmed-non-production --write-report"
]) {
assertIncludes(value, expected, label);
}
}
function assertGuardFixture(guard) {
assert.equal(guard.guard, "hwlab-runtime-boundary");
assert.equal(guard.schemaVersion, "v1");
@@ -365,6 +397,7 @@ assertProdDisabled(
await readJSON(guard.requiredK3sSkeleton.prodKustomizationPath),
await readJSON(guard.requiredK3sSkeleton.prodDisabledPath)
);
assertDurableRuntimeRunbook(await readText("docs/reference/dev-runtime-boundary.md"));
console.log(
`validated HWLAB runtime boundary guard for ${SERVICE_IDS.length} services; forbidden substitutes: ${forbiddenRuntimeSubstitutes.join(", ")}`