feat(voyage): add machine-verifiable completion gate to trekexecute
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e986b10431
commit
d2f9ccb690
2 changed files with 51 additions and 3 deletions
|
|
@ -73,3 +73,23 @@ test('trekexecute — SC7: brief_version 2.1 + no phase_signals + no partial →
|
|||
`sequencing gate must fire; errors=${JSON.stringify(r.errors)}`,
|
||||
);
|
||||
});
|
||||
|
||||
// --- S38 loop-discipline hardening: completion gate (Step 2) ---
|
||||
|
||||
test('trekexecute — machine-verifiable completion gate + stop-signal contract literals present (SC a)', () => {
|
||||
const text = read();
|
||||
assert.ok(text.includes('machine-verifiable completion gate'),
|
||||
'completion-gate literal must be grep-able');
|
||||
assert.ok(text.includes('stop-signal contract'),
|
||||
'stop-signal contract literal must be grep-able');
|
||||
});
|
||||
|
||||
test('trekexecute — completion gate anchors result:completed to Phase 7.5 audit + DONE-after-check (SC a)', () => {
|
||||
const text = read();
|
||||
const gateIdx = text.indexOf('machine-verifiable completion gate');
|
||||
assert.ok(gateIdx >= 0, 'gate literal missing');
|
||||
const section = text.slice(gateIdx, gateIdx + 1400);
|
||||
assert.match(section, /Phase 7\.5/, 'gate must name Phase 7.5 as the objective predicate');
|
||||
assert.match(section, /DONE/, 'gate must reference the DONE stop-signal token');
|
||||
assert.match(section, /emitted AFTER/, 'gate must require DONE emitted AFTER the audit ran');
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue