Test Feature
Validate a finished or nearly finished feature through the real product surface, capture evidence, and write a local HTML report. This is the human-facing QA workflow. Use agent-browser for low-level browser mechanics and automate-e2e-tests when the validated behavior needs durable regression coverage.
This is the generic starter skill. In real projects, run setup-task-to-pr first so this skill can be enriched with local URLs, auth, devices, commands, report paths, and surface-specific rules.
When Not to Use
- Do not use before the feature is implemented enough to exercise.
- Do not use for pure API checks without user-facing behavior unless the project has no UI; configure
test-api-feature if API validation is common.
- Do not use for authoring automated E2E tests. Use
automate-e2e-tests.
- Do not use for low-level browser operation alone. Use
agent-browser.
- Do not use for broad flaky-suite repair or test infrastructure cleanup.
Inputs
Read:
- The feature description, ticket, plan, or PR diff.
- Project-local testing skills if present.
- App instructions for local URLs, auth, seed data, devices, simulators, or test environments.
- Existing validation reports or bug reproduction notes if this is a retest.
If the app URL, credentials, device, or environment is not discoverable, ask one concise question before testing.
Surface Selection
Use the surface that matches the feature:
| Surface |
Validation approach |
| Web/PWA |
Use Agent Browser, Playwright, Chrome, or the project's browser tool. |
| Native mobile |
Use the project's simulator, emulator, device, Appium, Detox, Maestro, XCUITest, Espresso, or manual/device harness. |
| Desktop |
Use the project's desktop automation or manual launch/check process. |
| API-only |
Exercise the API with the approved client and record request/response evidence. |
| Monorepo |
Test the app or package that owns the changed behavior. |
If a repo has meaningfully different validation machinery for web, mobile, API, or desktop, recommend running setup-task-to-pr to split this into surface-specific local skills.
Validation Plan
Before interacting with the app, define:
- Requirement being tested.
- Environment and URL/device/API endpoint.
- Auth/test data path.
- Happy path.
- Important edge cases.
- Error or recovery states.
- Evidence to capture.
- Pass/fail criteria.
Do not stop at a nearby page, component preview, or partial state when the requested behavior is a workflow.
Evidence Directory
Use the project's configured report location when available. Otherwise use:
reports/<feature-slug>/
Recommended structure:
reports/<feature-slug>/
├── index.html
├── screenshots/
│ ├── 01-initial-state.png
│ └── 02-after-action.png
├── videos/
│ └── flow.webm
└── logs/
└── commands.txt
Use relative links in the HTML report so the folder can be attached to a ticket or PR.
Exercise the Feature
- Prove the environment is reachable.
- Establish auth using approved test credentials, seeded users, saved state, or manual sign-in. Do not invent credentials.
- Execute the happy path first.
- Exercise edge cases that are natural for the feature: empty states, optional fields, boundary values, permissions, repeated actions, navigation away/back, slow loading, or missing data.
- Exercise error and recovery states when safe: invalid input, server rejection, offline/network failure if the project supports simulation, retry, cancel, undo, or validation errors.
- Capture evidence after each meaningful state change.
- Inspect the evidence before declaring success.
- Record exact commands, tools, URLs, devices, and observed results.
For browser validation, invoke agent-browser when available. If Agent Browser is not available, use the project's browser tool or Playwright/Chrome/in-app browser integration.
Reject evidence that is blank, black, stale, wrong-route, too cropped to prove the behavior, or unplayable.
Status Model
Use one of:
pass: the validated behavior meets the requirement and evidence proves it.
fail: the behavior does not meet the requirement.
mixed: core behavior works but some paths, evidence, tooling, or environment coverage is incomplete.
blocked: validation cannot proceed because required environment, credentials, data, tooling, or approvals are missing.
Do not mark pass if important evidence is missing.
HTML Report
Create a self-contained HTML report at:
reports/<feature-slug>/index.html
The report must include:
- Title and date.
- Requirement or bug summary.
- Git branch and commit SHA if available.
- Status:
pass, fail, mixed, or blocked.
- Environment: URL, app, API, device, simulator, browser/tool, auth path.
- Commands run and results.
- Step-by-step journey with expected and actual outcomes.
- Screenshots, video, logs, traces, or request/response evidence using relative links.
- Issues found.
- Fixes applied during validation, if any.
- Remaining risks and untested paths.
- E2E coverage decision: created, updated, already covered, not applicable, or blocked.
Minimal report template:
Use references/report-template.html as the starting point when the project does not already provide a validation report template.
Handoff to E2E
After the report is written, invoke automate-e2e-tests when:
- The feature is a core user journey.
- The bug fix needs regression protection.
- Auth, routing, persistence, mobile/browser behavior, or multi-service integration is the risk.
- The project already has a suitable E2E framework.
Skip E2E with a documented reason when lower-level tests are better, equivalent coverage exists, no user-visible behavior changed, or the environment is not safe/available.
Failure Handling
- Environment unavailable: record exact URL/device/command and mark
blocked.
- Auth unavailable: ask for approved credentials or manual sign-in; do not invent credentials.
- Tooling unavailable: use an approved fallback or mark
blocked with setup instructions.
- Bug found: capture evidence, fix if in scope, rerun the failed path, and record before/after.
- Evidence capture fails: retry once with a fresh session/tool, then mark
mixed unless the behavior can be proven another way.
- Unsafe test path: do not perform destructive, paid, production, or externally visible actions unless explicitly approved.
Final Response
Report:
- Overall status.
- Report path.
- Evidence captured.
- Issues found.
- E2E coverage decision.
- Remaining risk.
Source
Generic starter from Supatest AI supa-skills test-feature v1.1.1. Run setup-task-to-pr in each project to create a local enriched version.
Self-Improvement
If this skill misses a required evidence type, surface, status, or report field during validation, patch this skill or the configured project-local version before closing.
1---2name: test-feature3description: This skill should be used when the user asks to QA, dogfood, browser-test, mobile-test, verify, capture evidence, or create a validation report for a completed user-facing feature. Do not use for test-file authoring.4---56# Test Feature78Validate a finished or nearly finished feature through the real product surface, capture evidence, and write a local HTML report. This is the human-facing QA workflow. Use `agent-browser` for low-level browser mechanics and `automate-e2e-tests` when the validated behavior needs durable regression coverage.910This is the generic starter skill. In real projects, run `setup-task-to-pr` first so this skill can be enriched with local URLs, auth, devices, commands, report paths, and surface-specific rules.1112## When Not to Use1314- Do not use before the feature is implemented enough to exercise.15- Do not use for pure API checks without user-facing behavior unless the project has no UI; configure `test-api-feature` if API validation is common.16- Do not use for authoring automated E2E tests. Use `automate-e2e-tests`.17- Do not use for low-level browser operation alone. Use `agent-browser`.18- Do not use for broad flaky-suite repair or test infrastructure cleanup.1920## Inputs2122Read:23241. The feature description, ticket, plan, or PR diff.252. Project-local testing skills if present.263. App instructions for local URLs, auth, seed data, devices, simulators, or test environments.274. Existing validation reports or bug reproduction notes if this is a retest.2829If the app URL, credentials, device, or environment is not discoverable, ask one concise question before testing.3031## Surface Selection3233Use the surface that matches the feature:3435| Surface | Validation approach |36|---|---|37| Web/PWA | Use Agent Browser, Playwright, Chrome, or the project's browser tool. |38| Native mobile | Use the project's simulator, emulator, device, Appium, Detox, Maestro, XCUITest, Espresso, or manual/device harness. |39| Desktop | Use the project's desktop automation or manual launch/check process. |40| API-only | Exercise the API with the approved client and record request/response evidence. |41| Monorepo | Test the app or package that owns the changed behavior. |4243If a repo has meaningfully different validation machinery for web, mobile, API, or desktop, recommend running `setup-task-to-pr` to split this into surface-specific local skills.4445## Validation Plan4647Before interacting with the app, define:4849- Requirement being tested.50- Environment and URL/device/API endpoint.51- Auth/test data path.52- Happy path.53- Important edge cases.54- Error or recovery states.55- Evidence to capture.56- Pass/fail criteria.5758Do not stop at a nearby page, component preview, or partial state when the requested behavior is a workflow.5960## Evidence Directory6162Use the project's configured report location when available. Otherwise use:6364```text65reports/<feature-slug>/66```6768Recommended structure:6970```text71reports/<feature-slug>/72├── index.html73├── screenshots/74│ ├── 01-initial-state.png75│ └── 02-after-action.png76├── videos/77│ └── flow.webm78└── logs/79 └── commands.txt80```8182Use relative links in the HTML report so the folder can be attached to a ticket or PR.8384## Exercise the Feature85861. Prove the environment is reachable.872. Establish auth using approved test credentials, seeded users, saved state, or manual sign-in. Do not invent credentials.883. Execute the happy path first.894. Exercise edge cases that are natural for the feature: empty states, optional fields, boundary values, permissions, repeated actions, navigation away/back, slow loading, or missing data.905. Exercise error and recovery states when safe: invalid input, server rejection, offline/network failure if the project supports simulation, retry, cancel, undo, or validation errors.916. Capture evidence after each meaningful state change.927. Inspect the evidence before declaring success.938. Record exact commands, tools, URLs, devices, and observed results.9495For browser validation, invoke `agent-browser` when available. If Agent Browser is not available, use the project's browser tool or Playwright/Chrome/in-app browser integration.9697Reject evidence that is blank, black, stale, wrong-route, too cropped to prove the behavior, or unplayable.9899## Status Model100101Use one of:102103- `pass`: the validated behavior meets the requirement and evidence proves it.104- `fail`: the behavior does not meet the requirement.105- `mixed`: core behavior works but some paths, evidence, tooling, or environment coverage is incomplete.106- `blocked`: validation cannot proceed because required environment, credentials, data, tooling, or approvals are missing.107108Do not mark `pass` if important evidence is missing.109110## HTML Report111112Create a self-contained HTML report at:113114```text115reports/<feature-slug>/index.html116```117118The report must include:119120- Title and date.121- Requirement or bug summary.122- Git branch and commit SHA if available.123- Status: `pass`, `fail`, `mixed`, or `blocked`.124- Environment: URL, app, API, device, simulator, browser/tool, auth path.125- Commands run and results.126- Step-by-step journey with expected and actual outcomes.127- Screenshots, video, logs, traces, or request/response evidence using relative links.128- Issues found.129- Fixes applied during validation, if any.130- Remaining risks and untested paths.131- E2E coverage decision: created, updated, already covered, not applicable, or blocked.132133Minimal report template:134135Use `references/report-template.html` as the starting point when the project does not already provide a validation report template.136137## Handoff to E2E138139After the report is written, invoke `automate-e2e-tests` when:140141- The feature is a core user journey.142- The bug fix needs regression protection.143- Auth, routing, persistence, mobile/browser behavior, or multi-service integration is the risk.144- The project already has a suitable E2E framework.145146Skip E2E with a documented reason when lower-level tests are better, equivalent coverage exists, no user-visible behavior changed, or the environment is not safe/available.147148## Failure Handling149150- **Environment unavailable:** record exact URL/device/command and mark `blocked`.151- **Auth unavailable:** ask for approved credentials or manual sign-in; do not invent credentials.152- **Tooling unavailable:** use an approved fallback or mark `blocked` with setup instructions.153- **Bug found:** capture evidence, fix if in scope, rerun the failed path, and record before/after.154- **Evidence capture fails:** retry once with a fresh session/tool, then mark `mixed` unless the behavior can be proven another way.155- **Unsafe test path:** do not perform destructive, paid, production, or externally visible actions unless explicitly approved.156157## Final Response158159Report:160161- Overall status.162- Report path.163- Evidence captured.164- Issues found.165- E2E coverage decision.166- Remaining risk.167168## Source169170Generic starter from Supatest AI supa-skills `test-feature` v1.1.1. Run `setup-task-to-pr` in each project to create a local enriched version.171172## Self-Improvement173174If this skill misses a required evidence type, surface, status, or report field during validation, patch this skill or the configured project-local version before closing.