From 92b770a1860e6a33386092366ac0fb94931fc09e Mon Sep 17 00:00:00 2001 From: Vibe Nuage Agent Date: Sat, 24 Oct 2026 17:09:27 +0000 Subject: [PATCH 1/2] =?UTF-8?q?Remplit=20l'inventaire=20du=20plan=20de=20s?= =?UTF-8?q?ortie=20d'atelier=20(=C3=A9tape=201)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Section « Inventaire » de src/docs/SORTIE-ATELIER.md, remplie par lecture seule : constat sur le service de démonstration embarqué (sert demo.scribae.eu en statique, indépendamment de Perchance — host.js monte le bloc text/x-server-plugin), liste des fichiers à supprimer (main.pjs, scripts/harnais-atelier.mjs, src/docs/ATELIER.md), liste des documents à modifier aux étapes 2 et 3 avec le motif de chacun, piège nommé (l'écran « atelier » de l'application n'est pas l'atelier Perchance), mentions de la plateforme Perchance hors périmètre à réévaluer, et documents datés conservés tels quels (changelog, rapports d'audit). Aucun autre fichier modifié : l'étape 1 est une PR de lecture. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe Co-authored-by: aplds --- src/docs/SORTIE-ATELIER.md | 105 +++++++++++++++++++++++++++++++++++-- 1 file changed, 102 insertions(+), 3 deletions(-) diff --git a/src/docs/SORTIE-ATELIER.md b/src/docs/SORTIE-ATELIER.md index eba761f..193d1f5 100644 --- a/src/docs/SORTIE-ATELIER.md +++ b/src/docs/SORTIE-ATELIER.md @@ -48,9 +48,108 @@ aucun autre fichier : Livrable : la section « Inventaire » remplie (fichiers à modifier / supprimer par étape, avec le motif en une ligne chacun). Aucune suppression à cette étape. -## Inventaire (à remplir par l'étape 1) - -*(vide — sera complété par la PR d'inventaire)* +## Inventaire + +*Rempli par la PR d'inventaire (étape 1 — lecture seule, aucun autre fichier modifié).* + +### Constat — le service de démonstration embarqué (`index.html`) + +Analysé par lecture, sans essai : + +- Le bloc `text/x-server-plugin` (`index.html:53`) est le code du service de + démonstration. Sur Perchance, la plateforme l'exécute dans un fil séparé ; en statique, + c'est `src/pages/host.js` qui le monte : il lit le texte du bloc dans la page + (`document.querySelector('script[type="text/x-server-plugin"]')`), l'exécute dans un + `new Function` avec un `self` local, et l'expose comme `root.createServerSocket` + (`src/pages/host.js:282-293, 330-368`), avec persistance dans l'IndexedDB du navigateur + (double tampon, `src/pages/host.js:243-278`). +- Il ne dépend d'**aucun** greffon Perchance : `self.rpc` (`index.html:3176`) route et + répond seul. Les greffons de `main.pjs` (`kv`, `createServerSocket`, `superFetch`, + `uploadPlugin`, `generateText`) ne servent qu'à l'hébergement sur Perchance. +- `demo.scribae.eu` est servi **en statique par GitHub Pages** (`CNAME`) : la page et + `host.js` suffisent. Le service embarqué sert donc la démonstration **indépendamment + de Perchance** — son état vit dans le navigateur de chaque visiteur (pas de base + partagée), les écritures y sont refusées sans clé, et il ne fait aucun appel sortant + (SMTP indisponible, transmission et signature simulées ou refusées). + +**Conséquence** : supprimer `main.pjs` ne touche pas la démonstration. Le service embarqué +reste tenu par le jeu de conformité (`tests/conformite-service.mjs`) avec son jumeau +`src/server/mysql/`. Le conserver, le réduire ou le geler se tranche à l'étape 4 (Arno). + +### Supprimés à l'étape 3 + +| Fichier | Motif (une ligne) | +|---|---| +| `main.pjs` | Manifeste Perchance (greffons kv, serveur de démo, relais, fichiers, moteur IA) : l'hébergement Perchance disparaît, le dépôt est la seule source. | +| `scripts/harnais-atelier.mjs` | Banc d'épreuves sans terminal : n'existait que pour l'atelier — ni `package.json`, ni la CI, ni aucun autre script ne l'appelle. | +| `src/docs/ATELIER.md` | La méthode de travail dans l'atelier : plus d'atelier, plus de méthode à documenter. | + +Rien d'autre n'existe que pour le harnais : vérifié par références croisées +(`grep -rl harnais-atelier` ne renvoie que des documents, aucun outil). + +### Modifiés à l'étape 2 (la doc agent dit le nouveau monde) + +| Fichier | Motif (une ligne) | +|---|---| +| `AGENTS.md` | Retirer atelier, harnais et flux d'export ; décrire le nouveau flux (branche `dev`, une PR par sujet, `npm run verifier`, CI verte avant relecture). | +| `CLAUDE.md` | Retirer le paragraphe « Si vous travaillez dans l'atelier (Perchance) ». | +| `README.md` (racine) | Ligne 358 (`main.pjs`) et lignes 378-391 (section « atelier » + harnais + « l'atelier de travail »). | +| `src/README.md` | § « Flux de travail : Perchance ↔ GitHub » (lignes 30-80), « Récupérer un dépôt GitHub », table « Dans l'atelier » (102-114), « l'outillage vit sous `src/` » (128-133), lignes 220 et 248 (Perchance, `main.pjs`). | +| `tests/README.md` | « Dans l'atelier » (lignes 49-55) et « Les jouer dans l'atelier » (56-63). | +| `src/docs/INDUSTRIALISATION.md` | Ligne 19, § « Vérifier depuis l'atelier : le harnais » (115-147), exemple `import("https://perchance.org/…")` (189). | +| `src/docs/REPRISE.md` | Ligne 24 (`main.pjs` = manifeste Perchance), ligne 127 (le site publié a besoin de `main.pjs`). | + +### Modifiés à l'étape 3 (avec la suppression) + +| Fichier | Motif (une ligne) | +|---|---| +| `src/ui/views/docs.js` (lignes 74-78) | Retirer l'entrée « atelier » de l'écran Documentation technique : elle pointe vers `src/docs/ATELIER.md`, supprimé — pas de lien mort. (Vérifier l'épreuve qui couvre cette liste.) | +| `index.html` (lignes 9-14) | Commentaire d'en-tête « AGENT : lisez `src/docs/ATELIER.md` … harnais » : devient faux. Le bloc `text/x-server-plugin` reste (étape 4). | +| `src/lib/version.js` (ligne 13) | Commentaire « Perchance ↔ GitHub » : le flux disparaît. | +| `src/LICENSE.md` (ligne 65) | « importées par nom depuis Perchance (`main.pjs`) » : `main.pjs` est supprimé — dire les ports d'hôte autrement. | +| `src/TODO.md` (lignes 12, 516) | Ligne 12 (chiffres du banc dans `docs/ATELIER.md`) et l'entrée ouverte 516 (« Le harnais jette-t-il un écran de fumée ? ») : le harnais disparaît. Le reste, coché, est de l'histoire — conservé. | +| `scripts/racine-code.mjs`, `scripts/verifier-syntaxe.mjs`, `scripts/verifier-style.mjs`, `scripts/generer-api.mjs`, `scripts/generer-logiciel.mjs`, `scripts/generer-variables.mjs` | Commentaires seuls : la double disposition (atelier/dépôt) n'existe plus. Les scripts restent — la CI les appelle. | +| `.github/workflows/ci.yml` | Commentaires seuls (« l'export le dépose », « qui n'existe que dans l'atelier »). La chaîne elle-même ne change pas. | +| `tests/parcours.mjs` (ligne 20) | Commentaire : lancer l'épreuve « dans l'atelier » (`import("https://perchance.org/…")`). | + +### « atelier » qui n'est PAS l'atelier Perchance (piège nommé — ne pas toucher) + +L'**écran** atelier de l'application : `?atelier`, `/atelier`, `demandeAtelier`, +`SCRIBA_ATELIER_IPS`, `src/server/mysql/atelier.mjs`, `src/lib/atelier-acces.js`, +`location /atelier` dans `nginx.conf`, les routes `/v1/atelier/acces` et +`MESSAGE_ATELIER` dans `index.html`, et les « atelier » de `README.md` (lignes 55, 203, +210, 212, 225…), `src/README.md`, `src/server/mysql/README.md` § 10. `README.md` ligne 12 +aussi : l'image « L'atelier de Scribae » illustre l'interface interne, pas la plateforme +(et elle est hébergée sur `user.uploads.dev`, l'hébergement de fichiers de Perchance — +l'image reste en ligne, on ne la touche pas). + +### Mentions de la plateforme Perchance, hors périmètre « atelier » (à réévaluer) + +- `src/docs/ADMINISTRATION.md` (1231-1247, 1282) : le mode « Intégré (Perchance) » du + moteur IA — le port reste dans le code (`src/lib/hosts.js:60-61`, libellé + `src/ui/views/referentiel.js:3261`), mais plus aucun déploiement ne le fournit. À + trancher en étape 2 : la doc dit-elle une capacité dormante, ou le mode sort-il de la + doc (le code ne change pas dans ce chantier). +- `src/SPEC.md` (1767, 3292, 3567) : adresses `perchance.org/` et moteur + « n'existe que sur Perchance » — le code reste (`src/lib/recueil.js:782`, + `globalThis.generatorName`), inatteignable sans `main.pjs`. +- `src/lib/db/index.js` (77) : « vrai sur Perchance, faux ici » — le mode « service de + démonstration partagé » est le socket Perchance. +- `src/lib/hosts.js` (47, 60-61), `src/lib/assistant.js` (21-24, 287), + `src/ui/assistant.js` (178), `src/lib/schema.js` (765), `src/css/app-base.css` + (120-125) : commentaires « n'existe que sur Perchance » — le code reste (ports + d'hôte facultatifs), les commentaires restent vrais tant qu'un hôte les fournit. +- `tests/*.test.mjs`, `src/server/mysql/*.mjs` : « harnais de navigateur » désigne + `tests/parcours-navigateur.mjs` (Playwright, il reste), **pas** + `scripts/harnais-atelier.mjs` — à distinguer au grep de l'étape 3. +- `src/audit/PROMPT-AUDIT-SCRIBAE.md` (5 mentions) : prompt de campagne d'audit, vivant + (non daté) — à réévaluer en étape 3. + +### Documents datés — conservés tels quels + +`src/CHANGELOG.md` (l'historique mentionne l'atelier et le harnais : c'est le journal, il +fait foi), `src/audit/rapports/*.md`, `src/audit/REGISTRE-NON-CONFORMITES.md`, +`src/docs/AUDIT-BUGS-2026-09-22.md` : des constats datés, on ne réécrit pas l'histoire. ## Étape 2 — La doc agent dit le nouveau monde (PR) From ffe527028c25e87fad18080c0895a4c6872173b1 Mon Sep 17 00:00:00 2001 From: Vibe Nuage Agent Date: Sat, 24 Oct 2026 22:03:03 +0000 Subject: [PATCH 2/2] =?UTF-8?q?Relance=20la=20cha=C3=AEne=20(=C3=A9preuve?= =?UTF-8?q?=20de=20signature=20instable=20sur=20le=20premier=20essai)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: aplds