fix: enforce dev m3 cardinality

This commit is contained in:
HWLAB Code Queue
2026-05-21 17:32:59 +00:00
parent 70bb9168ea
commit 3e26b6c435
8 changed files with 181 additions and 36 deletions
+9 -1
View File
@@ -45,6 +45,8 @@ const requiredDocs = [
const requiredDevM3Issue = issueFamily.DEV_M3_HARDWARE_LOOP;
const requiredDevM3ValidationCommands = [
"node --check scripts/dev-m3-hardware-loop-smoke.mjs",
"node --check scripts/validate-dev-m3-cardinality.mjs",
"node scripts/validate-dev-m3-cardinality.mjs",
"node scripts/dev-m3-hardware-loop-smoke.mjs --live --confirm-dev --confirmed-non-production"
];
const requiredDevM3Docs = [
@@ -559,11 +561,17 @@ async function validateDevM3Report(report, label) {
assert.ok(Object.hasOwn(evidence, field), `${evidenceLabel} missing ${field}`);
}
assertString(evidence.id, `${evidenceLabel}.id`);
assert.ok(["pass", "gap"].includes(evidence.status), `${evidenceLabel}.status must be pass or gap`);
assert.ok(
["pass", "gap", "source-ready", "manifest-ready"].includes(evidence.status),
`${evidenceLabel}.status must be pass, gap, source-ready, or manifest-ready`
);
assertRepoRelativePath(evidence.source, `${evidenceLabel}.source`);
assertString(evidence.summary, `${evidenceLabel}.summary`);
assertObject(evidence.evidence, `${evidenceLabel}.evidence`);
assertString(evidence.requiredFollowUp, `${evidenceLabel}.requiredFollowUp`);
if (Object.hasOwn(evidence, "validationCommand")) {
assertString(evidence.validationCommand, `${evidenceLabel}.validationCommand`);
}
if (Object.hasOwn(evidence, "blockerClass") && evidence.blockerClass !== null) {
assert.ok(blockerTypes.has(evidence.blockerClass), `${evidenceLabel}.blockerClass must be known`);
}