Pm-pilot dogfood
git clone https://github.com/mshadmanrahman/pm-pilot
T=$(mktemp -d) && git clone --depth=1 https://github.com/mshadmanrahman/pm-pilot "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/pm-core/dogfood" ~/.claude/skills/mshadmanrahman-pm-pilot-dogfood && rm -rf "$T"
skills/pm-core/dogfood/SKILL.mdDogfood
Systematically explore a web application to find bugs, UX issues, and quality problems. Uses browser automation to test across viewports and produce a structured bug report with reproduction steps and screenshots.
When to Activate
- User says "dogfood", "QA this", "find bugs", "test this app"
- User provides a URL and asks for quality feedback
- User says "exploratory test", "bug hunt"
Input
Required:
- Target URL: The web app to test
Optional:
- Scope: Focus area (e.g., "billing page", "onboarding flow"). Default: full app.
- Authentication: Credentials if login is required.
- Viewports: Default: desktop (1280x800), tablet (768x1024), mobile (375x812).
Execution
Step 1: Initialize
Create output directory for screenshots and report:
mkdir -p {output_dir}/screenshots {output_dir}/videos
Open the target URL in a browser session. Take an initial screenshot.
Step 2: Authenticate (if needed)
If the app requires login, fill credentials and save auth state. For OTP or email codes, ask the user and wait.
Step 3: Orient
Take an annotated screenshot of the landing page. Identify main navigation elements. Map out sections to visit.
Step 4: Explore Systematically
Work through the app section by section:
- Navigation: Visit each top-level section. Check all links work.
- Forms: Fill and submit forms. Test empty submissions, invalid input, boundary values.
- Interactive elements: Click buttons, open dropdowns/modals, toggle switches.
- Error states: Trigger error conditions. Check error messages are helpful.
- Empty states: Check what happens with no data.
- Responsive: Resize to tablet and mobile viewports. Check layout.
- Console: Check browser console for JS errors and failed network requests.
- Accessibility basics: Check focus order, alt text on images, color contrast.
At each page, take a screenshot and check the console.
Step 5: Document Issues
Document each issue as you find it. Do not batch for later.
For interactive/behavioral issues: Record a video, take step-by-step screenshots, write numbered repro steps.
For static/visual issues (typos, misalignment, broken layout): A single annotated screenshot is sufficient.
Each issue gets:
- Unique ID (ISSUE-001, ISSUE-002, ...)
- Severity: Critical / High / Medium / Low
- Category: Functional / Visual / UX / Performance / Accessibility / Console Error
- Reproduction steps
- Screenshot(s) or video reference
- Expected vs actual behavior
Step 6: Wrap Up
Aim for 5-10 well-documented issues. Depth of evidence beats quantity.
Update summary counts. Close the browser session.
Output Format
# Dogfood Report: {App Name} **URL:** {url} | **Date:** {date} | **Tester:** AI (pm-pilot) ## Summary - Critical: {count} - High: {count} - Medium: {count} - Low: {count} - **Total:** {count} ## Viewports Tested - Desktop (1280x800): Yes/No - Tablet (768x1024): Yes/No - Mobile (375x812): Yes/No ## Issues ### ISSUE-001: {Short title} - **Severity:** {Critical/High/Medium/Low} - **Category:** {Functional/Visual/UX/Performance/Accessibility} - **Page:** {URL or page name} - **Viewport:** {Desktop/Tablet/Mobile} **Steps to Reproduce:** 1. {Step} [screenshot: issue-001-step-1.png] 2. {Step} [screenshot: issue-001-step-2.png] **Expected:** {what should happen} **Actual:** {what actually happens} **Screenshot:** {path} **Video:** {path or N/A} --- (Repeat for each issue) ## Pages Tested - {Page 1}: {status} - {Page 2}: {status} ## Console Errors - {Error message} on {page} ({count} occurrences)
Rules
- Repro is everything: Every issue needs proof. Interactive bugs need step-by-step screenshots. Static bugs need one annotated screenshot.
- Document as you go: Write each issue immediately. Do not batch.
- Test like a user: Try realistic workflows. Enter realistic data.
- Check the console: Many issues are invisible in the UI but visible in JS errors.
- No source code: Test as a user, not a code auditor. All findings come from browser observation.
- Be efficient: Spend more time on core features, less on peripheral pages.
- Never delete output: Do not remove screenshots or report files mid-session.