1 Commits
Author SHA1 Message Date
temoin-agentandClaude Fable 5.1 ecf13fe1da Instrument : les gardes nommées, comme candidats — le plus petit lecteur qui prouve la thèse
gardes du contrat / conformite (pull_request) Successful in 17s
Une exception de domaine est une règle qui a un nom, un throw, presque
toujours une épreuve, et souvent aucune déclaration. Si le réglage le
demande (gardes_nommees, adr), le journal rend les candidats qu'aucun
parcours ne cite, avec leur strate et ce qui les cite. Rien ne devient un
constat, aucun état ne change de sens, la section n'existe pas sans les
clés : additif, ignorable.

Ce qu'un dessin de trois lecteurs (Java annoté, SQL, réconciliation)
voulait démontrer, abattu par l'objecteur mandaté, ces quarante lignes
le démontrent : huit exceptions de domaine chez openathle, zéro déclarée.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-21 15:25:16 +02:00
+8 -2
View File
@@ -54,8 +54,14 @@ try {
assert(g.candidats[0].dans_parcours === false && g.candidats[0].dans_adr === true && g.candidats[0].eprouve === false, 'the candidate says where it is cited — ADR yes, journey no, test no'); assert(g.candidats[0].dans_parcours === false && g.candidats[0].dans_adr === true && g.candidats[0].eprouve === false, 'the candidate says where it is cited — ADR yes, journey no, test no');
assert(!('candidats' in journal()) , 'candidates live under gardes_nommees, not at the journal root'); assert(!('candidats' in journal()) , 'candidates live under gardes_nommees, not at the journal root');
// Backward compatibility: a tuning without the key gets no section at all. // Backward compatibility: a tuning without the key gets no section at all.
execFileSync(process.execPath, [join(here, 'run.mjs'), '--config', 'reglage-sans-gardes.yaml', '--repo', repo], { encoding: 'utf8', stdio: 'pipe' }); // On its OWN copy of the fixture: a second run on `repo` would rewrite the
assert(!('gardes_nommees' in journal()), 'a tuning that does not ask for named guards changes nothing'); // journal and falsify the assertions that follow (caught by the self-test
// itself on 2026-09-21 — a guard that shares state with what it guards).
const repo2 = mkdtempSync(join(tmpdir(), 'instrument-selftest-compat-'));
cpSync(join(here, 'selftest/fixture'), repo2, { recursive: true });
execFileSync(process.execPath, [join(here, 'run.mjs'), '--config', 'reglage-sans-gardes.yaml', '--repo', repo2], { encoding: 'utf8', stdio: 'pipe' });
const journal2 = parseYaml(readFileSync(join(repo2, 'docs/parcours/_mesures/derniere-execution.yaml'), 'utf8'));
assert(!('gardes_nommees' in journal2), 'a tuning that does not ask for named guards changes nothing');
assert(byInv(first, 'INV-002')?.etat === 'mal_domicilie', 'INV-002 mal_domicilie — proven only away from home'); assert(byInv(first, 'INV-002')?.etat === 'mal_domicilie', 'INV-002 mal_domicilie — proven only away from home');
assert(byInv(first, 'INV-003')?.etat === 'aucun_locus', 'INV-003 aucun_locus — named by no test'); assert(byInv(first, 'INV-003')?.etat === 'aucun_locus', 'INV-003 aucun_locus — named by no test');
assert(journal().constats_nouveaux === 3 && journal().invariants === 3, 'journal counts the run'); assert(journal().constats_nouveaux === 3 && journal().invariants === 3, 'journal counts the run');