`human.json` ou comment créer un réseau de contenu certifié humain !

Un panda roux contemplant une carte de confiance en parchemin, où des îles reliées par des ponts lumineux symbolisent un réseau humain, dans un style Ghibli chaleureux et poétique.

J'ai évoqué ce protocole dans ma dernière revue de presse et j'ai pris le temps de mettre ça en place sur mon blog !

human.json ? Kézako ?🔗

À l'heure de l'IA c'est parfois difficile de dire si on peut croire ou pas le contenu qu'on lit en ligne. L'idée de ce protocole est donc d'identifier, via un graphe de confiance, quel site est rédigé par un humain ou non. On peut rédiger un contenu parfaitement vrai avec de l'IA, on peut aussi s'aider de l'IA pour rédiger proprement du contenu, mais on sait aussi que beaucoup de contenu en ligne venant de l'IA sont à peine relus / vérifié, qu'on retrouve énormément de désinformation venant de l'IA (directement dû à de l'hallucination de LLM ou parce que les utilisateurs ont orientés le LLM pour qu'il dise des trucs faux).

La proposition est plutôt simple :

  • quand on est utilisateur, on installe une extension pour Firefox ou Chrome, puis on va se rendre sur un site qu'on sait implémenter le protocole, puis on va l'indiquer comme "trusted", pour indiquer à l'extension qu'on a confiance, que ce site est fait par un humain et donc s'il indique que d'autres sites sont fiables on peut faire confiance ;
  • quand on est créateur de contenu en ligne, on peut ajouter une ligne dans son code HTML et un fichier human.json pour indiquer quels autres sites sont fiables ;

Ensuite on peut vivre sa vie normalement en regardant ce que nous dit l'extension.

Côté extensions🔗

