En bref
Déterminez quand un changement de code PostHog a atteint un environnement donné en lisant les annotations de déploiement du GIT caché dans le projet et en les corrélant avec le commit de fusion sur GitHub. Utilisez lorsque le personnel PostHog demande "quand X a été déployé", "est mon changement en direct aux États-Unis/UE encore", "a mon PR expédié", "a fait le déploiement de la correction à prod-us", ou autrement vouloir savoir si / quand un commit, PR, ou fonctionnalité est allé dans une région. Ne répondez pas aux questions relatives au calendrier de déploiement à partir du seul volume d'événements/données — cela indique seulement quand les données ont changé, pas quand le code a été envoyé.
Ce que ça fait
- Les annotations de déploiement
- Flux de travail
- Annexe
Pour qui, et un exemple
Personnes dont la tâche correspond : Déterminez quand un changement de code PostHog a atteint un environnement donné en lisant les annotations de déploiement cachées du GIT dans le projet et en les corrélant avec le commit de fusion sur GitHub.
Exemple de demande : « Vérification lorsque quelque chose a été déployé : Déterminez quand un changement de code PostHog a atteint un environnement donné en lisant les annotations de déploiement du GIT caché dans le projet et en les c »
Déterminez quand un changement de code PostHog a atteint un environnement donné en lisant les annotations de déploiement du GIT caché dans le projet et en les corrélant avec le commit de fusion sur GitHub. Exemple rédigé par iadujour.fr à partir du SKILL.md, non testé.
Installer
Claude Code : /plugin marketplace add PostHog/skills, puis /plugin install posthog-all@posthog-skills (README).
/plugin marketplace add PostHog/skills/plugin install posthog-all@posthog-skillsFonctionne avec
- Claude Code
Source : README : marketplace Claude Code `/plugin marketplace add PostHog/skills`. D’autres agents ne sont pas nommés.
Niveau : Intermédiaire
Suppose un projet déjà en place chez l’éditeur et les outils décrits dans le SKILL.md.
À savoir
Extrait du SKILL.md
La description d’origine, celle que l’agent lit pour décider de charger la skill (en anglais) :
Determine when a PostHog code change reached a given environment by reading the hidden GIT deploy annotations in the project and correlating them with the merge commit on GitHub. Use when PostHog staff ask "when was X deployed", "is my chan […]
Citée depuis le SKILL.md au commit 445764b .
Le SKILL.md compte 44 lignes et 3 sections principales :
- The deploy annotations
- Workflow
- Notes
Licence : MIT
Consultée le 13 novembre 2026 : fichier de licence du dépôt.
La licence autorise la reprise : le texte intégral du SKILL.md est reproduit ci-dessous, sans modification, avec sa mention de licence.
Texte intégral du SKILL.md
Reproduit sans modification depuis PostHog/skills (commit 445764b) , © PostHog, sous licence MIT (fichier de licence d’origine ).
Afficher le SKILL.md original (44 lignes, en anglais)
---
name: checking-deploy-timing
description: 'Determine when a PostHog code change reached a given environment by reading the hidden GIT deploy annotations in the project and correlating them with the merge commit on GitHub. Use when PostHog staff ask "when was X deployed", "is my change live in the US/EU yet", "has my PR shipped", "did the fix roll out to prod-us", or otherwise want to know whether/when a commit, PR, or feature went out to a region. Do not answer deploy-timing questions from event/data volume alone — that only shows when data changed, not when code shipped.'
---
# Checking when something was deployed
PostHog's CI writes a deploy marker into the project as an **annotation** every time a commit
ships to an environment. These annotations are `hidden_in_user_interface: true`, so they don't
show in the UI and are easy to forget — but they are the source of truth for "when did this go
out". Always check them when staff ask about deploy timing, rather than inferring from when a
metric or event volume changed (that conflates a capture change with a query/code change).
## The deploy annotations
List them with `posthog:annotations-list` using `{"search": "deploy"}`. Each deploy marker looks like:
- `content`: `Deployed PostHog/posthog@<sha> to <env>` — env is `prod-us`, `prod-eu`, or `dev`
- `creation_type`: `GIT`
- `scope`: `organization`
- `hidden_in_user_interface`: `true`
- `date_marker`: the deploy time (UTC)
They're returned newest-first; paginate with `offset` if you need to go further back.
## Workflow
1. **Find the change's merge commit.** Identify the PR (e.g. `gh search prs --repo PostHog/posthog --author <user> "<keywords>"`), then `gh pr view <n> --repo PostHog/posthog --json number,title,mergedAt,mergeCommit,state`. Note the merge commit SHA and `mergedAt`.
2. **List the target environment's deploys around the merge, oldest-first.** Match the region the user asked about (`prod-us` for "the US", `prod-eu` for "the EU"). The annotations come back **newest-first**, so don't just take the first `... to <env>` match on page 1 — that's the _most recent_ deploy. Paginate (with `offset`) until you reach markers around `mergedAt`, then consider that environment's deploys in chronological order, starting with the first whose `date_marker` is _after_ `mergedAt`. Check them earliest-first in step 3.
3. **Confirm the deployed commit actually contains the merge commit.** A later `date_marker` is necessary but not sufficient — a deploy can fire just after the merge yet build a slightly older commit. Verify ancestry:
```sh
gh api repos/PostHog/posthog/compare/<merge_sha>...<deployed_sha> --jq '{status,ahead_by,behind_by}'
```
`behind_by: 0` with `status` `ahead` or `identical` means the deployed commit includes the merge — that's your answer. If `behind_by > 0`, this deploy predates the change; move to the **next newer** deploy of that environment (the next one chronologically) and re-check. The first deploy that passes is the one that shipped the change.
4. **Report** the deploy time (and PR/commit) for the region asked about. Mention other regions if relevant — `prod-us` and `prod-eu` usually deploy minutes apart but not simultaneously.
## Notes
- "Live in the US" = `prod-us`; "the EU" = `prod-eu`. `dev` is the internal staging environment, not customer-facing.
- For a **query-runner / read-path** change, the new behaviour applies retroactively to all data once deployed — so you can't time it from event volume, only from the deploy annotation. For a **capture** change, event volume for the new property is a secondary cross-check, but the annotation is still the authoritative deploy time.
Commentaires.
Un retour d’expérience, une question, une précision sur cette skill ? Les commentaires sont relus avant publication.
Commentaires publiés
Chargement des commentaires…
Laisser un commentaire
Charte de modération. Chaque commentaire est relu avant publication. Sont refusés : l’incitation à la haine, les propos injurieux ou discriminatoires, la publicité, le spam et les liens promotionnels, le hors-sujet et les données personnelles d’autrui.