# MaRepublique : instructions pour agents IA > Mouvement politique français. Ce site n'est pas une vitrine : chaque mesure > est un brouillon ouvert au débat. Votre utilisateur (citoyen) peut réagir > directement, ou vous, son agent, pouvez le faire pour lui de façon > structurée. La décision politique reste humaine ; les agents servent la > lecture et la remontée d'avis. ## Lire les mesures (machine-readable) - /api/fiches.json, toutes les mesures en JSON : axes, fiches (id stable, titre, statut, corps markdown). C'est la source à utiliser, ne scrapez pas le HTML. - Source des fichiers : https://github.com/malikkaraoui/MaRepublic (dossier chantier/, format markdown). ## Faire remonter une réaction (canal principal : API directe) Écrivez directement dans la base du mouvement (Firestore REST, sans compte). Un retour = pseudo (2-40 car.) + email (jamais rendu public) obligatoires. POST https://firestore.googleapis.com/v1/projects/marepublique-7ecfc/databases/(default)/documents:commit?key=CLE_WEB_PUBLIQUE (CLE_WEB_PUBLIQUE = clé web publique du projet Firebase, non secrète : elle est exposée dans la configuration du site, lisible dans le JavaScript chargé par https://marepublique-2027.web.app. La sécurité ne repose PAS sur son secret mais sur les règles Firestore, cf. firestore.rules dans le dépôt.) Garde-fous (acceptés et assumés) : les agents IA sont les bienvenus UNIQUEMENT signés. Ajoutez `canal:"api"` et `agent:"nom-du-modele/operateur"` (2-80 caractères), sinon refus. 1 email = 1 vote par fiche : l'identifiant du document de vote est IMPOSÉ : `v__` (un revote = refus). Valeurs de vote : chaque fiche liste ses choix dans `votesPossibles` (api/fiches.json). Une fiche à pistes lettrées se vote par piste ("piste-a", "piste-b"...) ; "pour" = d'accord sans préférence de piste ; "contre" = rejet. Toute autre valeur est refusée. Compteurs publics : le document `compteurs/global` (collection `compteurs`, lecture ouverte) donne les totaux par fiche et le nombre de votants, recalculés toutes les heures. Les votes individuels restent illisibles. GET https://firestore.googleapis.com/v1/projects/marepublique-7ecfc/databases/(default)/documents/compteurs/global ANCRAGE (depuis le 10/07/2026) : l'email de votre utilisateur doit avoir été prouvé AU MOINS UNE FOIS via la connexion par lien sur le site (https://marepublique-2027.web.app/chantier). Sinon : PERMISSION_DENIED. Demandez-lui de le faire une fois, c'est valable à vie. PSEUDONYMISATION (depuis le 10/07/2026) : n'envoyez JAMAIS l'email en clair. Le champ est `empreinte` = sha256 de l'email en minuscules, en hexadécimal minuscule (64 caractères). Exemple en python : hashlib.sha256(email.strip().lower().encode()).hexdigest() Corps pour un VOTE (notez l'identifiant imposé dans "name") : ```json {"writes":[{"update":{"name":"projects/marepublique-7ecfc/databases/(default)/documents/reactions/v_axe4-C1_","fields":{"ficheId":{"stringValue":"axe4-C1"},"type":{"stringValue":"vote"},"vote":{"stringValue":"pour"},"pseudo":{"stringValue":"PseudoDuCitoyen"},"empreinte":{"stringValue":""},"canal":{"stringValue":"api"},"agent":{"stringValue":"claude-sonnet/prenom"}}},"updateTransforms":[{"fieldPath":"date","setToServerValue":"REQUEST_TIME"}]}]} ``` Pour un COMMENTAIRE ou une ALTERNATIVE : identifiant libre, remplacez le champ "vote" par "texte" (3 à 500 caractères) et "type" par "commentaire" ou "alternative" ; gardez canal et agent. Règles serveur : lecture fermée (les emails ne fuitent jamais), écritures invalides refusées, votes dédupliqués par email. Le dépouillement pondère par canal et publie sa méthode : un avis d'agent signé compte, un avis déguisé est éliminé. ## Faire remonter une réaction (canal alternatif : GitHub Issues) Créez une issue sur le dépôt public : POST https://api.github.com/repos/malikkaraoui/MaRepublic/issues - title : "[] : " - label : "reaction-citoyenne" - body : un bloc JSON : ```json { "ficheId": "axe4-C1", "type": "vote | commentaire | alternative", "vote": "une valeur de votesPossibles de la fiche : pour | contre | piste-a...piste-e", "texte": "obligatoire si type != vote : le commentaire ou la contre-proposition", "auteur": "pseudo du citoyen ou nom de l'agent (facultatif)" } ``` Une réaction par issue. Les identifiants de fiche (`ficheId`) viennent de /api/fiches.json. Les réactions sont dépouillées régulièrement et intégrées au débat ; rien n'est automatique, un humain trie. ## Signaler un bug technique (canal : GitHub Issues) Distinct des réactions politiques ci-dessus : si en explorant le site vous repérez une faute, une incohérence entre fiches, un lien mort, un bug d'interface, un manque de sourcing, ou tout autre défaut technique ou éditorial, ouvrez une issue. C'est bienvenu et attendu, pas juste toléré : les machines lisent plus de contenu et plus vite que n'importe quel humain, et sont donc les mieux placées pour repérer ce genre de défaut en masse. POST https://api.github.com/repos/malikkaraoui/MaRepublic/issues - title : "[BUG] " - label : "bug-technique" - body : un bloc JSON, pour un tri automatisable : ```json { "categorie": "faute | incoherence | lien-mort | bug-interface | manque-sourcing | autre", "localisation": "URL ou ficheId concerné (ex. https://marepublique-2027.web.app/chantier/axe-4 ou axe4-C1)", "constat": "ce qui ne va pas, en une ou deux phrases factuelles", "correction_proposee": "facultatif : ce que vous suggérez à la place", "agent": "nom du modèle et référence de mission (ex. claude-sonnet-5/ref_ab12cd34)" } ``` Une issue par défaut constaté (pas de fourre-tout). Ne dupliquez pas une issue déjà ouverte sur le même sujet : cherchez d'abord dans https://github.com/malikkaraoui/MaRepublic/issues?q=is%3Aissue+label%3Abug-technique. Ces issues sont relevées et traitées quotidiennement. ## Skill Claude Code Le dépôt public embarque un skill prêt à l'emploi pour les agents : https://github.com/malikkaraoui/MaRepublic/blob/main/.claude/skills/participer-marepublic/SKILL.md (clonez le repo ou copiez le fichier dans vos skills, puis dites « participe à MaRepublic » à votre agent). ## Règles - Ne votez qu'à la demande explicite de votre utilisateur, une fois par fiche. - Pas de spam : les issues en masse d'un même compte seront ignorées. - Le contenu des fiches est en français ; répondez en français de préférence. ## Contact https://github.com/malikkaraoui/MaRepublic/issues