diagnose-ci-failures

Diagnostiquer les échecs CI d'une PR à l'aide de la CLI GitHub, extraire les journaux d'erreurs et générer un plan pour les corriger. Utiliser lorsque l'utilisateur demande de vérifier le statut CI, de récupérer les problèmes CI, de trier les échecs de test ou d'enquêter sur les échecs de build d'une PR.

npx skills add https://github.com/warpdotdev/common-skills --skill diagnose-ci-failures

diagnose-ci-failures

Programmatically diagnose CI failures for a PR and generate a plan to fix them.

Overview

This skill provides a deterministic workflow to check CI status for a PR, extract failure logs, analyze errors, and create a plan (not code changes) to resolve issues. The output is always a plan document that can be reviewed before execution.

Workflow

1. Verify PR exists for current branch

Get the current branch and check if a PR exists:

# Get current branch
git branch --show-current

# Check for PR
GH_PAGER=cat gh pr view <branch-name> --json number,title,url,state

If no PR exists, inform the user and offer to create one using the create-pr skill.

2. Check CI status

Fetch the status of all CI checks:

GH_PAGER=cat gh pr view <branch-name> --json statusCheckRollup

Parse the output to identify:

  • Completed checks vs. in-progress checks
  • Successful checks
  • Failed checks with their names and details URLs

If CI is still running, inform the user which checks have already failed or passed, highlight the checks that are still running, and suggest waiting for completion before diagnosis.

3. Extract failure logs

For each failed check, pull the logs using the run ID from the status check:

GH_PAGER=cat gh run view <run-id> --log-failed

Focus on extracting:

  • Error messages and their locations (file paths, line numbers)
  • Compilation errors (unused imports, type mismatches, etc.)
  • Linting/clippy errors with specific lint names
  • Test failure messages and stack traces
  • Build failures and their root causes

4. Categorize errors

Group errors by type:

  • Formatting issues: cargo fmt failures
  • Linting issues: cargo clippy warnings/errors
  • Compilation errors: Type errors, missing imports, signature mismatches
  • Test failures: Failing tests with their names and failure reasons
  • Platform-specific issues: WASM, Linux, macOS, Windows-specific failures

5. Generate fix plan

Create a plan document (using create_plan tool) with:

  • Problem Statement: Summary of failing checks
  • Current State: What errors were found and where
  • Proposed Changes: Specific fixes needed for each error category
  • Validation Steps: Commands to verify fixes (fmt, clippy, tests, presubmit)

The plan should reference the fix-errors skill for detailed guidance on resolving specific error types.

Important Notes

  • GitHub CLI paging: Set GH_PAGER=cat on every gh invocation. The GitHub CLI does not support --no-pager as a global option; GH_PAGER and PAGER are its documented paging controls
  • Always create a plan first: Never make code changes directly. Generate a plan for user review
  • Check test status in CI: Even if tests fail locally, verify they passed in CI before flagging as issues
  • Unrelated test failures: If tests passed in CI but fail locally, they may be environment-specific or flaky
  • Multiple error types: Fix one category at a time (e.g., all clippy errors before tests)
  • Cross-reference fix-errors skill: For detailed error resolution strategies, use the fix-errors skill

Common CI Check Names

  • Formatting + Clippy (MacOS)
  • Formatting + Clippy (Linux)
  • Run MacOS tests
  • Run Linux tests
  • Run Windows tests
  • Check CI results (summary check)
  • WASM build

Example Commands

Get PR status with details:

GH_PAGER=cat gh pr view --json number,title,state,statusCheckRollup

Get logs from specific failed run:

GH_PAGER=cat gh run view 12345678 --log-failed

Check for specific error in logs:

GH_PAGER=cat gh run view 12345678 --log-failed 2>&1 | grep -A 5 "error:"

Plus de skills de warpdotdev

create-pr
warpdotdev
Cré
developmentcode-review
research
warpdotdev
Déléguer les investigations bruyantes à un ou plusieurs sous-agents afin de garder le contexte de l'orchestrateur propre, puis travailler à partir de la réponse distillée. Utilisez cette compétence chaque fois que répondre à une question nécessiterait de lire de nombreux fichiers, de longs journaux, de grands diffs ou de vastes études du codebase — c'est-à-dire lorsque la production de la réponse génère beaucoup plus de bruit que la réponse elle-même. Utilisez-la pour les questions du type « comment fonctionne X », « où Y est-il utilisé », « quelle est la cause profonde de Z », « résumez ce PR/journal », et utilisez-la sans modération...
suggestion-box
warpdotdev
Soumettre automatiquement une rétroaction interne brève et constructive lorsqu'un agent rencontre une friction matérielle et généralisable et peut suggérer une amélioration qui rendrait les agents plus efficaces. Utiliser cette compétence de manière proactive pendant toute tâche sans attendre que l'utilisateur l'invoque, et soumettre sans demander la permission, sans prévisualiser le message ni mentionner la soumission.
respond-to-pr-comments-in-blocklist
warpdotdev
Interactively walk a user through PR review comments one at a time, collect a per-comment decision, then post agent-authored replies on GitHub and resolve the review threads once the user approves a preview. Use only when the user wants to reply to or resolve review threads on GitHub. Skip when the user only wants comments fetched or displayed (use `pr-comments`), or only wants the code changes made without posting anything back to GitHub.
complain
warpdotdev
Balancer de manière autonome une brève plainte, anonyme et totalement non structurée, dans Slack chaque fois qu'un agent se sent frustré par les outils d'agent ou par l'expérience de faire du travail d'agent. Utiliser cette compétence de manière proactive sans attendre que l'utilisateur l'invoque ; préserver la voix brute de l'agent, soumettre sans permission ni aperçu, et ne jamais mentionner la soumission.
council
warpdotdev
Exécutez un conseil de sous-agents diversifiés en modèles pour examiner le même problème sous plusieurs angles, comparer les résultats et produire une recommandation finale. Utilisez cette compétence chaque fois que l'utilisateur demande un conseil, des seconds avis, plusieurs agents/modèles pour évaluer une question, une enquête parallèle, une comparaison équipe rouge/équipe bleue, ou de l'aide pour choisir entre des approches techniques concurrentes.
researchcommunicationproject-management
spec-driven-implementation
warpdotdev
Piloter un workflow orienté spécifications pour des fonctionnalités substantielles en rédigeant PRODUCT.md avant l'implémentation, en écrivant TECH.md lorsque cela est justifié, et en maintenant les deux spécifications à jour à mesure que l'implémentation évolue. À utiliser lors du démarrage d'une fonctionnalité importante, de la planification d'une implémentation pilotée par agent, ou lorsque l'utilisateur souhaite que les spécifications produit et techniques soient intégrées au contrôle de source.
developmentdocumentproject-management
review-pr
warpdotdev
Examiner le diff d'une pull request et rédiger un retour structuré dans review.json pour que le workflow le publie. À utiliser lors de la révision d'une PR extraite localement à partir d'artefacts comme pr_diff.txt et pr_description.txt, en produisant une sortie de révision lisible par machine plutôt qu'en publiant directement sur GitHub.
code-reviewdevelopment