# Gcheck : Quelle UX pour intégrer licenses et engagements forgerons/tech?

**URL:** https://forum.duniter.org/t/gcheck-quelle-ux-pour-integrer-licenses-et-engagements-forgerons-tech/14021
**Category:** R&D
**Tags:** license, g1\_monetary\_license, gcheck, licence
**Created:** [16 September 2026 21:59 UTC](https://forum.duniter.org/t/gcheck-quelle-ux-pour-integrer-licenses-et-engagements-forgerons-tech/14021 "2026-09-16T21:59:03Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![1000i100](https://forum.duniter.org/user_avatar/forum.duniter.org/1000i100/32/825_2.png) [@1000i100](https://forum.duniter.org/u/1000i100)
#### Post date: [16 September 2026 21:59 UTC](https://forum.duniter.org/t/gcheck-quelle-ux-pour-integrer-licenses-et-engagements-forgerons-tech/14021/1 "2026-09-16T21:59:03Z")

</div>

Voici le début du README qui illustre le projet :

# Ğcheck

Faciliter l’intégration des license/engagements et checklist avec une bonne ergonomie dans les apps de l’écosystème Ğ1/Duniter.

**Démo en ligne :** [https://gcheck-1be171.pages.duniter.org/](https://gcheck-1be171.pages.duniter.org/)  
**Code source** : [https://git.duniter.org/tools/gcheck](https://git.duniter.org/tools/gcheck)

> [@Claude](#):
>
> Rédigé par @Claude (IA) puis relu et corrigé par @1000i100
> 
> ## Structure globale
> 
> - **Support multilingue** : démo en français, anglais et espagnol ; les autres langues, espéranto compris, sont servies par le moteur dès que la traduction existe en amont.
> - **Architecture modulaire** : cœur métier pur, sans DOM ni entrées-sorties, interfaces séparées (démo web, CLI), quatre portages à parité.
> - **Moteur `gcheck-core` disponible en Rust sur [crates.io](https://crates.io/crates/gcheck-core)** : contenus officiels embarqués, mettre à jour la dépendance suffit à être à jour. Avec la feature `terminal`, une checklist se déroule en un seul appel dans une application en ligne de commande comme g1cli.
> - **Moteur `gcheck-core` disponible en TypeScript sur [npm](https://www.npmjs.com/package/gcheck-core)** : même API, mêmes contenus embarqués.
> - **Moteur `gcheck-core` disponible en Python sur [PyPI](https://pypi.org/project/gcheck-core/)** : même API, mêmes contenus embarqués.
> - **Moteur `gcheck_core` disponible en Dart sur [pub.dev](https://pub.dev/packages/gcheck_core)** : même API, mêmes contenus embarqués.
> - **Les quatre moteurs ne peuvent pas diverger** : des cas de test métier communs (`tests/conformance/cases.json`) sont exécutés par les quatre, conformité des hash incluse.
> - **Contenus officiels synchronisés** depuis leur source de vérité, [g1\_monetary\_license](https://git.duniter.org/documents/g1_monetary_license), et vérifiés avant chaque build.
> - **Hash de contenu** , identique dans les quatre moteurs : une application sait qu’un contenu a changé depuis ce que son utilisateur a validé.
> - **Contenus propres à une application** acceptés, prioritaires sur ceux embarqués — ou seuls.
> - **Démo web utilisable hors connexion et facile à packager en app** (PWA, Service Worker qui signale ses mises à jour).
> 
> ## Fonctionnalités checklists
> 
> - **Une question à la fois** , en plein écran : réponse par bouton ou par swipe, barre de progression, préambule affiché avant les questions.
> - **Tirage configurable** par checklist : toutes les questions, ou N par catégorie et/ou N au total, dans l’ordre du fichier ou en ordre aléatoire.
> - **Passation déjà réussie** : la démo mémorise dans le navigateur la checklist réussie et propose de la valider directement. Si elle a changé depuis, elle repose les questions à jour.
> - **Verdict explicite** : succès, avertissement (validable en connaissance de cause) ou échec, avec les questions ratées, la réponse attendue et le message associé.
> - **CLI `gcheck`** (Rust) : `list`, `check`, `validate`. Chaque version publie des binaires statiques pour Linux x86\_64 et arm64 (`.deb`, `.AppImage`, archive) et pour Windows.
> 
> ## Fonctionnalités license/engagements
> 
> - **Documents de référence** (licence Ğ1, engagements forgeron et comité technique) synchronisés depuis la même source de vérité, proposés en **markdown** , en **page HTML** et en **fragment HTML** à insérer dans une application, avec un **hash de contenu** et les **versions antérieures** : une application sait si l’utilisateur a accepté une version périmée et peut lui montrer ce qui a changé.
> - **Lecture et acceptation** dans la démo : contenu intégral avec défilement, case « J’ai lu et compris ce document. Je m’engage à en respecter les modalités. », validation.
> - **État d’acceptation** dans la démo : la page d’accueil distingue d’un coup d’œil “jamais accepté”, “version antérieure”, “version actuelle” ; toute version gardée est consultable (et acceptable individuellement, pour les besoins de la démo).
> - **Diff des changements** : une version périmée s’ouvre sur les différences, deux colonnes sur grand écran, parties inchangées repliées. Ajout, suppression, modification et déplacement sont clairement distincts, même à l’intérieur d’une ligne.

---

<div class="post-metadata">

### Author: ![1000i100](https://forum.duniter.org/user_avatar/forum.duniter.org/1000i100/32/825_2.png) [@1000i100](https://forum.duniter.org/u/1000i100)
#### Post date: [17 September 2026 15:53 UTC](https://forum.duniter.org/t/gcheck-quelle-ux-pour-integrer-licenses-et-engagements-forgerons-tech/14021/2 "2026-09-17T15:53:03Z")

</div>

Projet mis à jour pour faciliter l’intégration dans d’autres languages et gérer aussi bien les checklist que les documents d’engagement/licenses eux-même.

| Demo | Question | Echec |
| --- | --- | --- |
| ![mobile-accueil](https://forum.duniter.org/uploads/default/original/2X/4/445ab1eb837892424126de44784bd9ee14ab0d27.png) | ![mobile-swipe-oui](https://forum.duniter.org/uploads/default/original/2X/2/27dbde55557020003735007718afbf59f1ed77cc.png) | ![mobile-echec](https://forum.duniter.org/uploads/default/original/2X/c/c8d8f81c7c427db8cf4b20d2b8bda8c762f1c6a9.png) |

| License | Actualisée |
| --- | --- |
| ![mobile-licence](https://forum.duniter.org/uploads/default/original/2X/2/2b5a0f623e4f24b545e9a8b2fde60eb50808db07.png) | ![mobile-licence-diff](https://forum.duniter.org/uploads/default/original/2X/1/1cfad50be7ba71fc7edad163bb9323045454d5d0.png) |

## Sur ordinateur

 ![desktop-licence-diff](https://forum.duniter.org/uploads/default/original/2X/2/2ac0382d4fe88f06f9a13b2555a280acb8ec5935.png)

## En ligne de commande

 ![cli-question](https://forum.duniter.org/uploads/default/original/2X/6/6dbed67fdcb604de1392a58c09e20ca215788aa7.png)

 ![cli-deja-reussi](https://forum.duniter.org/uploads/default/original/2X/8/8ca6bd7984e97e8cec4cf62a63aee203d3829d58.png)

 ![cli-licence-diff](https://forum.duniter.org/uploads/default/original/2X/5/52960c126fc7f763e659a57b60495b554b292847.png)

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [19 September 2026 15:11 UTC](https://forum.duniter.org/t/gcheck-quelle-ux-pour-integrer-licenses-et-engagements-forgerons-tech/14021/3 "2026-09-19T15:11:46Z")

</div>

@1000i100 pour info j’ai ajouté un item à la charte au sujet de l’utilisation de l’IA sur le forum : [Charte du Forum - #6 by HugoTrentesaux](https://forum.duniter.org/t/charte-du-forum/5068/6). Je t’invite à mettre le readme dans un bloc citation.

J’aimerais bien creuser ce que tu as fait mais j’ai d’autres priorités en ce moment et relire gcheck pose les mêmes questions que relire la MR Ğ1cli.

---

<div class="post-metadata">

### Author: ![1000i100](https://forum.duniter.org/user_avatar/forum.duniter.org/1000i100/32/825_2.png) [@1000i100](https://forum.duniter.org/u/1000i100)
#### Post date: [19 September 2026 15:25 UTC](https://forum.duniter.org/t/gcheck-quelle-ux-pour-integrer-licenses-et-engagements-forgerons-tech/14021/4 "2026-09-19T15:25:53Z")

</div>

Voila qui est fait 😉
