docs(acceptance): record owner PDF visual approval within development scope
This commit is contained in:
@@ -207,7 +207,7 @@ export function validatePackage(base = directory) {
|
||||
verifyBytes(fs.readFileSync(file), expected);
|
||||
}
|
||||
const verifierFiles = JSON.parse(artifact(evidence.verifierSourceArtifactId).toString('utf8'));
|
||||
const expectedVerifierFiles = ['verify.mjs', 'verify.test.mjs', 'package.test.mjs', 'verify_git.py', 'HANDOFF_SCHEMA.json', 'S01_METRIC_APPROVAL.json'].map(name => 'docs/automation/handoffs/pre-phase10/' + name).sort();
|
||||
const expectedVerifierFiles = ['verify.mjs', 'verify.test.mjs', 'package.test.mjs', 'verify_git.py', 'HANDOFF_SCHEMA.json', 'S01_METRIC_APPROVAL.json', 'PDF_VISUAL_APPROVAL.json'].map(name => 'docs/automation/handoffs/pre-phase10/' + name).sort();
|
||||
demand(JSON.stringify(Object.keys(verifierFiles).sort()) === JSON.stringify(expectedVerifierFiles), 'Missing verifier source membership');
|
||||
for (const [name, expected] of Object.entries(verifierFiles)) {
|
||||
verifyBytes(fs.readFileSync(path.join(root, name)), expected);
|
||||
@@ -244,7 +244,11 @@ export function validatePackage(base = directory) {
|
||||
demand(result.total === 36 && result.passed === 36, 'Approved revised S01 fidelity failed');
|
||||
revisedS01[platform] = { passed: result.passed, total: result.total };
|
||||
}
|
||||
demand(decisions.get('Automated PDF Fidelity') === 'PASS' && decisions.get('PDF Spacing') === 'PARTIAL', 'Scoped PDF or human spacing decision differs');
|
||||
const visual = JSON.parse(artifact('pdf-visual-approval').toString('utf8'));
|
||||
verifyBytes(readPackage('PDF_VISUAL_APPROVAL.json'), digest(readSafe('PDF_VISUAL_APPROVAL.json')));
|
||||
verifyBytes(artifact('pdf-visual-approval'), digest(readSafe('PDF_VISUAL_APPROVAL.json')));
|
||||
demand(visual.reviewedPublishedCheckpoint === '214dbd6c4d173db72cba18959dd8f81c7fc67f64' && visual.pdfVisualPresentation === 'APPROVED_FOR_DEVELOPMENT' && visual.physicalPrinting === 'NOT_TESTED' && visual.physicalDeviceAndAssistiveTechnology === 'NOT_TESTED' && visual.protectedOrchestratorApproval === 'NOT_SIGNED_BY_THIS_RECORD', 'PDF visual approval scope differs');
|
||||
demand(decisions.get('Automated PDF Fidelity') === 'PASS' && decisions.get('PDF Spacing') === 'PASS', 'Scoped PDF or human spacing decision differs');
|
||||
const stages = documents.GATES.stages;
|
||||
demand(stages.map(item => item.sequence).join(',') === '5,6,7,8,9,10,11' && stages[0].manualApprovals.includes('phase10-development-entry') && stages[0].manualApprovals.includes('candidate-specific-cleanup-scope') && stages.every(item => item.permissibleConditionalDeferrals.length === 0), 'Source-derived stage/approval conditions changed');
|
||||
const observedLocalCommit = execFileSync('rtk', ['proxy', 'git', 'rev-parse', 'HEAD'], { cwd: root, encoding: 'utf8' }).trim();
|
||||
|
||||
Reference in New Issue
Block a user