Skip to content

wheel-failure-triage

Collects structured wheel failures across GitLab build pipelines and prepares one self-contained audit child job for PFA. Every occurrence keeps its originating source_pipeline_url and producer job URL. Shared descendants are followed once, and artifact requests use the producing project's ID. Collection and missing evidence errors remain visible in the report.

Inputs: GitLab CI pipeline context and original bootstrap artifacts. Outputs: failures.json, audit.yml, the standalone audit CLI, and the PFA pipeline response after notification.

Plugin: pipeline-skills | Internal

Contract

Skill Contract canonical-skill-v1

Collect wheel failures from a root GitLab pipeline and its build descendants, prepare one audit child, and start PFA after the audit completes while preserving links to the originating pipelines.

Identity

Functions
orchestrate
Success
  • failures.json retains every occurrence's source_pipeline_url and producer.job_url with available diagnostics.
  • audit.yml defines one audit job that fails for a nonempty report and passes for a clean report.
  • notify starts PFA after the audit completes, or uses the root pipeline when launch fails, and records the response.

Optimization Targets

task_success deterministic
evidence_completeness deterministic

Invariants

Must Preserve
  • Keep collection deterministic; do not group failures with an LLM or create audit jobs per failure group.
  • Retain explicit collection and evidence errors rather than silently dropping them.
  • Follow shared descendants once and read artifacts from the producing job's project.
  • Preserve the originating pipeline URL separately from the audit pipeline URL.
  • Use BOT_PAT for GitLab API access and PFA pipeline creation; honor notification suppression settings.
Fixed Context
toolsBash, Read
clipython3
knowledgetask_inputtask_private, tool_outputtask_private

Traceability

Usage

Internal CI workflow. Invoke the bundled wheel_failure_triage.py CLI with prepare, audit, or notify. The collector copies the audit CLI into its artifacts so the child uses only Python's standard library. API collection and PFA handoff use BOT_PAT; prepare and notify also require requests and PyYAML.