Une fois installé (et épinglé à la barre d'outil), on verra une petite bulle de couleur apparaitre :

Exemple de l'extension sur mon site avant de l'avoir indiqué comme "Trusted"
Exemple de l'extension sur mon site avant de l'avoir indiqué comme "Trusted"

La bulle peut avoir plusieurs couleurs, je cite directement la documentation (et la page de l'extension qui reprend la même chose) :

The color will vary depending on how many hops are needed to reach them from someone you trust: green for 0-1 hops (you trust them or someone who vouches for them), yellow for 2 hops, orange for 3+ hops.

  • 🟢 Green — 0–1 hops (seed site, or directly vouched by a seed)
  • 🟡 Yellow — 2 hops
  • 🟠 Orange — 3+ hops
  • ⚪ Gray — not in your trust graph
  • 🔵 Blue (+) — site has human.json but you haven't trusted it yet

Il manque la bulle grise qui indique qu'il n'y a aucun human.json d'indiquer et donc l'extension ne peut pas donner d'information.

J'ai ensuite "Trusted" mon propre site et on voit que je peux maintenant retirer ma confiance :

Vue de l'extension une fois qu'on a "trusted" un site
Vue de l'extension une fois qu'on a "trusted" un site

En ajoutant quelques liens (dont le créateur du protocole human.json Beto Dealmeida avec le domaine https://robida.net/) et en laissant un peu de temps à l'extension pour sauter de site en site pour trouver de human.json, je trouve d'autres sites dans l'onglet "Manage" :

Vue de l'onglet "Manage" avec des sites indiqués comme "2 hops"
Vue de l'onglet "Manage" avec des sites indiqués comme "2 hops"

On voit dans cette liste les sites qui ont été "trusted" par https://robida.net et un site "trusted" par https://blog.genma.fr (à qui j'ai parlé de ce protocole il y a quelques jours quand je l'ai rencontré pour la première fois à Devoxx France après plus de 10 ans à suivre son blog !).

Si je vais sur le site de l'ami Siegfried, je vais voir ça :

Site https://sieg.fr qui est "trusted" par mon propre site
Site https://sieg.fr qui est "trusted" par mon propre site

Si je vais sur le site de Genma, je vois que lui-même fait confiance au site https://www.opensource-experts.com/ et en me rendant sur https://www.opensource-experts.com/ je vois que là la bulle est jaune, car on est à 2 sauts d'une seed (site directement "trusted") :

Côté site🔗

Pour mettre en place le protocole sur son site c'est très facile.

La première étape c'est créé un fichier json (la documentation indique de créer un fichier ̀human.json mais en réalité, on le nomme comme on veut) qui va ressembler à ça :

{
    "version": "0.1.1",
    "url": "https://anthonypena.fr",
    "vouches": [
        { "url": "https://genma.fr", "vouched_at": "2026-04-24" },
        { "url": "https://press.k49.fr.nf", "vouched_at": "2026-04-24" },
        { "url": "https://robida.net", "vouched_at": "2026-04-28" },
        { "url": "https://sieg.fr", "vouched_at": "2026-04-24" }
    ]
}

La clé version indique la version du protocole qu'on supporte (le système est encore très jeune comme je disais, donc on est encore en phase d'essai), pour permettre à la web extension (ou un autre crawler) de savoir à quoi s'attendre comme contenu, en particulier s'il y a des breaking changes.

La clé url le site sur lequel on va déposer le fichier, pour indiquer que notre site est géré par un humain. Ça peut sembler étonnant mais pas tant que ça : imaginons qu'il n'y ait pas cette clé, et qu'on découvre un human.json sur un site "https://blog-plateform.com/blog-of-john/", quel ensemble de page doit être "trusted" ? "https://blog-plateform.com/blog-of-john/" ça parait logique mais est-ce qu'on peut croire "https://blog-plateform.com/" ? Pas forcément. À l'inverse sur mon propre blog, peu importe la page, je veux indiquer que tout "https://anthonypena.fr" est géré par un humain.

Ensuite on va retrouver une clé vouches (qui est optionnelle, vous n'êtes donc pas obligé d'indiquer des marques de confiance) qui va contenir des marques de confiance. Dans mon exemple, une ligne est une marque de confiance. Pour chaque marque on va indiquer à quelle date on a indiqué notre confiance (j'imagine pour donner un indice de confiance pour un éventuel domaine qui aurait changé de propriétaire ou de site qui aurait changé de fonctionnement).

Ensuite on va indiquer sur nos pages que notre human.json existe et sur quelle URL y accéder :

<!DOCTYPE html>
<html lang="fr">
  <head>
    ...
    <link rel="human-json" href="/human.json" />
    ...
  </head>
  ...
</html>

Note: il faut que ce fichier soit accessible avec les headers Content-Type: application/json (pour que les crawlers puissent s'assurer qu'ils reçoivent bien un JSON) et Access-Control-Allow-Origin: * (pour ne pas avoir d'erreur de CORS).

Ensuite il suffit d'alimenter le fichier human.json en fonction des gens qu'on connait !

Critique du modèle🔗

Je trouve le modèle plutôt intéressant, mais il n'est pas sans questionnement à date :

  • le niveau de saut est un peu sévère : on considère comme moins de confiance un site qui est à 2 sauts, personnellement j'aurais commencé à réduire la confiance au 3ème saut, dans mon exemple, je fais confiance à Genma, donc je peux aussi lui faire confiance pour avoir choisi uniquement des sites de confiance à mon avis ;
  • l'extension est pour l'instant uniquement en anglais (même si j'ai ouvert la discussion pour une traduction française) ;
  • ça ne fonctionne pas sur les domaines en localhost, ce n'est pas super grave, mais c'est dommage de devoir attendre d'avoir mis en ligne pour tester alors que le site fonctionne en local ;
  • il n'y a pas de seed initiale : je comprends pourquoi (c'est un système de confiance, mais on ne peut pas facilement faire confiance à un site parce que l'extension indique qu'on peut le faire par défaut), mais pour moi ça peut être un frein à l'adoption ;
  • le protocole est encore très jeune, donc le réseau de confiance est encore tout petit, mais il faut commencer quelque part donc on verra dans le futur si ça se diffuse ou pas ;

Conclusion🔗

Quand bien même le protocole est jeune et génère des questionnements sur le dépôt Codeberg, je pense que c'est une très bonne initiative et j'espère que le graphe de confiance va grossir !

Je vous encourage à mettre en place votre human.json si vous avez votre propre site ! Si on se connait et que vous n'êtes pas dans ma liste, n'hésitez pas à me contacter, c'est que je ne dois pas être abonné à votre flux RSS !

Sources :

Crédit photo : Générée via Mistral AI avec le prompt suivant :

A warm and poetic scene inspired by Studio Ghibli, featuring an ancient parchment map spread on a light wooden table. The map shows a cluster of floating islands (each representing a website) connected by glowing bridges of different colors: green bridges (0-1 trust hops) made of carved wood with maple leaf patterns, yellow bridges (2 hops) made of golden braided ropes, and orange bridges (3+ hops) made of thin, translucent glowing threads.

A wooden sailboat with a maple leaf-patterned sail floats on a blue river with golden reflections, symbolizing a data stream. A phoenix with golden and red feathers, wearing round glasses, stands at the helm, holding an ancient compass whose needle points toward a central island (the seed/trusted site).

On this central island, a red panda (anthropomorphic, wearing a light blue t-shirt and jeans, with curly hair tied in a low bun, a short dense beard, and black-framed glasses) sits on a rock, observing the map with a steaming cup of tea beside him. Around the panda, 8-10 red, orange, and yellow maple leaves float gently in the air.

In the background, a starry sky with stars subtly forming HTML tag symbols or binary code patterns. The table is surrounded by ancient books (leather-bound, with unreadable titles) and a holographic screen (with a carved wooden frame) displaying an interactive map of the islands, with faint animated lines of code.

An axolotl (anthropomorphic, wearing a loose sweater) on a nearby island is fishing with a bamboo fishing rod. A stylized cat (anthropomorphic, in loose clothing) sits on a bridge, reading a futuristic journal (a mix of paper and touchscreen).

The scene is bathed in a soft, warm golden light (like a cozy autumn afternoon), with reflections on the wood and parchment. The dominant colors are beiges, pale blues, warm oranges, golds, and touches of moss green. The bridges emit a soft, pulsing glow, as if alive. The panda’s tea cup releases steam that briefly forms binary code patterns before dissolving into the air.

The red panda is positioned in the bottom right corner, occupying about 1/3 of the height, slightly turned in a 3/4 back view. The map and boat are centered, with a depth of field guiding the eye toward the central island. The maple leaves are scattered around the panda, some resting on the table, others floating near him.

The art style is soft, with detailed textures: grained wood, slightly worn fabric, natural folds in the parchment, and frothy reflections in the river water. The overall atmosphere is peaceful, immersive, and dreamlike, blending technology and nature harmoniously.