Help us improve
Share bugs, ideas, or general feedback.
From user-testing-agent
Posts formatted user testing results to GitHub PR comments via gh CLI, with update logic, badges, issues, and screenshots. For CI/CD UX feedback on PRs.
npx claudepluginhub ncklrs/claude-chrome-user-testing --plugin user-testing-agentHow this skill is triggered — by the user, by Claude, or both
Slash command
/user-testing-agent:github-prThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Post user testing results as GitHub PR comments for CI/CD integration.
Resolves GitHub PR issues including review comments, CI failures via triage-dispatch workflow with code edits, replies, and verification.
Reviews pull requests across description, ticket, code changes, scans, and unit tests using parallel subagents. Supports GitHub via gh CLI, GitLab via glab, and git diff fallback.
Orchestrates map-reduce PR reviews: splits changes into units, parallel sub-reviews, synthesizes findings, posts deduplicated comments. Supports CI/CD, visual diffs, confidence gating.
Share bugs, ideas, or general feedback.
Post user testing results as GitHub PR comments for CI/CD integration.
gh CLI installed and authenticatedGITHUB_TOKEN is automatically availablepull-requests: write)--pr <number> Post results as comment on PR #<number>
<!-- user-test-results:[persona-id] -->
## User Test Results: [Persona Name]
**Status:** [badge] | **Tested:** [timestamp]
| Metric | Value |
|--------|-------|
| URL | `https://...` |
| Persona | [name] ([id]) |
| Viewport | [viewport] |
| Network | [network] |
| Duration | [duration]s |
### Summary
- Tasks: X/Y completed
- Critical Issues: N
- Major Issues: N
- Minor Issues: N
<details>
<summary>Issues Found (N)</summary>
#### Critical
...
#### Major
...
#### Minor
...
</details>
<details>
<summary>Screenshots</summary>
[Links to screenshots/trace if --record used]
</details>
---
*Tested with [user-testing-agent](https://github.com/ncklrs/claude-chrome-user-testing)*
| Status | Badge | When |
|---|---|---|
| Pass | PASS | All tasks completed, no critical issues |
| Fail | FAIL | Critical issues found or tasks failed |
| Issues | ISSUES | Tasks completed but major/minor issues exist |
gh pr comment $PR_NUMBER --body "$COMMENT_BODY"
Prevents comment spam on re-runs by updating existing comment:
# Marker includes persona ID to allow multiple persona comments
MARKER="<!-- user-test-results:$PERSONA_ID -->"
# Check for existing comment with this marker
EXISTING=$(gh pr view $PR_NUMBER --json comments \
--jq ".comments[] | select(.body | contains(\"$MARKER\")) | .databaseId" \
| head -1)
if [ -n "$EXISTING" ]; then
# Update existing comment
gh api repos/{owner}/{repo}/issues/comments/$EXISTING \
-X PATCH \
-f body="$COMMENT_BODY"
echo "Updated existing comment"
else
# Create new comment
gh pr comment $PR_NUMBER --body "$COMMENT_BODY"
echo "Created new comment"
fi
When running --personas with --pr:
name: User Testing
on:
pull_request:
types: [opened, synchronize]
jobs:
user-test:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4
- name: Deploy Preview
id: deploy
run: |
# Your preview deployment logic
echo "url=https://preview-${{ github.event.pull_request.number }}.example.com" >> $GITHUB_OUTPUT
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: Run User Tests
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude --chrome "/user-test \
--url ${{ steps.deploy.outputs.url }} \
--persona genz-digital-native \
--quiet \
--pr ${{ github.event.pull_request.number }}"
- name: Run User Tests with Recording
run: |
claude --chrome "/user-test \
--url ${{ steps.deploy.outputs.url }} \
--persona boomer-tech-averse \
--quiet \
--record \
--pr ${{ github.event.pull_request.number }}"
- name: Upload Trace
uses: actions/upload-artifact@v4
with:
name: playwright-trace
path: "*.trace.zip"
- name: Run Multi-Persona Tests
run: |
claude --chrome "/user-test \
--url ${{ steps.deploy.outputs.url }} \
--personas 'boomer-tech-averse,genz-digital-native,screen-reader-user' \
--quiet \
--pr ${{ github.event.pull_request.number }}"
Error: gh CLI not installed
Skipping PR comment (results still output to stdout)
Error: gh CLI not authenticated
Run 'gh auth login' or ensure GITHUB_TOKEN is set
Skipping PR comment (results still output to stdout)
Error: PR #123 not found
Verify PR number and repository access
Skipping PR comment (results still output to stdout)
--quiet: Reduces noise, focuses on results--record: Provides trace files for debugging