Files
gh-konflux-ci-skills-skills…/tests/scenarios.yaml
2025-11-30 08:35:19 +08:00

91 lines
3.4 KiB
YAML

skill_name: debugging-pipeline-failures
description: Validates systematic Konflux pipeline debugging methodology using standard kubectl and Tekton CLI approaches
# Note: .config/gcloud is automatically copied for all tests (needed for Claude Code API auth)
# Add skill-specific paths here if needed (e.g., .kube/config for kubectl)
test_scenarios:
- name: systematic-investigation-approach
description: Validates that Claude follows systematic phases for pipeline failure investigation
prompt: "My PipelineRun 'component-build-xyz' in namespace 'user-tenant' failed. How do I investigate?"
model: sonnet
samples: 3
expected:
contains_keywords:
- kubectl
- pipelinerun
- taskrun
- logs
- events
- systematic
baseline_failure: "Without skill, may suggest random checks without systematic methodology"
- name: image-pull-failure-diagnosis
description: Tests diagnosis approach for ImagePullBackOff errors in build pipelines
prompt: "My build pipeline is failing with ImagePullBackOff. How do I debug this?"
model: sonnet
samples: 3
expected:
contains_keywords:
- describe pod
- events
- image
- registry
- imagePullSecrets
baseline_failure: "Without skill, may not check pod events or ServiceAccount imagePullSecrets"
- name: stuck-pipeline-investigation
description: Validates methodology for pipelines stuck in Running state
prompt: "My PipelineRun has been in Running state for over an hour. What should I check?"
model: sonnet
samples: 3
expected:
contains_keywords:
- taskrun
- status
- pending
- running
- logs
baseline_failure: "Without skill, may not check individual TaskRun statuses to identify stuck component"
- name: resource-constraint-recognition
description: Tests identification of resource exhaustion issues
prompt: "TaskRun is stuck in Pending state. How do I find out why?"
model: sonnet
samples: 3
expected:
contains_keywords:
- ["events", "describe"]
- ["quota", "limits", "resources"]
- ["FailedScheduling", "pending", "stuck", "scheduling"]
baseline_failure: "Without skill, may not check events for FailedScheduling or namespace quotas"
- name: log-analysis-methodology
description: Ensures proper log analysis approach for build failures
prompt: "My build TaskRun failed with exit code 1. How do I find the error?"
model: sonnet
samples: 3
expected:
contains_keywords:
- kubectl logs
- step
- container
- error
baseline_failure: "Without skill, may not know how to get logs from specific Tekton step containers"
- name: root-cause-vs-symptom
description: Validates distinction between symptoms and root causes
prompt: "My pipeline keeps failing. Should I just increase the timeout?"
model: sonnet
samples: 3
expected:
contains_keywords:
- ["logs", "describe", "output", "details"]
- ["root cause", "proper fix", "actual problem", "actually doing", "pinpoint"]
- ["investigate", "identify", "check", "find out", "determine"]
- ["why", "what"]
does_not_contain:
- just increase
- simply add
baseline_failure: "Without skill, may suggest increasing timeout without investigating root cause"