From 1227a4fb5abc079e2f4aea79ffc9e45c5283607a Mon Sep 17 00:00:00 2001 From: temoin-agent Date: Fri, 11 Sep 2026 09:30:11 +0200 Subject: [PATCH] =?UTF-8?q?Autonomie=20:=20le=20d=C3=A9p=C3=B4t=20public?= =?UTF-8?q?=20devient=20la=20source=20de=20v=C3=A9rit=C3=A9=20du=20contrat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le développement se fait ici, par pull request endossée — le subtree depuis le corpus hôte est mort (temoin/DEC-014, à consigner côté temoin). Deux gardes en CI, normatives toutes deux : la suite de conformité (SPEC §9) et l'auto-épreuve de l'instrument. Lockfile commité pour une CI reproductible ; note de gouvernance au README. Co-Authored-By: Claude Opus 5 (1M context) --- .gitea/workflows/gardes.yaml | 28 +++++++++ .gitignore | 1 + README.md | 17 +++++- package-lock.json | 111 +++++++++++++++++++++++++++++++++++ 4 files changed, 155 insertions(+), 2 deletions(-) create mode 100644 .gitea/workflows/gardes.yaml create mode 100644 .gitignore create mode 100644 package-lock.json diff --git a/.gitea/workflows/gardes.yaml b/.gitea/workflows/gardes.yaml new file mode 100644 index 0000000..5ae78fc --- /dev/null +++ b/.gitea/workflows/gardes.yaml @@ -0,0 +1,28 @@ +name: gardes du contrat + +# Le dépôt public est la SOURCE DE VÉRITÉ du contrat depuis le 2026-09-11 +# (temoin/DEC-014) : le développement se fait ici, par pull request endossée — +# le subtree depuis le corpus hôte est mort. Deux gardes, normatives toutes +# deux : la suite de conformité (SPEC §9 — qui la rate ne se conforme pas) et +# l'auto-épreuve de l'instrument (dix-huit vérifications sur une juridiction +# d'essai jetable). + +on: + pull_request: + push: + branches: [master] + +jobs: + conformite: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '20' + - name: Dépendances (ajv pour le schéma, yaml pour l'instrument) + run: npm install --no-audit --no-fund + - name: Suite de conformité — normative + run: npm run conformance + - name: Auto-épreuve de l'instrument + run: npm run instrument:selftest diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/README.md b/README.md index 0bec00b..0df93db 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,18 @@ A1.2). Deux artefacts, un seul numéro de version : | [`grammar/`](grammar/) | Domicile réservé de la grammaire source (ADR-066 §2.2) | | [`OPENING.md`](OPENING.md) | Déclencheur et butoir de l'extraction publique | -Le nom du paquet est celui qu'ADR-066 §2.2 lui a donné. `pnpm conformance` -exécute le jeu d'épreuves. +Le nom du paquet est celui qu'ADR-066 §2.2 lui a donné. + +## Gouvernance (depuis le 2026-09-11 — temoin/DEC-014) + +Ce dépôt est la **source de vérité** du contrat. Le développement se fait +ici, par pull request endossée — une approbation humaine par fusion, aucune +poussée directe sur `master`. L'ancien rite (sources au corpus hôte, +re-publication par subtree) est mort : il coûtait trois rites par évolution. + +Chaque consommateur **épingle** l'édition qu'il adopte (un commit de ce +dépôt) et mesure sa dérive contre la tête ; déplacer une épingle est une +pull request relue chez le consommateur, jamais un événement subi. + +`npm run conformance` joue la suite normative ; `npm run instrument:selftest` +l'auto-épreuve de l'instrument. La CI exige les deux. diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..b2c818e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,111 @@ +{ + "name": "published-language", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "published-language", + "version": "0.1.0", + "license": "Apache-2.0", + "dependencies": { + "yaml": "2.9.0" + }, + "devDependencies": { + "ajv": "^8.17.0", + "ajv-formats": "^3.0.0" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz", + "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + } + } +}