Replicate and validate a GitHub issue by spinning up Archon, analyzing the issue, and systematically testing all described symptoms using browser automation. Use when: User wants to reproduce a bug, validate a GitHub issue, confirm a reported problem, or investigate whether an issue is real before working on a fix. Triggers: "replicate issue", "reproduce issue", "validate issue", "confirm bug", "test issue", "can you reproduce", "try to replicate", "verify the bug". Capability: Checks out main, pulls latest, starts Archon, reads the GitHub issue, then uses agent-browser to systematically test every symptom and produce a findings report. NOT for: Fixing issues (use /archon or /exp-piv-loop:fix-issue), general UI testing (use /validate-ui).
71
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Systematically reproduce and validate a GitHub issue against the live Archon application. The goal: determine whether the reported behavior is real, identify exact reproduction steps, discover any related issues, and provide actionable fix recommendations.
Issue number: $ARGUMENTS
If $ARGUMENTS is empty, ask the user for the issue number before proceeding.
Ensure you are testing against the latest code on main so results are accurate.
cd /path/to/archon
# Stash any local changes to avoid conflicts
git stash 2>/dev/null || true
# Switch to main and pull latest
git checkout main
git pull origin main
echo "On branch: $(git branch --show-current)"
echo "Latest commit: $(git log --oneline -1)"Free up ports 3090 (backend) and 5173 (frontend) so Archon starts cleanly.
pkill -f "bun.*dev:server" 2>/dev/null || true
pkill -f "bun.*dev:web" 2>/dev/null || true
pkill -f "bun.*packages/server" 2>/dev/null || true
pkill -f "bun.*packages/web" 2>/dev/null || true
fuser -k 3090/tcp 2>/dev/null || true
fuser -k 5173/tcp 2>/dev/null || true
sleep 2
# Verify ports are free
! fuser 3090/tcp 2>/dev/null && ! fuser 5173/tcp 2>/dev/null && echo "Ports 3090 and 5173 are free" || echo "WARNING: Ports still in use"cd /path/to/archon
# Start both backend and frontend together
bun run dev &
sleep 8
# Verify backend is healthy
curl -s http://localhost:3090/api/health | head -c 200
echo ""
# Verify frontend is serving (port may vary if 5173 is taken)
curl -s http://localhost:5173 | head -c 100 || curl -s http://localhost:5174 | head -c 100Note: If port 5173 is taken, Vite auto-increments (5174, 5175, etc.). Check the bun run dev output for the actual frontend port and use that throughout.
gh issue view $ARGUMENTS --json title,body,labels,comments,stateParse the issue carefully. Extract:
Based on the issue content, create a checklist of specific things to test. For each symptom described in the issue, define:
Use the agent-browser CLI (NOT Playwright) for all browser interactions.
# 1. Navigate to the page
agent-browser open http://localhost:5173
# 2. Get interactive elements
agent-browser snapshot -i
# 3. Interact using refs from the snapshot
agent-browser click @e1
agent-browser fill @e2 "text"
# 4. Re-snapshot after navigation or DOM changes
agent-browser snapshot -i
# 5. Take screenshots at every significant point
agent-browser screenshot /tmp/issue-$ARGUMENTS-{step-name}.png/tmp/issue-$ARGUMENTS-*.pngagent-browser wait commands for network-dependent operationsIf the issue involves workflow execution, use the REST API to trigger background workflows:
# Create a conversation
CONV_ID=$(curl -s -X POST http://localhost:3090/api/conversations \
-H "Content-Type: application/json" -d '{}' | jq -r '.conversationId')
# Trigger a workflow (archon-assist is a good general-purpose one)
curl -s -X POST http://localhost:3090/api/workflows/archon-assist/run \
-H "Content-Type: application/json" \
-d "{\"conversationId\":\"$CONV_ID\",\"message\":\"Your test message here\"}"curl -s -X POST "http://localhost:3090/api/conversations/$CONV_ID/message" \
-H "Content-Type: application/json" \
-d '{"message":"Your test message"}'For each symptom in the issue, record:
| Symptom | Reproduced? | Evidence | Notes |
|---|---|---|---|
| {symptom from issue} | YES / NO / PARTIAL | Screenshot path | {details} |
If the issue was reproduced, do a targeted codebase analysis:
Provide multiple fix options with trade-offs:
For each recommendation:
### Option N: {Short title}
**Approach**: {1-2 sentence description}
**Changes required**:
- {file}: {what changes}
- {file}: {what changes}
**Pros**:
- {benefit}
**Cons**:
- {drawback}
**Complexity**: Low / Medium / High
**Risk**: Low / Medium / HighProvide at least 2-3 options ranging from quick fix to comprehensive solution.
# Close the browser
agent-browser close
# Stop Archon (optional — leave running if user wants to continue testing)
# fuser -k 3090/tcp 2>/dev/null
# fuser -k 5173/tcp 2>/dev/nullPresent a final summary to the user:
# Issue #$ARGUMENTS Replication Report
## Issue: {title}
**Status**: Reproduced / Not Reproduced / Partially Reproduced
**Tested on**: main @ {commit hash}
## Reproduction Summary
{2-3 sentences describing what was tested and the outcome}
## Findings
{Detailed findings with screenshot references}
## Root Cause
{If identified — what causes the bug and why}
## Related Issues Discovered
{Any additional problems found during testing}
## Recommendations
{Summary of fix options with recommended approach}agent-browser (Vercel Agent Browser CLI), NOT Playwright/agent-browser skill if you need a command referencecurl) to distinguish UI bugs from backend bugsagent-browser closeace0a41
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.