Repository navigation
chore(agents): share Gotenberg harness between Copilot and Claude - #23
jcoste-ied wants to merge 4 commits into
Conversation
Refs fulll/chapter-secops#1946 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Refs fulll/chapter-secops#1946 Harness adapté à Gotenberg : AGENTS.md initial conservé intégralement, CLAUDE.md en import unique, deux agents et deux skills dans .github/ partagés avec Claude par quatre liens relatifs en mode 120000. Provenance amont et licence MIT documentées ; aucun changement de déploiement ni accès AWS. Contrôles réels : liens et frontmatter valides, clone neuf macOS validé, découverte des deux skills et des instructions par Copilot CLI confirmée. make lint-prettier reste en échec uniquement sur deux fichiers préexistants et inchangés (.github/workflows/continuous-delivery.yml et FEATURE_SPECIFICATION.md). Les contrôles interactifs Claude/Copilot, cloud et Linux, ainsi que les tests/build applicatifs, ne sont pas déclarés validés ; détails dans la description. Cette PR ne ferme pas l’issue transversale et n’a pas été fusionnée. |
There was a problem hiding this comment.
🔵 Needs a closer look
Cross-client agent/skill discovery and Claude/cloud instruction loading remain unvalidated, requiring maintainer runtime confirmation beyond static checks and Copilot listings.
No open issues 🎉
What changed in this PR
This PR establishes shared Copilot and Claude guidance for Gotenberg, preserving existing instructions and keeping application code and deployment workflows unchanged.
Changes:
- Makes
AGENTS.mdthe canonical instruction source, with Claude and Copilot entry points. - Adds two agents and two skills tailored to Gotenberg’s Go, Makefile and Godog workflows.
- Documents harness validation and third-party attribution, and extends ownership coverage.
| File | Description |
|---|---|
CLAUDE.md |
Imports the canonical repository instructions. |
AGENTS.md |
Adds repository context, command details and shared-harness rules. |
.github/skills/gotenberg-testing/SKILL.md |
Defines verification workflows, prerequisites and reporting. |
.github/skills/create-agentsmd/SKILL.md |
Guides evidence-based instruction maintenance. |
.github/harness.md |
Documents inventory, provenance and validation procedures. |
.github/harness-LICENSE.txt |
Includes the MIT license for adapted content. |
.github/copilot-instructions.md |
Points Copilot to AGENTS.md. |
.github/CODEOWNERS |
Extends ownership to root instructions and .claude/. |
.github/agents/refine-issue.agent.md |
Defines requirement refinement and acceptance-criteria guidance. |
.github/agents/gotenberg-implement.agent.md |
Defines a backward-compatible implementation workflow. |
Review effort: Balanced
Refs fulll/chapter-secops#1946 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Refs fulll/chapter-secops#1946 Correction de la demande utilisateur appliquée dans ad4a770 : les adaptations de refine-issue et create-agentsmd ont été remplacées par une copie intégrale non modifiée de github/awesome-copilot au commit 5269f7ea2d6c3a9bfda5ed878b6726cf509121fd, frontmatter amont compris (name et tools d’origine). Le répertoire complet du skill est copié ; il ne contient que SKILL.md à ce commit. Les adaptations Gotenberg sont désormais uniquement dans AGENTS.md ou les éléments locaux distincts, qui restent inchangés. Preuve : clone Git de l’amont au commit imposé, puis diff -r sur agents/refine-issue.agent.md et sur le répertoire skills/create-agentsmd : sortie vide et code 0 dans les deux cas. Licence MIT également identique. Les quatre liens .claude relatifs restent valides, en mode 120000. La documentation de provenance et les contrôles du harness vérifient désormais l’identité amont, pas une réduction du frontmatter. make lint-prettier signale les deux copies officielles, laissées volontairement intactes, ainsi que les deux fichiers préexistants déjà signalés. Aucun changement de déploiement, aucune fusion ; description de PR actualisée. |
Refs fulll/chapter-secops#1946 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Refs fulll/chapter-secops#1946 Réalignement sur la version de l’issue du 30/10 à 15:08 UTC, poussé dans 2bf3633. Gotenberg est une API Go de conversion PDF, pas un dépôt de modules Terraform AWS : seule la section commune s’applique. Aucun composant Terraform ni setup cloud ajouté. Les issues GitHub sont désactivées (has_issues: false) : retrait de refine-issue et de son lien, ajoutés par cette PR et absents avant celle-ci. Conservation des instructions initiales, du skill officiel create-agentsmd intégralement identique au commit amont épinglé, ainsi que des composants locaux gotenberg-implement et gotenberg-testing, justifiés par les modules Go et les tests Makefile/Godog. Les autres skills optionnels ne sont pas ajoutés faute de besoin concret. Clone neuf macOS au nouveau commit : aucun lien cassé ; trois liens relatifs en mode 120000. Copilot découvre les deux skills et les instructions. Le chargement effectif Claude/cloud, la découverte interactive des agents, la parité fonctionnelle et le clone Linux restent explicitement bloqués/non validés. Le conflit entre création complète demandée par le skill officiel et préservation locale est documenté : aucune opération de remplacement avant validation ; proposition de maintenance additive, sans réécriture officielle. Description réorganisée en ajouts/conservés/retirés/écartés/bloqués, avec preuves et limites. Prettier signale seulement la copie officielle volontairement intacte et deux fichiers préexistants inchangés. Aucun changement de déploiement, credentials AWS, mutation infra ou fusion. |
Refs fulll/chapter-secops#1946 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Refs fulll/chapter-secops#1946 Passe complète terminée après relecture du texte et de tous les commentaires de l’issue (version 15:43:55 UTC). Commit 6575c2e poussé sur cette même PR, sans merge. Périmètre confirmé : API Go, aucun .infra/terraform/ à toute profondeur (recherche récursive et arbre suivi), pas un dépôt de modules AWS ; aucune condition imposant un agent Terraform. Issues toujours désactivées. Un agent Go local et deux skills retenus ; aucun changement de composant lors de cette passe, seulement deux précisions documentaires. Preuves renouvelées : chaque fichier initial préservé en octets hors compléments AGENTS/CODEOWNERS, préfixe AGENTS original intact, skill officiel complet et licence identiques via API au commit 5269f7ea2d6c3a9bfda5ed878b6726cf509121fd, liens Markdown et parité statique valides. Nouveau clone macOS au SHA final : find liens cassés vide, trois symlinks 120000, arbre propre. Copilot CLI JSON confirme deux skills activés et trois sources d’instructions découvertes. La description contient désormais la matrice de tous les critères. Écarts non masqués : agent Copilot, agents/skills Claude, import Claude et chargement effectif interactif/cloud, clone Linux non validés. Aucune incompatibilité runtime démontrée. Correction de la qualification précédente : créer un AGENTS complet ne signifie pas obligatoirement écraser ses règles ; ce n’est plus présenté comme un conflit avéré. Les opérations restent additives ; tout conflit concret doit être documenté avant validation. Aikido Security: check code est réussi sur le SHA final. make lint-prettier échoue encore sur le skill officiel volontairement intact et deux fichiers préexistants inchangés ; aucun avertissement dans les documents locaux modifiés. Aucun workflow de déploiement, accès AWS ou mutation infra ; tests applicatifs non revendiqués. |
Contexte et périmètre
Refs fulll/chapter-secops#1946
Passe complète sur le texte et tous les commentaires de l’issue, version du 30 octobre 2026 à 15:43:55 UTC. Dernier commit :
6575c2ea662b44ddcb8b772b05605412536361d2.Gotenberg est une API Go conteneurisée de conversion documentaire/PDF (Chromium, LibreOffice, Makefile, Godog, Testcontainers), pas un dépôt de modules Terraform AWS réutilisables. Recherche récursive dans le système de fichiers du projet, hors métadonnées Git et dépendances Node, et contrôle de l’arbre suivi : aucun
.infra/terraform/à quelque profondeur que ce soit. Aucune condition rendantterraform-aws-implementobligatoire n’est satisfaite. La section spécifique modules (reviewer, instructions, CI) ne s’applique pas. Si ce répertoire est introduit, réévaluer l’agent obligatoire sans en déduire automatiquement les composants modules.Composants et préservation
AGENTS.mdintégralement préservées en octets. Vérification de chaque fichier de l’arbre initial : identique, sauf compléments additifsAGENTS.mdetCODEOWNERS. Aucun agent/skill ni instruction Copilot/Claude préexistant à écraser.CLAUDE.md= seulement@AGENTS.md; contexte/règles communes dansAGENTS.md; renvoi concis.github/copilot-instructions.md, inventaire/provenance, licence MIT et extension des CODEOWNERS existants.create-agentsmd: copie intégrale non modifiée au commit5269f7ea2d6c3a9bfda5ed878b6726cf509121fd, frontmatter et répertoire complet compris.gotenberg-implementpour les changements compatibles modules/API Go ; skillgotenberg-testingpour les commandes Makefile/Godog. Aucune provenance awesome-copilot revendiquée pour ces composants locaux.refine-issueet son symlink, ajoutés par cette PR et absents avant celle-ci : l’API confirme encorehas_issues: false.agentic-eval,aws-well-architected-review,devops-rollout-plan,github-actions-hardening: aucun besoin concret établi.copilot-setup-steps.ymlpréexistant ou introduit ; aucun tooling nécessaire à ce complément documentaire. Les besoins d’un futur changement applicatif cloud devront être évalués séparément.issue-writing,epic-writingoucreate-issue-from-prompt. Le fichier Copilot était absent : le renvoi ne retire aucune règle existante.Le dernier commit ne change que deux documents locaux : preuve d’absence de Terraform et précision du niveau réel des vérifications. Aucun agent, skill, lien, composant officiel ou workflow changé lors de cette passe.
Source unique et provenance officielle
Un agent et deux skills dans
.github/, partagés avec Claude par trois liens relatifs en mode120000.Source officielle : skills/create-agentsmd/, commit
5269f7ea2d6c3a9bfda5ed878b6726cf509121fd, licence MIT reproduite dans.github/harness-LICENSE.txt.diff -rvide contre un clone amont épinglé lors de la restauration officielle ; contenu inchangé depuis. Nouvelle preuve lors de cette passe : API GitHub au commit épinglé, inventaire complet du répertoire (SKILL.mdseul, aucun fichier annexe omis), octets du skill et de la licence identiques. Aucune traduction, normalisation du frontmatter ni remise en forme officielle.Revue de tous les critères du socle commun
.infra/terraform/à toute profondeur, section modules inapplicableCLAUDE.md=@AGENTS.mdsuivi d’un saut de ligne6575c2e:find .claude -type l -exec test ! -e {} \; -printvidegit ls-tree -r HEAD .claude/: trois entrées120000dans ce clone ; arbre propreLes critères complémentaires modules Terraform AWS sont hors périmètre ; aucune CI modules ajoutée.
Résultats réels de découverte
copilot --trust-folder skill list --jsonretourne les deux skills projet avecenabled: true, depuis.github/skills/:copilot --trust-folder instruction list --jsonretourne.github/copilot-instructions.md,AGENTS.md,CLAUDE.md, tous avecdefaultDisabled: false. Ceci prouve la découverte, pas l’application effective dans tous les modes.Claude Code installé (
2.1.287). L’aideclaude agentsdécrit la gestion des sessions en arrière-plan, pas la découverte des custom agents. Aucun résultat/agents,/skillsou import Claude revendiqué. La revue statique confirme un agent, deux skills et trois liens, sans prouver leur activation par les deux outils.Autres contrôles : liens Markdown locaux valides ; agent/skill locaux, officiel, liens et workflows inchangés depuis le précédent commit ;
git diff --checket index avant commit OK ; hook sans secret détecté.Écarts restants et propositions
create-agentsmdn’exige pas nécessairement d’écraser l’existant. Cette formulation n’est plus présentée comme un conflit établi. Maintenance additive et contrôle des octets initiaux ; si une contradiction réelle apparaît, suspendre l’opération et soumettre preuve et proposition pour validation, sans réécrire l’officiel.CI, formatage et sécurité
SHA final
6575c2e:Aikido Security: check codeSUCCESS, terminé le 30 octobre 2026 à 15:53:01 UTC, seul check remonté par GitHub. Ce scan ne remplace pas la validation du harness.make lint-prettierrelancé : échec sur.github/skills/create-agentsmd/SKILL.md(officiel volontairement intact),.github/workflows/continuous-delivery.ymletFEATURE_SPECIFICATION.md(préexistants inchangés). Documents locaux modifiés conformes ; aucun de ces trois fichiers reformaté.make fmt,make lint,make build,make test-integration,make test-unitnon exécutés pour ce diff documentaire ; aucun succès applicatif revendiqué. Aucun workflow de déploiement modifié, accès AWS, secret, publication d’image, apply/destroy/state ou merge. PR ouverte, sans fermeture de l’issue transversale.