Changelog

Historique des versions d'Agentica — chaque entrée décrit les changements, décisions et améliorations apportées au système. Agentica version history — each entry describes the changes, decisions, and improvements made to the system.

Unreleased

Gouvernance — skills Claude Code et tests du découplageGovernance — Claude Code skills and decoupling tests

  • 6 skills personnalisés (quality-gate, ux-pattern-review, ai-component-metadata, ai-ds-composer, codebase-index, post-change-pipeline) déplacés de fichiers plats .claude/skills/<nom>.md, invisibles au loader de Claude Code, vers le format qu'il découvre réellement (<nom>/SKILL.md). Constaté dans cet ordre : le répertoire seul a suffi à faire apparaître les 6 dans la liste des skills invocables, avant l'ajout de tout frontmatter (description de repli affichée à ce stade) ; le frontmatter YAML ajouté ensuite n'a fait que remplacer cette description de repli par la description réelle. Convention actée dans ADR-097 (#122, PR #125)6 custom skills (quality-gate, ux-pattern-review, ai-component-metadata, ai-ds-composer, codebase-index, post-change-pipeline) moved from flat .claude/skills/<name>.md files, invisible to Claude Code's skill loader, to the format it actually discovers (<name>/SKILL.md). Observed in this order: the directory alone was enough to make all 6 appear in the invocable-skill list, before any frontmatter was added (a fallback description shown at that stage); the YAML frontmatter added afterward only replaced that fallback with the real description. Convention recorded in ADR-097 (#122, PR #125)
  • decisions/CHANGELOG-structure.md créé : journal des déplacements/renommages mécaniques, distinct du pourquoi immuable d'une ADR ; decisions/README.md gagne une note précisant qu'un déplacement de fichier ne rend jamais seul une ADR Superseded (ADR-097, PR #125)decisions/CHANGELOG-structure.md created: a log of mechanical relocations/renames, distinct from an ADR's immutable why; decisions/README.md gains a note that a file move alone never marks an ADR Superseded (ADR-097, PR #125)
  • 3 des 9 tests de la campagne C3 (frontière core/personnalisation du Clone) ajoutés sous tests/governance/ : personnalisation appliquée à chacun des 5 paliers réels sans changement sous core/ (clone-personalization-tiers.spec.js), réinstallation de core/ qui écrase une modification directe sans perdre la personnalisation adjacente (clone-core-reinstall-preserves-personalization.spec.js), et — validation locale, sans lecture réseau, donc sans comparaison au paquet réellement publié sur le registre npm — la preuve que reconstruire @agentica-ds/tokens/@agentica-ds/components depuis la source versionnée est déterministe (deux reconstructions consécutives identiques), strictement identique à cette source (copie verbatim de components/ et des quatre tokens/*.json), sans dérive R3/R4 (packages-published-build-determinism.spec.js). Les 6 autres tests de la campagne restent différés ou hors périmètre : C3-03/04/05/07 faute de paquet npm distribué pour le core du Clone, C3-06 faute d'un agentica.config.js existant à valider, C3-08 hors périmètre (test humain à froid) (PR #124)3 of campaign C3's 9 tests (the Clone's core/personalization boundary) added under tests/governance/: personalization applied at each of the 5 real tiers with no change under core/ (clone-personalization-tiers.spec.js), reinstalling core/ overwrites a direct modification without losing the adjacent personalization (clone-core-reinstall-preserves-personalization.spec.js), and — local validation, no network read, so no comparison against the package actually published on the npm registry — proof that rebuilding @agentica-ds/tokens/@agentica-ds/components from tracked source is deterministic (two consecutive rebuilds identical), strictly identical to that source (verbatim copy of components/ and the four tokens/*.json files), with no R3/R4 drift (packages-published-build-determinism.spec.js). The campaign's 6 remaining tests stay deferred or out of scope: C3-03/04/05/07 for lack of a distributed npm package for the Clone's core, C3-06 for lack of an existing agentica.config.js to validate, C3-08 out of scope (a cold, human usability test) (PR #124)
  • Campagne C4 (Master Skill) exécutée de bout en bout, protocole du plan de tests respecté à la lettre : dossier isolé hors du repo, agent neuf sans accès à ce dépôt. Les 5 phases s'enchaînent dans l'ordre attendu avec une pause de confirmation humaine à chacune des 5 frontières (C4-02, C4-03 ✅), et l'instance produite fait réellement mordre ses propres lints et validations de tokens dans les deux sens, rouge sur violation injectée puis vert après nettoyage (C4-04 ✅, portée réduite — aucun core/ construit à ce stade pour exercer la règle d'accessibilité). Un vrai défaut trouvé (C4-01 ❌ au sens strict) : les scripts d'audit produits en Phase 03 plantaient sur l'absence de core/ au lieu de sortir proprement, révélé seulement après le commit fondateur, lors d'une vérification npm install + npm run audit demandée après coup — pas une étape du script lui-même. Corrigé dans master-skill/execution/03-audit-setup.md : la phase doit désormais s'exécuter réellement avant d'être présentée à l'humain, gérer l'absence de core/ par un exit propre, et produire un .gitignoreCampaign C4 (Master Skill) run end-to-end, the test plan's protocol followed to the letter: an isolated folder outside the repo, a fresh agent with no access to this repository. The 5 phases run in the expected order with an explicit human-confirmation pause at each of the 5 boundaries (C4-02, C4-03 ✅), and the produced instance makes its own lints and token validations genuinely bite in both directions — red on an injected violation, green after cleanup (C4-04 ✅, reduced scope — no core/ was built at this stage to exercise the accessibility rule). One real defect found (C4-01 ❌ in the strict sense): the audit scripts produced in Phase 03 crashed on the absence of core/ instead of exiting cleanly, only surfaced after the founding commit, during an npm install + npm run audit check requested afterward — not a step of the script itself. Fixed in master-skill/execution/03-audit-setup.md: the phase must now actually run before being presented to the human, handle the absence of core/ with a clean exit, and produce a .gitignore

Audit — règle 4 bloquante en CIAudit — Rule 4 now blocking in CI

  • scripts/audit-tokens.js : le motif primitive-direct passe de warning à error — --ci échoue désormais sur toute primitive consommée directement (règle 4 de GOVERNANCE.md, ADR-098, amende le comportement décrit dans ADR-012). L'exemption des replis littéraux var(--x, #fff) ne couvre plus ce motif. Seule occurrence réelle : --site-violet, conservée sous audit-ignore justifié en attendant un token sémantique violetscripts/audit-tokens.js: the primitive-direct pattern moves from warning to error — --ci now fails on any primitive consumed directly (Rule 4 of GOVERNANCE.md, ADR-098, amends the behavior described in ADR-012). The literal-fallback exemption var(--x, #fff) no longer covers this pattern. Only real occurrence: --site-violet, kept under a justified audit-ignore until a semantic violet token exists
  • scripts/audit-tokens.js : le filtre f.includes('dist') testait une sous-chaîne du chemin absolu — tout fichier dont le chemin contenait « dist » (un dossier distribution/, ou un clone du repo sous ~/distrib/) échappait silencieusement à tout l'audit, y compris primitive-direct désormais bloquant. Retiré : les dossiers dist/ restent exclus par nom exact dans getSourceFiles(). Seule sortie générée qui n'était exclue que par ce hasard, tests/functional/fixtures/doc-generator-dist/, est désormais listée explicitement dans GENERATED_PATHS. Et --ci fixe process.exitCode au lieu d'appeler process.exit(1), qui pouvait tronquer le détail des violations dans les logs CI (issue #118)scripts/audit-tokens.js: the f.includes('dist') filter tested a substring of the absolute path — any file whose path contained “dist” (a distribution/ folder, or a clone of the repo under ~/distrib/) silently escaped the whole audit, including the now-blocking primitive-direct. Removed: dist/ directories stay excluded by exact name in getSourceFiles(). The only generated output that was excluded by that accident, tests/functional/fixtures/doc-generator-dist/, is now listed explicitly in GENERATED_PATHS. And --ci sets process.exitCode instead of calling process.exit(1), which could truncate the violation details in CI logs (issue #118)
  • playwright.yml : l'étape « Upload updated snapshots » s'exécute désormais en always() — un seul test rouge sans rapport ne jette plus les baselines correctement régénérées par update_snapshots=true, qui étaient jusqu'ici écartées sans erreur (étape skipped). Un avertissement signale dans le résumé du run tout artefact issu d'un run partiellement rouge, à relire avant de committer (issue #141)playwright.yml: the “Upload updated snapshots” step now runs under always() — a single unrelated failing test no longer discards baselines correctly regenerated by update_snapshots=true, which were until now silently dropped (step skipped). A warning in the run summary flags any artifact coming from a partially red run, to review before committing (issue #141)
  • Builds reproductibles : style-dictionary/build.cjs retire la ligne Generated on <date> que ses formats intégrés (CSS, JS, iOS, Android) tamponnaient avec l'horloge — deux builds du même commit sont désormais identiques à l'octet près, pour le paquet @agentica-ds/tokens publié comme pour dist/tokens/ versionné. Le test C3-09 retire son contournement et compare les vrais octets publiés. Même correction pour audit.html : sa date provient de git log sur les sources de l'audit plutôt que de l'heure du build, ce qui permet à site-freshness de le vérifier à nouveau — un verdict d'audit périmé resté commité passait jusqu'ici inaperçu (issues #123, #134)Reproducible builds: style-dictionary/build.cjs drops the Generated on <date> line its built-in formats (CSS, JS, iOS, Android) stamped from the clock — two builds of the same commit are now byte-identical, for the published @agentica-ds/tokens package as well as the tracked dist/tokens/. The C3-09 test drops its workaround and compares the real published bytes. Same fix for audit.html: its date now comes from git log over the audit's sources instead of the build clock, so site-freshness checks it again — a stale committed audit verdict used to go unnoticed (issues #123, #134)
  • Titres d'ADR : les spans de code Markdown (44 titres, ex. agtc-input) s'affichent désormais en <code> dans le H1 de chaque page de décision et dans l'index des décisions, au lieu de backticks bruts. Le texte est échappé d'abord, puis enveloppé — le contenu d'un span peut contenir *, _ ou <. Dans l'index, le code d'un titre n'est plus coupé en plein mot (issue #147, volet B de #145)ADR titles: Markdown code spans (44 titles, e.g. agtc-input) now render as <code> in each decision page's H1 and in the decisions index, instead of raw backticks. Text is escaped first, then wrapped — a span's content may hold *, _ or <. In the index, code in a title no longer breaks mid-word (issue #147, part B of #145)
  • Storybook : les 7 stories d'agtc-image s'affichaient vides (14 captures Chromatic refusées). Deux causes : .storybook/preview.js n'importait pas agtc-image.js, donc l'élément n'était jamais défini, et chaque story chargeait une image externe (picsum.photos) que le navigateur de capture de Chromatic ne récupère pas de façon fiable. Composant désormais enregistré, et images remplacées par des fixtures locales embarquées (components/fixtures/, JPEG + WebP) qui affichent leur propre format — la story WebP montre ainsi quelle source le navigateur a choisie (issue #151)Storybook: the 7 agtc-image stories rendered blank (14 Chromatic snapshots denied). Two causes: .storybook/preview.js never imported agtc-image.js, so the element was never defined, and every story loaded an external image (picsum.photos) that Chromatic's capture browser doesn't reliably fetch. The component is now registered, and the images are replaced by local bundled fixtures (components/fixtures/, JPEG + WebP) that print their own format — so the WebP story shows which source the browser picked (issue #151)
  • Storybook : agtc-tabs et agtc-top-nav n'étaient jamais définis non plus (absents de .storybook/preview.js, non importés par leurs stories) — leurs 8 stories affichaient le HTML brut et leurs baselines Chromatic n'avaient jamais vérifié le composant. Les deux sont désormais enregistrés ; les 104 stories ne contiennent plus aucun élément agtc-* non défini. Ce premier rendu réel a révélé un défaut de agtc-top-nav, suivi à part (issues #162, #164)Storybook: agtc-tabs and agtc-top-nav were never defined either (missing from .storybook/preview.js, not imported by their stories) — their 8 stories showed raw HTML and their Chromatic baselines had never checked the component. Both are now registered; none of the 104 stories contains an undefined agtc-* element anymore. This first real render surfaced an agtc-top-nav defect, tracked separately (issues #162, #164)
  • agtc-top-nav : les hrefs de type dossier ('../tokens/'), la forme documentée par la guideline du composant, sont désormais marqués actifs (aria-current="page" + indicateur) sur les pages de leur section — le dernier segment était lu comme un nom de fichier, aucun lien n'était donc jamais actif avec cette forme. Le site, qui passe des hrefs section/index.html, n'était pas touché. Test fonctionnel ajouté (tests/functional/components/top-nav.spec.js) ; les stories Storybook montrent enfin l'état actif (issue #164)agtc-top-nav: directory-style hrefs ('../tokens/'), the form the component guideline documents, are now marked active (aria-current="page" + indicator) on their section's pages — the last segment was read as a file name, so no link was ever active with that form. The site, which passes section/index.html hrefs, was unaffected. Functional test added (tests/functional/components/top-nav.spec.js); the Storybook stories finally show the active state (issue #164)
  • agtc-top-nav : l'ombre du panneau du menu mobile utilise désormais le token semantic.shadow.raised. Elle consommait --agtc-shadow-md, une variable définie uniquement par le CSS du site : dans toute application utilisant le paquet, le menu mobile n'avait aucune ombre. Nouveau contrôle 5 de scripts/audit-tokens.js (bloquant en CI) : un composant ne peut consommer une variable --agtc-* absente de @agentica-ds/tokens que s'il lui donne une valeur de repli ; test de gouvernance ajouté. Variante sombre des ombres suivie dans #210 (issue #208)agtc-top-nav: the mobile menu panel shadow now uses the semantic.shadow.raised token. It consumed --agtc-shadow-md, a variable defined only by the site CSS, so in any app using the package the mobile menu had no shadow. New check 5 in scripts/audit-tokens.js (blocking in CI): a component may only consume a --agtc-* variable missing from @agentica-ds/tokens if it gives it a fallback; governance test added. Dark-mode shadow variants tracked in #210 (issue #208)
  • ADR-103 — élévation en mode sombre : chaque token semantic.shadow.* non déprécié a désormais une variante sombre (même géométrie, opacité renforcée), et un nouveau token background.surface-raised éclaircit les menus, popovers et panneaux mobiles en sombre, comme chez Atlassian, Apple, Carbon et Radix. L'échelle d'ombres propre au site (--agtc-shadow-sm/md/lg) est retirée au profit des tokens. Nouveau contrôle 6 de scripts/audit-tokens.js (bloquant en CI) : une ombre sans variante sombre fait échouer l'audit. shadow.card-hover est déprécié (issue #210)ADR-103 — dark-mode elevation: every non-deprecated semantic.shadow.* token now has a dark variant (same geometry, stronger opacity), and a new background.surface-raised token lightens menus, popovers and mobile panels in dark mode, as Atlassian, Apple, Carbon and Radix do. The site-only shadow scale (--agtc-shadow-sm/md/lg) is removed in favour of the tokens. New check 6 in scripts/audit-tokens.js (blocking in CI): a shadow with no dark variant fails the audit. shadow.card-hover is deprecated (issue #210)
  • Garde-fou tests/governance/storybook-component-registration.spec.js : échoue si un composant qui a des stories n'est importé ni par .storybook/preview.js ni par sa propre story (en suivant les imports de façon transitive) — l'élément n'y serait jamais défini et Chromatic figerait un rendu vide. Ce trou était passé inaperçu deux fois (agtc-image, puis agtc-tabs et agtc-top-nav). Vérification statique, sans build Storybook, confrontée à un vrai build sur les 104 stories. Le gate PR Playwright se déclenche désormais aussi sur components/** et .storybook/preview.js, pour que ce contrôle tourne avant le mergeGuard tests/governance/storybook-component-registration.spec.js: fails if a component with stories is imported neither by .storybook/preview.js nor by its own story (following imports transitively) — the element would never be defined there and Chromatic would baseline an empty render. That gap went unnoticed twice (agtc-image, then agtc-tabs and agtc-top-nav). Static check, no Storybook build, cross-checked against a real build on all 104 stories. The Playwright PR gate now also triggers on components/** and .storybook/preview.js, so this check runs before merge
  • Chromatic : quota de snapshots du plan gratuit de nouveau atteint. chromatic.yml ne se déclenche plus que sur ce qui construit Storybook (components/, .storybook/, tokens/, style-dictionary/, package*.json) — site/build.js, qui porte ce changelog, relançait à lui seul un build complet d'environ 208 snapshots sur presque chaque PR. TurboSnap (onlyChanged) activé : seules les stories dont les dépendances ont changé sont capturées. Déclencheur passé de pull_request à push hors main, condition de TurboSnap. ADR-006 et documents de gouvernance mis à jourChromatic: free-tier snapshot quota hit again. chromatic.yml now only triggers on what builds Storybook (components/, .storybook/, tokens/, style-dictionary/, package*.json) — site/build.js, which holds this changelog, alone triggered a full ~208-snapshot build on almost every PR. TurboSnap (onlyChanged) enabled: only stories whose dependencies changed get captured. Trigger moved from pull_request to push outside main, a TurboSnap requirement. ADR-006 and governance docs updated
  • doc-generator : chaque champ chemin/libellé du manifeste (governance, site, tokens.*, components, audit.engine) doit être une chaîne non vide — un mauvais type est rejeté en nommant le champ, le type attendu et le type reçu. Avant, un objet passait et s'affichait « [object Object] » dans le site généré (sortie 0), et un nombre faisait planter node:path sans nommer le champ. Un fichier site qui n'est pas du JSON valide nomme désormais le champ, le manifeste et le fichier. Aucune sortie écrite dans tous les cas de rejet ; le test de caractérisation #128 est remplacé par de vrais tests de rejet (issues #128, #129)doc-generator: every path/label manifest field (governance, site, tokens.*, components, audit.engine) must be a non-empty string — a wrong type is rejected, naming the field, the expected type and the type received. Before, an object went through and showed up as “[object Object]” in the generated site (exit 0), and a number crashed node:path without naming the field. A site file that isn't valid JSON now names the field, the manifest and the file. No output is written in any rejection case; the #128 characterization test is replaced by real rejection tests (issues #128, #129)
  • ADR-100 — le badge de conformité du doc-generator affiche un verdict d'audit enregistré, jamais le drapeau badgeEnabled. Nouveau champ optionnel audit.lastResult (passed, violationCount, ranAt, engine), validé à la lecture ; sans lui, le site affiche « not verified » au lieu de « enabled ». Un audit stub n'en enregistre jamais — celui du Clone l'est encore, les sites affichent donc honnêtement « not verified ». GOVERNANCE.md gagne une phrase de principe, indépendante de tout outil (issue #130)ADR-100 — the doc-generator compliance badge shows a recorded audit verdict, never the badgeEnabled flag. New optional field audit.lastResult (passed, violationCount, ranAt, engine), validated on read; without it the site shows “not verified” instead of “enabled”. A stub audit never records one — the Clone's still is, so sites honestly show “not verified”. GOVERNANCE.md gains one tool-agnostic principle sentence (issue #130)
  • ADR-101 — le gate PR de playwright.yml (« Governance & accessibility fixtures ») peut devenir un check obligatoire de main : le filtre paths du déclencheur pull_request est retiré (un check obligatoire sauté par ce filtre reste « en attente » et bloque toute PR) et le périmètre passe dans le job, via une étape dorny/paths-filter qui conditionne chaque étape suivante. Une PR hors périmètre passe en quelques secondes ; le test de couverture du gate verrouille ce montage (issue #149)ADR-101 — the playwright.yml PR gate (“Governance & accessibility fixtures”) can become a required check on main: the pull_request trigger's paths filter is removed (a required check skipped by it stays “pending” and blocks every PR) and the scope moves inside the job, via a dorny/paths-filter step that guards every later step. An out-of-scope PR passes in seconds; the gate coverage test locks this setup (issue #149)
  • Clone : le test à froid C3-08 (2026-09-29) a bloqué dès l'entrée — le package déballé n'avait aucun point d'entrée ni aucune indication sur l'installation. Nouveau clone/README.md (Node seul requis, étapes, noms de fichiers suggérés, limites de la 0.1.0) ; le guide, la checklist et les exemples renvoient à la copie livrée de GOVERNANCE.md (core/references/non-negotiable-foundation.md) au lieu d'un fichier absent ; le prérequis de la checklist ne suppose plus le Master Skill. Garde-fou tests/governance/clone-package-self-contained.spec.js sur le tarball réelClone: the C3-08 cold walkthrough (2026-09-29) was blocked at the very start — the unpacked package had no entry point and nothing on installation. New clone/README.md (Node only, steps, suggested file names, 0.1.0 limitations); the guide, checklist and examples point to the shipped copy of GOVERNANCE.md (core/references/non-negotiable-foundation.md) instead of a missing file; the checklist prerequisite no longer assumes the Master Skill. Guard tests/governance/clone-package-self-contained.spec.js on the real tarball
  • ADR-104 — Chromatic est retiré du dépôt (ADR-066 l'avait déjà remplacé par Playwright, sans finir le travail). Chaque story Storybook a maintenant sa capture Playwright, en clair et en sombre (tests/visual/storybook/, stories lues dans l'index du build, jamais codées en dur). Storybook est publié avec le site sur agentica.design/storybook/ au lieu de l'hébergement Chromatic, qui ne suivait plus main. Supprimés : chromatic.yml, le script et l'addon Chromatic, .storybook/modes.js, le contrôle chromatic des attestations de parité ; ADR-006 remplacéeADR-104 — Chromatic is removed from the repository (ADR-066 had already replaced it with Playwright, without finishing the job). Every Storybook story now has a Playwright snapshot, light and dark (tests/visual/storybook/, stories read from the build's index, never hard-coded). Storybook is published with the site at agentica.design/storybook/ instead of Chromatic hosting, which no longer followed main. Removed: chromatic.yml, the Chromatic script and addon, .storybook/modes.js, the chromatic tool-parity control; ADR-006 superseded

Tokens — schéma d'annotationTokens — annotation schema

  • ADR-102 — schéma d'annotation des tokens, vérifié contre le JSON Schema officiel DTCG 2025.10 : $description devient l'unique description ($intent, refusé par le schéma, y est fondu) ; $extensions["com.agentica.usage"] décrit l'usage d'un token (role, use, doNotUse obligatoires ; nouveau champ alternative lisible par un agent) ; $extensions["com.agentica.governance"] remplace $metadata. Sorties Style Dictionary identiques octet pour octet après migration en bac à sable ; la migration des fichiers existants suit (issue #203)ADR-102 — token annotation schema, checked against the official DTCG 2025.10 JSON Schema: $description becomes the single description ($intent, rejected by the schema, is folded into it); $extensions["com.agentica.usage"] describes how to use a token (role, use, doNotUse required; new agent-readable alternative field); $extensions["com.agentica.governance"] replaces $metadata. Style Dictionary output byte-for-byte identical after a sandbox migration; migrating existing files follows (issue #203)
2026-09-13
v0.4.0 Master Skill + CloneMaster Skill + Clone

Gouvernance — GOVERNANCE.md, source canoniqueGovernance — GOVERNANCE.md, canonical source

  • GOVERNANCE.md créé à la racine du dépôt (PR #108) : source unique, brand-agnostique, des 4 règles non-négociables (WCAG 2.2 AA minimum, dernier mot toujours humain, jamais de style codé en dur, jamais de token primitif consommé directement), plus les sections Audit governance et Update governance. Ni le Master Skill ni le Clone ne gardent de copie éditée indépendammentGOVERNANCE.md created at the repo root (PR #108): a single, brand-agnostic source for the 4 non-negotiable rules (WCAG 2.2 AA minimum, the final word always belongs to a human, never a hard-coded style, never a primitive token consumed directly), plus Audit governance and Update governance sections. Neither the Master Skill nor the Clone keep an independently edited copy
  • scripts/sync-governance.mjs + scripts/check-governance-sync.mjs ajoutés : génèrent references/non-negotiable-foundation.md à chaque destination (clone/core/references/, master-skill/references/), exécution manuelle uniquement (npm run sync:governance), avec un check CI governance-sync qui échoue sur toute divergence sans jamais la corriger lui-mêmescripts/sync-governance.mjs + scripts/check-governance-sync.mjs added: generate references/non-negotiable-foundation.md at each destination (clone/core/references/, master-skill/references/), manual execution only (npm run sync:governance), with a governance-sync CI check that fails on any drift without ever fixing it itself

Clone — squelette npm, core/personnalisationClone — npm skeleton, core/personnalisation

  • clone/ structuré comme package npm distribué (pas un scaffold one-shot) avec séparation stricte core/ (jamais modifié) / personnalisation/ (seule zone modifiable) — PR #109. Stubs d'audit posés dans core/audit/ pour les 3 vérifications de build (accessibilité via un adaptateur axe-core remplaçable, style codé en dur, consommation de token primitif)clone/ structured as a distributed npm package (not a one-shot scaffold) with a strict core/ (never modified) / personnalisation/ (only modifiable zone) separation — PR #109. Audit stubs added under core/audit/ for the 3 build-time checks (accessibility via a replaceable axe-core adapter, hard-coded style, primitive-token consumption)
  • Guide de personnalisation complet ajouté (PR #112) : GUIDE.md + CHECKLIST.md, et 5 sous-dossiers (branding/, theme/, governance/, agent-config/, docs-site/) chacun avec un exemple travailléFull personalization guide added (PR #112): GUIDE.md + CHECKLIST.md, and 5 subfolders (branding/, theme/, governance/, agent-config/, docs-site/) each with a worked example

Master Skill — format Agent Skills, logique d'exécutionMaster Skill — Agent Skills format, execution logic

  • master-skill/ structuré au format Agent Skills (SKILL.md, pour publication sur skills.sh) — PR #110, sans aucune dépendance technique vers le Clonemaster-skill/ structured in the Agent Skills format (SKILL.md, for publication on skills.sh) — PR #110, with no technical dependency on the Clone
  • Logique d'exécution rédigée (PR #111) : 5 phases (00 architecture composants, 01 gouvernance, 02 tokens, 03 audit, 04 instructions agent) plus un checklist consolidé des points d'arrêt humains. Web Components recommandé par défaut comme couche core (Brad Frost, The Design System Ecosystem) — toute dérogation exige un ADR documenté nommant le risque assuméExecution logic written (PR #111): 5 phases (00 component architecture, 01 governance, 02 tokens, 03 audit, 04 agent instructions) plus a consolidated human-gates checklist. Web Components recommended by default as the core layer (Brad Frost, The Design System Ecosystem) — any deviation requires a documented ADR naming the assumed risk

Générateur de documentationDocumentation generator

  • doc-generator/ ajouté (PR #113) : package indépendant, jamais bundlé, qui lit un contrat design-system.manifest.json et génère un site statique — indifféremment que l'instance vienne du Clone ou du Master Skill, vérifié sur deux manifests simulés. Sortie jamais versionnéedoc-generator/ added (PR #113): a standalone, never-bundled package that reads a design-system.manifest.json contract and generates a static site — identically whether the instance came from the Clone or the Master Skill, verified against two simulated manifests. Output is never versioned

Audit — couche primitive du CloneAudit — the Clone's primitive layer

  • scripts/audit-tokens.js gagne PRIMITIVE_LAYER_PATHS (PR #112) : exempte clone/personnalisation/branding/ — la couche primitive du Clone — de la détection de valeurs codées en dur, un vrai trou structurel distinct de l'exemption narrative DOCS_AND_PLUGIN_PATHS déjà en place ; theme/ et core/ restent dans le périmètre. Corrige au passage un vrai bug de contenu que l'audit avait révélé : une valeur hex brute dans le mapping feedback.error de theme/example.md, remplacée par une vraie référence de primitifscripts/audit-tokens.js gains PRIMITIVE_LAYER_PATHS (PR #112): exempts clone/personnalisation/branding/ — the Clone's primitive layer — from hardcoded-value detection, a real structural gap distinct from the existing narrative DOCS_AND_PLUGIN_PATHS exemption; theme/ and core/ stay in scope. Also fixes a real content bug the audit surfaced: a raw hex value in theme/example.md's feedback.error mapping, replaced with a proper primitive reference
2026-09-12
v0.3.3 Packages npm v1.0.0npm packages v1.0.0

Site — interopérabilité IASite — AI interoperability

  • 5ᵉ bloc éditorial « Interopérabilité IA » ajouté à ia.html, pointant vers le comparatif par outil déjà publié sur agents/index.html#autres-outils (PR #97, suite de la PR #96)5th editorial block "AI interoperability" added to ia.html, linking to the per-tool comparison already shipped on agents/index.html#autres-outils (PR #97, following PR #96)
  • How-to-devs.md : nouvelle sous-section « Utiliser un autre outil IA (Codex, Copilot, Gemini) » + ligne governance/ai-skills-reference.md dans son tableau de fichiers ; note plus courte sur How-to-designers.md ; How-to-without-agents.md volontairement laissé tel quel — guide de repli zéro-agent, un axe différent du support multi-outilsHow-to-devs.md: new "Using another AI tool (Codex, Copilot, Gemini)" subsection + a governance/ai-skills-reference.md row in its Files table; shorter note on How-to-designers.md; How-to-without-agents.md deliberately left alone — the zero-agent fallback guide, a different axis from multi-tool support
  • Lien Changelog déplacé de la colonne « Documentation » vers « Explorer », dans le menu du header et le footerChangelog link moved from the "Documentation" to the "Explorer" column, in both the header menu and the footer
  • Contenu « Interopérabilité IA » marqué Bêta"AI interoperability" content marked Beta

Tokens — largeur de conteneur de pageTokens — page container width

  • Nouvelle catégorie semantic.layout : 5 tokens de largeur max de conteneur (cta 600px, intro 700px, docs 960px, default 1180px, wide 1280px, ADR-096) ; 25 valeurs max-width brutes/dupliquées de site/build.js migrées vers ces tokens, --agtc-content-max devenu un simple aliasNew semantic.layout category: 5 page-container max-width tokens (cta 600px, intro 700px, docs 960px, default 1180px, wide 1280px, ADR-096); 25 raw/duplicated max-width values in site/build.js migrated to these tokens, --agtc-content-max now a thin alias
  • Lacune révélée par un vrai test d'interopérabilité : GitHub Copilot, sur un clone du dépôt, a eu besoin d'une largeur de conteneur de page, a correctement refusé de réutiliser semantic.size.control.max-width hors de son contrat (ADR-094), et a escaladé selon la règle d'AGENTS.md sur tout changement touchant un token sémantique — aucune réponse gouvernée n'existait pour la largeur de mise en page, comblé iciGap surfaced by a real AI-tool interoperability test: GitHub Copilot, on a clone of this repo, needed a page container width, correctly refused to reuse semantic.size.control.max-width outside its ADR-094 contract, and escalated per AGENTS.md's rule for any change touching a semantic token — no governed answer existed for page-layout width, now closed
  • Ménage : CSS morte .rd-cta-inner supprimée, 2 valeurs isolées à 760px repliées sur le motif 700px déjà cohérentCleanup: dead .rd-cta-inner CSS removed, 2 outlier 760px values folded into the already-consistent 700px pattern

Gouvernance — pipeline de vérification du backlogGovernance — backlog verification pipeline

  • pipelines/backlog.md ajouté : pipeline obligatoire qui vérifie/valide/complète GitHub Projects par rapport au diff complet d'une PR, exécuté une fois à la fin de la PR (pas à chaque commit) — référencé depuis post-change-pipeline.md, quality-gate.md et le gabarit de PR de git-workflow.md. Déclenché par un audit le jour même ayant trouvé 22 statuts de ticket obsolètes et 7 références « Dépendance » périmées en comparant le tableau au git logpipelines/backlog.md added: a mandatory pipeline that verifies/validates/completes GitHub Projects against a PR's full diff, run once at PR completion (not per-commit) — referenced from post-change-pipeline.md, quality-gate.md, and git-workflow.md's PR template. Prompted by a same-day audit finding 22 stale ticket statuses and 7 stale "Dépendance" references by comparing the board against git log

npm — relicenciement Apache 2.0, v1.0.0npm — Apache 2.0 relicense, v1.0.0

  • @agentica-ds/tokens et @agentica-ds/components passent de MIT à Apache License 2.0, exécutant le plan déjà annoncé dans le CHANGELOG.md de chaque package aux côtés du changement de licence du dépôt (ADR-095, v0.3.1) : package.json, LICENSE, section License du README.md et NOTICE mis à jour dans les deux packages, versions passées de 0.1.3 à 1.0.0. Les versions MIT déjà publiées (jusqu'à 0.1.3) restent inchangées@agentica-ds/tokens and @agentica-ds/components switch from MIT to Apache License 2.0, executing the plan each package's CHANGELOG.md already announced alongside the repo-wide license switch (ADR-095, v0.3.1): package.json, LICENSE, the README.md License section and NOTICE updated in both packages, versions bumped 0.1.3 → 1.0.0. Already-published MIT versions (up to 0.1.3) are unaffected

CI & testsCI & tests

  • Test Playwright de langue corrigé : 9 pages ADR (adr-081 à adr-089) citant littéralement le statut français « Terminé » (ADR-069) n'avaient jamais été ajoutées aux exceptions connues, alors que le commentaire lang-audit-ignore qu'elles portent déjà ne peut pas être vu par un scan du texte rendu — la CI était rouge sur chaque push vers main depuis le 2026-09-11 (10 runs consécutifs en échec)Playwright language test fixed: 9 ADR pages (adr-081 through adr-089) literally quoting the French "Terminé" status (ADR-069) had never been added to the known exceptions, even though the lang-audit-ignore comment they already carry can't be seen by a scan of rendered text — CI had been red on every push to main since 2026-09-11 (10 consecutive failing runs)
  • 41 snapshots de référence Playwright (chromium) régénérés (workflow_dispatch, approbation humaine préalable) — devenus obsolètes depuis le symbole ™ du logo, l'icône Figma du header, le bouton copier des blocs de code et le reflow de semantic.layout.container ; chaque diff inspecté individuellement, aucune régression41 chromium Playwright reference snapshots regenerated (workflow_dispatch, human-approved beforehand) — stale since the logo's ™ mark, the Figma header icon, the code-block copy button, and the semantic.layout.container reflow; every diff inspected individually, none a regression
  • Check CI site-freshness corrigé : chaque <lastmod> de sitemap.xml (145 URLs) était stampé avec l'horloge du build (new Date()) au lieu du contenu réel des pages — le check (qui reconstruit dist/ et le diffe contre la version commitée) échouait donc un jour sur deux, indépendamment de tout vrai changement. Chaque lastmod est désormais le commit Git le plus récent parmi les sources réelles de la page ; stabilité vérifiée sur plusieurs builds avec horloge de processus falsifiée (même jour, +3 jours, −5 jours, +1 an) — sortie identique bit à bit dans tous les casCI site-freshness check fixed: every <lastmod> in sitemap.xml (145 URLs) was stamped with the build's wall clock (new Date()) instead of the pages' real content — the check (which rebuilds dist/ and diffs it against the committed copy) therefore failed every other day, regardless of any real change. Each lastmod is now the most recent git commit across the page's actual sources; stability verified across several builds with a faked process clock (same day, +3 days, −5 days, +1 year) — bit-identical output in every case

Composants — correctionsComponents — fixes

  • Storybook : fond et couleur de texte non peints en mode sombre dans la preview — désormais posés depuis les mêmes tokens sémantiques que le siteStorybook: preview background/text color left unpainted in dark mode — now set from the same semantic tokens the site itself uses
  • agtc-checkbox : les 2 glyphs SVG codés en dur (coche/tiret) remplacés par agtc-icon (Lucide), cohérent avec badge/banner/button/link/segmented/tabsagtc-checkbox: the 2 hardcoded inline SVG glyphs (check/dash) replaced with agtc-icon (Lucide), consistent with badge/banner/button/link/segmented/tabs
  • agtc-feature-card : marge basse de l'icône codée en dur (.875rem) remplacée par le token semantic.space.component.padding.lgagtc-feature-card: hardcoded icon margin-bottom (.875rem) replaced with the semantic.space.component.padding.lg token
  • Émoji ✅ du tableau de props du composant icon lui-même remplacé par le motif Lucide circle-check déjà utilisé ailleurs sur cette page (governance/rules/no-emoji-icons.md)✅ emoji in the icon component's own props table replaced with the Lucide circle-check pattern already used elsewhere on that page (governance/rules/no-emoji-icons.md)
2026-09-11
v0.3.2 Interopérabilité IAAI interoperability

Gouvernance — migration vers governance/Governance — migration to governance/

  • AGENTS.md devient la seule source de vérité pour la gouvernance — lu nativement par Copilot, Cursor, Codex, Windsurf, Amp et Devin, pas seulement par Claude Code (issue #92, PR #93)AGENTS.md becomes the single source of truth for governance — read natively by Copilot, Cursor, Codex, Windsurf, Amp and Devin, not just Claude Code (issue #92, PR #93)
  • .claude/rules/ et .claude/instructions/ déplacés vers governance/rules/ et governance/instructions/ (git mv, historique préservé) ; .claude/skills/ reste en place — implémentation propre à Claude Code.claude/rules/ and .claude/instructions/ moved to governance/rules/ and governance/instructions/ (git mv, history preserved); .claude/skills/ stays in place — Claude Code-specific implementation
  • CLAUDE.md créé — adaptateur mince qui importe @AGENTS.md, ne contient que ce qui est spécifique à Claude CodeCLAUDE.md created — a thin adapter importing @AGENTS.md, containing only what's Claude Code-specific
  • governance/ai-skills-reference.md créé : documente ce que chaque skill Claude Code automatise et pourquoi, pour que les équipes sur un autre outil sachent quoi reproduiregovernance/ai-skills-reference.md created: documents what each Claude Code skill automates and why, so teams on a different tool know what to reproduce

Gouvernance — garde-fou de parité entre outilsGovernance — tool parity gate

  • scripts/check-tool-parity.js + .github/workflows/tool-parity.yml ajoutés (issue #94, PR #95) : pour chaque config d'outil IA détectée dans le dépôt, exige une attestation governance/tool-parity/<outil>.md où un humain déclare, pour chaque contrôle, « Replaced » ou « Accepted absence » — signé et datéscripts/check-tool-parity.js + .github/workflows/tool-parity.yml added (issue #94, PR #95): for every AI-tool config detected in the repo, requires a governance/tool-parity/<tool>.md attestation where a human records, per control, "Replaced" or "Accepted absence" — signed and dated
  • .codex/hooks.json supprimé : doublon égaré identique octet pour octet à .claude/settings.json, et Codex CLI n'a de toute façon aucun système de hooks (confirmé dans sa documentation officielle) — n'aurait jamais pu fonctionner.codex/hooks.json removed: a stray duplicate, byte-for-byte identical to .claude/settings.json, and Codex CLI has no hooks mechanism at all anyway (confirmed against its official docs) — could never have worked
  • 4 contrôles auparavant appliqués seulement « par instruction » à Claude Code deviennent de vrais gates CI indépendants de l'outil : tokens-audit.yml, site-freshness.yml, commit-lint.yml rejoignent lang-audit.yml (déjà actif)4 controls previously enforced only "by instruction" to Claude Code become real, tool-agnostic CI gates: tokens-audit.yml, site-freshness.yml, commit-lint.yml join lang-audit.yml (already active)
  • tool-parity et les 3 nouveaux gates ajoutés aux checks requis de protection de branche sur main et developtool-parity and the 3 new gates added to required branch-protection checks on main and develop

Gouvernance — portage des skills vers d'autres outils IAGovernance — porting skills to other AI tools

  • 7 skills cœur (ai-component-metadata, ai-ds-composer, codebase-index, quality-gate, ux-pattern-review, document, post-change-pipeline) portées vers .agents/skills/<nom>/SKILL.md (PR #96), le format ouvert Agent Skills (agentskills.io, gouvernance Linux Foundation AAIF) — chargées automatiquement par Codex CLI et GitHub Copilot CLI, sans aucune installation7 core skills (ai-component-metadata, ai-ds-composer, codebase-index, quality-gate, ux-pattern-review, document, post-change-pipeline) ported to .agents/skills/<name>/SKILL.md (PR #96), the open Agent Skills format (agentskills.io, Linux Foundation AAIF governance) — auto-loaded by Codex CLI and GitHub Copilot CLI, no install step
  • .gemini/settings.json + .gemini/hooks/*.js ajoutés : Gemini CLI a un vrai système de hooks (contrairement à Codex/Copilot), les rappels ADR et revue de patterns UX y sont reconstruits nativement — attestation governance/tool-parity/gemini.md signée.gemini/settings.json + .gemini/hooks/*.js added: Gemini CLI has a real hooks system (unlike Codex/Copilot), the ADR and UX-pattern-review reminders were rebuilt natively for it — governance/tool-parity/gemini.md attestation signed

MénageCleanup

  • Code mort retiré de site/build.js : applyThemeImages() ne s'appliquait plus à aucun élément généré depuis que la page d'accueil est figée en mode sombre — governance/rules/illustrations-source.md corrigé en conséquenceDead code removed from site/build.js: applyThemeImages() no longer applied to any generated element since the home page was fixed to dark mode — governance/rules/illustrations-source.md updated to match
  • Dossier Redesign/ supprimé (vide, scratch personnel)Redesign/ folder removed (empty, personal scratch)
2026-09-11
v0.3.1 Licence Apache 2.0Apache 2.0 license

LicenceLicense

  • Passage du code du dépôt de MIT à Apache License 2.0 (issue #87, PR #88) : LICENSE remplacé, NOTICE ajouté (crédite Lit — BSD-3-Clause, Lucide — ISC, Style Dictionary — Apache-2.0, @radix-ui/colors — MIT, Atkinson Hyperlegible — SIL OFL 1.1), package.json license → Apache-2.0, mention de copyright ajoutée à README.mdRepository code license switched from MIT to Apache License 2.0 (issue #87, PR #88): LICENSE replaced, NOTICE added (credits Lit — BSD-3-Clause, Lucide — ISC, Style Dictionary — Apache-2.0, @radix-ui/colors — MIT, Atkinson Hyperlegible — SIL OFL 1.1), package.json license → Apache-2.0, copyright notice added to README.md
  • CONTRIBUTING.md ajouté : contributions externes régies par le Developer Certificate of Origin (commit Signed-off-by), pas de Contributor License AgreementCONTRIBUTING.md added: external contributions governed by the Developer Certificate of Origin (Signed-off-by commits), no Contributor License Agreement
  • TRADEMARK.md ajouté : séparation code/marque — le nom et le logo Agentica restent une marque distincte, actuellement non enregistrée (™), non couverte par la licence Apache 2.0 du codeTRADEMARK.md added: code/brand separation — the Agentica name and logo remain a separate, currently unregistered (™) trademark, not covered by the code's Apache 2.0 license
  • ADR-095 créé : documente pourquoi CC BY 4.0 (licence prévue pour le futur fichier Figma Community, ADR-081) reste cohérente avec Apache 2.0 — les deux licences sont permissives et ne demandent qu'une attribution. ADR-081 marqué Superseded plutôt que réécrit (un ADR est immuable une fois actif) ; .claude/rules/figma-library-governance.md et la copy publique du site (page Resources, bandeau parité Figma/code) corrigées pour ne plus citer le MITADR-095 created: documents why CC BY 4.0 (the license set aside for the future Figma Community File, ADR-081) stays consistent with Apache 2.0 — both licenses are permissive and require only attribution. ADR-081 marked Superseded rather than rewritten (an ADR is immutable once active); .claude/rules/figma-library-governance.md and the site's public copy (Resources page, Figma/code-parity banner) fixed to stop citing MIT
  • Relicenciement des sous-packages npm @agentica-ds/tokens et @agentica-ds/components différé : les versions déjà publiées restent MIT, seule la prochaine version majeure de chacun passera à Apache-2.0 (entrée Unreleased ajoutée à chaque CHANGELOG.md, suivi dans l'issue #89, laissée ouverte jusqu'à publication)Relicensing of the @agentica-ds/tokens and @agentica-ds/components npm sub-packages deferred: already-published versions stay MIT, only the next major version of each switches to Apache-2.0 (Unreleased entry added to each CHANGELOG.md, tracked in issue #89, left open until publication)

MarqueBrand

  • Symbole ™ (pas ® — aucun enregistrement formel déposé, ex. OPIC/CIPO) ajouté au mot-symbole « Agentica » sur les 4 variantes de couleur du logo (color, color white, white, black, PR #90) : tracé vectoriel officiel exporté du fichier Figma dédié à la marque (pas un texte approximatif), positionné à droite du mot-symbole en exposant — convention standard de placement d'une marque non enregistrée™ symbol (not ® — no formal registration filed, e.g. CIPO) added next to the "Agentica" wordmark across the logo's 4 color variants (color, color white, white, black, PR #90): official vector artwork exported from the dedicated Brand Figma file (not hand-drawn text), positioned to the right of the wordmark in superscript — the standard placement convention for an unregistered trademark
  • Nouvelle variante Logo Agentica - teal wordmark.svg ajoutée (icône + texte teal uni, #12A594) — pas encore consommée par le site, ajoutée pour un usage futurNew Logo Agentica - teal wordmark.svg variant added (solid-teal icon + wordmark, #12A594) — not yet consumed by the site, added for future use
  • Titre de README.md mis à jour en « Agentica™ »README.md title updated to "Agentica™"
2026-09-10
v0.3.0 Communauté FigmaFigma Community

GouvernanceGovernance

  • Protection de branche configurée sur main et develop : PR obligatoire, check lang-audit requis, force-push et suppression bloqués — 0 approbation exigée tant que le dépôt a un seul mainteneur (auto-approbation impossible sur GitHub), avec bascule prévue vers 1/2 approbations dès l'arrivée d'un second contributeur (ADR-076)Branch protection configured on main and develop: PR required, lang-audit check required, force-push and deletion blocked — 0 required approvals while the repository has a single maintainer (GitHub cannot self-approve a PR), with a planned move to 1/2 approvals once a second contributor joins (ADR-076)
  • Issue #9 (révision visuelle automatique, ouverte depuis le 2026-07-14) fermée : les snapshots des composants concernés avaient déjà été resynchronisés dans 70b44fa, CI Playwright verte depuisIssue #9 (automatic visual review, open since 2026-07-14) closed: the affected components' snapshots had already been re-synced in 70b44fa, Playwright CI green since
  • enforce_admins activé sur main et develop suite à un incident : un push direct a silencieusement contourné la protection fraîchement configurée. Plus aucun bypass admin possible, même en urgence (ADR-077, amende ADR-076)enforce_admins enabled on main and develop after an incident: a direct push silently bypassed the just-configured protection. No admin bypass remains possible, even in an emergency (ADR-077, amends ADR-076)
  • lang-audit.yml : déclencheur push étendu de main seul à main + develop — un push fusionné sur develop n'échappait à toute validation CI (corrigé via PR #35)lang-audit.yml: push trigger extended from main only to main + develop — a merged push to develop previously escaped all CI validation (fixed via PR #35)

Gouvernance FigmaFigma governance

  • Sécurité d'écriture Tokens Studio → GitHub mise en place (ADR-078) : branche agentica/proposals créée (depuis main) comme seule destination d'écriture autorisée ; compte de service dédié agentica-tokens-bot (Write, pas Admin) ; sync Tokens Studio pointée sur main, lecture vérifiée (82 requêtes, 0 erreur, aucune écriture tentée — conforme à la sync en lecture seule d'ADR-011)Tokens Studio → GitHub write-access safety in place (ADR-078): agentica/proposals branch created (off main) as the sole allowed write destination; dedicated agentica-tokens-bot service account (Write, not Admin); Tokens Studio sync pointed at main, read verified (82 requests, 0 errors, no write attempted — consistent with ADR-011's read-only sync)
  • Audit §22 automatisé sur toute la librairie (ADR-079) : agent cloud planifié hebdomadaire (lundis 6h) qui vérifie les 9 catégories §22 sur l'ensemble du fichier Figma — plus seulement les pages récemment modifiées. Rapport silencieux si propre, issue GitHub (figma-audit) si violation ou échec du run. Comble l'angle mort de l'incident du 2026-07-09 (10 Text Styles sur 11 sans variable bindée, détecté seulement par comparaison humaine manuelle)Automated §22 audit across the whole library (ADR-079): weekly scheduled cloud agent (Mondays 6am) checking all 9 §22 categories against the entire Figma file — not just recently modified pages. Silent report when clean, GitHub issue (figma-audit) on any violation or run failure. Closes the blind spot from the 2026-07-09 incident (10 of 11 Text Styles with no bound variable, caught only by manual human comparison)
  • Règle de tri de contenu pour la future Community File (ADR-080) : les pages d'identité de marque (COVER, FOUNDATIONS > logos) restent privées par principe — règle par catégorie, pas une liste figée, pour s'appliquer automatiquement aux futures pages génériques. Volet audit pré-publication ajouté pour couvrir le cas d'un logo imbriqué dans un futur composant (ex. top-nav, bandeau)Content triage rule for the future Community File (ADR-080): brand-identity pages (COVER, FOUNDATIONS > logos) stay private by principle — a category rule, not a fixed list, so it automatically applies to future generic pages. Pre-publication audit clause added to cover a logo nested inside a future component (e.g. top-nav, banner)
  • Licence de la future Community File tranchée : CC BY 4.0, cohérente avec le MIT du code (ADR-081)Future Community File licence decided: CC BY 4.0, consistent with the code's MIT licence (ADR-081)
  • Composants Brand/logo séparés dans un fichier Figma dédié, publié comme librairie et consommé par instances cross-file — la page logo n'a plus besoin d'être exclue manuellement du futur Community File (ADR-082)Brand/logo components separated into a dedicated Figma file, published as a library and consumed via cross-file instances — the logo page no longer needs manual exclusion from the future Community File (ADR-082)
  • Script d'audit consolidé scripts/figma/audit-figma-file.js (7 checks : bindings orphelins, propriétés non liées, lineHeight cassé, clipping en cascade, débordements, références obsolètes après renommage, liens internes cassés) — exécution devenue obligatoire avant la fin de toute session Figma mutative, pas seulement aux déclencheurs existants du §22 (ADR-090)Consolidated audit script scripts/figma/audit-figma-file.js (7 checks: orphaned bindings, unbound properties, broken lineHeight, cascading clipping, overflows, stale references after a rename, broken internal links) — now mandatory before ending any mutating Figma session, not just the existing §22 triggers (ADR-090)
  • Librairies Figma publiées sur Figma Community : Agentica (design system) et Agentica | Lucide Icons (3 449 icônes, taguée v1.1.0) — Agentica | Brand reste privée par décision explicite, vérifiée sans aucun logo imbriqué dans un composant publiéFigma libraries published to Figma Community: Agentica (design system) and Agentica | Lucide Icons (3,449 icons, tagged v1.1.0) — Agentica | Brand stays private by explicit decision, verified with no logo nested inside any published component
  • Les 43 pages du fichier Agentica | Lucide Icons (GETTING STARTED + 42 catégories) alignées sur le standard visuel du fichier principal : canvas gris, Main frame unique, en-tête sombre, footer REFERENCES avec de vrais liens hypertexte (lucide.dev, dépôt source, ADR-022, agtc-icon.js) au lieu des placeholders jamais finalisésAll 43 pages of the Agentica | Lucide Icons file (GETTING STARTED + 42 categories) aligned to the main file's visual standard: gray canvas, single Main frame, dark header, REFERENCES footer with real hyperlinks (lucide.dev, source repo, ADR-022, agtc-icon.js) instead of never-finalized placeholders
  • ADR-022 vérifié à jour (la licence Lucide est ISC depuis le 2026-07-31, aucune correction nécessaire côté dépôt) ; texte du fichier Figma corrigé pour refléter cet état (il décrivait encore la correction comme restant à faire) ; nettoyage de contenu hérité — 2 instances doc/property-row avec une valeur invisible erronée et 2 pages (Sports, Sustainability) portant chacune un doublon exact de leur en-tête et grille, tous déplacés en _trash plutôt que supprimésADR-022 verified up to date (Lucide's license has been ISC since 2026-07-31, nothing to fix on the repo side); the Figma file's own text corrected to match (it still described the fix as pending); legacy content cleanup — 2 doc/property-row instances with an erroneous invisible value and 2 pages (Sports, Sustainability) each carrying an exact duplicate of their header and grid, all moved to _trash rather than deleted

ComposantsComponents

  • Contrat de largeur pour les contrôles interactifs (ADR-094) : semantic.size.control.{min-width,max-width} (64px / 480px) — agtc-input.js désormais borné plutôt que de s'étirer sans limite ou de descendre sous une largeur utilisable. Valeurs choisies après recherche (Baymard, NN/g, WCAG 1.4.8, Carbon Design System)Width contract for interactive controls (ADR-094): semantic.size.control.{min-width,max-width} (64px / 480px) — agtc-input.js now bounded instead of stretching unbounded or shrinking below a usable width. Values chosen after research (Baymard, NN/g, WCAG 1.4.8, Carbon Design System)
  • agtc-image — nouveau Web Component : width/height obligatoires (anti-CLS), loading="lazy" par défaut avec option priority, support WebP via <picture>, skeleton de chargement optionnel, repli si l'image échoue (ADR-083)agtc-image — new Web Component: required width/height (anti-CLS), loading="lazy" by default with a priority opt-in, WebP support via <picture>, optional loading skeleton, fallback on failed load (ADR-083)
  • Les 9 illustrations de la home page migrées vers agtc-image ; composant agtc-illustration distinct abandonné (aurait fait doublon une fois le wrapper allégé) — ratio anti-CLS corrigé au passage (768×512, vrai ratio 3:2 des PNG sources) (ADR-084)All 9 home page illustrations migrated to agtc-image; a separate agtc-illustration component was dropped (would have duplicated it once the wrapper was scoped down) — anti-CLS ratio corrected along the way (768×512, the source PNGs' true 3:2 ratio) (ADR-084)
  • agtc-top-nav confirmé comme architecture "mix" (comme agtc-table/banner/code-block) : le site utilise du HTML .site-nav écrit à la main plutôt que le composant réel, intentionnellement — un bloc de code mort pour un menu mobile qui ne s'exécutait jamais supprimé au passage (ADR-087)agtc-top-nav confirmed as "mix" architecture (like agtc-table/banner/code-block): the site intentionally uses hand-written .site-nav HTML rather than the real component — a dead mobile-menu code block that never ran removed along the way (ADR-087)

Gouvernance & outillageGovernance & tooling

  • Registre relationships (npm run relationships) : parcourt les $extensions des tokens et les en-têtes Relations: des guidelines/règles pour générer un index typé des liens entre décisions, tokens et composants — concepts empruntés à DSDS (Design System Documentation Schema) sans migration de format (ADR-086)relationships registry (npm run relationships): walks token $extensions and guideline/rule Relations: headers to generate a typed index of links between decisions, tokens and components — concepts borrowed from DSDS (Design System Documentation Schema) without migrating to its format (ADR-086)
  • Validation programmatique des contrats (npm run validate:contracts, désormais dans npm test) : forme DTCG, intégrité des références ADR, chemins de contrat, synchronisation tokens/guidelines, présence de la section UX Patterns ReferenceProgrammatic contract validation (npm run validate:contracts, now part of npm test): DTCG shape, ADR reference integrity, contract paths, tokens/guidelines sync, UX Patterns Reference section presence
  • Nouvelle règle "discipline de statut" : toujours passer un ticket GitHub Projects à "En cours" au démarrage du travail, jamais directement à "Terminé"New "status discipline" rule: always move a GitHub Projects ticket to "In progress" when work starts, never jump straight to "Done"
  • Décision de couleurs du logo (logo-black/logo-gray) formalisée rétroactivement dans un ADR — la contrainte existait déjà dans le code mais n'était jamais couverte par une décision documentée (ADR-088)Logo colour decision (logo-black/logo-gray) formalized retroactively in an ADR — the constraint already existed in code but was never covered by a documented decision (ADR-088)

SiteSite

  • Nouvelle page resources.html (Mode Marketing) : promotion de la librairie Figma Agentica — fonctionnalités, étapes pour dupliquer le fichier, rappel de licence CC BY 4.0 (ADR-081) ; mise à jour avec l'URL réelle de la librairie Figma Community (remplace le placeholder) et une note de dépendance vers Agentica | Lucide Icons, publiée séparémentNew resources.html page (Marketing Mode): promotes the Agentica Figma library — features, steps to duplicate the file, CC BY 4.0 licence reminder (ADR-081); updated with the real Figma Community library URL (replacing the placeholder) and a dependency note pointing to the separately published Agentica | Lucide Icons
  • Icône Figma ajoutée dans la barre d'outils du header (à côté de GitHub et Storybook), pointant vers la librairie principale sur Figma CommunityFigma icon added to the header toolbar (next to GitHub and Storybook), linking to the main library on Figma Community
  • Section « Concevoir dans Figma, construire en code » ajoutée à get-started.html ; liens vers la librairie Figma ajoutés à documentation.html, au menu principal et au footer partagé"Design in Figma, build in code" section added to get-started.html; links to the Figma library added to documentation.html, the main nav menu and the shared footer
  • sitemap.xml : 6 pages Marketing historiques (pourquoi/architecture/qualite/ia/documentation/continuite) qui n'y figuraient jamais, ajoutées avec resources.htmlsitemap.xml: 6 historical Marketing pages (pourquoi/architecture/qualite/ia/documentation/continuite) that were never listed there, added along with resources.html

Dette de tokens résorbéeToken debt resolved

  • audit-tokens.js : ~5 800 → 0 violation critique. Exclusions de chemin ajoutées (build généré, ADR historiques, scripts Figma, docs narratifs) + mécanisme audit-ignore (miroir de lang-audit-ignore) (ADR-085, ADR-089)audit-tokens.js: ~5,800 → 0 critical violations. Path exclusions added (generated build output, historical ADRs, Figma scripts, narrative docs) + an audit-ignore escape hatch (mirroring lang-audit-ignore) (ADR-085, ADR-089)
  • 7 tokens fantômes promus (fontWeight.bold/display, radius.pill, radius.control-tight, color.border.strong, color.brand.tertiary) — corrige au passage un vrai bug (radius-pill valait 999px au lieu de 9999px)7 phantom tokens promoted (fontWeight.bold/display, radius.pill, radius.control-tight, color.border.strong, color.brand.tertiary) — fixes a real bug along the way (radius-pill was 999px, not 9999px)
  • Le mode sombre du site consommait une copie dupliquée à la main au lieu de tokens/semantic.dark.json (qui existait déjà, jamais raccordé) — corrigé, plus un second bloc [data-theme="dark"] entièrement mort suppriméThe site's dark mode consumed a hand-duplicated copy instead of tokens/semantic.dark.json (which already existed, never wired up) — fixed, plus a second, entirely dead [data-theme="dark"] block removed
  • Vraie palette Radix dark ajoutée (tokens/primitives.dark.json, 9 échelles, @radix-ui/colors v3.0.0) — référence pour de futurs tokens, pas encore raccordée à un buildReal Radix dark palette added (tokens/primitives.dark.json, 9 scales, @radix-ui/colors v3.0.0) — a reference for future tokens, not yet wired into a build target

AccessibilitéAccessibility

  • Contraste corrigé sur pipelines/index.html : mauvais token de couleur (teal calibré pour fond clair) utilisé sur un fond sombre — remplacé par le token prévu pour ce casContrast fixed on pipelines/index.html: wrong colour token (a teal calibrated for light backgrounds) used against a dark background — replaced with the token meant for exactly this case
  • 3 findings axe-core réels corrigés sur ai-brief.html : 2 contrastes (code inline, étiquette de langage) + 1 accès clavier (zone défilable sans tabindex)3 real axe-core findings fixed on ai-brief.html: 2 contrast issues (inline code, language label) + 1 keyboard-access issue (scrollable region with no tabindex)
  • scripts/axe-audit.js rendu résilient : un timeout sur une seule page faisait crasher tout le run et perdre les résultats des autres pages — désormais isolé par page (comme smoke-test.js), une page en échec est enregistrée comme ignorée plutôt que de tout arrêterscripts/axe-audit.js made resilient: a single page's timeout used to crash the entire run and lose every other page's results — now isolated per page (like smoke-test.js), a failing page is recorded as skipped instead of aborting the whole run
2026-07-20
v0.2.0 BêtaBeta

Tokens — Dark mode dual-modeTokens — Dark mode dual-mode

  • tokens/semantic.dark.json — 38 tokens delta (valeurs qui changent entre light et dark), DTCG-conforme, pattern "deux fichiers, un seul build CSS" (ADR-065)tokens/semantic.dark.json — 38 delta tokens (values that change between light and dark), DTCG-compliant, "two files, one CSS build" pattern (ADR-065)
  • Style Dictionary : second run → dist/tokens/css/dark.css sous sélecteur [data-theme="dark"] { … color-scheme: dark; }Style Dictionary: second run → dist/tokens/css/dark.css under [data-theme="dark"] { … color-scheme: dark; } selector
  • Convention text.on-dark — renommage de on-inverse → on-dark sur tous les tokens (plus explicite pour les équipes produit)text.on-dark convention — renamed on-inverse → on-dark across all tokens (clearer for product teams)

ComposantsComponents

  • agtc-feature-card — nouveau Web Component (glassmorphism, variantes default/marketing, niveaux de titre 1–6, revue UX P1–P8 approuvée, ADR-063)agtc-feature-card — new Web Component (glassmorphism, default/marketing variants, heading levels 1–6, UX review P1–P8 approved, ADR-063)
  • Correction contraste agtc-feature-card : 10 violations Chromatic (ratio 1.12) → 0. Cause : text.primary sur fond glassmorphism toujours sombre → remplacé par text.on-darkagtc-feature-card contrast fix: 10 Chromatic violations (ratio 1.12) → 0. Root cause: text.primary on always-dark glassmorphism background → replaced with text.on-dark

Storybook & ChromaticStorybook & Chromatic

  • @storybook/addon-themes — toggle dark/light dans la toolbar Storybook (withThemeByDataAttribute, data-theme sur <html>)@storybook/addon-themes — dark/light toggle in Storybook toolbar (withThemeByDataAttribute, data-theme on <html>)
  • Chromatic Story Modes — 2 snapshots par story (light #fcfcfc / dark #0a0c11), baselines séparées. Résout les régressions visuelles dark/light non détectéesChromatic Story Modes — 2 snapshots per story (light #fcfcfc / dark #0a0c11), separate baselines. Resolves undetected dark/light visual regressions

PerformancePerformance

  • Home page 1 453 KB → 65 KB (−95 %) : illustrations SVG chargées en lazy-load via IntersectionObserver, jamais inlinées dans le HTMLHome page 1,453 KB → 65 KB (−95%): SVG illustrations lazy-loaded via IntersectionObserver, never inlined in HTML
  • Google Fonts non-bloquant : @import supprimé de site.css → <link> dans <head> avec preconnect — élimine 2 allers-retours réseauNon-blocking Google Fonts: @import removed from site.css → <link> in <head> with preconnect — eliminates 2 network round trips

Site & Redesign V2Site & Redesign V2

  • Redesign site V2 complet : mode sombre par défaut (data-theme="dark"), glassmorphism, aurora hero, footer 4 colonnes, sidebar gauche pages agents, logo 3 couleursFull site V2 redesign: dark mode by default (data-theme="dark"), glassmorphism, aurora hero, 4-column footer, left sidebar for agent pages, 3-colour logo
  • Mode clair V2 fonctionnel : token adaptatifs background-page, bloc [data-theme="light"], 4 combinaisons dark/light × marketing/produit (ADR-064)Working V2 light mode: adaptive background-page tokens, [data-theme="light"] block, 4 dark/light × marketing/product combinations (ADR-064)
  • Documentation dark mode sur la page Démarrer : snippets HTML/JS/CSS, règle text.on-dark documentéeDark mode documentation on Get started page: HTML/JS/CSS snippets, text.on-dark rule documented

GouvernanceGovernance

  • ADR-063 (agtc-feature-card), ADR-064 (mode clair V2), ADR-065 (dark mode dual-mode) — 65 ADRs au totalADR-063 (agtc-feature-card), ADR-064 (V2 light mode), ADR-065 (dark mode dual-mode) — 65 ADRs total

Gouvernance & synchronisation FigmaGovernance & Figma sync

  • Audit complet Figma ↔ code via MCP Figma : 1 470+ variables vérifiées (tokens non-couleur + 654 tokens couleur, Text Styles, Effect Styles) contre tokens/*.jsonFull Figma ↔ code audit via Figma MCP: 1,470+ variables verified (non-color tokens + 654 color tokens, Text Styles, Effect Styles) against tokens/*.json
  • 2 dérives de valeur corrigées côté Figma : échelle fontSize primitive (rem×4 au lieu de px), espacement densité compact/comfortable (valait 0 au lieu des formules floor/ceil ADR-025)2 value drifts fixed on the Figma side: primitive fontSize scale (rem×4 instead of px), compact/comfortable density spacing (was 0 instead of the ADR-025 floor/ceil formulas)
  • 822 variables Figma reclassées de ALL_SCOPES vers des scopes explicites (GAP, CORNER_RADIUS, FONT_SIZE, TEXT_FILL, FRAME_FILL/SHAPE_FILL, STROKE_COLOR, EFFECT_COLOR) — conforme aux bonnes pratiques du design system builder Figma822 Figma variables reclassified from ALL_SCOPES to explicit scopes (GAP, CORNER_RADIUS, FONT_SIZE, TEXT_FILL, FRAME_FILL/SHAPE_FILL, STROKE_COLOR, EFFECT_COLOR) — aligned with Figma design-system-builder best practices

Tests — Stratégie PlaywrightTesting — Playwright strategy

  • ADR-066 : Playwright remplace Chromatic pour les pages du site (limite mensuelle de snapshots gratuits atteinte le 2026-07-01) — deux périmètres distincts, Chromatic conservé pour les stories composantsADR-066: Playwright replaces Chromatic for site pages (free monthly snapshot quota reached 2026-07-01) — two distinct scopes, Chromatic kept for component stories
  • Infrastructure complète : projets chromium/firefox/webkit, snapshots de référence committées dans tests/visual/snapshots/, exécution dans l'image Docker officielle Playwright pour éliminer les faux positifs de rendu entre OSFull infrastructure: chromium/firefox/webkit projects, reference snapshots committed under tests/visual/snapshots/, run inside the official Playwright Docker image to eliminate cross-OS rendering false positives
  • Rafraîchissement des snapshots de référence exclusivement via workflow_dispatch avec approbation humaine explicite — jamais automatisé (ADR-066, ADR-004)Reference snapshots refreshed exclusively via workflow_dispatch with explicit human approval — never automated (ADR-066, ADR-004)
  • Items optionnels : audit accessibilité axe-core, ouverture automatique d'une issue GitHub sur régression visuelle détectée, rapport HTML publié sur GitHub PagesOptional add-ons: axe-core accessibility audit, automatic GitHub issue on detected visual regression, HTML report published to GitHub Pages

Dette de tokens résorbéeToken debt resolved

  • agtc-feature-card : 3 défauts corrigés — fond/bordure d'overlay codés en dur → nouveaux tokens semantic.color.background.overlay-dark / semantic.color.border.overlay-dark, référence vers un token de couleur d'accent inexistant corrigéeagtc-feature-card: 3 defects fixed — hardcoded overlay background/border → new semantic.color.background.overlay-dark / semantic.color.border.overlay-dark tokens, reference to a non-existent accent color token fixed
  • agtc-button : nouveaux tokens de typographie label-bold/detail-bold, composant aligné dessus (audit Figma)agtc-button: new label-bold/detail-bold typography tokens, component aligned to them (Figma audit)
  • agtc-code-block : 3 valeurs de typographie codées en dur corrigées (line-height, font-weight, letter-spacing) — seul consommateur du token semantic.typography.mono.family du dépôtagtc-code-block: 3 hardcoded typography values fixed (line-height, font-weight, letter-spacing) — the repo's only consumer of the semantic.typography.mono.family token
  • Nouvelle catégorie de token letterSpacing (ADR-067), puis étendue à une échelle complète de 11 valeurs — résorbe la dette des 9 variables --agtc-tracking-* du site, ~50 sites d'appel repointés vers les tokens (ADR-068)New letterSpacing token category (ADR-067), later extended to a full 11-value scale — resolves the debt on the site's 9 --agtc-tracking-* variables, ~50 call sites repointed to tokens (ADR-068)

Gouvernance FigmaFigma governance

  • Charte de gouvernance de la librairie Figma : le code fait foi, jamais l'inverse ; cycle de vie d'une modification — page de staging, règle no-delete (jamais .remove(), déplacer vers une frame _corbeille), rapport 10 points avant toute revue humaineFigma library governance charter: code is the source of truth, never the reverse; change lifecycle — staging page, no-delete rule (never .remove(), move to a _corbeille frame instead), 10-point report before any human review
  • Audit étendu : vérification de la parité code↔Figma après toute instruction visuelle humaine directe, méthode de test de combinaisons variantes × états × contenu (technique EightShapes)Extended audit: code↔Figma parity check after any direct human visual instruction, variant × state × content combination test method (EightShapes technique)
  • Les 15 Text Styles de la librairie (typographie standard + nouvelle typographie mono de documentation) sont désormais intégralement bindés à des Variables Figma — plus aucune valeur de typographie codée en durAll 15 library Text Styles (standard typography + new documentation mono typography) are now fully bound to Figma Variables — no more hardcoded typography values

Plan de continuité sans agents IAContinuity plan without AI agents

  • Guide How-to-without-agents.md et 8 scripts scripts/continuity/ : marche à suivre humaine si l'accès aux agents IA devient indisponible, pour l'équipe système de design et les équipes produits consommatricesHow-to-without-agents.md guide and 8 scripts/continuity/ scripts: human fallback procedure if AI agent access becomes unavailable, for both the design system team and consuming product teams
  • Nouvelle page continuite.html publiée sur le site (Mode Produit), synthétisant le plan par équipeNew continuite.html page published on the site (Product Mode), summarizing the plan by team

SiteSite

  • Refactor du pattern de layout : un seul conteneur unifie les deux patterns de mise en page avec sidebarLayout pattern refactor: a single container now unifies both sidebar layout patterns
  • Section Durabilité de la page d'accueil reformulée (accroche marketing sur l'absence de dépendance/verrouillage aux agents IA)Home page Durability section reworded (marketing framing around freedom from AI agent lock-in/dependency)
  • Lien vers la page Continuité ajouté au footer (partagé par toutes les pages) et à la page DocumentationLink to the Continuity page added to the footer (shared across all pages) and to the Documentation page

Gestion de projetProject management

  • Migration du suivi de projet vers GitHub Projects (ADR-069, remplace ADR-016) : 100 items migrés (91 chantiers historiques + 1 en attente + 8 tickets de backlog), champs Status/Domaine/Dépendance/ADR/Date, vues Board/Par domaine/HistoriqueProject tracking migrated to GitHub Projects (ADR-069, replaces ADR-016): 100 items migrated (91 historical items + 1 pending + 8 backlog tickets), Status/Domaine/Dépendance/ADR/Date fields, Board/By domain/History views
  • log/kit-construction.md et son hook PostToolUse de journalisation automatique retirés du dépôt — le suivi de tâches ne vit plus dans un fichier versionnélog/kit-construction.md and its automatic PostToolUse logging hook removed from the repo — task tracking no longer lives in a versioned file
  • Champ Priorité (P0 à P3) ajouté au projet ; backlog découpé en 4 chantiers (traduction anglaise, nettoyage du dépôt, gouvernance Figma, Community File Figma) totalisant 23 sous-tickets priorisés, chacun rattaché à son parent via le champ DépendancePriority field (P0 to P3) added to the project; backlog split into 4 initiatives (English translation, repository cleanup, Figma governance, Figma Community File) totalling 23 prioritized sub-tickets, each linked to its parent via the Dependency field

Nettoyage du dépôtRepository cleanup

  • AGENTS.md corrigé : la section citait encore GitHub Issues, CONTEXT.md et docs/adr/ (boilerplate d'un template jamais adapté), en contradiction avec project-overview.md (GitHub Projects exclusif, ADR-069) — 3 fichiers docs/agents/*.md obsolètes supprimésAGENTS.md fixed: the section still referenced GitHub Issues, CONTEXT.md and docs/adr/ (boilerplate from a template never adapted to this repo), contradicting project-overview.md (GitHub Projects exclusive, ADR-069) — 3 obsolete docs/agents/*.md files removed
  • Références mortes vers Redesign/AI anti-patters.md et deux-contextes.md (supprimés le 2026-06-20) corrigées dans contexts-utilisation.md et guidelines/foundations/contextes.mdDead references to Redesign/AI anti-patters.md and deux-contextes.md (deleted 2026-06-20) fixed in contexts-utilisation.md and guidelines/foundations/contextes.md
  • Workflow CI mort deploy-redesign.yml retiré (remplacé depuis longtemps par deploy-site.yml) ; branche feature/redesign supprimée (vérifiée fusionnée)Dead deploy-redesign.yml CI workflow removed (long superseded by deploy-site.yml); feature/redesign branch deleted (verified merged)
  • Artefacts orphelins racine retirés : script de capture d'écran ad hoc, note de handoff obsolète, rapport de test encore suivi malgré .gitignoreOrphaned root artifacts removed: ad hoc screenshot script, stale handoff note, test report still tracked despite .gitignore
  • Dossier Redesign/ (25 Mo, prototype d'exploration déjà clos) archivé hors dépôt (intégrité vérifiée par checksums) puis suppriméRedesign/ folder (25 MB, already-closed exploration prototype) archived outside the repo (integrity verified via checksums), then removed
  • Dossier illustrations/ (3 diagrammes SVG v1 approuvés mais jamais intégrés au site, ADR-051) retiré — remplacé par le système d'illustrations PNG Brand/illustrations/illustrations/ folder (3 approved v1 SVG diagrams, never integrated into the site, ADR-051) removed — replaced by the Brand/illustrations/ PNG illustration system

InternationalisationInternationalization

  • ADR-070 : l'anglais devient la langue par défaut du dépôt, en 6 chantiers priorisés, pour le partage avec la communauté internationaleADR-070: English becomes the repository's default language, split into 6 prioritized initiatives, to support sharing with the international community
  • Documentation racine (README, AGENTS.md, DESIGN.md, les 3 guides How-to-*.md) entièrement traduite — l'anglais remplace le français, aucune version FR conservée dans ces fichiersRoot documentation (README, AGENTS.md, DESIGN.md, all 3 How-to-*.md guides) fully translated — English replaces French, no FR version kept in these files
  • Langue par défaut du site basculée de fr à en (<html lang>, data-lang, replis JS, sélecteur FR/EN) — le français reste pleinement disponible via le sélecteur, parité lang-fr/lang-en vérifiée sur les 104 pagesSite default language switched from fr to en (<html lang>, data-lang, JS fallbacks, FR/EN switcher) — French remains fully available via the switcher, lang-fr/lang-en parity verified across all 104 pages

Publication npmnpm publication

  • @agentica-ds/tokens et @agentica-ds/components publiés sur le registre npm public (ADR-072, ADR-073) — monorepo npm workspaces, versioning indépendant via Changesets, ESM uniquement@agentica-ds/tokens and @agentica-ds/components published to the public npm registry (ADR-072, ADR-073) — npm workspaces monorepo, independent versioning via Changesets, ESM only
  • Publication automatisée en CI (ADR-074) via changesets/action et npm Trusted Publishing (OIDC) — aucun secret NPM_TOKEN statique à stocker ni faire tournerAutomated CI publishing (ADR-074) via changesets/action and npm Trusted Publishing (OIDC) — no static NPM_TOKEN secret to store or rotate
  • starter-kit/ ajouté au dépôt : projet Vite minimal et fonctionnel (tokens clair/sombre + 4 composants), vérifié par un vrai npm install et build contre le registre — copiable tel quel par une équipe produitstarter-kit/ added to the repository: minimal, working Vite project (light/dark tokens + 4 components), verified with a real npm install and build against the registry — ready for a product team to copy as-is
  • Dépôt GitHub renommé agentic-design-system → agentica-design-system, pour cohérence avec la marque Agentica et le scope npm @agentica-ds ; toutes les références internes mises à jourGitHub repository renamed agentic-design-system → agentica-design-system, for consistency with the Agentica brand and the @agentica-ds npm scope; all internal references updated
  • Page get-started.html : flux d'installation réécrit en npm-first, matrice d'intégration par framework (Angular/Vue/React/Vanilla)get-started.html page: install flow rewritten npm-first, per-framework integration matrix (Angular/Vue/React/Vanilla)

Site — refonte de la page Get StartedSite — Get Started page redesign

  • Hiérarchie visuelle textuelle : bloc « Démarrage rapide », étapes converties en cartes numérotées, mode sombre rétrogradé en sous-bloc optionnel (au lieu d'une fausse 4e étape « 2b »), sélecteur de framework converti en onglets agtc-tabs interactifsTextual visual hierarchy: "Quickstart" block, steps converted into numbered cards, dark mode demoted to an optional sub-block (instead of a fake 4th "2b" step), framework picker converted into interactive agtc-tabs
  • Passage au vrai gabarit marketing (fullWidth:true, sections .shell) — la page utilisait par erreur le gabarit Documentation malgré son attribut data-context="marketing", cause racine du rendu en « long article »Switched to the real marketing layout (fullWidth:true, .shell sections) — the page had mistakenly been using the Documentation layout despite its data-context="marketing" attribute, the root cause of the "long article" look
  • Bandes de fond alternées et logos technologiques réels ajoutés (bande de logos couleur « Plateformes de sortie », logo par panneau d'onglet framework) — un seul dégradé sur la page, conforme à la règle anti-pattern marketingAlternating background bands and real technology logos added (colored logo strip in "Output platforms", a logo on each framework tab panel) — a single gradient on the page, per the marketing anti-pattern rule
  • Bug pré-existant corrigé sur l'ensemble du site : le regex d'auto-habillage des <table> doublait silencieusement le <div class="table-wrap"> sur toute table déjà enveloppée à la mainPre-existing site-wide bug fixed: the <table> auto-wrap regex silently double-wrapped the <div class="table-wrap"> on every hand-wrapped table
  • Animation de fondu au scroll ([data-reveal]) retirée de cette page à la demande explicite de l'utilisateur — inchangée sur les autres pages marketingScroll fade-in animation ([data-reveal]) removed from this page per explicit user request — unchanged on other marketing pages

Internationalisation — validation anglais du dépôtInternationalization — repository English validation

  • 3 bugs structurels de bascule FR/EN corrigés dans site/build.js (texte français figé jamais basculé en mode EN) : lien nav « IA », tableau d'intégration framework de get-started.html, tableaux « matrice de déclenchement » des pages pipelines/*.html — indétectables par un simple grep, révélés uniquement par un rendu réel de la page3 structural FR/EN toggle bugs fixed in site/build.js (French text stuck, never switched in EN mode): "AI" nav link, get-started.html's framework integration table, the "trigger matrix" tables on pipelines/*.html pages — undetectable by a plain grep, only caught by actually rendering the page
  • Contenu résiduel en français hors zones bilingues nettoyé : 8 scripts scripts/continuity/*.sh, .githooks/pre-push, 4 workflows GitHub Actions, starter-kit/ entier, 13 valeurs $description/$intent dans tokens/*.jsonResidual French content outside bilingual zones cleaned up: 8 scripts/continuity/*.sh scripts, .githooks/pre-push, 4 GitHub Actions workflows, all of starter-kit/, 13 $description/$intent values in tokens/*.json
  • 11 fichiers renommés de français vers anglais (How-to-sans-agents.md → How-to-without-agents.md, etc.), ~25 références croisées mises à jour — décision documentée dans ADR-075 (amende ADR-070)11 files renamed from French to English (How-to-sans-agents.md → How-to-without-agents.md, etc.), ~25 cross-references updated — decision documented in ADR-075 (amends ADR-070)
  • Nouvel outillage de prévention : scripts/audit-language.js (npm run lang-audit, scan repo-wide), tests/functional/language.spec.js (rendu réel des ~125 pages en data-lang=en, seul outil capable d'attraper les bugs structurels ci-dessus), gate CI lang-audit.yml sur chaque push/PRNew prevention tooling: scripts/audit-language.js (npm run lang-audit, repo-wide scan), tests/functional/language.spec.js (real rendering of all ~125 pages with data-lang=en, the only tool able to catch the structural bugs above), lang-audit.yml CI gate on every push/PR
2026-06-19
v0.1.0

FondationsFoundations

  • Architecture de tokens 3 niveaux : primitifs → sémantiques → composant (DTCG-conforme)3-layer token architecture: primitives → semantic → component (DTCG-compliant)
  • Palette de couleurs Radix UI (échelles 12 niveaux), espacement grille 4px, typographie Atkinson HyperlegibleRadix UI color palette (12-step scales), 4px spacing grid, Atkinson Hyperlegible typography
  • Bibliothèque d'icônes Lucide — 1 500+ icônes, 3 tailles, contrats d'accessibilité WCAG 1.1.1Lucide icon library — 1,500+ icons, 3 sizes, WCAG 1.1.1 accessibility contracts

ComposantsComponents

  • 14 Web Components (Lit) : Button, Input, Badge, Card, Checkbox, Radio, Toggle, Table, Code Block, Banner, Link, Icon, Segmented, Top Nav14 Web Components (Lit): Button, Input, Badge, Card, Checkbox, Radio, Toggle, Table, Code Block, Banner, Link, Icon, Segmented, Top Nav
  • Variantes Button : primary, secondary, ghost, critical — confirmation obligatoire pour les actions irréversiblesButton variants: primary, secondary, ghost, critical — required confirmation for irreversible actions
  • Tokens de composant institutionnels dans tokens/component.jsonInstitutional component tokens in tokens/component.json

Gouvernance & AgentsGovernance & Agents

  • 62 ADRs (Architecture Decision Records) — toutes les décisions tracées et justifiées62 ADRs (Architecture Decision Records) — all decisions traced and justified
  • 4 types d'agents IA : Designer, Developer, QA, Documentation4 AI agent types: Designer, Developer, QA, Documentation
  • Conformité WCAG 2.1 AA — audit intégré, 0 violation critiqueWCAG 2.1 AA compliance — built-in audit, 0 critical violations
  • Pipeline qualité complet : tokens-audit, WCAG, UX patterns, ADR, docs, site rebuildFull quality pipeline: tokens-audit, WCAG, UX patterns, ADR, docs, site rebuild

Site & DocumentationSite & Documentation

  • Générateur de site statique sur-mesure (Node.js), bilingue FR/ENCustom static site generator (Node.js), bilingual FR/EN
  • Storybook publié sur Chromatic — canvas interactif, previews, specsStorybook published on Chromatic — interactive canvas, previews, specs
  • Sync Figma ↔ JSON via Tokens StudioFigma ↔ JSON sync via Tokens Studio
Contribuer à ce projet Contribute to this project

Ce système est ouvert aux contributions — tokens, composants, décisions architecturales, corrections d'accessibilité ou documentation. Toute amélioration est bienvenue. This system welcomes contributions — tokens, components, architectural decisions, accessibility fixes, or documentation. Every improvement counts.

Voir sur GitHub View on GitHub