docs(changelog): the review remediation, decisions 20, 22 and 23, with door lines
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
5b94952be9
commit
d7db590c26
2 changed files with 153 additions and 9 deletions
|
|
@ -288,3 +288,58 @@ test('CHANGELOG: the Unreleased section\'s Known issues name the session split',
|
|||
const known = lines.slice(start + 1, end).join('\n');
|
||||
assert.match(known, /session split/, `Known issues name the session split: ${JSON.stringify(known)}`);
|
||||
});
|
||||
|
||||
// Step 14 of the remediation: the CHANGELOG records the review fixes. The door
|
||||
// line for the Test first files names operator decision 20 (the backticked paths
|
||||
// right after File:), the workflow put-back names operator decision 23, the
|
||||
// engine-provenance entry states the tier rank instead of "on a severity tie",
|
||||
// Known issues name the default path's verdict gate (operator decision 25), and
|
||||
// the intro's measurement names the remediation's Step 13 commit. Word
|
||||
// boundaries keep "operator decision 2026-10-12" from counting as decision 20.
|
||||
const knownIssues = (body) => {
|
||||
const lines = body.split('\n');
|
||||
const start = lines.findIndex((l) => /^### Known issues\s*$/.test(l));
|
||||
assert.ok(start >= 0, 'the Unreleased section has a "### Known issues" heading');
|
||||
let end = lines.length;
|
||||
for (let i = start + 1; i < lines.length; i++) {
|
||||
if (/^###? /.test(lines[i])) { end = i; break; }
|
||||
}
|
||||
return lines.slice(start + 1, end).join('\n');
|
||||
};
|
||||
|
||||
test('CHANGELOG: the door lines name operator decisions 20 and 23, and none says "every test file on the Test first File line"', () => {
|
||||
const { heading, body } = firstChangelogSection();
|
||||
assert.equal(heading, UNRELEASED);
|
||||
const texts = releaseCheck.parseDoors(body).entries.map((e) => e.text);
|
||||
assert.ok(texts.some((t) => /\boperator decision 20\b/.test(t)),
|
||||
`a door line names operator decision 20: ${JSON.stringify(texts)}`);
|
||||
assert.ok(texts.some((t) => /\boperator decision 23\b/.test(t)),
|
||||
`a door line names operator decision 23: ${JSON.stringify(texts)}`);
|
||||
assert.ok(!texts.some((t) => /every test file on the Test first File line/.test(t)),
|
||||
`no door line still says "every test file on the Test first File line": ${JSON.stringify(texts)}`);
|
||||
});
|
||||
|
||||
test('CHANGELOG: the Unreleased section no longer says "on a severity tie"', () => {
|
||||
const { heading, body } = firstChangelogSection();
|
||||
assert.equal(heading, UNRELEASED);
|
||||
assert.doesNotMatch(body, /on\s+a\s+severity\s+tie/);
|
||||
});
|
||||
|
||||
test('CHANGELOG: Known issues name the verdict gate, the engine payloads and operator decision 25', () => {
|
||||
const { heading, body } = firstChangelogSection();
|
||||
assert.equal(heading, UNRELEASED);
|
||||
const known = knownIssues(body);
|
||||
assert.match(known, /verdict\s+gate/, `Known issues name the verdict gate: ${JSON.stringify(known)}`);
|
||||
assert.match(known, /engine\s+payloads/, `Known issues name the engine payloads: ${JSON.stringify(known)}`);
|
||||
assert.match(known, /\boperator\s+decision\s+25\b/, `Known issues name operator decision 25: ${JSON.stringify(known)}`);
|
||||
});
|
||||
|
||||
test('CHANGELOG: the intro no longer names acd0e3d and names the remediation\'s Step 13 commit', () => {
|
||||
const { heading, body } = firstChangelogSection();
|
||||
assert.equal(heading, UNRELEASED);
|
||||
const firstSub = body.search(/^### /m);
|
||||
const intro = firstSub < 0 ? body : body.slice(0, firstSub);
|
||||
assert.ok(!intro.includes('acd0e3d'), `the intro no longer names acd0e3d: ${JSON.stringify(intro)}`);
|
||||
assert.match(intro, /the\s+remediation's\s+Step\s+13\s+commit/,
|
||||
`the intro names "the remediation's Step 13 commit": ${JSON.stringify(intro)}`);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue