Percursus lit les strates en rangs (1–5, échelle fermée par ses ADR-003/004) ; openathle les nomme (domaine, application, infrastructure, interface). La clause loci de Percursus, déclarée à la main, est devenue inférable depuis que la coupe existe — et l'humain ne saisit pas l'inférable (P4). Le réglage de la juridiction peut désormais porter rang: N par strate. Le constat émet rangs_constates — seulement si TOUTES les strates constatées en déclarent un : une correspondance partielle laisserait deviner, et deviner n'est pas constater. Le journal publie la table complète (correspondance_rangs) pour joindre les constats anciens, qui ne se réécrivent jamais. Champ optionnel, additif : aucun réglage existant ne change de comportement. Auto-épreuve : dix-huit vérifications, dont l'ordre des rangs, l'absence de rangs sur l'invariant sans locus, et la table du journal. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
83 lines
4.2 KiB
Markdown
83 lines
4.2 KiB
Markdown
# L'instrument — où chaque garde vit réellement
|
||
|
||
Chaque garde vit à son étage ; l'instrument regarde où elle est réellement
|
||
posée. Il court **dans la CI de la juridiction observée** — la juridiction se
|
||
mesure elle-même ; le registre publie l'instrument et reçoit les constats
|
||
(`temoin/ADR-018`, `prismagram-corpus/ADR-061` §2.6 et §2.8).
|
||
|
||
## Ce qu'il constate
|
||
|
||
Pour chaque invariant que la juridiction déclare dans le front-matter de ses
|
||
parcours (`invariants:`), l'instrument cherche chaque fichier qui le **nomme**
|
||
et rend un état :
|
||
|
||
| État | Sens |
|
||
|---|---|
|
||
| `domicilie` | nommé par une épreuve à son étage dû, nulle part au-dessus |
|
||
| `renforce` | nommé par des épreuves à son étage dû **et** au-dessus — défense en profondeur, signalée positivement, jamais blâmée |
|
||
| `mal_domicilie` | nommé par des épreuves **uniquement hors** de son étage dû — le seul écart |
|
||
| `aucun_locus` | nommé par aucune épreuve |
|
||
|
||
L'instrument constate la **nomination**, pas l'exécution : c'est la CI de la
|
||
juridiction qui fait passer ses épreuves ; l'instrument dit seulement où elles
|
||
habitent. Un même identifiant déclaré avec deux énoncés différents est une
|
||
homonymie : elle est portée dans le constat, jamais résolue ici.
|
||
|
||
## Le réglage — il appartient à la juridiction
|
||
|
||
L'instrument ne connaît aucun chemin d'aucun projet : toute convention vit
|
||
dans un fichier de réglage que la juridiction tient dans son dépôt, et que
|
||
chaque constat épingle par son empreinte. Voir
|
||
[`selftest/fixture/reglage.yaml`](selftest/fixture/reglage.yaml) pour la forme
|
||
complète : `juridiction`, `cadence_heures`, `parcours`, `strates` (la première
|
||
— ou celle marquée `due: true` — est l'étage dû), `epreuves`, `sortie`,
|
||
`journal_execution`.
|
||
|
||
## La correspondance vers une échelle tierce (`rang`, optionnel)
|
||
|
||
Une juridiction peut faire correspondre chacune de ses strates à une échelle
|
||
tierce (p. ex. les rangs 1–5 de Percursus) en déclarant `rang: N` sur la
|
||
strate, dans son réglage. L'instrument émet alors `rangs_constates` dans
|
||
chaque constat — **seulement si toutes les strates constatées portent un
|
||
rang** : une correspondance partielle laisserait deviner, et deviner n'est
|
||
pas constater — et publie la table complète (`correspondance_rangs`) dans le
|
||
journal d'exécution, pour joindre les constats anciens, qui ne se réécrivent
|
||
jamais. La grossièreté se dit dans le réglage (en commentaire) : un rang
|
||
absent de la correspondance est un rang que la juridiction ne sait pas
|
||
instrumenter, pas un rang qui va de soi.
|
||
|
||
## Ce qu'il écrit — chez la juridiction, jamais ailleurs
|
||
|
||
- **`sortie`** : les constats, en **ajout seul**, et **seulement quand l'état
|
||
change** — un constat inchangé ne produit aucun événement. Chaque constat
|
||
porte ses pièces (chemin, ligne, strate), sa révision, l'empreinte du
|
||
réglage : il est recalculable par quiconque clone le dépôt.
|
||
- **`journal_execution`** : réécrit à **chaque** exécution — le témoin de
|
||
fraîcheur. Un journal plus vieux que la cadence déclarée est un écart que le
|
||
lecteur du dépôt constate ; jamais un silence.
|
||
|
||
## Exécution
|
||
|
||
```sh
|
||
node instrument/run.mjs --config docs/parcours/_meta/strates.yaml
|
||
# --repo DIR : racine du dépôt mesuré (défaut : répertoire courant)
|
||
# --dry-run : affiche les constats sans rien écrire
|
||
```
|
||
|
||
Sort en erreur **uniquement** sur prérequis cassé (réglage absent ou
|
||
illisible, aucun parcours, aucun invariant) — jamais sur un écart constaté :
|
||
l'écart est le produit, pas une panne. `npm run instrument:selftest` joue
|
||
l'auto-épreuve sur une juridiction d'essai jetable.
|
||
|
||
## Limites dites (v0)
|
||
|
||
- Seuls les invariants déclarés dans les parcours sont mesurés ; un invariant
|
||
qui ne vit que dans une ADR n'est pas encore vu.
|
||
- La citation est textuelle (mot entier) ; une épreuve qui vérifie sans nommer
|
||
n'est pas constatée — nommer ses invariants dans ses épreuves est le geste
|
||
que l'instrument récompense.
|
||
- Une citation est attribuée à l'identifiant que les parcours déclarent ; si
|
||
une ADR déclare un homonyme, l'attribution peut se tromper. Unifier son
|
||
espace de noms d'invariants est un geste de la juridiction, en amont de
|
||
toute mesure.
|