feat: ancre la version que les citations de provenance decrivent

Une citation nomme un chemin et un symbole, jamais une version. Or le
checkout contre lequel toutes les citations `engine/` et `sdk/` se
resolvent declare des versions inferieures a celles que ce depot
installe, donc une citation prouve "c'etait vrai a ces versions-la" la
ou un lecteur lit "c'est vrai de ce qu'on construit".

La version est une propriete du CHECKOUT, pas d'une citation : aucune
des annotations n'est touchee. Elle est enregistree une seule fois, dans
l'`ANCHOR` de provenance.test.ts, a cote du resolveur qui s'en sert.

Ce que le mecanisme verifie maintenant, aux DEUX bouts de l'ecart, parce
qu'un enonce d'ecart peut perimer par l'un ou l'autre et a deja perime
par le bout eloigne : les versions que le checkout declare (a vide quand
le checkout est absent, comme la verification de resolution), celles que
les manifestes de l'espace de travail epinglent, et celle qui est
reellement installee sous packages/polyfill.

Pas un nouveau `kind` : les kinds classent la preuve d'UN symbole,
l'anciennete de toute la preuve appartient a l'arbre.
This commit is contained in:
Sylvain Duchesne
2026-09-24 14:55:10 +02:00
parent 50a77e5a95
commit 4e5b703949
3 changed files with 146 additions and 1 deletions
+7 -1
View File
@@ -62,8 +62,14 @@
// it differently). Pinned by `test/provenance.test.ts`; the reasoning behind each ruling
// stays in `docs/api-contract.md`, and where the two disagree the annotation wins.
//
// A `ref` names a path and a symbol, never a VERSION - the version is a property of the
// checkout every citation resolves against, so it is recorded once, in the `ANCHOR` of
// `test/provenance.test.ts`, and checked at both ends there. Read it before letting a
// citation settle anything about a release: the tree is BEHIND the packages this repo
// builds against, so a claim about a shipped version cannot be refuted by opening it.
//
// `announced-not-written` is the STRONGEST kind available to a symbol with no counterpart
// in the tree — deviating TOWARD what the target has announced is alignment, and calling
// in the tree - deviating TOWARD what the target has announced is alignment, and calling
// it `invention` tells a later reader the shape is ours to change when it is not. Being
// the strongest, it is the hardest to assert: it carries `announced-by=<who>@<date>` and
// its `ref` is the `.md` in this working copy where the statement is on record. An