Synthèse automatique
Encadre le déploiement d'une web app Google Apps Script avec clasp, en insistant sur la gestion des ID de déploiement, la distinction /exec vs /dev et les pièges d'authentification.
Points forts
- Procédure de pré-vol explicite (version de clasp, push, contrôle du .clasp.json ignoré par git)
- Identifie quatre pièges concrets et fréquents : /exec contre /dev, dérive des ID, déploiements obsolètes, cache et comptes Google
- Rappelle de vérifier sur l'URL /exec en navigation privée plutôt que de se fier au code de sortie
- S'appuie sur un runbook de projet et un CHANGELOG pour tracer les ID et les changements
Limites
- Suppose que le dépôt contient un docs/deploy-runbook.md avec les ID et le script ID
- Ne couvre pas l'installation de clasp ni la configuration OAuth au-delà de la vérification du compte
- Les commandes et le comportement dépendent de la version de clasp installée
À utiliser lorsqu'il faut déployer ou redéployer une web app Apps Script et éviter de casser les liens /exec déjà partagés.
À éviter pour du développement local sans publication, ou lorsque aucun runbook de déploiement et aucun projet clasp n'existent encore.
Analyse de sécurité
PrudenceNo exfiltration, obfuscated payloads, destructive shell commands, or safety-disabling instructions. It uses Bash and network access to run clasp for legitimate deployments and is unusually careful (refuses to npm install -g, refuses to deploy unasked, verifies on /exec in incognito, warns about undeploying the live ID). The only real risk is that deploying is an outward-facing, partially irreversible production action, so it warrants 'caution' rather than 'safe'.
- •Uses Bash to run clasp push/deploy, which publishes code to a live Google Apps Script project — an outward-facing, hard-to-reverse action (mitigated by explicit 'confirm before first deploy each session' rule)
- •Defers to repo-local docs (docs/deploy-runbook.md, CLAUDE.md) as authoritative, with 'where they disagree, the runbook wins' — a mild instruction-source precedence/injection consideration since those files are untrusted input
- •clasp undeploy can take a live app down; skill warns about it and requires confirmation but the capability remains
Exemples
Push the latest changes to our gas-webapp and redeploy it, keeping the existing /exec URL working.clasp deploy succeeded but the shared link still shows the old version — figure out what's going on with this Apps Script deployment.List our Apps Script deployments and archive the stale ones, but make sure you don't undeploy the live one.name: gas-deploy description: Deploy a Google Apps Script web app with clasp — deployment-ID hygiene, /exec versus /dev, archiving stale deployments, and the auth traps. Use when the user says "deploy", "push to Apps Script", "clasp deploy", or names a gas-webapp project. allowed-tools:
- Bash
- Read
- Grep
gas-deploy
Apps Script deployment is a recurring source of lost time, almost always for one of four reasons below rather than anything to do with the code.
Read the repo's docs/deploy-runbook.md first — it holds this project's
deployment IDs, script ID, and any project-specific steps. This skill is the
procedure and the traps; the runbook is the specifics. Where they disagree, the
runbook wins.
Never deploy unasked
~/.claude/CLAUDE.md and every scaffolded CLAUDE.md say it: run verify before
every push, never deploy without being asked. Deployment is outward-facing.
Confirm before the first clasp deploy of a session, every session.
1. Pre-flight
clasp --version
clasp push --watch=false
If clasp is not on PATH, stop and report the install command. Never
npm install -g on the user's behalf.
Confirm .clasp.json exists and is gitignored, and that .clasp.json.example
is committed with the script ID redacted (repo-standards §2.1 layer 3). A real
script ID in a tracked file is the same class of mistake as a committed key.
2. The four traps, in the order they bite
-
/execversus/dev./devserves the current saved code to the owner and nobody else./execserves a specific numbered deployment to everyone. Testing on/devand announcing on/execis the single most common false "it works". Always verify on the/execURL you are about to hand over. -
Deployment-ID drift.
clasp deploywithout-icreates a new deployment with a new ID and a new/execURL. Every previously shared link keeps serving the old code. Redeploy the existing ID:clasp deployments clasp deploy -i <deployment-id> -d "<what changed>"Record the ID in
docs/deploy-runbook.mdand never create a second long-lived one. -
Stale deployments accumulate. Apps Script caps deployments per project. Archive with
clasp undeploy <id>— but readclasp deploymentsfirst and confirm the ID is not the live one. Undeploying the live deployment takes the app down, and it is not undoable from the CLI. -
Auth and caching. A logged-in Google account that is not the script owner sees a stale or permission-denied page that looks like a deploy failure. Verify in an incognito window, signed in as the intended audience.
clasp login --statusconfirms which account clasp itself is using; it is frequently not the one in the browser.
3. Verify
Open the /exec URL in incognito. Confirm the change is visible and the
version string, if the app has one, matches what was just deployed. Do not
report success from a clasp deploy exit code alone — it reports that the
deployment was created, not that the app works.
4. Record
Append to CHANGELOG.md under Unreleased if the deployment carries a
user-visible change, and update docs/deploy-runbook.md if any ID changed.
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/deploy-google-apps-script-with-clasp-mryiqgn8/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/deploy-google-apps-script-with-clasp-mryiqgn8' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/deploy-google-apps-script-with-clasp-mryiqgn8/download' --output '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md.part' && mv '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md.part' '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/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/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md' && test -s '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/gas-deploy' && cp -R '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8' '.claude/skills/gas-deploy'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/deploy-google-apps-script-with-clasp-mryiqgn8'openskills read 'deploy-google-apps-script-with-clasp-mryiqgn8'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/deploy-google-apps-script-with-clasp-mryiqgn8/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.