test
Skill1 starsChanged 3 months agoMITView on GitHub
Execute structured browser-based testing for admin features
179 other projects use a version of this.
Adopted by
Most recently taken up by
- tyrantpiper/travel-pwatheir own version, first seen Nov 8, 2026
- phuthuycoding/kanban-flowtheir own version, first seen Nov 8, 2026
- pche-broken-artist/forge-of-thoughttheir own version, first seen Nov 8, 2026
- PMDevSolutions/Flaviantheir own version, first seen Nov 8, 2026
- domengabrovsek/agent-configtheir own version, first seen Nov 8, 2026
- domengabrovsek/claudetheir own version, first seen Nov 8, 2026
Used with
Projects with it also use agent-context-isolation, agentica-infrastructure and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
parcadeiSkillagent-context-isolation
Agent Context Isolation
Also in 3 projects that use this
parcadeiSkillagentica-infrastructure
Reference guide for Agentica multi-agent infrastructure APIs
Also in 3 projects that use this
- +10 more from parcadei
Other versions179 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 179
- react/react★ 252ksame name
- facebook/react★ 252ksame name
- apache/skywalking★ 25ksame name
- livewire/livewire★ 24ksame name
- NVIDIA/TensorRT★ 13ksame name
- FalkorDB/FalkorDB★ 10ksame name
- FastLED/FastLED★ 7.5ksame name
- fleetdm/fleet★ 7.2ksame name
- parcadei/Continuous-Claude★ 3.9ksame name
- parcadei/Continuous-Claude-v2★ 3.9ksame name
169 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
47 rules. 0 are common, 39 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 154 edited versions we read keep these.
39
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 36
When invoked as /test <issue-number>, execute structured browser-based testing for admin features that require manual QA validation.
- Distinctive: line 50
Execution Phase: Run tests systematically with browser automation
- Very specific: line 55
When running as part of an orchestrated workflow (e.g., sequant run or /fullsolve), this skill receives environment variables that indicate …
- Very specific: line 66
Skip issue fetch: - Use SEQUANT_ISSUE directly, orchestrator has context
- Distinctive: line 76
Start dev server if needed
- Distinctive: line 83
Test results may not apply to the merged state
- Very specific: line 168
Use SEQUANT_ISSUE for the issue number
- Distinctive: line 181
Look for discussion about test requirements, edge cases, or expected behaviors mentioned in comments
- Distinctive: line 186
Test cases (look for "Test 1:", "Test N:", "### Test N", numbered lists)
- Distinctive: line 187
Test data requirements (if specified)
- Distinctive: line 193
Before proceeding with full test setup, verify the feature exists:
- Distinctive: line 215
Verify infrastructure readiness (backend queries, DB schema, dependencies)
- Distinctive: line 216
Document what exists vs. what's missing
- Very specific: line 223
Run /test <issue> again after implementation complete
- Distinctive: line 227
Check for test data requirements:
- Distinctive: line 229
Look for seed script or test fixtures in the project
- Distinctive: line 230
If seed script exists, offer to run it:
- Distinctive: line 234
If no seed script exists, check Issue for SQL statements or manual setup steps
- Distinctive: line 251
If not running, start it using the project's package manager:
- Distinctive: line 256
Wait for server ready before proceeding.
- Very specific: line 258
Note: If {{DEV_URL}} or {{PM_RUN}} are not replaced with actual values, the defaults are:
- Distinctive: line 344
Warning-only: Does NOT block test execution
- Distinctive: line 363
Create test plan as a markdown checklist (all test cases)
- Distinctive: line 370
Skip to Infrastructure Assessment: - Don't run browser tests, verify readiness instead.
- Distinctive: line 383
Document deferral decision (e.g., add note to CLAUDE.md)
- Very specific: line 393
Ask user: "Should I proceed with /spec and /exec now?"
- Distinctive: line 397
Note: Only proceed to Phase 2 if feature is implemented (Path A above).
- Distinctive: line 401
Write a markdown checklist with all test cases found, one status per line:
- Distinctive: line 419
Use Chrome DevTools MCP for browser-based tests:
- Distinctive: line 446
Check snapshot for expected elements/state
- Distinctive: line 447
Verify visual appearance in screenshot
- Distinctive: line 453
PASS: All expectations met
- Distinctive: line 463
When a bug is discovered during testing:
- Distinctive: line 467
Document the bug clearly (expected vs.
- Distinctive: line 470
If bug is critical and fixable now → pause tests, fix bug, resume
- Distinctive: line 471
If bug is non-critical → document, continue other tests
- Distinctive: line 472
If bug blocks multiple tests → fix before continuing
- Distinctive: line 475
After fix, restart blocked test
- Distinctive: line 496
When browser automation is unavailable, generate a structured manual testing guide:
- Distinctive: line 533
Test results format remains consistent for reporting
- Distinctive: line 539
Create structured test results:
- Distinctive: line 650
If no explicit tests, use AC as test cases:
- Distinctive: line 746
After testing completes, ask user if test data should be cleaned up:
- Distinctive: line 755
Document that test data exists
- Distinctive: line 762
All test cases executed (or explicitly skipped)
- Very specific: line 763
Test results documented with PASS/FAIL/BLOCKED status
- Distinctive: line 778
Check for seed script or test fixtures
“Common” is measured: kept by at least 6 in 10 of the 154 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- sequant:local-override -->Local overrides (read this first). Before following any instruction below, check whether
.claude/.local/skills/test/overrides.mdexists. If it does, read it and treat its contents as authoritative: its instructions take precedence over anything in this skill they conflict with. This is the supported way to tailor/testwithout forking it —overrides.mdlives under.claude/.local/, whichsequant updateandsyncnever overwrite.
Browser Testing Command
You are the "Testing Agent" for the current repository.
Purpose
When invoked as /test <issue-number>, execute structured browser-based testing for admin features that require manual QA validation.
When This Phase Runs
The /test phase is invoked by /fullsolve based on issue labels:
| Label | Effect |
ui, frontend, admin | /test phase runs automatically |
no-browser-test | /test phase is skipped (explicit opt-out, overrides UI labels) |
| Neither | /test is skipped; /spec may suggest adding ui label if .tsx files detected |
Workflow:
- Setup Phase: Fetch Issue, prepare test data, start dev server
- Execution Phase: Run tests systematically with browser automation
- Reporting Phase: Generate test results and GitHub comment
Orchestration Context
When running as part of an orchestrated workflow (e.g., sequant run or /fullsolve), this skill receives environment variables that indicate the orchestration context:
| Environment Variable | Description | Example Value |
SEQUANT_ORCHESTRATOR | The orchestrator invoking this skill | sequant-run |
SEQUANT_PHASE | Current phase in the workflow | test |
SEQUANT_ISSUE | Issue number being processed | 123 |
SEQUANT_WORKTREE | Path to the feature worktree | /path/to/worktrees/feature/... |
Behavior when orchestrated (SEQUANT_ORCHESTRATOR is set):
- Skip issue fetch - Use
SEQUANT_ISSUEdirectly, orchestrator has context - Use provided worktree - Work in
SEQUANT_WORKTREEpath - Reduce GitHub comment frequency - Defer progress updates to orchestrator
- Trust dev server status - Orchestrator may have started it already
Behavior when standalone (SEQUANT_ORCHESTRATOR is NOT set):
- Fetch fresh issue context from GitHub
- Locate or prompt for worktree
- Post progress updates to GitHub
- Start dev server if needed
Pre-flight: Stale Branch Detection
Skip this section if SEQUANT_ORCHESTRATOR is set - the orchestrator handles branch freshness checks.
Purpose: Detect when the feature branch is significantly behind main before running browser tests. Testing stale code is wasteful because:
- Test results may not apply to the merged state
- Features may have conflicts that need resolution first
- Time spent on testing is lost if rebase is required
Detection:
# Ensure we have latest remote state
git fetch origin 2>/dev/null || true
# Count commits behind main
behind=$(git rev-list --count HEAD..origin/main 2>/dev/null || echo "0")
echo "Feature branch is $behind commits behind main"Threshold Configuration:
The stale branch threshold is configurable in .sequant/settings.json:
{
"run": {
"staleBranchThreshold": 5
}
}Default: 5 commits
Behavior:
| Commits Behind | Action |
| 0 | ✅ Proceed normally |
| 1 to threshold | ⚠️ Warning: "Feature branch is N commits behind main. Consider rebasing before testing." |
| > threshold | ❌ Block: "STALE_BRANCH: Feature branch is N commits behind main (threshold: T). Rebase required before testing." |
Implementation:
# Read threshold from settings (default: 5)
threshold=$(jq -r '.run.staleBranchThreshold // 5' .sequant/settings.json 2>/dev/null || echo "5")
behind=$(git rev-list --count HEAD..origin/main 2>/dev/null || echo "0")
if [[ $behind -gt $threshold ]]; then
echo "❌ STALE_BRANCH: Feature branch is $behind commits behind main (threshold: $threshold)"
echo " Rebase required before testing:"
echo " git fetch origin && git rebase origin/main"
# Exit with error - testing should not proceed
exit 1
elif [[ $behind -gt 0 ]]; then
echo "⚠️ Warning: Feature branch is $behind commits behind main."
echo " Consider rebasing before testing: git fetch origin && git rebase origin/main"
# Continue with warning
fiOutput Format:
### Stale Branch Check
| Check | Value |
|-------|-------|
| Commits behind main | N |
| Threshold | T |
| Status | ✅ OK / ⚠️ Warning / ❌ Blocked |
[Warning/blocking message if applicable]Verdict Impact:
| Status | Verdict Impact |
| OK (0 behind) | No impact |
| Warning (1 to threshold) | Note in test output, recommend rebase |
| Blocked (> threshold) | Cannot proceed - rebase first |
Phase 1: Setup
1.1 Fetch Issue Context
If orchestrated (SEQUANT_ORCHESTRATOR is set):
- Use
SEQUANT_ISSUEfor the issue number - Skip fetching issue context (orchestrator has already done this)
- Parse any context passed in the orchestrator's prompt
If standalone:
gh issue view <issue-number> --json title,body,labels
gh issue view <issue-number> --commentsRead all GitHub issue comments to gather complete context:
- Comments often contain clarifications, updates, or additional test cases added after the initial issue description
- Look for discussion about test requirements, edge cases, or expected behaviors mentioned in comments
- Review feedback from previous testing cycles or review comments
Parse the Issue body and all comments to extract:
- Feature description
- Test cases (look for "Test 1:", "Test N:", "### Test N", numbered lists)
- Test data requirements (if specified)
- Expected outcomes
- Any clarifications or additional test requirements from comments
1.2 Implementation Status Check
Before proceeding with full test setup, verify the feature exists:
For admin features (/admin/*):
# Check if main page exists
ls app/admin/<feature>/page.tsx 2>/dev/null && echo "Exists" || echo "Not implemented"For component features:
# Check if main component exists
find components -name "*<FeatureName>*" -type fDecision based on result:
Feature Implemented → Continue to 1.3
- Proceed with test data preparation and full test execution
Feature Not Implemented → Two options:
- Quick Status Report (for P2/deferred features):
- Verify infrastructure readiness (backend queries, DB schema, dependencies)
- Document what exists vs. what's missing
- Post brief status comment to issue
- Exit testing workflow - let user decide: implement now or defer
- Implement First (for P0/P1 features):
- Exit
/testworkflow - Recommend: Run
/spec <issue>to plan, then/exec <issue>to implement - Run
/test <issue>again after implementation complete
- Exit
1.3 Test Data Preparation
Check for test data requirements:
- Look for seed script or test fixtures in the project
- If seed script exists, offer to run it:
npx tsx scripts/seed-test-<feature>.ts - If no seed script exists, check Issue for SQL statements or manual setup steps
- Execute setup or provide clear instructions to user
1.4 Dev Server Check
Extract port from DEV_URL configuration:
The dev server URL is configured in .claude/.sequant/config.json under tokens.DEV_URL. Extract the port for the lsof check:
# Get DEV_URL from config (default: {{DEV_URL}})
# Extract port: http://localhost:PORT -> PORT
DEV_PORT=$(echo "{{DEV_URL}}" | sed -E 's/.*:([0-9]+).*/\1/')
# Check if dev server is running on configured port
lsof -ti:$DEV_PORTIf not running, start it using the project's package manager:
{{PM_RUN}} devWait for server ready before proceeding.
Note: If {{DEV_URL}} or {{PM_RUN}} are not replaced with actual values, the defaults are:
- DEV_URL:
http://localhost:3000(Next.js),http://localhost:4321(Astro),http://localhost:5173(Vite-based) - PM_RUN:
npm run(orbun run,yarn,pnpm run,poetry run,uv run,python -mbased on lockfile)
1.5 Test Coverage Analysis (REQUIRED)
Purpose: Warn when new/modified source files lack corresponding test files.
Before executing tests, analyze coverage for changed files:
- Get changed source files:
# Get changed source files (excluding tests themselves) changed=$(git diff origin/main...HEAD --name-only | grep -E '\.(ts|tsx|js|jsx)$' | grep -v -E '\.test\.|\.spec\.|__tests__' || true) echo "Changed source files:" echo "$changed" - Check for corresponding test files:
# For each changed file, check if a test file exists for file in $changed; do base=$(basename "$file" | sed -E 's/\.(ts|tsx|js|jsx)$//') dir=$(dirname "$file") # Look for test files in common locations test_found=false # Check co-located test file if ls "$dir/$base.test."* 2>/dev/null | grep -q .; then test_found=true fi # Check __tests__ directory if ls "$dir/__tests__/$base.test."* 2>/dev/null | grep -q .; then test_found=true fi # Check root __tests__ with path structure if ls "__tests__/${file%.ts*}.test."* 2>/dev/null | grep -q .; then test_found=true fi if [ "$test_found" = false ]; then echo "⚠️ NO TEST: $file" fi done Generate Coverage Warning Report:
### Test Coverage Analysis | Source File | Has Test? | Notes | |-------------|-----------|-------| | `src/lib/feature.ts` | ⚠️ No | New file, no test coverage | | `src/lib/utils.ts` | ✅ Yes | `src/lib/utils.test.ts` | | `app/admin/page.tsx` | - | UI component (browser tested) | **Coverage:** X/Y changed source files have corresponding tests **Warning:** The following new/modified files lack test coverage: - `src/lib/feature.ts` - Consider adding `src/lib/feature.test.ts`Coverage Tier Classification:
Tier File Pattern Coverage Recommendation Critical auth/*,payment/*,security/*,middleware/*⚠️ Flag prominently if missing Standard lib/*,utils/*,api/*,server/*Note if missing UI/Browser app/**/page.tsx,components/*Browser testing covers these Config/Types *.config.*,types/*,*.d.tsNo test required - Detection Heuristic for Critical Paths:
# Flag critical path changes without tests critical=$(echo "$changed" | grep -E 'auth|payment|security|middleware|server-action' || true) if [[ -n "$critical" ]]; then echo "⚠️ CRITICAL PATH CHANGES - test coverage strongly recommended:" echo "$critical" fi - Behavior:
- Warning-only: Does NOT block test execution
- Include coverage analysis in test results report
- Recommend adding tests for uncovered critical paths
- Note UI files are covered by browser testing (this skill)
Why this matters: Catching missing test coverage early:
- Prevents regressions from shipping untested code
- Ensures new logic has corresponding test validation
- Highlights critical paths that need extra scrutiny
Decision Point: Feature Implemented or Not?
At this point, you've checked if the feature exists (section 1.2). Based on that result:
Path A: Feature Implemented
Continue to Phase 2 - Execute full test suite with browser automation.
Workflow:
- Create test plan as a markdown checklist (all test cases)
- Execute tests systematically using Chrome DevTools MCP
- Generate test results report
- Post results to GitHub issue
Path B: Feature Not Implemented
Skip to Infrastructure Assessment - Don't run browser tests, verify readiness instead.
For P2/Deferred Features:
- Check backend infrastructure:
- Database queries exist? (
lib/queries/) - Database schema ready? (check migrations)
- Utility functions available? (
lib/utils/) - Dependencies installed? (
package.json)
- Database queries exist? (
- Create status report:
- What infrastructure exists
- What UI/frontend is missing
- Current workaround (e.g., CLI tool)
- Post "Feature Not Implemented" comment to GitHub issue
- Document deferral decision (e.g., add note to
CLAUDE.md) - Exit testing workflow
For P0/P1 Features:
- Note that feature needs implementation
- Recommend workflow:
/spec <issue>- Plan implementation/exec <issue>- Implement feature/test <issue>- Run tests after implementation
- Exit testing workflow
- Ask user: "Should I proceed with
/specand/execnow?"
Phase 2: Test Execution
Note: Only proceed to Phase 2 if feature is implemented (Path A above).
2.1 Create Test Plan
Write a markdown checklist with all test cases found, one status per line:
- [ ] Test 1: Basic functionality — pending
- [ ] Test 2: Edge cases — pending
<!-- ... etc -->2.2 Execute Tests Systematically
For each test case:
Step 1: Display Test
- Show test number, description, and steps
- Mark test as "in_progress" in the checklist
Step 2: Browser Automation
Use Chrome DevTools MCP for browser-based tests:
// Navigate to feature
mcp__chrome-devtools__navigate_page({url: "{{DEV_URL}}/..."})
// Get page structure
mcp__chrome-devtools__take_snapshot()
// Interact with elements (use UIDs from snapshot)
mcp__chrome-devtools__click({uid: "..."})
mcp__chrome-devtools__fill({uid: "...", value: "..."})
mcp__chrome-devtools__press_key({key: "Enter"})
// Verify state changes
mcp__chrome-devtools__take_snapshot()
// Document visual state
mcp__chrome-devtools__take_screenshot()
// Handle dialogs if needed
mcp__chrome-devtools__handle_dialog({action: "accept"})Step 3: Verify Results
Compare actual vs. expected outcomes:
- Check snapshot for expected elements/state
- Verify visual appearance in screenshot
- Confirm behavior matches test requirements
Step 4: Record Result
Mark test status:
- PASS: All expectations met
- FAIL: Expected behavior not working
- BLOCKED: Cannot complete test (prerequisite failed, bug blocking)
Update the checklist:
- PASS → check the box, status "completed"
- FAIL/BLOCKED → keep status "in_progress", document issue
2.3 Bug-Fix-Resume Pattern
When a bug is discovered during testing:
- Pause Testing
- Mark current test as BLOCKED
- Document the bug clearly (expected vs. actual)
- Bug Fix Decision
- If bug is critical and fixable now → pause tests, fix bug, resume
- If bug is non-critical → document, continue other tests
- If bug blocks multiple tests → fix before continuing
- Resume Testing
- After fix, restart blocked test
- Mark as PASS/FAIL based on fix
- Continue with remaining tests
2.4 MCP Availability Check (Graceful Fallback)
Before starting browser automation, check if Chrome DevTools MCP is available:
Check if mcp__chrome-devtools__* tools are available in your current session.If MCP IS available:
- Proceed with automated browser testing (Phase 2.1-2.3)
If MCP is NOT available:
- Skip browser automation steps
- Generate a Manual Testing Checklist instead
Manual Testing Checklist (No MCP Fallback):
When browser automation is unavailable, generate a structured manual testing guide:
## Manual Testing Checklist for Issue #<N>
**Pre-requisites:**
- [ ] Dev server running at {{DEV_URL}}
- [ ] Browser open with DevTools ready
- [ ] Test data prepared (see section 1.3)
### Test 1: [Description]
**URL:** {{DEV_URL}}/path/to/feature
**Steps:**
1. Navigate to the URL above
2. [Action to perform]
3. [Expected result to verify]
**Expected Result:** [What should happen]
**Actual Result:** [ ] PASS / [ ] FAIL - Notes: ___
### Test 2: [Description]
**URL:** {{DEV_URL}}/path/to/feature
**Steps:**
1. [Step 1]
2. [Step 2]
**Expected Result:** [What should happen]
**Actual Result:** [ ] PASS / [ ] FAIL - Notes: ___
---
**Summary:** Complete each test above and mark PASS/FAIL.
Post results as a comment on this issue.Why this matters:
/testskill remains useful even without Chrome DevTools MCP- Manual testers can follow the structured checklist
- Test results format remains consistent for reporting
Phase 3: Reporting
3.1 Generate Test Summary
Create structured test results:
## Testing Results for Issue #<N>
**Summary:** X/Y tests passed
### Test Results
**Test 1: [Description]** - PASS
- Steps executed successfully
- Expected behavior confirmed
- Screenshots: [if applicable]
**Test 2: [Description]** - FAIL
- Steps executed: [list]
- Expected: [what should happen]
- Actual: [what happened]
- Issue: [describe the problem]
**Test 3: [Description]** - BLOCKED
- Blocker: [describe blocking issue]
- Dependency: [what needs to be fixed first]
### Bugs Found
1. **[Bug Title]**
- Location: [file:line]
- Issue: [description]
- Fix: [applied/pending]
- Status: [fixed/documented for follow-up]
### Coverage
- Completed: X tests
- Failed: Y tests
- Blocked: Z tests
- Remaining: W tests
### Recommendations
- [Next steps]
- [Follow-up issues needed]
- [Areas needing additional testing]3.2 GitHub Comment
If orchestrated (SEQUANT_ORCHESTRATOR is set):
- Skip posting this skill's own GitHub comment — no per-phase comment is posted under
sequant run; test results surface through the run summary and the PR body (#964) - Include test summary in output for orchestrator to capture
- Let orchestrator aggregate results across phases
If standalone:
Draft comment for Issue #<N>:
## Testing Progress Update
[Test summary from above]
### Next Steps
- [ ] [Action item 1]
- [ ] [Action item 2]
**Testing tools used:** Chrome DevTools MCP, manual verificationOffer to post comment:
gh issue comment <issue-number> --body "$(cat <<'EOF'
[comment content]
EOF
)"Test Case Detection Patterns
Parse Issue body for these test formats:
Format 1: Numbered headers
### Test 1: Description
Steps...
### Test 2: Description
Steps...Format 2: Bold labels
**Test 1:** Description
- Step 1
- Step 2
**Test 2:** Description
- Step 1Format 3: Numbered lists
1. Test basic functionality:
- Step a
- Step b
2. Test edge cases:
- Step aFormat 4: Acceptance Criteria as Tests If no explicit tests, use AC as test cases:
**AC-1:** User can do X
→ Test 1: Verify user can do X
**AC-2:** System shows Y
→ Test 2: Verify system shows YBrowser Testing Best Practices
Reference: See Browser Testing Patterns for comprehensive patterns including forms, modals, grids, async content, and troubleshooting.
Snapshots vs. Screenshots
Use take_snapshot() when:
- You need to interact with elements (get UIDs)
- Verifying text content or element presence
- Checking accessibility tree structure
- Automating clicks/fills/navigation
Use take_screenshot() when:
- Documenting visual appearance
- Capturing hover states, colors, layouts
- Creating test evidence for reports
- Comparing before/after states visually
Common Testing Patterns
Pattern 1: Form Submission
// 1. Navigate to form
navigate_page({url: "..."})
// 2. Get form structure
take_snapshot()
// 3. Fill form fields
fill({uid: "name_field", value: "Test Name"})
fill({uid: "email_field", value: "test@example.com"})
// 4. Submit
click({uid: "submit_button"})
// 5. Verify result
wait_for({text: "Success"})
take_snapshot()Pattern 2: Modal Interactions
// 1. Open modal
click({uid: "open_modal_button"})
// 2. Verify modal content
take_snapshot() // Should show modal in tree
// 3. Interact with modal
fill({uid: "modal_input", value: "test"})
click({uid: "modal_confirm"})
// 4. Verify modal closed
take_snapshot() // Modal should be gonePattern 3: Multi-Selection Testing
// 1. Get initial state
take_snapshot() // Note initial selection count
// 2. Select items
click({uid: "checkbox_1"})
take_snapshot() // Verify count updated
click({uid: "checkbox_2"})
take_snapshot() // Verify count updated
// 3. Perform bulk action
click({uid: "bulk_action_button"})
take_snapshot() // Verify action UIPattern 4: Escape/Cancel Testing
// 1. Open UI element (modal, dropdown, etc.)
click({uid: "trigger"})
// 2. Press Escape
press_key({key: "Escape"})
// 3. Verify closed
take_snapshot() // Element should not be presentTest Data Cleanup
After testing completes, ask user if test data should be cleaned up:
Option 1: Delete test data
-- Clean up test records created during testing
DELETE FROM <table> WHERE name LIKE 'Test %';Option 2: Keep for future testing
- Document that test data exists
- Note: May need to update or regenerate for next test session
Exit Conditions
Testing session is complete when:
- All test cases executed (or explicitly skipped)
- Test results documented with PASS/FAIL/BLOCKED status
- Bugs found have been fixed or documented
- Test summary generated
- GitHub comment drafted (and optionally posted)
- Recommendations for next steps provided
Example Invocation
/test 151Expected workflow:
- Fetch Issue #151
- Detect 10 test cases in Issue body
- Check for seed script or test fixtures
- Start dev server if needed
- Execute tests 1-10 using Chrome DevTools MCP
- Generate test summary with PASS/FAIL/BLOCKED status
- Draft GitHub comment with results
- Offer to post comment and identify next steps
Integration with Development Workflow
Typical usage pattern:
/spec <issue> → Plan the feature
/exec <issue> → Implement the feature
/test <issue> → Test the feature (browser-based)
/qa <issue> → Code review and quality assessmentAlternative: Test-Driven Development
/spec <issue> → Plan the feature
/test <issue> → Run tests (expect failures)
/exec <issue> → Implement until tests pass
/qa <issue> → Final code reviewWhen to use /test vs /qa:
/test: Browser-based functional testing, user workflows, UI interactions/qa: Code review, AC validation, architecture assessment, merge readiness
Both can be used together:
/test→ Verify feature works for users/qa→ Verify code quality and completeness
Output Verification
Before responding, verify your output includes ALL of these:
- Test Summary - X/Y tests passed
- Test Results Table - Each test marked PASS, FAIL, or BLOCKED
- Bugs Found - List of bugs with file:line locations (if any)
- Coverage - Completed, failed, blocked, remaining counts
- Recommendations - Next steps for failures or follow-up
DO NOT respond until all items are verified.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

