From patriotforge
Use to live-test the PatriotForge app with Playwright MCP. Walks through user flows, catches console errors, network failures, broken UI, and logs bugs found with steps to reproduce.
npx claudepluginhub aka-kolton/patriotforge-claude-plugin --plugin patriotforgeThis skill uses the workspace's default tool permissions.
Automated browser testing of the live PatriotForge app. Uses Playwright MCP to navigate, interact, and catch bugs.
Implements Clean Architecture in Android and Kotlin Multiplatform projects: module layouts, dependency rules, UseCases, Repositories, domain models, and data layers with Room, SQLDelight, Ktor.
Enforces code quality on file edits via Plankton hooks: auto-formats, lints, Claude-powered fixes with model tiering, config protection, and legacy package manager blocks.
Enforces C++ Core Guidelines for writing, reviewing, and refactoring modern C++ code (C++17+), promoting RAII, immutability, type safety, and idiomatic practices.
Automated browser testing of the live PatriotForge app. Uses Playwright MCP to navigate, interact, and catch bugs.
$ARGUMENTS — specific flow to test (e.g., "quotes", "login", "dashboard") or "full" for all flows
Navigate to the app:
https://forge.patriotpf.com (or https://frontend-production-f8a3.up.railway.app)http://localhost:5173 (if running locally)AskUserQuestion if neither is specified: "Which environment should I test?"Use mcp__playwright__browser_navigate to open the app
Take initial screenshot to confirm the app loads
Run the flows relevant to $ARGUMENTS, or all flows if "full" is specified. For each flow:
mcp__playwright__browser_console_messages with level "error"mcp__playwright__browser_network_requests — look for 4xx/5xx responses1. Navigate to login page
2. Verify login form renders (username/email field, password field, submit button)
3. Try login with test credentials (ask user for credentials if needed)
4. Verify redirect to dashboard after login
5. Check: auth cookie set, no console errors, no network failures
1. After login, verify dashboard loads
2. Check all dashboard widgets/cards render
3. Verify sidebar navigation is visible
4. Click through each top-level nav item — verify each page loads
5. Check: no blank pages, no loading spinners stuck, no console errors
1. Navigate to Customers page
2. Verify customer list renders with data (or empty state)
3. Click "New Customer" — verify form renders
4. Fill required fields, submit (or cancel)
5. If submitted: verify customer appears in list
6. Click a customer row — verify detail page renders
7. Check: form validation works, no console errors
1. Navigate to Quotes page
2. Verify quote list renders
3. Click "New Quote" — verify form renders
4. Check: customer selector works, line items can be added
5. Verify price calculations display correctly
6. Test status transitions if possible (Draft → Sent)
7. Check: no console errors, no network failures
1. Navigate to Sales Orders page
2. Verify list renders with correct columns
3. Click into a sales order — verify detail page
4. Check: line items display, pricing correct, status badge renders
5. Check: no console errors
1. Navigate to Work Orders or Production page
2. Verify list renders
3. Check status badges display correct colors
4. Click into a work order — verify detail view
5. Check: status flow matches expected (Queued → In Production → QC → Complete)
1. Click through EVERY sidebar nav item
2. For each page: verify it loads (no blank screen, no crash)
3. Check for permission-gated content (if logged in as non-admin)
4. Verify responsive behavior: resize browser to tablet (768px) and mobile (375px)
5. Check: sidebar collapses correctly, no content overflow
1. Navigate to Settings page
2. Verify settings categories render
3. Check user management page (if admin)
4. Verify role/permission display
After EVERY page navigation or action, run these checks:
mcp__playwright__browser_console_messages with level "error"
Flag any errors that aren't known/expected (e.g., React strict mode double-render warnings are OK).
mcp__playwright__browser_network_requests
Flag any requests with status 4xx or 5xx. Record the URL, method, and status code.
Take screenshots and verify:
While navigating, note:
For each bug found, log it in this format:
### BUG: {Short description}
**Severity:** CRITICAL / HIGH / MEDIUM / LOW
**Page:** {URL path}
**Flow:** {Which test flow}
**Steps to Reproduce:**
1. Navigate to {page}
2. Click {element}
3. Observe {problem}
**Expected:** {what should happen}
**Actual:** {what actually happens}
**Evidence:**
- Console error: `{error message}`
- Network failure: `{method} {url} → {status}`
- Screenshot: {reference to screenshot taken}
**Suggested Fix:** {if obvious from the error/code}
After all flows are tested:
Present bug summary:
QA RESULTS — {environment}
===========================
Tested: {N} flows
Bugs found: {N} (X critical, Y high, Z medium, W low)
Console errors: {N}
Network failures: {N}
Pages tested: {N}
List all bugs in severity order
Ask with AskUserQuestion:
If fixing: dispatch appropriate agents for each bug
If logging: save bug report to C:\Users\Kolton\Documents\Logbook\Projects\PatriotForge\Docs\QA Reports\{date}-qa-report.md
mcp__playwright__browser_wait_for before asserting