Install
$ agentstack add skill-dnth-agent-skills-dogfood ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Dogfood: Systematic Web Application QA Testing
Operating Rule
Use Playwright MCP first whenever it is available. Load the playwright skill, then call skill_mcp with mcp_name="playwright" for browser work. Do not start with ad-hoc npx playwright, raw Chrome DevTools Protocol scripts, headless Chrome shell commands, Selenium, or generated browser scripts unless Playwright MCP is unavailable or missing a needed capability.
Fallback order:
- Playwright MCP through
skill_mcp. - browser-harness or another configured browser automation skill.
- Direct HTTP checks with
curlplus static screenshots only when no browser automation exists. - Ad-hoc local browser scripts only as a last resort, and note the limitation in the report.
Overview
This skill guides systematic exploratory QA testing of web applications. Navigate the app, inspect page structure, interact with controls, capture screenshots, collect console/network evidence, classify issues, and produce a structured report.
Inputs
The user provides:
- Target URL: the entry point to test.
- Scope: focused area or full-site pass.
- Output directory: optional, default
./dogfood-output.
Phase 1: Plan
- Create the output structure:
`` {output_dir}/ ├── screenshots/ └── report.md ``
- Identify the testing scope and key flows.
- List pages/features to exercise: navigation, forms, auth, search, uploads, edge/error states, and responsive layouts.
- If Playwright MCP is available, load the
playwrightskill before browser interaction.
Phase 2: Explore With Playwright MCP
Use this MCP sequence for each important page or flow:
- Set viewport with
browser_resizefor desktop. - Navigate with
browser_navigateand wait for the page to settle usingbrowser_wait_forwhen needed. - Capture structure with
browser_snapshotand save it to{output_dir}. Prefer snapshot refs for actions. - Capture visual evidence with
browser_take_screenshot, saving under{output_dir}/screenshots. - Capture console output with
browser_console_messagesafter navigation and after each meaningful interaction. - Capture network activity with
browser_network_requests; include static requests on initial page load and omit static requests for API-flow checks unless needed. - Interact through MCP actions:
browser_click,browser_fill_form,browser_type,browser_press_key,browser_select_option,browser_file_upload, andbrowser_evaluate. - Use
browser_run_code_unsafeonly when normal MCP actions cannot express a needed multi-step interaction. Keep snippets small and evidence-focused.
Important: MCP snapshots expose element refs like e400. Prefer those exact refs for browser_click and browser_fill_form. If a text selector fails, take or read a fresh snapshot before trying another selector.
Phase 3: Interaction Checklist
For each feature tested:
- Click links/buttons and confirm expected navigation or state change.
- Fill forms with valid, invalid, empty, long, and special-character inputs where relevant.
- Test keyboard navigation with Tab, Enter, Escape, and important shortcuts.
- Scroll long pages and scrollable containers.
- Test responsive behavior by resizing at least once to a mobile viewport.
- After every significant action, check console, network, screenshot, and expected vs actual behavior.
For API docs such as Swagger UI or ReDoc:
- Verify
/docsor equivalent page renders, not just returns HTML. - Verify the schema endpoint loads, usually
/openapi.json. - Expand representative operations.
- Use "Try it out" on at least one safe GET and one safe non-destructive write/search operation when credentials are available.
- Confirm required auth parameters are visible and executable.
- Do not execute destructive operations unless the user explicitly asks.
Phase 4: Collect And Classify Evidence
For every issue:
- Save a screenshot showing the issue.
- Record URL, steps to reproduce, expected behavior, actual behavior, console errors, failed network requests, and screenshot path.
- Classify using
references/issue-taxonomy.md:
- Severity: Critical, High, Medium, Low.
- Category: Functional, Visual, Accessibility, Console, UX, Content.
- De-duplicate repeated manifestations of the same root issue.
Phase 5: Report
Generate {output_dir}/report.md using templates/dogfood-report-template.md.
The report must include:
- Executive summary with issue counts by severity.
- Per-issue sections sorted by severity.
- Screenshot references using
MEDIA:. - Console and network evidence when relevant.
- Summary table.
- Testing coverage: pages tested, features tested, not tested, blockers.
- If no issues are found, say so explicitly and still include evidence screenshots/snapshots.
Playwright MCP Evidence Pattern
Use this pattern to avoid losing evidence:
- Initial page:
browser_snapshot,browser_take_screenshot,browser_console_messages,browser_network_requestswithstatic=true. - After opening a flow: fresh
browser_snapshot, screenshot, console, and non-static network log. - After submission/execution: wait for visible success/error text, then snapshot, screenshot, console, and network log.
- Mobile pass:
browser_resize, navigate or reload, screenshot, console, andbrowser_evaluatefor horizontal overflow.
Example overflow check:
() => ({
bodyWidth: document.body.scrollWidth,
viewportWidth: window.innerWidth,
hasHorizontalOverflow: document.body.scrollWidth > window.innerWidth + 2
})
Tips
- Always check console output after navigation and significant interactions.
- Read snapshots before clicking when selectors are ambiguous.
- Save artifacts to deterministic paths under the output directory.
- If a browser tool attempt fails, record why and switch to the next supported tool instead of repeatedly retrying the same failed path.
- Avoid creating temporary test files in the project unless needed; remove them before finishing.
- Do not install packages or rely on
npxif Playwright MCP is already available. - When reporting screenshots to the user, include
MEDIA:so evidence can render inline.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: dnth
- Source: dnth/agent-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.