Omnibus
200 skills · 1230 min
Omnibus
Skill 20 of 200
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.
2 minutes · 382 words · 4 sections
Install
npx skills add PostHog/skills --skill checking-deploy-timingnpx skills add PostHog/skills/plugin marketplace add PostHog/skillsThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
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).
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 devcreation_type: GITscope: organizationhidden_in_user_interface: truedate_marker: the deploy time (UTC)They’re returned newest-first; paginate with offset if you need to go further back.
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.
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.
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:
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.
prod-us; “the EU” = prod-eu. dev is the internal staging environment, not customer-facing.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.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 24 September 2026.SKILL.md, not by matching a directory convention. 2 distinct layouts observed: skills/omnibus/*/SKILL.md, skills/posthog/all/skills/*/SKILL.md.h1 and no skipped levels: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.
.claude-plugin/marketplace.json by PostHog, declaring 6 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./PostHog/skills.md, and each skill at its own .md URL.