Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Pipeline de génération de la documentation

La documentation ZeroClaw combine du Markdown rédigé à la main avec des références et des extraits générés à partir de types Rust, de définitions de commandes, de registres, de contrats WIT, de fichiers de workflow et de métadonnées d’interface. Le fichier généré n’est pas une seconde source de vérité : corrigez la source d’origine ou le générateur, puis reconstruisez la documentation.

Utilisez cette page lorsqu’une modification touche un schéma, un flag CLI, une fonctionnalité ou un inventaire matériel, un contrat de plugin, un mappage de touches par défaut, un registre de thèmes, une directive mdBook, une référence générée, une porte de documentation, ou un workflow de déploiement. Pour les valeurs de configuration spécifiquement, lisez également Config lifecycle. Pour les sorties traduites, poursuivez avec Localization catalog lifecycle.

Correspondance source-sortie

SurfaceSource canoniqueMaterializerSortieÉtat du dépôtConsommateur
Référence de configurationzeroclaw_config::schema::Config plus les dérivations Configurablecargo mdbook refs ou cargo mdbook build, via markdown-schemadocs/book/src/reference/config.mdFichier dérivé ignoréChapitre de référence de configuration et directives basées sur un schéma
Référence de la CLIArborescence des commandes Clap dans src/main.rscargo mdbook refs ou cargo mdbook build, via markdown-helpdocs/book/src/reference/cli.mdFichier dérivé ignoréRéférence de l’interface en ligne de commande
Chemins d’installationContrats de routes typés dans xtask/src/generate/spec.rs et corps de comportement générés dans les moteurs de rendu des installateurscargo generate installers, via xtask/src/generate/docs.rs et xtask/src/generate/install_sh.rsdocs/book/src/_snippets/install.md, les blocs de commandes Unix générés dans le README et les guides de plateforme, les sections générées de routage et d’aide à la sélection dans install.sh, ainsi que le bloc Windows précompilé dans docs/book/src/setup/windows.mdSurfaces générées suiviesConfiguration initiale liée au README, routes Unix exécutables, guide de démarrage rapide et pages de configuration des plateformes
Référence de la syntaxe SOPcatalogue de la syntaxe de parse_steps dans crates/zeroclaw-runtime/src/sop/mod.rs et ConditionOp::catalog()cargo generate sop-syntax, via xtask/src/generate/sop_syntax.rsRégions marquées relatives au comportement de l’analyseur et aux opérateurs conditionnels dans docs/book/src/sop/syntax.mdRégions générées suiviesRéférence de rédaction des SOP
Référence de l’API RustÉléments Rust publics dans les crates de l’espace de travailcargo doc dans cargo mdbook refs ou cargo mdbook buildtarget/doc/, copié dans docs/book/book/api/Sortie de compilation ignoréeRéférence de l’API publiée
Matrice de fonctionnalitésInventaire des canaux, emplacements modèle-fournisseur, outils par défaut, et docs/book/feature-matrix-parity.tomlxtask/src/cmd/mdbook/feature_matrix.rs lors des compilations de localedocs/book/src/_snippets/feature-matrix-*.mdExtraits dérivés ignorésPages de comparaison des fonctionnalités via {{#include}}
Tableaux matérielsRegistre des cartes matérielles et catalogue d’outils, descriptions des transports dans le générateur, cibles du workflow de publication et seuil de mémoire faible dans install.shxtask/src/cmd/mdbook/hardware.rs lors des constructions de localedocs/book/src/_snippets/hardware-*.mdExtraits dérivés ignorésGuides sur le matériel et les cibles de publication
Valeurs du contrat de pluginContrats WIT, guides des plugins et limites de src/plugin_registry.rsxtask/src/cmd/mdbook/plugins.rs lors des compilations de la localedocs/book/src/_snippets/plugin-*.mdExtraits dérivés ignorésGuides de création de plugins
zerocode tables de clésMappage de touches par défaut dans apps/zerocode/src/keymap/actions.rsxtask/src/cmd/mdbook/keymap.rs lors des compilations de localedocs/book/src/_snippets/zerocode-*-keys.mdExtraits dérivés ignorészerocode pages de raccourcis clavier
Blocs de groupe de pairsdocs/book/peer-groups.tomlxtask/src/cmd/mdbook/peer_groups.rs préprocesseur mdBookContenu du chapitre développéUniquement au moment de la compilationPages de canaux et de groupes de pairs utilisant des directives de groupes de pairs
CSS et noms de thèmeweb/src/contexts/themes.jsonxtask/src/cmd/mdbook/themes.rs lors des builds de localeFragments CSS/de noms ignorés et zone de marqueur générée dans le fichier suivi docs/book/theme/index.hbsMixte : les fichiers dérivés sont ignorés ; le modèle situé en dehors de son marqueur reste rédigé manuellementSélecteur de thème mdBook et référence du thème zerocode
Sélecteur de languelocales.toml et docs/book/theme/lang-switcher.js.tpl suiviinject_lang_switcher_locales pendant les compilations de localedocs/book/theme/lang-switcher.jsFichier dérivé ignoréSélecteur de langue publié
Chapitres rédigésdocs/book/src/**/*.md et les extraits suivisPréprocesseurs et moteurs de rendu mdBookHTML de paramètres régionaux/version sous docs/book/book/Source suivi, sortie ignoréeSite de documentation publié
Types d’API Dashboardzeroclaw_gateway::openapi::build_spec() et les types d’exécution du gatewaycargo web gen-apitarget/openapi.json, web/src/lib/api-generated.ts, web/src/lib/api-descriptions.ts, et web/src/lib/api-enums.tsFichiers dérivés ignorésCompilation du tableau de bord TypeScript

Cette matrice décrit les surfaces à forte valeur actuelles, et non chaque fichier auxiliaire produit lors d’une compilation. La règle réutilisable est la propriété : une valeur générée doit avoir une seule entrée canonique et un seul chemin de matérialisation déterministe.

Ordre d’assemblage de mdBook

cargo mdbook est la surface de commandes xtask définie dans .cargo/config.toml. Ses principales commandes composent le pipeline plutôt que d’invoquer directement un simple mdbook build.

cargo mdbook refs génère le Markdown de la CLI et de la configuration à partir du code en direct, compile la rustdoc du workspace et copie la sortie de l’API dans l’arborescence de compilation de la documentation. cargo mdbook build exécute la séquence complète adaptée à la publication :

  1. Générer reference/cli.md et reference/config.md à partir de l’arborescence de commandes actuelle et du schéma de configuration.
  2. Générer la documentation rustdoc de l’espace de travail.
  3. Matérialiser les extraits de thème, keymap, matériel, matrice de fonctionnalités et plugin.
  4. Exécute mdBook une fois pour chaque langue dans locales.toml, avec les préprocesseurs configurés par docs/book/book.toml.
  5. Vérifier les liens dans la locale principale rendue.
  6. Assemblez le répertoire de version, la redirection de langue, l’arborescence rustdoc et les ressources de thème partagées sous docs/book/book/.

Le préprocesseur peer-group développe ses directives pendant que mdBook traite chaque chapitre. Les autres préprocesseurs mdBook standard gèrent les liens, les blocs Mermaid et la localisation gettext. Les références générées doivent donc exister avant le prétraitement des chapitres, tandis que le développement des directives et la traduction ont lieu lors de la construction des paramètres régionaux.

Le workflow de déploiement de la documentation initialise le sous-module de traduction, installe les outils mdBook requis, exécute cargo mdbook build, et fusionne la version assemblée dans la branche gh-pages. Il n’appelle pas de fournisseur de traduction ni ne répare les catalogues lors du déploiement.

Sorties suivies et de compilation uniquement

Les fichiers suivis sont des entrées ou des modèles révisables : Markdown rédigé, locales.toml, docs/book/peer-groups.toml, métadonnées de parité de la matrice de fonctionnalités, modèles de thème, sources Rust/WIT et définitions de workflow. Le chemin docs/book/po est un gitlink suivi vers le dépôt distinct du catalogue de traductions ; son contenu et ses tags de version ont leur propre cycle de vie.

Les fichiers ignorés sont des matérialisations reproductibles : les références de CLI et de configuration, la plupart des extraits générés, rustdoc, le HTML généré, le JavaScript du sélecteur de langue, le CSS de thème généré et le client API TypeScript du tableau de bord. Ils peuvent exister dans une arborescence de travail après une génération de la documentation sans avoir à figurer dans un commit. Les éléments d’installation suivis sont des exceptions explicites : docs/book/src/_snippets/install.md, les blocs de commandes Unix générés dans le README et les guides de plateforme, les régions générées des routes et des assistants de sélection dans install.sh, et le bloc précompilé pour Windows dans docs/book/src/setup/windows.md.

docs/book/theme/index.hbs est le cas mixte notable. Il s’agit d’un modèle suivi, mais le générateur de thème réécrit uniquement la région de liste de thèmes balisée à partir de themes.json. Si une commande de génération standard modifie cette région, vérifiez si le registre canonique ou le générateur a changé ; ne traitez pas la liste générée comme un contenu créé de manière indépendante.

Gardes de dérive et de validation

Différents contrôles couvrent différentes classes d’échecs :

VérifierCe que cela prouveCe qu’il ne prouve pas
Contrôle qualité de la documentationLa modification du Markdown respecte la politique des tirets cadratins dans le texte et markdownlintLes références ou extraits ignorés ont été régénérés à partir du code actuel
Passerelle de lien ajoutéLes nouveaux liens Markdown locaux dans le diff comparé sont résolusLes liens existants, les liens générés en dehors du diff ou la navigation rendue fonctionnent tous
cargo mdbook checkLes catalogues PO analysent et réussissent les audits de réponse générée, de littéral protégé et de chemin localLes références CLI/config et les extraits ignorés correspondent aux sources Rust actuelles
cargo mdbook refsLa référence CLI/config en Markdown et la rustdoc peuvent être générées à partir du code actuelChaque langue et thème s’assemblent pour former un site complet
cargo mdbook buildRéférences complètes, extraits, builds de locales, liens rendus et assemblage du site terminésLes sorties ignorées sont validées ou comparées par la CI de PR ordinaire
Flux de travail d’épinglage de traductionLe gitlink docs/book/po est initialisé et respecte le contrat d’épinglage du dépôt de catalogueLa couverture du catalogue est complète ou la qualité de la traduction est acceptable
Déploiement de la documentationLa référence sélectionnée est compilée et peut être fusionnée dans la mise en page gh-pages versionnéeUne PR source normale a régénéré chaque sortie ignorée avant la revue

La CI obligatoire des PR exécute les contrôles bloquants de qualité de la documentation et des liens ajoutés, mais elle n’exécute pas la compilation complète de mdBook pour chaque modification de la documentation. Les réviseurs doivent demander les éléments de preuve supplémentaires les plus ciblés couvrant le générateur modifié ou la limite de rendu concernée, plutôt que de supposer que des contrôles de texte réussis prouvent que la sortie générée est à jour.

Règles de correction

  • Corriger les erreurs de référence de configuration dans le schéma typé, les dérivations ou le générateur schema-to-Markdown.
  • Corriger les erreurs de référence de la CLI dans la définition de la commande Clap ou le générateur d’aide Markdown.
  • Corrigez le comportement de l’installation stable dans le contrat de route typé ou son moteur de rendu, puis exécutez cargo generate installers ; ne modifiez pas manuellement l’extrait d’installation suivi.
  • Corrigez le comportement de la syntaxe SOP ou les descriptions des opérateurs dans le catalogue de l’analyseur d’exécution, puis exécutez cargo generate sop-syntax ; ne modifiez pas manuellement les listes marquées dans la référence de syntaxe.
  • Corrigez les erreurs de snippets basés sur les sources dans le registre propriétaire, le fichier de métadonnées, le contrat ou le générateur de snippets.
  • Corriger la dérive de la liste de thèmes dans themes.json ou dans le générateur de régions marquées, et non en modifiant manuellement les boutons générés.
  • Corrigez le contenu traduit ou le comportement de repli au cours du cycle de vie du catalogue, et non dans le code HTML généré de la locale.
  • Ne validez jamais docs/book/book/, la sortie rustdoc ou toute autre matérialisation ignorée simplement pour donner l’impression qu’une compilation locale est à jour.
  • Lorsque le comportement du générateur lui-même change, examinez à la fois la modification de la source et un exemple représentatif de sortie régénérée, puis exécutez la vérification qui consomme cette sortie.

Pointeurs source

  • Composition des commandes mdBook : xtask/src/cmd/mdbook/
  • Références de la CLI et de la configuration : xtask/src/cmd/mdbook/refs.rs
  • Génération des versions localisées et assemblage du site : xtask/src/cmd/mdbook/build.rs
  • Configuration du préprocesseur mdBook : docs/book/book.toml
  • Registre des paramètres régionaux : locales.toml
  • Contrôles de qualité et des liens de la documentation : scripts/ci/docs_quality_gate.sh, scripts/ci/docs_links_gate.sh
  • Validation du pin de traduction : .github/workflows/validate-translations-pin.yml
  • Déploiement de la documentation : .github/workflows/docs-deploy.yml
  • Génération OpenAPI du tableau de bord : Création du tableau de bord web
  • Commandes de construction locales : Construire la documentation localement