원클릭으로
nightly
Analyze nightly E2E job failures across llm-d repos. Smart router to sub-skills based on failure type.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Analyze nightly E2E job failures across llm-d repos. Smart router to sub-skills based on failure type.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Generate weekly nightly E2E trend report with failure patterns and success rates
Diagnose deployment failures in nightly E2E runs (helmfile, helm, install.sh)
Diagnose GPU contention failures in nightly E2E runs
Diagnose infrastructure and authentication failures in nightly E2E runs (GCP, AWS, runner issues)
Diagnose pod readiness timeout failures in nightly E2E runs
Full root cause analysis for nightly E2E failures that don't fit simple categories
SOC 직업 분류 기준
| name | nightly |
| description | Analyze nightly E2E job failures across llm-d repos. Smart router to sub-skills based on failure type. |
Analyze and triage nightly E2E job failures across the llm-d org. This is the entry point — it routes to the appropriate sub-skill based on what happened.
CI logs and kubectl output can be hundreds of lines. Always redirect to files:
export LOG_DIR=/tmp/llm-d/nightly-rca
mkdir -p $LOG_DIR
# Pattern: download CI logs to file, never into context
unset GITHUB_TOKEN && gh run view <run-id> --repo <repo> --log > $LOG_DIR/<run-id>.log 2>&1; echo "EXIT:$?"
# On failure: use Agent(subagent_type='Explore') with Grep to find errors
Follow this diagram as the workflow:
START
|
v
[1] Gather nightly run status (all repos)
|
v
[2] Any failures? ───No──> Report "All green" + exit
|
Yes
v
[3] Classify each failure:
|
├── Infra failure (auth, gcloud, AWS creds, runner) ──> nightly:infra
├── GPU contention (insufficient GPUs) ──> nightly:gpu
├── Deploy failure (helmfile, helm, install.sh) ──> nightly:deploy
├── Pod readiness timeout ──> nightly:pods
├── Test failure (e2e-validate, make test-e2e) ──> nightly:test
└── Unknown ──> nightly:rca (full RCA)
export LOG_DIR=/tmp/llm-d/nightly-rca
mkdir -p $LOG_DIR
# Get all nightly/e2e runs from last 24h across key repos
for repo in llm-d/llm-d llm-d/llm-d-workload-variant-autoscaler; do
unset GITHUB_TOKEN && gh run list --repo "$repo" --limit 50 \
--json workflowName,status,conclusion,startedAt,databaseId,url \
| jq '[.[] | select(
(.workflowName | test("[Nn]ightly|[Ee]2[Ee]")) and
(.startedAt > (now - 86400 | strftime("%Y-%m-%dT%H:%M:%SZ")))
)]' > "$LOG_DIR/${repo##*/}-runs.json"
done
# Extract failures
for f in $LOG_DIR/*-runs.json; do
jq -r '.[] | select(.conclusion == "failure" or .conclusion == "startup_failure") |
"\(.workflowName) | \(.conclusion) | \(.startedAt) | \(.databaseId)"' "$f"
done > $LOG_DIR/failures.txt
If failures.txt is empty, report all green and stop.
For each failed run, get the failed step:
RUN_ID=<from failures.txt>
REPO=<repo>
unset GITHUB_TOKEN && gh run view "$RUN_ID" --repo "$REPO" --json jobs \
| jq -r '.jobs[] | .steps[] | select(.conclusion == "failure") | .name' \
> $LOG_DIR/failed-steps-$RUN_ID.txt
| Failed Step Pattern | Category | Sub-Skill |
|---|---|---|
Authenticate to Google Cloud, Set up gcloud, Configure AWS Credentials | Infra auth | nightly:infra |
Set up runner, Set up job (startup_failure) | Runner issue | nightly:infra |
Check GPU availability | GPU contention | nightly:gpu |
Deploy guide via helmfile, Deploy guide via custom script, Deploy infrastructure | Deploy failure | nightly:deploy |
Wait for pods to be ready, Wait for infrastructure | Pod timeout | nightly:pods |
Run E2E validation, Run E2E tests, Run WVA E2E tests | Test failure | nightly:test |
| Anything else | Unknown | nightly:rca |
Create a summary table:
## Nightly Status — YYYY-MM-DD
| Workflow | Platform | Status | Failed Step | Category |
|----------|----------|--------|-------------|----------|
| Inference Scheduling | OCP | pass | — | — |
| Wide EP LWS | OCP | FAIL | Wait for pods | pods |
| Inference Scheduling | GKE | FAIL | Set up gcloud | infra |
Then follow the appropriate sub-skill for each failure.
| Repo | Nightly Workflows |
|---|---|
llm-d/llm-d | 6 OCP + 3 GKE + 3 CKS + EC2 + XPU callers |
llm-d/llm-d-workload-variant-autoscaler | 1 OCP WVA caller |
| Workflow | Platform | Type |
|---|---|---|
reusable-nightly-e2e-openshift.yaml | OpenShift | WVA-specific |
reusable-nightly-e2e-openshift-helmfile.yaml | OpenShift | Helmfile guides |
reusable-nightly-e2e-gke-helmfile.yaml | GKE | Helmfile guides |
reusable-nightly-e2e-cks-helmfile.yaml | CKS (CoreWeave) | Helmfile guides |
| Time (UTC) | OCP | GKE | CKS | EC2 | XPU |
|---|---|---|---|---|---|
| 00:00 | inference-sched | ||||
| 00:30 | pd-disagg | ||||
| 01:00 | precise-prefix | ||||
| 01:30 | sim-accel | ||||
| 02:00 | tiered-prefix | ||||
| 02:30 | wide-ep-lws | ||||
| 03:00 | inference-sched | ||||
| 03:30 | pd-disagg | ||||
| 04:00 | wide-ep-lws | ||||
| 05:00 | wva | ||||
| 05:30 | benchmark | ||||
| 06:00 | accel-test | ||||
| 06:30 | pd-accel | ||||
| 07:00 | wide-ep-accel | ||||
| 10:00 | inference-sched | ||||
| 10:30 | pd-disagg | ||||
| 11:00 | wide-ep-lws | inference+pd+prefix |
nightly:infra — Infrastructure/auth failuresnightly:gpu — GPU contention analysisnightly:deploy — Deployment failuresnightly:pods — Pod readiness timeoutsnightly:test — E2E test failuresnightly:rca — Full root cause analysisnightly:report — Weekly trend report