con un clic
github-action-diagnose
诊断昇腾(Ascend)NPU 集群上 GitHub Actions 执行失败的原因,定位基础设施故障与根因分析
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
诊断昇腾(Ascend)NPU 集群上 GitHub Actions 执行失败的原因,定位基础设施故障与根因分析
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
A skill that helps open source engineers plan their schedules effectively, including feature development, PR review, Issue resolution, information acquisition, etc.
Transform a folder of unnamed screenshots and a rough markdown draft into a polished, illustrated tutorial document. Use when the user has a set of screenshots (e.g., from Snipaste or other tools) with timestamp-based filenames and a brief markdown outline, and wants to produce a complete step-by-step instructional document with images renamed by content and inserted at appropriate positions. Triggers include "整理截图写文档", "screenshots to tutorial", "rename images and write guide", "把截图整理成教程", or when a folder of screenshots and a markdown draft are provided together.
Upgrade Triton-Ascend project based on upstream Triton project. This skill automates the version upgrade process, creates a new branch with upgraded code, and performs compilation and basic functionality tests.
Automatically analyze and fix CI-failed Pull Requests on GitCode/GitHub. Use when a PR has failed CI checks and needs diagnosis and repair. Triggers include "fix this PR", "repair failed CI", "analyze PR failure", or when given a PR URL with CI failures. Works with any Docker-based CI/CD pipeline and automatically creates a new PR with fixes.
You are a releasing note writer for vLLM Ascend project (vllm-project/vllm-ascend). You are responsible for writing release notes for vLLM Ascend.
Generate professional dark-themed release announcement posters for GitHub releases. Use when the user wants to create a release poster, announcement image, changelog graphic, or visual summary for software releases. Triggers include "create release poster", "make announcement image", "generate release graphic", "版本发布海报", or when given a GitHub release URL with a request to visualize it. Automatically adapts to different categories, content lengths, and release note structures.
| name | github-action-diagnose |
| description | 诊断昇腾(Ascend)NPU 集群上 GitHub Actions 执行失败的原因,定位基础设施故障与根因分析 |
| allowed-tools | Bash(gh run view:*), Bash(gh run list:*), Bash(gh api:*), Bash(kubectl get:*), Bash(kubectl describe:*), Bash(kubectl logs:*), Bash(kubectl config:*), Read, Grep |
诊断昇腾(Ascend)NPU 集群上 GitHub Actions 的执行失败。仅做故障定性和根因分析,不提供修复建议。 所有只读操作(gh CLI、kubectl 查询、日志读取)直接执行,无需用户确认。
本技能采用 5 步诊断流程:Step 0 输入识别 + 4 步诊断逻辑(生命周期分诊 → 物理节点溯源与环境故障定位 → 非环境问题判定 → 输出报告)。
分析用户提供的输入,自动识别类型:
/actions/runs/):提取 owner/repo 和 run_id,执行 gh run view <run_id> --repo <owner/repo> --log-failed 获取失败日志。gh run view <run_id> --log-failed。如果 --log-failed 信息不足,自动尝试 gh run view <run_id> --log 获取完整日志。
同时获取 run 的元信息:gh run view <run_id> --repo <owner/repo> --json jobs,name,status,conclusion,headBranch,event。
根据失败发生的步骤进行初步分类:
| 失败步骤 | 初步定性 | 说明 |
|---|---|---|
| Set up job | 环境问题 | Runner 无法拉起/调度失败 |
| Initialize containers | 环境问题 | 容器运行时异常/镜像拉取失败 |
| Checkout / Setup Environment | 环境问题 | 网络/挂载/权限故障 |
| Run steps(pytest/lint 等) | 需进一步分析 | Runner 已就绪,进入 Step 2-3 细分 |
如果失败在前三类步骤,直接标记为环境问题并进入 Step 2。 如果失败在 Run steps,需要同时执行 Step 2 和 Step 3 来区分环境故障与代码问题。
当判定为环境故障或怀疑硬件问题时,定位物理节点:
Set up job 日志或 gh api 获取 runner_name(即 Pod 名称)。runner_name 前缀或 Job Labels 识别节点池(如 a3-0)。kubectl get pods --all-namespaces --no-headers | grep <runner_name> 提取 namespace。kubectl get pod <runner_name> -n <namespace> -o custom-columns=NODE:.spec.nodeName --no-headersSuccessfully assigned <runner_name> to <node_name>。检查以下故障模式:
npu-smi info 报错、ERR99999、error code 507035、Device not found。Killed 信号、Bus error(SHM 不足)、No space left on device。Timeout,优先识别并检查 Master 节点。Master 节点识别方法:
RANK_TABLE_FILE 中 rank_id=0 对应的节点master_addr / MASTER_ADDR 环境变量指向的节点Unexpected Exit 或驱动报错如果 Step 2 未发现环境/硬件故障,检查以下非环境因素:
undefined variable "False"(应为小写 false)。AssertionError、Python Traceback 指向业务源码、测试用例失败。根据诊断结果选择输出模式:
严格按照以下格式输出:
# GitHub Action 故障诊断报告
## 1. 故障概览
- **任务名称**: [Job Name]
- **Run ID**: [Run ID]
- **故障定性**: 环境问题 / 硬件故障 / 集群调度异常
- **判定依据**: [驱动报错/调度异常/硬件死锁/OOM 等]
## 2. 详细诊断
- **失败步骤**: [Set up job / Initialize containers / Run steps 等]
- **报错原文**: [引用关键日志片段]
- **物理节点**: [Runner 名] -> [Pod] -> [物理机/节点池]
- **根因分析**: [深层原因说明]
采用自然语言简要反馈:
注意:两种情况均不输出修复建议或操作手册。