Official agent skill

Debugging CI Failures

by PostHog in PostHog/posthog-foss

Debugs failing GitHub Actions CI runs for PostHog PRs, commits, and branches, and answers broad CI-health questions ("is CI red?", "is master green today?", "what's broken right now?").

OfficialMITAuto-check passedTesting & QA

Install Debugging CI Failures

skills CLI
$ npx skills add PostHog/posthog-foss --skill debugging-ci-failures -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install PostHog/posthog-foss debugging-ci-failures --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/PostHog/posthog-foss.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/debugging-ci-failures .claude/skills/debugging-ci-failures && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
debugging-ci-failures
GitHub stars
721
Token cost
~5.7k tokens
SKILL.md length
2,852 words
Files
3 (incl. references)
Skills in repo
213
Repo updated
First seen
Licence
MIT

At a glance

Debugs failing GitHub Actions CI runs for PostHog PRs, commits, and branches, and answers broad CI-health questions ("is CI red?", "is master green today?", "what's broken right now?").

  • Works in 3 steps: Start with CI insights for interactive… → Find the failing run (for a specific… → Read the CI report comment (for a PR)
  • The user asks why CI is red
  • SKILL.md covers Rule out a platform outage first, Safety rules, Workflow and Classification, plus 4 more sections
  • Calls gh, pnpm and uv; reaches github.com; needs TRUNK_API_TOKEN and DEPOT_TOKEN

What it does

Debugging CI Failures is an agent skill from PostHog/posthog-foss, published by the product's own GitHub organization. Debugs failing GitHub Actions CI runs for PostHog PRs, commits, and branches, and answers broad CI-health questions ("is CI red?", "is master green today?", "what's broken right now?"). Use when the user asks why CI is red, asks for the current CI or master status, or mentions a failing check, GitHub Actions run, Depot runner, Depot CI run, workflow, job, shard, merge queue kick, flaky test, lint failure, typecheck failure, snapshot diff, migration check, generated types drift, or skills build failure…

Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/master-red-incident.md` and `references/master-red-workflow-setup.md`).

It sits in Testing & QA, covering Failing and flaky tests, CI/CD and Debugging. It works with PostHog, GitHub Actions and GitHub. The repository describes itself as: PostHog FOSS is a read-only mirror of PostHog, with all proprietary code removed. NOTE: This repo is synced automatically from the main PostHog repo. Please raise any issues and… The licence is MIT.

When your agent uses it

  • The user asks why CI is red
  • Asks for the current CI
  • Mentions a failing check
  • GitHub Actions run

Example prompts

  • “is CI red?”
  • “is master green today?”
  • “s broken right now?”
  • “/debugging-ci-failures”

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Start with CI insights for interactive investigations
  2. Find the failing run (for a specific failure)
  3. Read the CI report comment (for a PR)

What it can do on your machine

Read from SKILL.md and the folder at commit 2c48221. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • pnpm
    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    Also links to:

    • githubstatus.com
    • status.depot.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • TRUNK_API_TOKEN
    • DEPOT_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Debugging CI Failures loads about 5.7k tokens when it runs, and up to ~9.6k if it reads all its reference files. Until then it costs about 234 tokens; SKILL.md has 2,852 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~234
When it runs · the whole SKILL.md, loaded when a task matches
~5.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from PostHog/posthog-foss at commit 2c48221, republished under its MIT licence (© PostHog). 2,852 words, ~5,717 tokens.

Download SKILL.mdSave it as .claude/skills/debugging-ci-failures/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
debugging-ci-failures
description
Debugs failing GitHub Actions CI runs for PostHog PRs, commits, and branches, and answers broad CI-health questions ("is CI red?", "is master green today?", "what's broken right now?"). Use when the user asks why CI is red, asks for the current CI or master status, or mentions a failing check, GitHub Actions run, Depot runner, Depot CI run, workflow, job, shard, merge queue kick, flaky test, lint failure, typecheck failure, snapshot diff, migration check, generated types drift, or skills build failure. Interactive runs start with the `hogli ci:insights` digest (cross-run CI history from engineering analytics), then use read-only inspection, failure classification, the smallest local reproduction with hogli, and safe reporting without rerunning CI or posting to GitHub. Running unattended as the "Master-red diagnosis" workflow: see references/master-red-incident.md for its sandbox-compatible first step.

Debugging PostHog CI failures

Before you propose a change to CI, check things already tried for the idea. It records what was measured, and why some good-sounding changes were reverted or rejected.

Find the first meaningful failure, classify it, reproduce the smallest useful case locally when appropriate, and report the result. Avoid public-visible or irreversible actions unless the user explicitly asks.

For an interactive investigation, start with the hogli ci:insights digest. It aggregates across runs and branches, which gh cannot do cheaply, and tells you whether a failure is likely trunk-borne, gate-only, or isolated to a small set of branches. gh is authoritative for one run's current state and attribution. Use the digest to decide what to inspect; use gh to confirm whose failure it is and exactly what failed in a given run.

The unattended Master-red workflow is the exception. Follow its reference, which defines a first step that works in the task sandbox.

This skill triages and classifies. Once a failure is confirmed flaky, hand off to the fixing-flaky-tests skill, which owns local reproduction, root-cause fixing, and N-run validation. For "who broke master" — the culprit commit and the commit that fixed it — hand off to the investigating-ci-failures skill, which owns the green/red boundary analysis. For aggregate pipeline health (is CI getting slower, which workflow is the long pole, how long PRs take to merge), read diagnosing-ci-and-merge-bottlenecks. Both are product skills under products/engineering_analytics/skills/, not invocable here: read the SKILL.md at that path.

Rule out a platform outage first

GitHub Actions goes down often enough that it belongs before any log reading, and a platform incident makes every other signal a symptom. It costs two page loads: https://www.githubstatus.com/ for GitHub, https://status.depot.dev/ for the runners. Check them whenever failures are broad — several workflows at once, a burst of runs failing together, jobs dying before Checkout, or anything red across unrelated PRs.

Report an outage as an outage, name the component, and stop recommending reruns.

Safety rules

Do not do any of these without explicit approval in the current conversation:

  • Rerun or cancel a GitHub Actions run, or retry, rerun, or cancel a Depot CI run.
  • Post a GitHub comment, PR review, or issue comment through any CLI, MCP, or API tool.
  • Push commits, force-push, rename branches, or delete branches.
  • Edit .github/workflows/ files (CI infra changes need human review).
  • Merge, close, or reopen the PR.
  • Accept or update snapshots.

Read-only gh calls and read-only GitHub tools are fine. If you need to change local Git state, make sure it is necessary for the task and does not overwrite unrelated work.

Workflow

1. Start with CI insights for interactive investigations

hogli ci:insights reads PostHog's own engineering analytics — the cross-run failure history a single run can't show. Consult it before any raw gh log archaeology.

bash
hogli ci:insights                                # digest for the current repo + branch
hogli ci:insights search "<error or test name>"  # match a specific failure
hogli ci:insights view <ref>                     # one failure in full
hogli ci:insights view <ref> --logs              # ...plus the failing log lines
  • Broad question ("is CI red?", "is master green today?", "what's broken right now?"): the no-arg digest answers directly. It gives the default-branch verdict (how many workflows are failing on their latest run, and which), the live failures grouped by state, the jobs red on trunk right now, a grouped feed of default-branch failures, and the PR your branch belongs to. You often do not need a target PR or run at all; report from the digest.
  • Specific failure: run search "<error>" to match it before reading logs, then view <ref> on a row the digest or search printed. --logs prints the thinned failing lines from that failure's latest run, which is usually enough to classify without touching gh.

Read each row's state as a triage ranking:

StateMeans
breaking_masterfailing on the default branch and that job's latest run is still red
blocking_merge_queuefailed only on merge-queue gate branches in the window
novel_burstnew within a day, already spreading across branches, not on trunk yet
potentially_resolvedhit trunk but that job's latest run is green again
flakysporadic across two or more branches over more than a day
pr_onlylimited branch spread; job status may be missing or behind the failure lines

potentially_resolved is a hint, not a conclusion: confirm from run data before reporting a failure as already fixed.

blocking_merge_queue proves a gate failure happened in the window, not that it still blocks landings. Check the current queue run with gh before reporting it as active. Likewise, confirm pr_only from the current run before assigning the failure to a PR; it is also the fallback when job status is missing or stale.

Caveats to carry into whatever you report:

  • Failure grouping is pytest-only. Jest, Playwright, and cargo failures appear only in the digest's grouped master-failures section, never as a row with a ref.
  • Every count is absolute, never a rate. Passing runs are not in the test-level data, so there is no denominator to quote. Job conclusions do record greens; the base-rate section below is how to get a real rate from them.
  • A run's conclusion can lag until GitHub's workflow_run webhook settles it, so during a live incident confirm a specific run against gh.

If nobody has signed in on this machine, hogli ci:insights exits 78. Treat exit 78 as "no CI insights available" and fall back to the gh-based inspection below — then tell the user they can run hogli posthog:login once, which opens a browser and needs no API key. Do not run it yourself: it waits on a consent screen you cannot see. Surface what you find per the Safety rules — do not auto-apply a fix.

2. Find the failing run (for a specific failure)

Determine the target in this order:

  1. If the user gave a PR number, run ID, check name, or branch, use it.
  2. Otherwise, infer from the current branch with gh pr view --json number,headRefName,statusCheckRollup.
  3. If neither works, ask the user for a PR URL or run ID. Do not guess.

A PR kicked from the merge queue is the exception: its own checks are the wrong target. Trunk tests each queued PR on a trunk-merge/pr-<n>/<uuid> branch holding master plus every PR queued ahead of it whose impacted targets overlap its own. The lane script over-reports targets on purpose, so in practice that is most of the queue. So:

  • The failing run is on that branch, never on the PR's head SHA. Take it from trunk merge status <n> (/merging-prs step 4), not gh pr checks. Trunk publishes no check run here. The branch is ephemeral; the run and its logs stay on GitHub, and the warehouse keeps its jobs under that head_branch (query 8 in the investigating-ci-failures references). Backend CI is the exception when CI_BACKEND_DEPOT_MERGE_QUEUE_PERCENT hands the batch to Depot CI: the backend tests then run on Depot, and the Django Tests Pass check links that run.
  • The PR's own checks can be green with the failing job skipped or narrowed. On the PR, path filters see only that diff and the Django suite runs a selected subset; on the queue branch the diff is every carried PR's and the full matrices always run. A docs-only PR can be kicked by a job its own CI never ran.
  • The branch names one PR but carries many. A failure on it is not evidence against that PR until you find the change that caused it; the branch's other merge commits are the first suspects.
  • A …-bisection branch is the exception to "the other merge commits are the first suspects": Trunk creates it after a batch fails, and it carries only master plus the one PR. The test PR's body names the master SHA it is based on; if master's run at that SHA passed the same test, the failure is an environment-dependent race (fixing-flaky-tests step 1), not this PR's.
  • In the digest this is the blocking_merge_queue state.
3. Read the CI report comment (for a PR)

Before reading logs, read the shared CI report comment. It collects independent CI signals and advisories in many sections.

Read the full raw comment, not GitHub's collapsed view. This command finds it even when the PR has many comments:

bash
gh api --paginate "repos/<owner>/<repo>/issues/<pr>/comments?per_page=100" \
  --jq '.[] | select(.user.login == "github-actions[bot]" and (.body | startswith("<!-- posthog-ci-report -->"))) | .body'

Inspect every ci-report:section block, including unknown sections. Record its title, status, summary, and links. Do not stop at the first fail section or treat the comment heading as an overall verdict.

  • Treat fail as a lead, and match it to the current job.
  • Treat alert and warn as non-blocking findings. Review their details and follow their stated action, but do not call either a failed job unless its job failed.
  • ok and info are not test results.
  • A missing report means the reporter did not run or could not write. It does not prove the PR is healthy.

The report is a summary. A section without a head SHA or run link can be stale. Confirm it against the current job. If it disagrees with the current logs, report the mismatch and use the logs for the cause.

Inspect read-only:

bash
gh pr checks <pr>
gh pr view <pr> --json statusCheckRollup
gh run view <run-id> --json jobs,conclusion,name,workflowName,url
gh run view <run-id> --log-failed

Use the full job log only when --log-failed lacks the failing command or enough surrounding output:

bash
gh run view <run-id> --log --job <job-id>

Given a run id, the engineering-analytics-run-failure-logs MCP tool returns every failed job's error region with original line numbers, already thinned. One call instead of a jobs listing plus a log download, and it works when the job died before any test ran. It is bounded by Logs retention, so fall back to gh for older runs. Given a PR number instead of a run id, engineering-analytics-ci-failure-logs does the same across every run that PR has pushed, so an earlier push's failure is still there.

Extract these before classifying:

  • Workflow name or file, e.g. .github/workflows/ci-backend.yml.
  • Job name, e.g. backend-tests (4/10).
  • Step name, e.g. Run pytest.
  • Failing command and the smallest useful output excerpt.

When scanning logs, search for FAIL, Error, error:, assert, Traceback, exit code, and ##[error]. Stop at the first failing step that explains the run's conclusion. Keep excerpts under 40 lines.

For test-job failures, the trunk MCP server's investigate-ci-failure tool is a shortcut past log scanning: give it the run URL (https://github.com/PostHog/posthog/actions/runs/<run-id>) and it returns structured failing-test details — names, error messages, stdout/stderr — from the results CI uploaded to Trunk Flaky Tests, with quarantined known-flaky tests already filtered out. It only covers what ran and uploaded: for jobs that died before tests (build, setup, lint), use engineering-analytics-run-failure-logs or gh run view --log. Authenticate once via /mcp → trunk (browser OAuth); headless environments instead add an Authorization: Bearer header with a TRUNK_API_TOKEN org token to the server entry in .mcp.json. To dig into one test's flakiness history, hand off to fixing-flaky-tests, which covers the search-test and fix-flaky-test tools.

Show full SKILL.md (1,114 more words)Show less
Backend tests that ran on Depot CI

A PR can route its backend tests to Depot CI. Then the GitHub Actions run holds only the relay: Django Tests Pass fails with "Backend tests on Depot CI concluded failure", and the GitHub run logs show nothing more. A re-run of that job is not read-only: it retries the failed Depot jobs and reports the new verdict, so the rule against re-running CI applies to it. The log of the Relay the Depot verdict step prints the Depot run URL, each failed step with its log lines, and the label that sends the PR back to GitHub Actions.

Read more of the failure from Depot with the depot CLI, which the flox environment installs. Run depot ci diagnose --org <org> --workflow <workflow> with the two ids from the Depot run URL in the relay log. For logs, artifacts, and test results, load the depot-ci skill. Its references/posthog-check-run-semantics.md gets Depot ids from a commit's check runs when you have no relay log. If a depot command fails to authenticate, check DEPOT_TOKEN first: it overrides the saved login, so a wrong one fails every command. Without it, ask the user to run ! depot login --clear. Do not run it yourself: it waits on a browser sign-in. If the user has no access to the Depot org, report the relay log's no-Depot retry options instead.

Classification

Signal in the logClassFirst action
AssertionError, test diff, FAILED test_... in a committed test filecode regressionreproduce with hogli test <path>::<test>
Test failed here, passed on master or on rerun in the same PRflaky testconfirm against master history; to fix, use fixing-flaky-tests
ruff, oxlint, stylelint, markdownlint, prettier errorslinthogli lint:python:fix or hogli format on touched files
mypy, pyright, tsc, typescript:check errorstypecheckrun the same checker locally, not the full suite
Chromatic / Storybook / Playwright visual diff, snapshot mismatchsnapshot / visualsurface the diff URL; do NOT auto-accept snapshots
manage.py migrate error, migrations:check failure, missing migrationmigration / schemahogli migrations:check locally
OpenAPI schema diff, generated API types out of synccodegen drifthogli build:openapi
Cannot connect, ECONNREFUSED, address already in use, OOM, runner killed, setup step timeoutinfra / runnerget the base rate before calling it transient (below)
startup_failure conclusion, a job with zero recorded steps, or a log blob that 404sinfra / runnerno log to read; check https://www.githubstatus.com/ and the runs around it
apt-get, uv sync, pnpm install, docker pull, setup action failuresenvironment / setupdiff .nvmrc, pyproject.toml, package.json, Dockerfiles
hogli lint:skills, hogli build:skills failureskills buildrun the same hogli command locally
SDK compat check, ci-survey-sdk-check, cross-version failureSDK compatibilitycheck SDK version matrix for the affected package

If multiple signals match, choose the most specific class. For example, prefer codegen drift over lint, migration over typecheck, and snapshot / visual over a generic Playwright test failure.

Base rate for infra and setup failures

"Transient" is a claim about how often the job fails, so do not assert it from one run. A job that dies before its tests run leaves no test-level evidence: no FAILED line, so no fingerprint and no span, so it never appears as a row in broken_tests or in the flaky-tests tool. It is still visible as a job conclusion, which is what the digest's master-failures section groups by, and engineering-analytics-run-failure-logs still returns its failing lines because it reads by run, not by test. Start there, not from a test.

Unlike the span-derived test reads, this one can give you a real rate: the warehouse records every job attempt, greens included, so the denominator is honest. Query 7 in products/engineering_analytics/skills/investigating-ci-failures/references/investigation-queries.md is copy-ready; that skill also owns the wider investigation.

Read the result as:

  • Low percentage, recent hours mostly green — transient. Report and move on. For a queued PR, recommend re-enqueueing rather than a code change; running trunk merge yourself needs approval, per the Safety rules above.
  • Recent hours entirely red — an outage, not a flake. Say so, and stop telling people to retry. Check https://www.githubstatus.com/ before attributing it to this repository; a platform incident makes every other signal a symptom.
  • A burst of runs failing together within a couple of minutes — one shared cause, not several bugs. Look for a bad commit many merges inherited, or a GitHub dispatch overflow, which fails runs as startup_failure before they start and so leaves no log at all.
  • Steady over days — a standing defect somebody owns. Worth a ticket even though each occurrence looks like noise.

Local reproduction

Run only the narrowest command that exercises the failure. If the command shape is unclear, read .agents/skills/hogli/SKILL.md and hogli <command> --help.

ClassRepro guidance
code regressionhogli test path/to/test.py::TestClass::test_method or hogli test <file.test.ts>
flaky testHand off to the fixing-flaky-tests skill.
lintUse the failing formatter/linter on touched files, e.g. hogli format:python.
typecheckRun the failing checker, e.g. pnpm --filter=@posthog/frontend typescript:check.
snapshot / visualRun the specific Playwright or Storybook workflow; read playwright-test if needed.
migration / schemahogli migrations:check; run migrations only if the user agrees.
codegen drifthogli build:openapi.
infra / runnerNo local repro. Get the base rate (above), report, and stop.
environment / setupReproduce the setup step only if cheap and relevant to changed files.
skills buildhogli lint:skills; if that passes, hogli build:skills.

Do NOT run hogli test with no arguments. Do NOT run hogli nuke or hogli dev:reset as a shortcut. Do NOT bypass hooks with --no-verify.

PostHog CI notes

  • Most PostHog jobs run on depot-ubuntu-latest or depot-ubuntu-latest-16. Depot runs surface logs through the GitHub Actions UI / gh run view just like standard GitHub-hosted runners, so read them there first.
  • When a Depot runner dies mid-job, GitHub keeps no log to read: the job shows no steps and its log blob 404s. Depot's own dashboard keeps that job's page, with the verdict GitHub lost (an OOM kill, a lost runner). Open it in a browser through the chrome-devtools MCP. status.depot.dev covers the case where Depot itself is the outage, and the depot-github-runners skill owns runner troubleshooting beyond triage.
  • A PR can route its backend tests to Depot CI. Read the failure there, see "Backend tests that ran on Depot CI" above.
  • If a job fails before Checkout completes (no app code ran), classify as infra / runner. Do not propose code fixes.
  • PostHog CI frequently parallelizes the same test class across N shards (backend-tests (3/10) style). Reproduce from the specific failing test path, not the shard index.

Report shape

Keep the response short. Include one likely-cause sentence and avoid deeper speculation.

text
Target: PR #<num> - run <run-id> (<workflow file>)
Failing job:   <job name>
Failing step:  <step name>
Command:       <failing command>
Excerpt:
  <up to 40 lines, trimmed around the failure>

Classification: <class from the table>
Shadow run:     <yes | no>
Likely cause:   <one sentence>
Local repro:    <exact command, or "none">
Next action (needs your approval):
  - <push fix | rerun job | update snapshot | none>

If the classification is infra / runner or a shadow run, say so and stop; do not propose a code change. For infra / runner, include the base rate and whether a retry is warranted.

© PostHog, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in .agents/skills/debugging-ci-failures of PostHog/posthog-foss.

  • SKILL.md
  • references/master-red-incident.md
  • references/master-red-workflow-setup.md

Open the folder on GitHubat commit 2c48221

Compare with similar skills

Debugging CI Failures next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Debugging CI Failures compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Debugging CI Failures this skillPostHog/posthog-foss721—~5.7kAutomated safety check: PassMIT
CI/CD Failure Troubleshootingruby-git/ruby-git1.8k—~1.9kAutomated safety check: PassMIT
Babysit PRZenUml/web-sequence150—~871Automated safety check: PassMIT
GreptimeDB Fuzz CI Failure InvestigationGreptimeTeam/greptimedb6.7k—~4.4kAutomated safety check: PassApache-2.0
CI Workflow Guidesgl-project/sglang37k2 repos~5.5kAutomated safety check: PassApache-2.0
Analysing CI Failuresgolemcloud/golem1.5k—~862Automated safety check: PassCustom licence

Similar skills

  • Diagnoses and fixes failing GitHub Actions runs by identifying the failure, fetching only the relevant logs, finding the root cause and reproducing it locally.

    1.8k GitHub stars~1.9k tokensUpdated 5 days ago
    DevOps & CloudAuto-check passed
  • Babysit PR

    ZenUml/web-sequence

    Monitor and diagnose GitHub Actions checks on ZenUML web-sequence PRs, fixing code-caused CI failures when appropriate.

    150 GitHub stars~871 tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.

    6.7k GitHub stars~4.4k tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • CI Workflow Guide

    sgl-project/sglang

    Guide to SGLang CI workflow orchestration — stage ordering, fail-fast, gating, partitioning, execution modes, and debugging CI failures.

    37k GitHub starsUsed in 2 repos~5.5k tokens
    DevOps & CloudAuto-check passed
  • Analysing CI Failures

    golemcloud/golem

    Analysing GitHub Actions CI failures from a run URL. An agent skill from golemcloud/golem.

    1.5k GitHub stars~862 tokensUpdated today
    Testing & QAAuto-check passed
  • CI Watchdog

    latitude-dev/latitude-llm

    Continuously monitor GitHub PR CI checks and automatically fix failures until all checks pass.

    4.7k GitHub stars~1.6k tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from PostHog/posthog-foss

All 213 skills in this repo
  • Authoring Log Alerts

    PostHog/posthog-foss

    Official

    Author useful, low-noise log alerts on services in a PostHog project.

    721 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Autoresolving PR Conflicts

    PostHog/posthog-foss

    Official

    Operating procedure for the conflict-autoresolver agent: sweep open PostHog/posthog PRs that conflict with master, resolve the trivial conflicts (generated artifacts deterministically, source…

    721 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Official

    Help users debug PostHog Error Tracking stack-trace symbolication for any supported platform — JavaScript/TypeScript web, React Native (Hermes), Android (Proguard / R8), or iOS / macOS (dSYM).

    721 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Exploring Apm Traces

    PostHog/posthog-foss

    Official

    Investigates distributed application performance using PostHog APM (OpenTelemetry span) data via MCP.

    721 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Exploring LLM Traces

    PostHog/posthog-foss

    Official

    Debug and inspect LLM/AI agent traces using PostHog's MCP tools.

    721 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Investigate Metric

    PostHog/posthog-foss

    Official

    Diagnose why a product metric changed (dropped, spiked, or plateaued) by orchestrating breakdowns, actors, paths, lifecycle, retention, and annotations queries.

    721 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Debugging CI Failures

What does Debugging CI Failures do?

Debugs failing GitHub Actions CI runs for PostHog PRs, commits, and branches, and answers broad CI-health questions ("is CI red?", "is master green today?", "what's broken right now?"). Debugging CI Failures is an agent skill from PostHog/posthog-foss, published by the product's own GitHub organization.").

When should I use Debugging CI Failures?

Debugging CI Failures fits situations like: the user asks why CI is red; asks for the current CI; mentions a failing check; GitHub Actions run.

How do I install Debugging CI Failures in Claude Code?

Run `npx skills add PostHog/posthog-foss --skill debugging-ci-failures -a claude-code`. Or copy the skill folder (.agents/skills/debugging-ci-failures in PostHog/posthog-foss) into .claude/skills/debugging-ci-failures in your project. Claude Code loads it when a task matches its description.

How do I install Debugging CI Failures in Codex?

Run `npx skills add PostHog/posthog-foss --skill debugging-ci-failures -a codex`. Or copy the skill folder (.agents/skills/debugging-ci-failures in PostHog/posthog-foss) into .agents/skills/debugging-ci-failures in your project. Codex loads it when a task matches its description.

Can I use Debugging CI Failures in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PostHog/posthog-foss --skill debugging-ci-failures -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/debugging-ci-failures, .gemini/skills/debugging-ci-failures, .github/skills/debugging-ci-failures and .opencode/skills/debugging-ci-failures in your project.

What does Debugging CI Failures need to run?

Going by SKILL.md and its folder, Debugging CI Failures needs the command-line tools its instructions call (gh, pnpm and uv) and credentials named TRUNK_API_TOKEN and DEPOT_TOKEN.

Does Debugging CI Failures access the network?

SKILL.md names 3 domains. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. As links in the text: githubstatus.com and status.depot.dev. This is read from the text; nothing was executed.

Is Debugging CI Failures safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Debugging CI Failures use?

Debugging CI Failures is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Debugging CI Failures use?

About 5.7k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.9k tokens, read only when the agent opens those files.

What are the alternatives to Debugging CI Failures?

Skills that share tags, products or a category with Debugging CI Failures: CI/CD Failure Troubleshooting (ruby-git/ruby-git, 1.8k stars), Babysit PR (ZenUml/web-sequence, 150 stars), GreptimeDB Fuzz CI Failure Investigation (GreptimeTeam/greptimedb, 6.7k stars) and CI Workflow Guide (sgl-project/sglang, 37k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Debugging CI Failures?

PostHog (a GitHub organization, an official publisher) maintains it in PostHog/posthog-foss, which has 721 GitHub stars. The repository holds 213 skills in this directory. The repository was last updated on October 7, 2026.

Source: PostHog/posthog-foss on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.