ワンクリックで
ワンクリックで
Create JIRA bugs from analyze-ci failure reports with cross-release deduplication (dry-run by default)
Check OCP release schedule, verify availability, evaluate z-stream need, or check nightly build gaps
Run the full Prow CI release testing workflow — create PR, trigger jobs, check status, merge PR, download and upload artifacts
Regenerate the CI Doctor HTML report from existing data
Analyze CI for multiple MicroShift releases and produce an HTML summary
Download Prow job artifacts, identify root cause of failure, and produce a structured error report
| name | lvms-ci:doctor |
| argument-hint | ["release1","release2","..."] |
| description | Analyze CI for LVMS periodic jobs and produce an HTML summary |
| user-invocable | true |
| allowed-tools | Skill, Bash, Read, Write, Glob, Grep, Agent |
/lvms-ci:doctor main
/lvms-ci:doctor 4.20,4.21,4.22,main
Accepts a comma-separated list of release versions (or main), runs analysis for each release, and produces a single HTML summary file consolidating all results. Uses deterministic scripts for data collection, artifact download, aggregation, and HTML generation. LLM agents are used only for per-job root cause analysis.
<ARGUMENTS> (required): Comma-separated list of release versions (e.g., main or 4.20,4.21,4.22,main)Compute once at the start by running date +%y%m%d and substituting into the path below. In all commands, replace <WORKDIR> with the computed path — do not use shell variables.
/tmp/lvm-operator-ci-claude-workdir.<YYMMDD>
Goal: Deterministically collect all failed jobs and download their artifacts before any LLM analysis.
Actions:
Determine today's <WORKDIR> by running date +%y%m%d and substituting into /tmp/lvm-operator-ci-claude-workdir.<YYMMDD>. Use this value in all subsequent commands.
Run the prepare script:
bash plugins/lvms-ci/scripts/doctor.sh prepare --component lvm-operator --workdir <WORKDIR> <ARGUMENTS>
The script deterministically:
<WORKDIR>/analyze-ci-release-<version>-jobs.jsonRead the JSON output to know which releases have jobs to analyze and how many
Job JSON field names (use these exactly — do NOT guess alternatives like job_name):
job — full job namebuild_id — unique build identifierartifacts_dir — local path to downloaded artifactsurl — Prow job URLstatus — job result (failure, FAILURE, SUCCESS, PENDING)Error Handling:
<ARGUMENTS> is empty, show usage and stop"error" field in the JSON summary, data collection failed for that release — report the error to the user but continue with other releasesGoal: Get detailed root cause analysis for each failed job using pre-downloaded artifacts.
Actions:
Use the JSON summary output from Step 1 to build agent prompts. Do NOT read the job JSON files into the main conversation — the prepare script already printed all job details (artifacts_dir, build_id, job name) and agents receive artifacts_dir directly in their prompt.
For every failed job across all releases, launch a separate Agent (using the Agent tool, NOT the Skill tool):
Agent: subagent_type=general_purpose, prompt="Analyze this Prow job and save the report:
1. Run /lvms-ci:prow-job <ARTIFACTS_DIR>
2. After the analysis completes, save the FULL report output (including the --- STRUCTURED SUMMARY --- block) to:
<WORKDIR>/analyze-ci-release-<RELEASE>-job-<N>-<JOB_ID>.txt
Use the Write tool to save the file. The file must contain the complete analysis report."
Launch ALL agents in a single message as foreground agents (do NOT use run_in_background). Foreground agents in the same message run concurrently — this is just as fast as background agents but keeps your turn active until all complete.
Say "Analyzing N jobs in parallel..." in your message text alongside the Agent tool calls.
When all agents return, immediately proceed to Step 3 in the same turn. Do NOT stop or end your turn between Step 2 and Step 3.
IMPORTANT: This step is MANDATORY. The task is incomplete without it. You MUST run this even if previous steps produced errors.
Goal: Deterministically aggregate results and generate the HTML report.
Actions:
Run the finalize script:
bash plugins/lvms-ci/scripts/doctor.sh finalize --component lvm-operator --workdir <WORKDIR> <ARGUMENTS>
The script deterministically:
aggregate.py for each release → summary.json filescreate-report.py → lvm-operator-ci-doctor-report.htmlReport the script's output to the user
Actions:
Example Output:
Summary:
Periodics:
Release main: 3 failed periodic jobs
Release 4.22: 0 failed periodic jobs
HTML report generated: <WORKDIR>/lvm-operator-ci-doctor-report.html
/lvms-ci:doctor main
/lvms-ci:doctor 4.20,4.21,4.22,main
gsutil CLI must be installed for GCS access (uses anonymous access on public buckets)prepare script downloads all artifacts upfront so prow-job agents use local paths (no redundant downloads)finalize script runs aggregation and HTML generation in one call<WORKDIR> — no improvised names