← Testkube SkillsCONTENT HISTORY

Update to Testkube Skills

Snapshot Sep 30, 2026 · 23:13 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "testworkflow-runner",
  "description": "Run, monitor, and diagnose Testkube TestWorkflow executions. Use when a TestWorkflow has been authored and needs to be executed, or when a previous execution failed and needs diagnosis. Reports execution results and root causes — does NOT edit workflow YAML.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 229
    },
    {
      "relative_path": "references/analysis-guide.md",
      "size_in_bytes": 3720
    },
    {
      "relative_path": "references/cli-reference.md",
      "size_in_bytes": 4527
    }
  ],
  "skill_md_contents": "---\nname: testworkflow-runner\ndescription: \"Run, monitor, and diagnose Testkube TestWorkflow executions. Use when a TestWorkflow has been authored and needs to be executed, or when a previous execution failed and needs diagnosis. Reports execution results and root causes — does NOT edit workflow YAML.\"\n---\n\n# testworkflow-runner\n\nRun a TestWorkflow, read execution logs, and diagnose failures. This skill handles the execution lifecycle AFTER the\nworkflow YAML has been written and validated by `testworkflow-author`.\n\nThis skill does NOT edit workflow YAML. If the diagnosis indicates a workflow configuration problem (wrong image,\nmissing step, incorrect command), report it in the deliverable — the parent agent decides whether to re-invoke\n`testworkflow-author` with the fix.\n\n## The Core Loop\n\n1. **Review context** — check for context from previous agents (workflow file path, image chosen, install/run commands,\n   known issues)\n2. **Create and run the workflow** — create the workflow and start an execution. Use a blocking run so the command\n   returns only when the execution completes:\n   ```bash\n   testkube create testworkflow -f workflow.yaml\n   testkube run testworkflow <name> -f\n   ```\n   The default file path is `workflow.yaml`; pass the actual path if the workflow was written to a different location.\n   The `-f` flag streams output and blocks until the execution reaches a terminal state (passed, failed, aborted).\n3. **If failed, get logs** — use `--logs-only` to read just the execution logs. Filter by step or grep for error\n   patterns:\n   ```bash\n   testkube get testworkflowexecution <execution-id> --logs-only\n   ```\n4. **Get execution details** — for full status, step results, and duration:\n   ```bash\n   testkube get testworkflowexecution <execution-id>\n   ```\n5. **Diagnose** — identify root cause using the Failure Patterns below.\n6. **Report your diagnosis** — include workflow name, execution ID, status, exit code, and root cause with a\n   recommendation.\n\n## Rules\n\n1. **MUST read the full execution logs before diagnosing.** Never guess the failure cause from the status alone. The\n   error message in the logs is the source of truth.\n2. **MUST report the EXACT error message from logs.** Copy the relevant error text verbatim — do not paraphrase or\n   summarize it.\n3. **MUST check the exit code.** Exit code 127 = command not found (missing dependency or wrong PATH). Exit code 1 =\n   test assertion failure. Exit code 137 = OOMKilled.\n4. **MUST NOT edit the workflow YAML.** Report what needs to change — the parent handles re-authoring.\n\n## CLI Commands\n\n| Command                                          | Purpose                                                              |\n| ------------------------------------------------ | -------------------------------------------------------------------- |\n| `testkube create testworkflow -f <file>`         | Create a workflow from a YAML file                                   |\n| `testkube run testworkflow <name> -f`            | Run a workflow, stream output, block until completion                |\n| `testkube get testworkflowexecution <id>`        | Get execution status, step results, duration, and artifact listing   |\n| `testkube get testworkflowexecution <id> --logs-only` | Fetch execution logs (supports `--tail`, `--grep`, `--step`)    |\n| `testkube download artifacts <id>`               | Download artifacts from an execution                                 |\n| `testkube download artifacts <id> --mask '.*\\.xml$'` | Download only JUnit XML artifacts                               |\n\nFull CLI reference: `references/cli-reference.md`.\n\n## Failure Patterns\n\n| Symptom                                          | Exit Code | Root Cause                                                                                 | Recommendation                                                                                              |\n| ------------------------------------------------ | --------- | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- |\n| `command not found`                              | 127       | Binary not on PATH — missing `npm ci`/install step, or using bare command instead of `npx` | Add install step, use `npx <tool>`                                                                          |\n| `Executable doesn't exist at /ms-playwright/...` | 1         | Playwright image version doesn't match installed package version                           | Match image tag to lock file version                                                                        |\n| `Please update docker image as well`             | 1         | Playwright explicitly says image/package mismatch                                          | Use the version it suggests                                                                                 |\n| `OOMKilled`                                      | 137       | Container exceeded memory limit                                                            | Increase `resources.limits.memory`                                                                          |\n| `ImagePullBackOff` / `ErrImagePull`              | —         | Image name wrong or registry unreachable                                                   | Verify image exists on registry                                                                             |\n| `DeadlineExceeded`                               | —         | Workflow or step timed out                                                                 | Increase `activeDeadlineSeconds`                                                                            |\n| `CrashLoopBackOff`                               | —         | Container crashes on startup                                                               | Check `command`/`args` or image entrypoint                                                                  |\n| Non-zero exit with test output                   | 1         | Test assertion failures (actual test bugs)                                                 | Tests ran correctly but found failures — this is expected behavior, report as test failure not config issue |\n\n## Interpreting Exit Codes\n\n- **Exit 0**: All tests passed\n- **Exit 1**: Test failures (assertions) OR general error\n- **Exit 127**: Command not found — the binary doesn't exist in PATH\n- **Exit 137**: OOMKilled (SIGKILL from kernel)\n- **Exit 143**: SIGTERM (timeout, graceful shutdown)\n\nWhen exit code is 127, the fix is ALWAYS about dependency installation or PATH — never about the test code itself.\n\n## Reference Index\n\n| Reference                      | When to Load                                | Status    |\n| ------------------------------ | ------------------------------------------- | --------- |\n| `references/analysis-guide.md` | When needing detailed diagnostic procedures | Available |\n| `references/cli-reference.md`  | When needing full CLI flags for run/get     | Available |\n"
}

SHA-256: fc733ddefd060046f816f062a8543b0b07ef4189ac281de6064fd2327d49a850