QA Audit: Claude Code Cloud
App-specific QA audit skill for the Claude Code Cloud web app. Contains flow map, test cases, known issues, and mobile-specific tests.
Activation
Triggers on: "run QA", "audit the app", "regression test", "check for regressions", "mobile QA"
App Metadata
- Base URL: http://localhost:3072 (or configured port)
- Tech Stack: Next.js 15, Clerk auth, Hono API
- Test Credentials: User's Clerk account
- Last Full Audit: 2026-01-02
- Last QA Run: 2026-01-02
Quick Commands
/qa-audit - Run all test cases
/qa-audit regression - Run P0 tests only
/qa-audit mobile - Run mobile-specific tests
/qa-audit [flow-name] - Run specific flow tests
Flow Map
Screens Inventory
| ID |
Screen |
URL |
Purpose |
Key Elements |
| S01 |
Landing |
/ |
Marketing page |
Hero, CTA, feature grid |
| S02 |
Sign In |
/sign-in |
Clerk auth |
Clerk component |
| S03 |
Sign Up |
/sign-up |
Registration |
Clerk component |
| S04 |
Dashboard |
/dashboard |
Workspace list |
Header, workspace cards, new button |
| S05 |
Setup |
/dashboard/setup |
VM provisioning |
Progress indicator |
| S06 |
New Workspace |
/dashboard/new |
Create workspace |
Form fields |
| S07 |
Workspace Detail |
/dashboard/workspace/[id] |
Terminal view |
Header, breadcrumb, terminal, settings |
Navigation Graph
Landing (/)
├── Sign In → Dashboard
└── Sign Up → Dashboard/Setup
Dashboard (/dashboard)
├── New Workspace → Dashboard (after creation)
└── Workspace Card → Workspace Detail
Workspace Detail (/dashboard/workspace/[id])
├── ← WORKSPACES breadcrumb → Dashboard
├── Logo click → Dashboard
└── Workspaces button → Dashboard
User Journeys
- J01 - New User: Landing → Sign Up → Setup → Dashboard
- J02 - Returning User: Landing → Sign In → Dashboard
- J03 - Create Workspace: Dashboard → New → Form → Dashboard
- J04 - Access Terminal: Dashboard → Workspace Card → Terminal
- J05 - Return to Dashboard: Terminal → (breadcrumb/logo/button) → Dashboard
Test Case Library
P0 - Critical (Every Release)
| ID |
Title |
Category |
Steps |
| TC-001 |
Landing page loads |
Happy Path |
Navigate to /, verify hero visible |
| TC-002 |
Sign in redirects to dashboard |
Happy Path |
Click Sign In, complete auth, verify /dashboard |
| TC-003 |
Dashboard shows workspaces |
Happy Path |
Go to /dashboard, verify workspace list |
| TC-004 |
Workspace detail loads |
Happy Path |
Click workspace card, verify terminal section |
| TC-005 |
Navigation back to dashboard |
Happy Path |
From workspace, click logo or breadcrumb, verify /dashboard |
P1 - Important (Mobile-Specific)
| ID |
Title |
Category |
Steps |
| TC-010 |
Header visible on mobile |
Mobile |
Set 375px viewport, verify all header elements visible or in menu |
| TC-011 |
Nav items accessible on mobile |
Mobile |
Verify all nav functionality works at 375px |
| TC-012 |
Touch targets 44px minimum |
Mobile |
Verify buttons/links have adequate touch area |
| TC-013 |
No horizontal overflow |
Mobile |
Check no horizontal scroll at 375px |
| TC-014 |
Terminal usable on mobile |
Mobile |
Verify terminal section fills available space |
P2 - Standard
| ID |
Title |
Category |
Steps |
| TC-020 |
Create new workspace |
Happy Path |
Dashboard → New → Fill form → Submit |
| TC-021 |
Fullscreen terminal |
Feature |
Click MAXIMIZE, verify fullscreen |
| TC-022 |
Settings toggle |
Feature |
Toggle network mode |
Known Issues & Workarounds
| Issue |
Severity |
Status |
Description |
| Header overflow on mobile |
Major |
Open |
Nav items cut off at 375px - email/signout hidden |
| Button overlap |
Minor |
Open |
"+ NEW WORKSPACE" overlaps "Workspaces" heading |
| Small breadcrumb |
Minor |
Open |
"← WORKSPACES" is 0.75rem, not touch-optimized |
Mobile Breakpoints to Test
| Viewport |
Device |
Priority |
| 375x812 |
iPhone 13/14 |
P0 |
| 390x844 |
iPhone 14 Pro |
P1 |
| 428x926 |
iPhone 14 Pro Max |
P1 |
| 768x1024 |
iPad |
P1 |
| 1024x768 |
iPad Landscape |
P2 |
App-Specific Heuristics
What Typically Breaks
- Header at narrow viewports (no responsive handling)
- Terminal height calculation on small screens
- Long email addresses overflow nav
Patterns to Watch
- Inline styles with fixed values (no media queries)
display: flex; gap: X without wrap
calc(100vh - Xpx) height calculations
Known Fragile Areas
apps/web/src/components/Header.tsx - no mobile breakpoints
apps/web/src/components/TerminalSection.tsx - fixed height calc
apps/web/src/app/globals.css - only one @media query at 768px
Screenshot Archive
| Date |
Directory |
Notes |
| 2026-01-02 |
/tmp/ux-qa/claude-code-cloud/ |
Initial mobile audit |
Last Run Results
| Date |
Tests |
Passed |
Failed |
Notes |
| 2026-01-02 |
Visual Audit |
- |
- |
Initial discovery, found header overflow issues |
Dev Browser Setup
# Start server
cd skills/dev-browser && ./server.sh &
# Mobile viewport test
cd skills/dev-browser && npx tsx <<'EOF'
import { connect, waitForPageLoad } from "@/client.js";
const client = await connect();
const page = await client.page("mobile-test");
await page.setViewportSize({ width: 375, height: 812 });
await page.goto("http://localhost:3072");
await waitForPageLoad(page);
await page.screenshot({ path: "/tmp/qa-test.png" });
await client.disconnect();
EOF
1---2name: qa-audit3description: QA Audit: Claude Code Cloud4---5# QA Audit: Claude Code Cloud67App-specific QA audit skill for the Claude Code Cloud web app. Contains flow map, test cases, known issues, and mobile-specific tests.89## Activation1011Triggers on: "run QA", "audit the app", "regression test", "check for regressions", "mobile QA"1213## App Metadata1415- **Base URL**: http://localhost:3072 (or configured port)16- **Tech Stack**: Next.js 15, Clerk auth, Hono API17- **Test Credentials**: User's Clerk account18- **Last Full Audit**: 2026-01-0219- **Last QA Run**: 2026-01-022021## Quick Commands2223- `/qa-audit` - Run all test cases24- `/qa-audit regression` - Run P0 tests only25- `/qa-audit mobile` - Run mobile-specific tests26- `/qa-audit [flow-name]` - Run specific flow tests2728## Flow Map2930### Screens Inventory3132| ID | Screen | URL | Purpose | Key Elements |33| --- | ---------------- | ------------------------- | ---------------- | -------------------------------------- |34| S01 | Landing | / | Marketing page | Hero, CTA, feature grid |35| S02 | Sign In | /sign-in | Clerk auth | Clerk component |36| S03 | Sign Up | /sign-up | Registration | Clerk component |37| S04 | Dashboard | /dashboard | Workspace list | Header, workspace cards, new button |38| S05 | Setup | /dashboard/setup | VM provisioning | Progress indicator |39| S06 | New Workspace | /dashboard/new | Create workspace | Form fields |40| S07 | Workspace Detail | /dashboard/workspace/[id] | Terminal view | Header, breadcrumb, terminal, settings |4142### Navigation Graph4344```45Landing (/)46 ├── Sign In → Dashboard47 └── Sign Up → Dashboard/Setup4849Dashboard (/dashboard)50 ├── New Workspace → Dashboard (after creation)51 └── Workspace Card → Workspace Detail5253Workspace Detail (/dashboard/workspace/[id])54 ├── ← WORKSPACES breadcrumb → Dashboard55 ├── Logo click → Dashboard56 └── Workspaces button → Dashboard57```5859### User Journeys60611. **J01 - New User**: Landing → Sign Up → Setup → Dashboard622. **J02 - Returning User**: Landing → Sign In → Dashboard633. **J03 - Create Workspace**: Dashboard → New → Form → Dashboard644. **J04 - Access Terminal**: Dashboard → Workspace Card → Terminal655. **J05 - Return to Dashboard**: Terminal → (breadcrumb/logo/button) → Dashboard6667## Test Case Library6869### P0 - Critical (Every Release)7071| ID | Title | Category | Steps |72| ------ | ------------------------------ | ---------- | ----------------------------------------------------------- |73| TC-001 | Landing page loads | Happy Path | Navigate to /, verify hero visible |74| TC-002 | Sign in redirects to dashboard | Happy Path | Click Sign In, complete auth, verify /dashboard |75| TC-003 | Dashboard shows workspaces | Happy Path | Go to /dashboard, verify workspace list |76| TC-004 | Workspace detail loads | Happy Path | Click workspace card, verify terminal section |77| TC-005 | Navigation back to dashboard | Happy Path | From workspace, click logo or breadcrumb, verify /dashboard |7879### P1 - Important (Mobile-Specific)8081| ID | Title | Category | Steps |82| ------ | ------------------------------ | -------- | ----------------------------------------------------------------- |83| TC-010 | Header visible on mobile | Mobile | Set 375px viewport, verify all header elements visible or in menu |84| TC-011 | Nav items accessible on mobile | Mobile | Verify all nav functionality works at 375px |85| TC-012 | Touch targets 44px minimum | Mobile | Verify buttons/links have adequate touch area |86| TC-013 | No horizontal overflow | Mobile | Check no horizontal scroll at 375px |87| TC-014 | Terminal usable on mobile | Mobile | Verify terminal section fills available space |8889### P2 - Standard9091| ID | Title | Category | Steps |92| ------ | -------------------- | ---------- | ------------------------------------ |93| TC-020 | Create new workspace | Happy Path | Dashboard → New → Fill form → Submit |94| TC-021 | Fullscreen terminal | Feature | Click MAXIMIZE, verify fullscreen |95| TC-022 | Settings toggle | Feature | Toggle network mode |9697## Known Issues & Workarounds9899| Issue | Severity | Status | Description |100| ------------------------- | -------- | ------ | ------------------------------------------------- |101| Header overflow on mobile | Major | Open | Nav items cut off at 375px - email/signout hidden |102| Button overlap | Minor | Open | "+ NEW WORKSPACE" overlaps "Workspaces" heading |103| Small breadcrumb | Minor | Open | "← WORKSPACES" is 0.75rem, not touch-optimized |104105## Mobile Breakpoints to Test106107| Viewport | Device | Priority |108| -------- | ----------------- | -------- |109| 375x812 | iPhone 13/14 | P0 |110| 390x844 | iPhone 14 Pro | P1 |111| 428x926 | iPhone 14 Pro Max | P1 |112| 768x1024 | iPad | P1 |113| 1024x768 | iPad Landscape | P2 |114115## App-Specific Heuristics116117### What Typically Breaks118119- Header at narrow viewports (no responsive handling)120- Terminal height calculation on small screens121- Long email addresses overflow nav122123### Patterns to Watch124125- Inline styles with fixed values (no media queries)126- `display: flex; gap: X` without wrap127- `calc(100vh - Xpx)` height calculations128129### Known Fragile Areas130131- `apps/web/src/components/Header.tsx` - no mobile breakpoints132- `apps/web/src/components/TerminalSection.tsx` - fixed height calc133- `apps/web/src/app/globals.css` - only one @media query at 768px134135## Screenshot Archive136137| Date | Directory | Notes |138| ---------- | ----------------------------- | -------------------- |139| 2026-01-02 | /tmp/ux-qa/claude-code-cloud/ | Initial mobile audit |140141## Last Run Results142143| Date | Tests | Passed | Failed | Notes |144| ---------- | ------------ | ------ | ------ | ----------------------------------------------- |145| 2026-01-02 | Visual Audit | - | - | Initial discovery, found header overflow issues |146147## Dev Browser Setup148149```bash150# Start server151cd skills/dev-browser && ./server.sh &152153# Mobile viewport test154cd skills/dev-browser && npx tsx <<'EOF'155import { connect, waitForPageLoad } from "@/client.js";156const client = await connect();157const page = await client.page("mobile-test");158await page.setViewportSize({ width: 375, height: 812 });159await page.goto("http://localhost:3072");160await waitForPageLoad(page);161await page.screenshot({ path: "/tmp/qa-test.png" });162await client.disconnect();163EOF164```