skills/user-test/SKILL.md
Reformat code-review manual test script for human or agent execution, run user testing checkpoint, and record pass/fail results. Gates progression to commit:pr.
npx skillsauth add sofer/.agents user-testInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reformat the manual test script from code-review into an executable format, present it for testing, and record the results. Sits between commit:commit(refactor) and commit:pr in the pipeline.
Code-review produces a manual_test_script (structured action/expect pairs per scenario). That format is useful for reading in a table, but not optimised for pasting into a browser or CLI agent. This skill reformats the test script for the user's preferred executor without coupling code-review to any specific tool.
Expect from orchestrator:
manual_test_script from code-review output (YAML with setup, scenarios, steps).sdlc/manifest.yaml)Ask the user which format they prefer:
If the project run config specifies user_test_format, use that value without asking.
Convert each scenario into a markdown checklist with setup instructions at the top:
## Manual test: {story-id} - {story-title}
### Setup
{setup instructions from manual_test_script}
### Scenario: {scenario name}
- [ ] {action} — expected: {expected result}
- [ ] {action} — expected: {expected result}
### Scenario: {scenario name}
- [ ] {action} — expected: {expected result}
Convert each scenario into continuous prose. Do not name specific tools or agents. The output should read as a sequence of instructions any agent can follow:
Test the following for story {story-id} ({story-title}).
Setup: {setup instructions}
Scenario: {scenario name}
{action sentence}. {expect sentence}. {action sentence}. {expect sentence}.
Scenario: {scenario name}
{action sentence}. {expect sentence}.
Example transformation from structured data:
- action: "Click Login in the navigation bar"
expect: "Login form appears"
- action: "Enter [email protected] in email and password123 in password"
expect: "Fields are populated"
- action: "Click Submit"
expect: "Redirected to dashboard with name in header"
Becomes:
Click "Login" in the navigation bar. Verify that the login form appears. Enter "[email protected]" in the email field and "password123" in the password field. Verify that the fields are populated. Click "Submit". Verify that you are redirected to the dashboard and your name appears in the header.
Key rules for agent format:
manual_test_script from code-review outputStore results at .sdlc/stories/{story-id}/user-test-results.yaml:
user_test:
story_id: "US-001"
format: "human | agent"
scenarios:
- name: "Happy path login"
status: "pass | fail"
notes: ""
- name: "Invalid credentials"
status: "pass | fail"
notes: ""
verdict: "pass | fail"
tested_by: "user"
timestamp: "2024-01-15T10:30:00Z"
All scenarios must pass before advancing to commit:pr. If any scenario fails, the story returns to implement for fixes.
This phase is a configured checkpoint. After testing:
## User test results: {story-id} - {story-title}
| Scenario | Status | Notes |
|----------|--------|-------|
| {name} | {pass/fail} | {notes} |
**Verdict:** {pass/fail}
{If pass:} Ready to create PR. Proceed? [y/n]
{If fail:} {count} scenario(s) failed. Returning to implement phase with details.
tools
Check whether Claude and Codex have equivalent access to shared agent resources, skills, hooks, plugins, MCP servers, permissions, startup behaviour, and provider-specific adapter config. Use when comparing agent environments, debugging missing capabilities after restart, or deciding whether to symlink a resource or configure a runtime.
testing
Record substantive skill use in an append-only local log. Use after choosing or invoking a non-system skill for real work, when a skill is inspected but not used, or when a skill fails to apply. Do not use for routine system skills or incidental file reads.
testing
Turn a vague or underspecified request into a self-contained problem statement. Use when the user has a rough idea, when a request would fail if handed directly to an agent, or before non-trivial work that needs shared understanding.
data-ai
Append a one-line learning to ~/.agents/learning-log.md. Use when the user types /learning, or when something genuinely worth remembering surfaced during work and the user confirms it should be captured.