Synthèse automatique
Guide pas à pas la publication d'une nouvelle version de l'application Electron Fleet : bump semver, entrée de changelog, création d'une release GitHub en brouillon, push du tag et suivi du workflow CI jusqu'à la publication automatique.
Points forts
- Rend explicite la règle critique du brouillon : la release doit exister en draft avant le push du tag, sinon electron-builder ne peut pas y publier les artefacts.
- Rappelle que l'entrée `## vX.Y.Z` dans CHANGELOG.md est obligatoire car `scripts/extract-release-notes.ts` la recherche et fait échouer les builds si elle manque.
- Fournit les commandes concrètes de vérification : `gh run list`, `gh run watch`, `gh release view`, ainsi que la liste des six jobs CI attendus.
- Inclut une procédure de rattrapage pour déplacer un tag poussé trop tôt (suppression locale et distante puis recréation).
Limites
- Très spécifique au dépôt Fleet : noms de workflows, jobs, scripts et artefacts sont codés en dur et inutilisables tels quels ailleurs.
- Suppose un accès en écriture au dépôt et une CLI GitHub authentifiée ; aucune alternative (interface web, autres outils) n'est proposée.
- Ne traite ni le rollback d'une release déjà publiée, ni la gestion des branches de correctif, et la section de vérification des artefacts Linux est tronquée.
À utiliser lorsque vous préparez et publiez une nouvelle version de l'application Fleet, ou lorsque vous devez diagnostiquer un échec du workflow de release lié au tag, au changelog ou à la release brouillon.
À éviter pour un projet qui n'est pas l'application Electron Fleet ou pour une publication qui ne passe pas par GitHub Releases et electron-builder.
Analyse de sécurité
PrudenceThe skill is a straightforward, well-scoped release runbook with no untrusted downloads, encoded payloads, or secret exfiltration. It does direct the agent to use powerful, state-changing tooling (git push, gh release delete, gh workflow run) against a shared repository, so it warrants 'caution' rather than 'safe', but all commands are purposeful and consistent with a normal release process.
- •No allowed-tools declared, yet the skill instructs the agent to run git, npm, and GitHub CLI commands with repo/release write access (git push, gh release create/delete, gh workflow run). The tool declaration should include Bash/git/gh to match actual needs.
- •Troubleshooting includes irreversible remote operations: `git push origin :refs/tags/<TAG>` (remote tag deletion) and `gh release delete <TAG> --yes` (release deletion). These are legitimate release-repair steps but are destructive and depend on correct tag substitution; a wrong version string could delete the wrong remote tag/release.
- •Workflow pushes directly to `main` without a PR or branch check, and moving/deleting tags on a shared remote can disrupt other contributors' clones — process risk rather than a security flaw.
- •No credential/secret handling, exfiltration, obfuscation, or safety-disabling behavior present.
- •Includes destructive/irreversible git operations on remote refs (deleting and re-pushing tags: `git tag -d`, `git push origin :refs/tags/...`) and `gh release delete --yes`, which can remove published artifacts or rewrite tag history if run against the wrong version
- •Commands assume GitHub CLI (`gh`) is authenticated with release/publish permissions on the repo; a mis-targeted run could affect published releases
- •No declared allowed-tools, yet the instructions call for bash/git/npm/gh execution — the host must grant shell access for the skill to be usable
Exemples
Cut a new patch release for Fleet, say 1.4.2 — bump package.json, add the changelog entry, open the draft release and push the tag.I pushed the v1.4.2 tag before committing the CHANGELOG entry and the release builds failed. How do I move the tag and re-trigger the workflow?The tag release for v1.5.0 is running — show me how to watch the CI jobs and confirm the draft got published with all macOS, Windows and Linux artifacts.name: release description: This skill should be used when creating a new release for the Fleet Electron app. It covers version bumping, tagging, creating draft GitHub releases, and monitoring CI builds. Triggers on "release", "new version", "bump version", "tag release", "publish release", or any release workflow request.
Release
Overview
This skill guides the release process for the Fleet Electron app. Fleet uses electron-builder with GitHub Releases as the publish provider. The release workflow (.github/workflows/release.yml) builds for macOS (arm64 + x64), Windows, and Linux when a version tag is pushed. A final publish-release job automatically publishes the draft release after all builds succeed. CI checks live separately in .github/workflows/ci.yml.
Critical Rule
Releases MUST be created as draft. When electron-builder --publish always runs in CI, it uploads artifacts to an existing draft GitHub release matching the tag. If the release is not draft (or does not exist as draft), the build artifacts will fail to publish to it. The publish-release CI job handles publishing automatically after all builds complete.
Release Workflow
Step 1: Determine the New Version
Follow semver conventions:
- Patch (1.2.0 → 1.2.1): Bug fixes only
- Minor (1.2.0 → 1.3.0): New features, backward compatible
- Major (1.2.0 → 2.0.0): Breaking changes
Step 2: Bump the Version in package.json
Update the "version" field in package.json to the new version. Do not modify package-lock.json manually — run npm install to sync it.
npm install
Step 3: Add a Changelog Entry
This step is required. The CI release workflow runs scripts/extract-release-notes.ts which looks for a ## vX.Y.Z heading in CHANGELOG.md matching the tag. If the entry is missing, all build jobs will fail.
Add the entry at the top of CHANGELOG.md:
## v<NEW_VERSION>
- Summary of changes
Step 4: Commit Version Bump and Changelog Together
git add package.json package-lock.json CHANGELOG.md
git commit -m "chore: bump version to <NEW_VERSION>"
Step 5: Push to Main
git push origin main
Step 6: Create Draft Release and Push Tag
First, create the draft release on GitHub:
gh release create v<NEW_VERSION> --draft --title "v<NEW_VERSION>" --generate-notes
Then create and push the tag locally. Draft releases do not create remote tags, so the tag must be pushed to trigger the release workflow:
git tag v<NEW_VERSION>
git push origin v<NEW_VERSION>
Important: The tag must point to a commit that already includes the CHANGELOG.md entry. If you accidentally pushed the tag before the changelog commit, move the tag:
git tag -d v<NEW_VERSION> && git push origin :refs/tags/v<NEW_VERSION>
git tag v<NEW_VERSION> && git push origin v<NEW_VERSION>
Step 7: Monitor CI
The tag push triggers the release workflow (.github/workflows/release.yml). Monitor it:
gh run list --limit 5
gh run watch
Six jobs run for a tag release:
verify-version(ubuntu-latest) - checks that the tag matchespackage.jsonrelease-mac-arm64(macos-15)release-mac-x64(macos-15)release-win(windows-latest)release-linux(ubuntu-latest)publish-release— runs after all four build jobs succeed, automatically publishes the draft release
Each build job uses electron-builder --publish always which uploads artifacts to the draft release. Once all four succeed, publish-release flips the release from draft to published.
Step 7: Verify the Release
After CI completes (including the publish-release job), verify the release is published with all artifacts:
gh release view v<NEW_VERSION>
Expected artifacts:
- macOS:
Fleet-<VERSION>-arm64.dmg,Fleet-<VERSION>.dmg(x64),latest-mac.yml - Windows:
Fleet-Setup-<VERSION>.exe,latest.yml - Linux:
Fleet-<VERSION>.AppImage,Fleet-<VERSION>.deb,latest-linux.yml
The latest-*.yml files are auto-update manifests used by electron-updater.
Troubleshooting
"No changelog entry found" error in CI
The extract-release-notes.ts script requires a ## vX.Y.Z heading in CHANGELOG.md matching the tag. Add the entry, commit it to main, then move the tag to that commit:
git tag -d v<NEW_VERSION> && git push origin :refs/tags/v<NEW_VERSION>
git tag v<NEW_VERSION> && git push origin v<NEW_VERSION>
Do not use gh run rerun — the re-run checks out the tag commit, not main, so new commits won't be picked up unless the tag is moved first.
CI build job failed — release stays in draft
The publish-release job only runs when all four build jobs succeed. If any build fails, the release remains draft. Fix the issue and re-run the failed job:
gh run rerun <RUN_ID> --failed
electron-builder publish is idempotent for draft releases — it will upload/overwrite artifacts. Once the re-run succeeds, publish-release will run automatically.
Artifacts missing from release
Verify the release is still in draft state. If it was accidentally published before CI completed, delete the release (not the tag), recreate as draft, and re-run CI:
gh release delete v<NEW_VERSION> --yes
gh release create v<NEW_VERSION> --draft --title "v<NEW_VERSION>" --generate-notes --target main
gh workflow run release.yml
Version mismatch error in CI
The verify-version job checks that the tag matches package.json. Ensure the version bump commit was pushed before the tag was created.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/fleet-electron-release-workflow-mvg6ty55' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/fleet-electron-release-workflow-mvg6ty55/download' --output '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md.part' && mv '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md.part' '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md' && test -s '.skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/release' && cp -R '.skill-downloads/fleet-electron-release-workflow-mvg6ty55' '.claude/skills/release'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/fleet-electron-release-workflow-mvg6ty55'openskills read 'fleet-electron-release-workflow-mvg6ty55'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/fleet-electron-release-workflow-mvg6ty55/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Configurer un canal de discussion avec SecretRefs
DevOps
Configurez des canaux de discussion avec des commandes non interactives, les secrets étant uniquement des SecretRefs. Couvre les étapes de collecte, modification, réparation et vérification.
Enquêter sur les échecs CI de ClickHouse
DevOps
Investigue un échec CI de ClickHouse de bout en bout à partir d'une URL de PR ou de rapport S3. Récupère les tests échoués, classe flaky vs vraie régression, et cherche des issues/fixes existants.
Revue de PR Ansible
DevOps
Examine une PR Ansible selon le processus standardisé du projet, incluant la validation des changelogs, la couverture de tests et le suivi des commentaires.