Loading...
Loading...
Comprehensive end-to-end validation of the Archon Web UI using browser automation and codebase review. Use when: User wants to validate, test, or audit the Archon web interface, find UI/UX bugs, test workflow management, verify parallel agent orchestration, or run comprehensive browser-based E2E tests. Triggers: "validate ui", "test the ui", "e2e test", "browser test", "validate archon", "test archon ui", "ui audit", "ux review", "comprehensive test", "validate everything". Capability: Starts Archon, runs exhaustive browser automation tests via agent-browser CLI, performs codebase review, and produces a detailed bug/UX report. NOT for: Unit tests (use `bun test`), CLI-only validation (use /validation:validate-simple).
npx skill4agent add coleam00/archon validate-ui$ARGUMENTS# Kill any running Archon dev servers (backend + frontend)
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
pkill -f "vite.*5173" 2>/dev/null || true
# Kill any leftover processes on our ports
lsof -ti:3090 | xargs kill -9 2>/dev/null || true
lsof -ti:5173 | xargs kill -9 2>/dev/null || true
# Wait for ports to free up
sleep 2
# Verify ports are free
! lsof -i:3090 && ! lsof -i:5173 && echo "Ports 3090 and 5173 are free" || echo "WARNING: Ports still in use"# Check if agent-browser is available
which agent-browser 2>/dev/null || npx agent-browser --version 2>/dev/null
# If not installed globally, install it:
# npm install -g agent-browser && agent-browser install
# On WSL2/Linux, use --with-deps to get Chromium system dependencies:
# agent-browser install --with-deps
# IMPORTANT: Do NOT use bunx — Bun skips postinstall scripts that agent-browser needs.
# Use npx or global npm install.# From the repo root: /path/to/archon
# Start backend (port 3090)
cd /path/to/archon && bun run dev:server &
sleep 5 # Wait for server initialization + DB
# Verify backend is healthy
curl -s http://localhost:3090/api/health | head -c 200
# Start frontend (port 5173)
cd /path/to/archon && bun run dev:web &
sleep 5 # Wait for Vite dev server
# Verify frontend is serving
curl -s http://localhost:5173 | head -c 200http://localhost:5173http://localhost:3090/apihttp://localhost:3090/api/stream/{conversationId}# Check existing codebases
curl -s http://localhost:3090/api/codebases | python3 -m json.tool 2>/dev/null || curl -s http://localhost:3090/api/codebases
# Register the current repo as a codebase (if none exist)
curl -s -X POST http://localhost:3090/api/codebases \
-H "Content-Type: application/json" \
-d '{"path": "/path/to/archon"}'
# Create a test conversation
curl -s -X POST http://localhost:3090/api/conversations \
-H "Content-Type: application/json" \
-d '{}' | python3 -m json.tool 2>/dev/nullagent-browseragent-browser open <url>agent-browser snapshot -iagent-browser screenshot /tmp/archon-test-{name}.png/http://localhost:5173GET /api/workflows/runs?status=runningGET /api/conversations/chat/{id}/workflows/runs/{id}/chat+https://github.com/anthropics/claude-code+/path/to/archonProjectDetailAllConversationsViewlocalStorage/chat/{conversationId}/status/status/help/commands/getcwdtarget="_blank"isStreaming///workflows/workflowsarchon-assist/chat/{conversationId}ProjectDetailWorkflowDispatchInlineWorkflowProgressCard/workflows/runs/{runId}/workflows/runs/:runIdWorkflowLogsarchon-comprehensive-pr-reviewParallelBlockView(completed/total agents)archon-test-looparchon-ralph-freshLoopIterationView<promise>COMPLETE</promise>ArtifactSummarystale/workflows/runs/{id}agent-browser eval/api/stream/{conversationId}agent-browser --sessionagent-browser set viewport 1920 1080 # Desktop
agent-browser set viewport 1366 768 # Laptop
agent-browser set viewport 1024 768 # Tablet landscape
agent-browser set viewport 768 1024 # Tablet portrait
agent-browser set viewport 375 812 # Mobile/EscapeEnterShift+Entervscode://file/...WorkflowResultCard<script>alert('xss')</script>*_[]()| File | Focus Areas |
|---|---|
| Route config, error boundary, QueryClient settings |
| SSE handler correctness, message state management, new-chat flow, workflow dispatch handling |
| Auto-scroll, WorkflowDispatchInline polling, WorkflowResultCard truncation |
| Markdown rendering, streaming cursor, thinking dots |
| Expand/collapse, running state animation, output truncation |
| Timer accuracy, compact vs full mode, stale indicator |
| Show/hide transitions, queue position display |
| Enter vs Shift+Enter, auto-resize, disabled state |
| Resize drag, project add flow, search, new chat, localStorage persistence |
| Scoped queries, conversation status dots, workflow run sorting |
| Workflow fetch, create conversation + run flow, error handling |
| Search filtering, codebase map construction, "New Chat" |
| Delete confirmation, "All Projects" button |
| Rename inline edit, delete flow, active state highlighting |
| Two-tab layout, inline run panel, running indicator pulse |
| Initial data reconstruction from events, live SSE overlay, worker vs parent flows |
| Read-only chat view, SSE handlers, message filtering by timestamp |
| Step list rendering, parallel block delegation, active step highlight |
| Virtual scrolling, auto-scroll, metadata header |
| Artifact type icons, URL links, path display |
| Progress bar math, max iteration capping |
| Overall status derivation, nested agent list |
| Text batching (50ms flush), reconnection, handler ref stability |
| Workflow state map, polling fallback (15s), stale detection |
| Scroll threshold (50px), user scroll-up detection |
| SSE_BASE_URL calculation, error handling, 404 swallowing |
| SSEEvent union completeness, ChatMessage fields, WorkflowState shape |
| Cache key correctness, memory management |
| Stale project ID cleanup, codebase polling interval |
| File | Focus Areas |
|---|---|
| Endpoint correctness, CORS, SSE heartbeat loop, workflow run endpoint, codebase deduplication |
| sendMessage category filtering, structured event handling, lock event flushing |
| Segment splitting logic, tool call duration tracking, flush timing, 50-segment cap |
| Stream replacement race condition fix, buffer limits (100 msg / 200 conv), zombie reaper |
| Event mapping completeness, bridge subscription lifecycle, parent forwarding |
| Router prompt construction, background dispatch fire-and-forget, isolation resolution |
| Stale workflow detection (15min), step session continuity, parallel Promise.all, loop completion signal |
| Case-insensitive matching, multiline regex, fallback behavior |
| Listener error isolation, max listener cap, run registration lifecycle |
# Archon Web UI Validation Report
**Date**: {date}
**Tester**: Claude Code (agent-browser + codebase review)
**Archon Version**: {git commit hash}
**Screenshots**: /tmp/archon-test-*.png
## Executive Summary
{2-3 sentences: overall quality assessment, critical issues count, UX rating}
## Critical Bugs (P0)
{Bugs that break core functionality or lose data}
## Major Issues (P1)
{Issues that significantly degrade the experience}
## Minor Issues (P2)
{Polish items, edge cases, visual inconsistencies}
## UX Recommendations
{Suggestions for improving the user experience — not just bugs but "could be better"}
## Accessibility Findings
{Keyboard nav gaps, ARIA issues, contrast problems}
## Performance Observations
{Slow renders, unnecessary work, optimization opportunities}
## Codebase Quality Notes
{Dead code, inconsistencies, architectural concerns}
## What's Working Well
{Positive findings — features that are solid, patterns that are good}
## Detailed Test Results
### Dashboard Tests
| Test | Status | Notes |
|------|--------|-------|
| 1.1 Initial Load | PASS/FAIL | ... |
...
### Project Management Tests
...
### Chat Interface Tests
...
### Workflow Management Tests
...Is Archon currently doing the best it possibly can to solve the problem of managing a lot of agents in parallel and executing custom workflows with full visibility?
agent-browsernpx agent-browseragent-browser snapshot -i/tmp/archon-test-{section}-{name}.pngagent-browser wait --load networkidleagent-browser evalagent-browser close