Files
decision/HANDOFF.md
T
YvvandClaude Opus 5.5 9203fd2501 v3 : troisième relecture — une coquille n'inverse plus un sens ; retour à la version précédente
- Mot mal tapé = un seul glissement (une lettre ajoutée, retirée, ou deux
  voisines inversées), jamais au début du mot (préfixes : valide/invalide,
  limitée/illimitée), jamais une lettre remplacée (deux/dix, majorité/minorité),
  jamais sur un mot de négation ou de quantité, mots de 4 lettres au moins.
- Parenthèses, crochets, « / » et tout ce qui est entre accents graves comptent
  comme le sens (ceil(N^(1/5)) → ceil(N^1/5) n'est plus une coquille).
- Caractères invisibles (inversion du sens d'écriture, largeur nulle, BOM)
  refusés dans les textes, titres, traductions et motifs de signalement.
- Déploiement : la version en service est gardée (image « previous ») ; un
  témoin marque le déploiement en cours ; « retablir » relance la maquette au
  premier déploiement, la version précédente ensuite ; la liste des conteneurs
  retirés n'est plus vidée par un pipeline annulé.
- Tests : 59 Rust (dont 14 scénarios d'API, avec deux → dix sur E2 en vigueur
  et l'inversion bidi), e2e 12 / 12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 05:21:08 +02:00

2.9 KiB
Raw Blame History

HANDOFF — libreDecision

Dernière mise à jour : 2026-10-21, session orch du chantier 1.

Où on en est

Chantier 1 — Acte d'engagement Certification : construit, boucle verte, prêt à livrer.

  • v3 Rust + Svelte à la racine du dépôt ; la maquette v2 intacte dans maquette/.
  • Boucle : Rust (fmt, clippy -D warnings, 59 tests dont 14 scénarios d'API et la publication vers un dépôt nu) · interface (svelte-check 0 avertissement, 9 vitest) · e2e 12 / 12 (C1–C11, M1). L'image Docker rejoue tout et a été essayée localement : santé, interface, volume non-root, clé de publication, lien admin initial (0600, absent des journaux), publication immédiate au démarrage, redémarrage sans commit superflu.
  • Déploiement : .woodpecker/app.yml d'abord (le produit à la racine, qui retire de la racine tout conteneur qui la revendique), puis .woodpecker/maquette.yml (la maquette part sur maquette.decision.librodrome.org, seulement si le produit a réussi).
  • Trois relectures indépendantes avant mise en ligne (1f9c241 : ok, 94907af : ok, ac9c904 : à reprendre), chacune traitée avant de livrer. La troisième a montré qu'une « coquille » pouvait encore inverser un sens (« valide » → « invalide », « deux » → « dix », caractères invisibles) : la règle a été resserrée (voir CHANTIER.md). Les autres points : ordre des workflows, anciens conteneurs en restart: always, vote réservé aux membres de la toile dans Monnaie libre (une personne, une voix), lien d'invitation jamais vers une identité Ğ1, réservation du lien avant usage, un nombre n'est jamais une coquille, redirection après connexion, en-têtes anti-encadrement, cookies préfixés __Host-, retour arrière automatique du déploiement (maquette au premier, version précédente ensuite), syft épinglé.

Ce qui attend Yvv

  1. Envoyer la demande à poka : docs/chantiers/acte-certification/DEMANDE-CONNECT.md.
  2. Créer le dépôt des textes sur git.duniter.org : Yvv/libredecision-textes, public, vide ; y ajouter la clé de déploiement du serveur, en écriture (sa partie publique s'affiche dans trustinWallet, /acces, section Publication). Le serveur fait lui-même le premier envoi.
  3. Ouvrir trustinWallet avec le lien administrateur initial (remis hors conversation), puis créer l'invitation de Chiara (groupes Monnaie libre + groupe d'essai).
  4. Donner à Chiara un compte git.open.us.org collaboratrice de yvv/decision.
  5. Décider : la licence du code ; le texte F1.2 du seed (annonce C = 0 et 30 jours).

Pour reprendre

  • Lire docs/chantiers/acte-certification/CHANTIER.md puis CONTROLES.md.
  • Les retours de Chiara arrivent dans /acces → Retours : chacun est un contrôle à repasser.
  • Quand les identifiants connect arrivent : DEMANDE-CONNECT.md § « À la réponse ».
  • Chantier suivant (après la mise en production et les retours) : Acte d'engagement forgeron.