← Files Zuora Coding AgentARCHIVED FILE

SKILL.md

2.93 KB · Oct 2, 2026 · 00:31 UTC

↓ Download file

---
name: zuora-uat-run-feature
description: Internal worker — verify gate + execute-api + execute-ui for one feature
---

# Run feature worker (internal)

**Inputs:** `feature`, optional `tr_filter`, `verify` (`auto`|`true`|`false`), `environment`, `max_fix_retries`.

## Startup (required, once per feature)

Ensure a canonical verification manifest exists before any TR work:

```bash
python3 "${CLAUDE_PLUGIN_ROOT}/references/uat-test/execution/scripts/uat_verification.py" ensure-manifest \
  --git-root "$GIT_ROOT" \
  --feature "<feature>"
# When tr_filter is set, append --tr N for each TR in scope
```

Resolve scenario dir: `$UAT_ROOT/execution/tests/test_scenarios/test_<feature>/` (via `repo_paths.resolve_feature_scenario_dir`).

## Per-TR verify decision

| `verify` | Behavior |
|----------|----------|
| `false` | Execute directly; no fix/review |
| `true` | Always run verify segment first |
| `auto` | Run verify when mark missing, `verified: false`, or `artifact_revision` stale |

Check stale marks:

```bash
python3 "${CLAUDE_PLUGIN_ROOT}/references/uat-test/execution/scripts/uat_verification.py" should-verify \
  --scenario-dir "<scenario_dir>" --tr <n> --git-root "$GIT_ROOT" --feature "<feature>"
```

Exit 0 → run verify; exit 1 → skip verify.

## Per TR in scope

1. **Verify gate** (when applicable) — `verify/SKILL.md`. On failure: skip execute for this TR.
2. **Execute API** — `execute-api/SKILL.md`
3. **Hybrid handoff (required after API pass)** — run:

```bash
python3 "${CLAUDE_PLUGIN_ROOT}/references/uat-test/execution/scripts/hybrid_tr_prepare.py" \
  --git-root "$GIT_ROOT" \
  --feature "<feature>" \
  --tr <n> \
  --environment "<environment>"
```

| `execute_ui` | Action |
|--------------|--------|
| `true` | **MUST** run `execute-ui/SKILL.md` using `variables`, `ui_steps_path`, and `debug_log` from script output. Do not return worker JSON until UI completes or retries are exhausted. |
| `false` | Record skip reason in worker JSON (`execution.TRn.ui=skipped`, `execution.TRn.reason=<skip_reason>`). Call `record-ui-result` with `--status skipped --reason "<skip_reason>"`. |

4. **Record UI outcome (required for hybrid TRs)** — after UI pass/fail/skip:

```bash
python3 "${CLAUDE_PLUGIN_ROOT}/references/uat-test/execution/scripts/uat_verification.py" record-ui-result \
  --scenario-dir "<scenario_dir>" \
  --tr <n> \
  --status passed|failed|skipped \
  --evidence "<report_or_screenshot_path>" \
  --summary "<one-line outcome>"
```

5. On verify pass during run: update mark (`verified: true`, `artifact_revision`)

## Return contract (JSON only)

```json
{
  "feature": "<stem>",
  "tr_filter": ["TR1"],
  "status": "completed",
  "artifacts": {},
  "verification": { "TR1": { "verified": true, "artifact_revision": "abc123" } },
  "execution": {
    "TR1": { "api": "passed", "ui": "passed", "evidence": "execution/reports/tr1_account_page.md" }
  },
  "failures": []
}
```

Return **only** this summary to the parent orchestrator.

SHA-256: e5973f96912b9ec20829921c732b3b1fe423002f1d2078c69b187f9d2601cc3e