Test Failure Analysis & Unattended Correction
Overview
Orchestration meta-skill: dispatches parallel analysis agents against trace artifacts (and optionally CI logs), correlates findings, then proposes and implements fixes if the failure is test-side. Runs end-to-end without user interaction.
When NOT to Use
- No trace file AND no GitHub Actions pipeline link (need at least one)
- Unit test failures (this is E2E/Playwright focused)
Prerequisites
- At least one of:
- Playwright trace archive — may be a nested zip (artifacts zip containing a
trace.zip inside). Extract outer zip first, then locate the inner trace zip.
- GitHub Actions pipeline link — enables CI log analysis. Sufficient on its own when tests never executed (e.g., infrastructure/setup failures).
gh CLI installed and authenticated
- Upstream targeting: PRs and issues MUST be opened against the upstream repository (organizations
github.com/containers or github.com/podman-desktop). Use git remote -v to identify the upstream remote. Do NOT open PRs or issues in user fork repositories.
additionalDirectories in .claude/settings.local.json must include:
/tmp — artifact downloads, zip extraction, and log processing
~/Downloads — local trace archives provided by the user
docs/superpowers/analysis — analysis report output
Tooling
- Strict command allowlist: only run Bash commands listed in the
allowed-tools frontmatter and the Command Reference table below. If a command is not listed, do NOT attempt it — find an alternative using the allowed commands or dedicated tools (Read, Grep, Glob). A denied permission prompt will block the entire skill execution.
- Use dedicated tools over Bash equivalents: prefer
Grep over bash grep/rg, Read over bash cat/head/tail, Glob over bash find/ls. Reserve Bash for operations that require shell features (unzip, git, gh).
- Never chain Bash commands. Each Bash tool call must contain exactly one command. Do not use
&&, ||, ;, or | to combine commands. Make separate tool calls instead.
- Package manager: this project uses pnpm (not npm/npx). Always use
pnpm to run scripts. Available scripts are defined in the root package.json — read it to discover the correct commands.
- Artifact handling: CI artifacts expire (typically 90 days). When
gh run download returns "no valid artifacts found", fall back to gh run view {id} --log to read job logs directly.
- Reading external repo files: use
WebSearch or Read on local checkouts. Do NOT use gh api — it is not in the allowed tools.
git add safety: only stage files that this skill created or modified. Never use git add ., git add -A, or stage files outside .github/workflows/, tests/, and packages/ without explicit justification in the analysis report.
git push safety: before pushing, verify with git remote -v that origin points to the user's fork, not the upstream repository. Never push directly to upstream.
- Artifact extraction: always extract to
/tmp/. Never unzip into the project working tree.
- Repo scoping: all
gh pr create, gh gist create, and gh issue create commands must target the upstream repo identified via git remote -v. Never target arbitrary repositories.
- NEVER
git checkout -b, git add, or git commit when COMMIT=false. These commands are gated. If COMMIT is not explicitly true, any attempt to branch, stage, or commit is a skill violation. Leave changes as unstaged working-tree modifications.
- NEVER
git push, gh pr create, gh gist create, or gh issue create when PUBLISH=false. These commands are gated. If PUBLISH is not explicitly true, any attempt to push or interact with GitHub is a skill violation. No remote side effects.
Command Reference
| Command |
When to use |
Guard |
gh run view {id} --repo {owner}/{repo} --json jobs |
Get run metadata, job details, step names and conclusions |
— |
gh run view {id} --repo {owner}/{repo} --log |
Download job logs (fallback when artifacts expired) |
— |
gh run list --repo {owner}/{repo} --workflow {name} |
Check failure frequency across recent runs |
— |
gh run download {id} --repo {owner}/{repo} --dir {path} |
Download test artifacts (traces, videos, results) |
— |
git checkout -b |
Create feature branch for committing changes |
COMMIT=true |
git add |
Stage code/pipeline changes (never reports) |
COMMIT=true |
git commit -m |
Commit staged changes |
COMMIT=true |
git push -u origin |
Push branch to remote |
PUBLISH=true |
gh pr create --draft |
Create draft PR with fix |
PUBLISH=true |
gh gist create --public |
Create public gist with analysis report |
PUBLISH=true |
gh issue create |
Escalation: file issue when fix fails |
PUBLISH=true |
gh label list |
List available labels for issue creation |
PUBLISH=true |
pnpm typecheck |
Verify no type errors introduced |
— |
pnpm svelte:check |
Verify no Svelte component errors |
— |
pnpm lint:check |
Verify no lint errors introduced |
— |
pnpm format:check |
Verify no formatting violations |
— |
Guard column enforcement: A command with a Guard value MUST NOT be executed unless that variable is true. Before running any guarded command, re-verify the variable value. If the guard is not satisfied, skip the command and log why.
Configuration
| Variable |
Default |
Description |
COMMIT |
false |
When true: create git commits for code changes. When false: leave changes unstaged — the user commits manually. |
PUBLISH |
false |
When true: create draft PRs, public gists, and GitHub issues. When false: skip all remote operations. Requires COMMIT=true. |
Enforcement rules:
PUBLISH=true is only valid when COMMIT=true. If PUBLISH=true and COMMIT=false, treat as a configuration error — log a warning, override PUBLISH to false, and continue.
- Default behavior (
COMMIT=false PUBLISH=false): analysis and code corrections are produced as local file changes only. Nothing is committed or published.
Set variables by including them when invoking the skill (e.g., COMMIT=true PUBLISH=true).
Conventions
- DATETIME format throughout this skill:
YY-MM-DD_HH_mm_ss. Derive the timestamp from the CI run time or the artifacts zip file metadata — not from when the skill executes.
- Trace zips from CI artifacts are typically nested (e.g.,
results.zip → traces/trace.zip). The inner trace.zip is npx playwright show-trace compatible.
- The outer artifacts zip also contains additional parseable files that agents should utilize for more accurate analysis:
output.log — full console output from the test run
junit-*.xml / json-results.json — structured test results (pass/fail/skip per test, durations, error messages)
html-results/index.html — rendered HTML test report
**/error-context.md — Playwright error context for failed tests
scripts/tmp_stdout_*.txt / tmp_stderr_*.txt — setup script output and errors
*.log files (e.g., podman-machine-init.log) — environment setup logs
videos/ — test execution recordings (.webm)
- Artifacts can originate from CI or local runs. When no GH link is provided, note in the report that CI-side factors could not be ruled out.
Sub-Agents
| Sub-Agent |
Skill |
Input |
When |
| Trace Analyzer |
playwright-trace-analysis |
Inner trace zip + all supplementary files (see Conventions) → temp dir |
Immediately |
| CI Investigator |
investigate-gh-run |
GH Actions pipeline link |
Parallel with #1 (only if link provided) |
| Code Corrector |
brainstorming → writing-plans → subagent-driven-development |
Analysis report |
Only if failure is test-logic or pipeline-config |
Execution Flow
- Configuration validation (mandatory first step). Before any other action, resolve and log the configuration:
- Extract the artifacts zip into a temp folder. Locate the inner trace zip (typically under
traces/). Dispatch Trace Analyzer immediately. If GH Actions link provided, dispatch CI Investigator in parallel.
- Correlate findings from agent(s) to identify potential issues. If only trace data is available, note in the report that CI-side factors (runner resources, environment config) could not be ruled out.
- Write analysis report →
docs/superpowers/analysis/DATETIME_analysis_report.md
- Write short and concise summary →
docs/superpowers/analysis/DATETIME_summary.md
- Decision point:
digraph correction_decision {
"Findings correlated" -> "Failure cause?";
"Failure cause?" -> "Dispatch Code Corrector" [label="test logic / pipeline config"];
"Failure cause?" -> "Report only, end execution" [label="infra / external / flaky env"];
}
If "Report only": No further agent action. Reports remain as local files (do NOT commit them to git regardless of COMMIT setting — reports are never committed). Future: send DATETIME_summary.md to Slack channel for visibility (CI instability notification). End execution here.
If "Dispatch Code Corrector": Continue with the following steps:
- Code Corrector implements corrections (see Code Corrector Agent Instructions below).
- Final verification:
- Code review (superpowers:requesting-code-review) — high-confidence review of all changes
- Run
pnpm typecheck — no type errors introduced
- Run
pnpm svelte:check — no Svelte component errors introduced
- Run
pnpm lint:check — no lint errors introduced
- Run
pnpm format:check — no formatting violations introduced
- If any check fails: launch a code-review sub-agent to diagnose, fix the issues, then re-run the failed checks. Max 3 fix-verify cycles. If still failing after 3 cycles, revert all code changes and follow the Abort & Escalate procedure (see below).
- Commit gate — only execute this step if
COMMIT=true:
- Create a feature branch via
git checkout -b.
- Stage only code/pipeline changes (
git add — never stage reports).
- Commits must be semantic — run
git log to match the repository's commit message style. Keep commit messages to a single subject line (no body) — detailed context belongs in the PR description, not duplicated in the commit.
- If
COMMIT=false: leave all changes unstaged. Log: COMMIT=false — skipping git commit. Changes are local working-tree modifications only. End execution here.
- Publish gate — only execute this step if
PUBLISH=true (which requires COMMIT=true; see enforcement rules):
- Push the branch:
git push -u origin {branch}.
- Create a draft PR via
gh pr create --draft. Draft PRs prevent CI from firing on unattended changes — a human must review and mark ready before CI runs. IMPORTANT: Check for a PR template at .github/PULL_REQUEST_TEMPLATE.md in the local checkout (use the Read tool). The PR body MUST follow the repository's PR template structure.
- Create a public gist containing both report files:
gh gist create --public docs/superpowers/analysis/DATETIME_summary.md docs/superpowers/analysis/DATETIME_analysis_report.md — include the gist link in the PR body (under the analysis/reference section of the PR template). Do NOT post a separate PR comment — all context belongs in the PR description.
- If
PUBLISH=false: do NOT push, create PRs, create gists, or create issues. Log: PUBLISH=false — skipping all remote operations. End execution here.
- Future: send
DATETIME_summary.md to Slack channel (for internal CI integration).
Code Corrector Agent Instructions
When dispatched, this agent operates fully non-interactively — no user interaction under any circumstances.
Max recursion depth: 3. If after 3 iterations of spec review the code-review sub-agent still finds issues, proceed with the best version available and document remaining concerns in the analysis report.
- Brainstorm corrections from the analysis report (superpowers:brainstorming — no user approval).
- If uncertain at any point, spawn a
code-review sub-agent to discuss the concern. Provide it with: the specific question, the relevant analysis report section, and the affected source files. The sub-agent acts as a peer reviewer — use its recommendation or pick the best suggestion. Never surface questions to the user.
- Write spec →
docs/superpowers/specs/DATETIME_*.md (superpowers:writing-plans).
- Review spec (superpowers:requesting-code-review) — max 3 review iterations.
- Write plan →
docs/superpowers/plans/DATETIME_*.md (superpowers:writing-plans).
- Execute plan (superpowers:subagent-driven-development).
Note on test validation: Re-running E2E tests is not feasible from this skill's execution environment. Instead, focus on high-confidence fixes validated through deep code review, compilation, lint, and format checks (Final verification step of Execution Flow).
Abort & Escalate Procedure
When the skill cannot resolve issues after exhausting fix-verify cycles (step 7) or encounters an unrecoverable error:
- Revert all code changes.
- Document failures in the analysis report.
- If
PUBLISH=true:
- Create a public gist with the analysis report, summary, and failure documentation:
gh gist create --public docs/superpowers/analysis/DATETIME_summary.md docs/superpowers/analysis/DATETIME_analysis_report.md
- Open a GitHub issue using the repository's bug report template (
.github/ISSUE_TEMPLATE/bug_report.yml). Use gh issue create with appropriate labels — check available labels via gh label list and pick what fits (e.g., area/tests, kind/bug, qe/test-case). Include the gist link and a concise description of the failure and what was attempted.
- If
PUBLISH=false: do NOT create gists or issues. Log: PUBLISH=false — skipping escalation to GitHub. Failure documented in local analysis report only.
- Do not create a PR. End execution.
1---2name: test-failure-analysis-unattended-correction3description: Use when a Playwright E2E test fails and you have a trace archive to investigate. Optionally accepts a GitHub Actions pipeline link for additional CI context. Runs non-interactively.4---56# Test Failure Analysis & Unattended Correction78## Overview910Orchestration meta-skill: dispatches parallel analysis agents against trace artifacts (and optionally CI logs), correlates findings, then proposes and implements fixes if the failure is test-side. Runs end-to-end without user interaction.1112## When NOT to Use1314- No trace file AND no GitHub Actions pipeline link (need at least one)15- Unit test failures (this is E2E/Playwright focused)1617## Prerequisites1819- **At least one of:**20 - Playwright trace archive — may be a nested zip (artifacts zip containing a `trace.zip` inside). Extract outer zip first, then locate the inner trace zip.21 - GitHub Actions pipeline link — enables CI log analysis. Sufficient on its own when tests never executed (e.g., infrastructure/setup failures).22- `gh` CLI installed and authenticated23- **Upstream targeting:** PRs and issues MUST be opened against the upstream repository (organizations `github.com/containers` or `github.com/podman-desktop`). Use `git remote -v` to identify the upstream remote. Do NOT open PRs or issues in user fork repositories.24- **`additionalDirectories`** in `.claude/settings.local.json` must include:25 - `/tmp` — artifact downloads, zip extraction, and log processing26 - `~/Downloads` — local trace archives provided by the user27 - `docs/superpowers/analysis` — analysis report output2829## Tooling3031- **Strict command allowlist:** only run Bash commands listed in the `allowed-tools` frontmatter and the Command Reference table below. If a command is not listed, do NOT attempt it — find an alternative using the allowed commands or dedicated tools (`Read`, `Grep`, `Glob`). A denied permission prompt will block the entire skill execution.32- **Use dedicated tools over Bash equivalents:** prefer `Grep` over `bash grep/rg`, `Read` over `bash cat/head/tail`, `Glob` over `bash find/ls`. Reserve Bash for operations that require shell features (unzip, git, gh).33- **Never chain Bash commands.** Each Bash tool call must contain exactly one command. Do not use `&&`, `||`, `;`, or `|` to combine commands. Make separate tool calls instead.34- **Package manager:** this project uses **pnpm** (not npm/npx). Always use `pnpm` to run scripts. Available scripts are defined in the root `package.json` — read it to discover the correct commands.35- **Artifact handling:** CI artifacts expire (typically 90 days). When `gh run download` returns "no valid artifacts found", fall back to `gh run view {id} --log` to read job logs directly.36- **Reading external repo files:** use `WebSearch` or `Read` on local checkouts. Do NOT use `gh api` — it is not in the allowed tools.37- **`git add` safety:** only stage files that this skill created or modified. Never use `git add .`, `git add -A`, or stage files outside `.github/workflows/`, `tests/`, and `packages/` without explicit justification in the analysis report.38- **`git push` safety:** before pushing, verify with `git remote -v` that `origin` points to the user's fork, not the upstream repository. Never push directly to upstream.39- **Artifact extraction:** always extract to `/tmp/`. Never unzip into the project working tree.40- **Repo scoping:** all `gh pr create`, `gh gist create`, and `gh issue create` commands must target the upstream repo identified via `git remote -v`. Never target arbitrary repositories.41- **NEVER `git checkout -b`, `git add`, or `git commit` when `COMMIT=false`.** These commands are gated. If `COMMIT` is not explicitly `true`, any attempt to branch, stage, or commit is a skill violation. Leave changes as unstaged working-tree modifications.42- **NEVER `git push`, `gh pr create`, `gh gist create`, or `gh issue create` when `PUBLISH=false`.** These commands are gated. If `PUBLISH` is not explicitly `true`, any attempt to push or interact with GitHub is a skill violation. No remote side effects.4344### Command Reference4546| Command | When to use | Guard |47| --------------------------------------------------------- | --------------------------------------------------------- | -------------- |48| `gh run view {id} --repo {owner}/{repo} --json jobs` | Get run metadata, job details, step names and conclusions | — |49| `gh run view {id} --repo {owner}/{repo} --log` | Download job logs (fallback when artifacts expired) | — |50| `gh run list --repo {owner}/{repo} --workflow {name}` | Check failure frequency across recent runs | — |51| `gh run download {id} --repo {owner}/{repo} --dir {path}` | Download test artifacts (traces, videos, results) | — |52| `git checkout -b` | Create feature branch for committing changes | `COMMIT=true` |53| `git add` | Stage code/pipeline changes (never reports) | `COMMIT=true` |54| `git commit -m` | Commit staged changes | `COMMIT=true` |55| `git push -u origin` | Push branch to remote | `PUBLISH=true` |56| `gh pr create --draft` | Create draft PR with fix | `PUBLISH=true` |57| `gh gist create --public` | Create public gist with analysis report | `PUBLISH=true` |58| `gh issue create` | Escalation: file issue when fix fails | `PUBLISH=true` |59| `gh label list` | List available labels for issue creation | `PUBLISH=true` |60| `pnpm typecheck` | Verify no type errors introduced | — |61| `pnpm svelte:check` | Verify no Svelte component errors | — |62| `pnpm lint:check` | Verify no lint errors introduced | — |63| `pnpm format:check` | Verify no formatting violations | — |6465**Guard column enforcement:** A command with a Guard value MUST NOT be executed unless that variable is `true`. Before running any guarded command, re-verify the variable value. If the guard is not satisfied, skip the command and log why.6667## Configuration6869| Variable | Default | Description |70| --------- | ------- | --------------------------------------------------------------------------------------------------------------------------------- |71| `COMMIT` | `false` | When `true`: create git commits for code changes. When `false`: leave changes unstaged — the user commits manually. |72| `PUBLISH` | `false` | When `true`: create draft PRs, public gists, and GitHub issues. When `false`: skip all remote operations. Requires `COMMIT=true`. |7374**Enforcement rules:**7576- `PUBLISH=true` is only valid when `COMMIT=true`. If `PUBLISH=true` and `COMMIT=false`, treat as a configuration error — log a warning, override `PUBLISH` to `false`, and continue.77- Default behavior (`COMMIT=false PUBLISH=false`): analysis and code corrections are produced as local file changes only. Nothing is committed or published.7879Set variables by including them when invoking the skill (e.g., `COMMIT=true PUBLISH=true`).8081## Conventions8283- **DATETIME** format throughout this skill: `YY-MM-DD_HH_mm_ss`. Derive the timestamp from the CI run time or the artifacts zip file metadata — not from when the skill executes.84- Trace zips from CI artifacts are typically nested (e.g., `results.zip` → `traces/trace.zip`). The inner `trace.zip` is `npx playwright show-trace` compatible.85- The outer artifacts zip also contains additional parseable files that agents should utilize for more accurate analysis:86 - `output.log` — full console output from the test run87 - `junit-*.xml` / `json-results.json` — structured test results (pass/fail/skip per test, durations, error messages)88 - `html-results/index.html` — rendered HTML test report89 - `**/error-context.md` — Playwright error context for failed tests90 - `scripts/tmp_stdout_*.txt` / `tmp_stderr_*.txt` — setup script output and errors91 - `*.log` files (e.g., `podman-machine-init.log`) — environment setup logs92 - `videos/` — test execution recordings (`.webm`)93- Artifacts can originate from CI or local runs. When no GH link is provided, note in the report that CI-side factors could not be ruled out.9495## Sub-Agents9697| Sub-Agent | Skill | Input | When |98| --------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------ |99| Trace Analyzer | `playwright-trace-analysis` | Inner trace zip + all supplementary files (see Conventions) → temp dir | Immediately |100| CI Investigator | `investigate-gh-run` | GH Actions pipeline link | Parallel with #1 (only if link provided) |101| Code Corrector | brainstorming → writing-plans → subagent-driven-development | Analysis report | Only if failure is test-logic or pipeline-config |102103## Execution Flow1041050. **Configuration validation (mandatory first step).** Before any other action, resolve and log the configuration:106 - Read `COMMIT` and `PUBLISH` from the invocation. If not provided, default both to `false`.107 - If `PUBLISH=true` and `COMMIT=false`: log `⚠ PUBLISH=true requires COMMIT=true. Overriding PUBLISH to false.` and set `PUBLISH=false`.108 - Log the resolved configuration:109 ```110 ── Config ──────────────────────────111 COMMIT: {true|false}112 PUBLISH: {true|false}113 ────────────────────────────────────114 Will commit: {yes|no}115 Will push: {yes|no}116 Will create PR: {yes|no}117 Will create gist: {yes|no}118 Will create issue: {yes|no}119 ────────────────────────────────────120 ```121 - This log is the contract for the rest of the execution. Any action that contradicts it is a skill violation.1221. Extract the artifacts zip into a temp folder. Locate the inner trace zip (typically under `traces/`). Dispatch Trace Analyzer immediately. If GH Actions link provided, dispatch CI Investigator in parallel.1232. Correlate findings from agent(s) to identify potential issues. If only trace data is available, note in the report that CI-side factors (runner resources, environment config) could not be ruled out.1243. Write analysis report → `docs/superpowers/analysis/DATETIME_analysis_report.md`1254. Write short and concise summary → `docs/superpowers/analysis/DATETIME_summary.md`1265. Decision point:127128```dot129digraph correction_decision {130 "Findings correlated" -> "Failure cause?";131 "Failure cause?" -> "Dispatch Code Corrector" [label="test logic / pipeline config"];132 "Failure cause?" -> "Report only, end execution" [label="infra / external / flaky env"];133}134```135136**If "Report only":** No further agent action. Reports remain as local files (do NOT commit them to git regardless of `COMMIT` setting — reports are never committed). _Future: send `DATETIME_summary.md` to Slack channel for visibility (CI instability notification)._ End execution here.137138**If "Dispatch Code Corrector":** Continue with the following steps:1391406. Code Corrector implements corrections (see Code Corrector Agent Instructions below).1417. Final verification:142 - Code review (superpowers:requesting-code-review) — high-confidence review of all changes143 - Run `pnpm typecheck` — no type errors introduced144 - Run `pnpm svelte:check` — no Svelte component errors introduced145 - Run `pnpm lint:check` — no lint errors introduced146 - Run `pnpm format:check` — no formatting violations introduced147 - **If any check fails:** launch a code-review sub-agent to diagnose, fix the issues, then re-run the failed checks. Max 3 fix-verify cycles. If still failing after 3 cycles, revert all code changes and follow the **Abort & Escalate** procedure (see below).1488. **Commit gate** — only execute this step if `COMMIT=true`:149 - Create a feature branch via `git checkout -b`.150 - Stage only code/pipeline changes (`git add` — never stage reports).151 - Commits must be semantic — run `git log` to match the repository's commit message style. **Keep commit messages to a single subject line** (no body) — detailed context belongs in the PR description, not duplicated in the commit.152 - **If `COMMIT=false`:** leave all changes unstaged. Log: `COMMIT=false — skipping git commit. Changes are local working-tree modifications only.` End execution here.1539. **Publish gate** — only execute this step if `PUBLISH=true` (which requires `COMMIT=true`; see enforcement rules):154 - Push the branch: `git push -u origin {branch}`.155 - Create a **draft** PR via `gh pr create --draft`. Draft PRs prevent CI from firing on unattended changes — a human must review and mark ready before CI runs. **IMPORTANT:** Check for a PR template at `.github/PULL_REQUEST_TEMPLATE.md` in the local checkout (use the `Read` tool). The PR body MUST follow the repository's PR template structure.156 - Create a **public** gist containing both report files: `gh gist create --public docs/superpowers/analysis/DATETIME_summary.md docs/superpowers/analysis/DATETIME_analysis_report.md` — include the gist link in the PR body (under the analysis/reference section of the PR template). Do NOT post a separate PR comment — all context belongs in the PR description.157 - **If `PUBLISH=false`:** do NOT push, create PRs, create gists, or create issues. Log: `PUBLISH=false — skipping all remote operations.` End execution here.15810. _Future: send `DATETIME_summary.md` to Slack channel (for internal CI integration)._159160## Code Corrector Agent Instructions161162When dispatched, this agent operates **fully non-interactively — no user interaction under any circumstances**.163164**Max recursion depth: 3.** If after 3 iterations of spec review the code-review sub-agent still finds issues, proceed with the best version available and document remaining concerns in the analysis report.1651661. Brainstorm corrections from the analysis report (superpowers:brainstorming — no user approval).1672. If uncertain at any point, spawn a `code-review` sub-agent to discuss the concern. Provide it with: the specific question, the relevant analysis report section, and the affected source files. The sub-agent acts as a peer reviewer — use its recommendation or pick the best suggestion. **Never surface questions to the user.**1683. Write spec → `docs/superpowers/specs/DATETIME_*.md` (superpowers:writing-plans).1694. Review spec (superpowers:requesting-code-review) — max 3 review iterations.1705. Write plan → `docs/superpowers/plans/DATETIME_*.md` (superpowers:writing-plans).1716. Execute plan (superpowers:subagent-driven-development).172173**Note on test validation:** Re-running E2E tests is not feasible from this skill's execution environment. Instead, focus on high-confidence fixes validated through deep code review, compilation, lint, and format checks (Final verification step of Execution Flow).174175## Abort & Escalate Procedure176177When the skill cannot resolve issues after exhausting fix-verify cycles (step 7) or encounters an unrecoverable error:1781791. Revert all code changes.1802. Document failures in the analysis report.1813. **If `PUBLISH=true`:**182 - Create a **public** gist with the analysis report, summary, and failure documentation: `gh gist create --public docs/superpowers/analysis/DATETIME_summary.md docs/superpowers/analysis/DATETIME_analysis_report.md`183 - Open a GitHub issue using the repository's bug report template (`.github/ISSUE_TEMPLATE/bug_report.yml`). Use `gh issue create` with appropriate labels — check available labels via `gh label list` and pick what fits (e.g., `area/tests`, `kind/bug`, `qe/test-case`). Include the gist link and a concise description of the failure and what was attempted.1844. **If `PUBLISH=false`:** do NOT create gists or issues. Log: `PUBLISH=false — skipping escalation to GitHub. Failure documented in local analysis report only.`1855. Do not create a PR. End execution.