uat-reporter
UAT Reporter
Write UAT test results to the Google Sheet "All Test Cases" tab with color-coded status cells, row lookup by test ID, and verification readback.
Uses shared OAuth token from google-sheets skill (~/.claude/.google/token.json).
Commands
report-batch (primary)
Write all results from a module JSON file:
~/.claude/skills/uat-reporter/scripts/uat_reporter.rb report-batch --file .uat/results/dashboard.json
Or via stdin:
cat .uat/results/dashboard.json | ~/.claude/skills/uat-reporter/scripts/uat_reporter.rb report-batch
report-single
Write one test result:
~/.claude/skills/uat-reporter/scripts/uat_reporter.rb report-single \
--test-id DASH-NAV-001 --status Pass --notes "Dashboard loads correctly"
verify
Read back written results and compare against JSON file:
~/.claude/skills/uat-reporter/scripts/uat_reporter.rb verify --file .uat/results/dashboard.json
sync-summaries
Recalculate the Summary and Module Summary tabs from All Test Cases data. Run this after any test result update to keep all tabs synchronized:
~/.claude/skills/uat-reporter/scripts/uat_reporter.rb sync-summaries
Preview what would be written:
~/.claude/skills/uat-reporter/scripts/uat_reporter.rb sync-summaries --dry-run
When to use: After report-batch, report-single, or any manual sheet edit to keep Summary and Module Summary tabs in sync with the All Test Cases source of truth.
Flags
All commands accept:
--dry-run— Preview without modifying the sheet--spreadsheet-id <id>— Override default from.uat/config.json
Configuration
- Default spreadsheet ID:
.uat/config.json→google_sheet_id - OAuth token:
~/.claude/.google/token.json(shared with google-sheets skill) - Log file:
.uat/logs/reporter.log
Exit Codes
0=success, 1=operation failed, 2=auth error, 3=API error, 4=invalid args
Bundled Resources
scripts/uat_reporter.rb— Main executable scriptreferences/color-map.json— Status-to-RGB color mappings (Pass=green, Fail=red, Blocked=yellow, Skip=gray)references/sample-results.json— Hand-crafted test results for validation