ralph-dogfooding

Ralph Dogfooding Loop

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ralph-dogfooding" with this command: npx skills add https://github.com/schpet/linear-cli

Ralph Dogfooding Loop

Autonomous loop that explores the app with Playwright MCP, captures evidence (screenshots, repro steps), dedupes against Linear, creates/updates issues with reproducible details, and appends each run to a progress log. Uses only Playwright MCP for the browser (no agent-browser); the loop runs without human approval.

Architecture

  1. If no AGENTS.md → create-agents-md skill, then stop
  2. Read AGENTS.md + .ralph/lessons.md + .ralph/dogfood-progress
  3. Pull open issues from Linear (dedupe set)
  4. Explore core routes via Playwright MCP (navigate, snapshot, screenshot)
  5. Document each issue with evidence (screenshot sequence + report)
  6. Create/update Linear issues with evidence
  7. Append iteration summary to .ralph/dogfood-progress

Workflow (Playwright MCP + Linear)

  1. Initialize
  • Target URL and artifact dir come from the Ralph script (.ralph/dogfood-artifacts/iteration-N/ ; .ralph/ is added to .gitignore by the script).

  • Create {ARTIFACTS}/screenshots , copy templates/dogfood-report-template.md to {ARTIFACTS}/report.md , fill header (Date, App URL, Session, Scope).

  • Use Playwright MCP: browser_navigate to target URL, then browser_snapshot to understand the page. Lock the browser tab before interactions; unlock when done.

  1. Authenticate (if needed)

If the app requires login: use browser_snapshot to get element refs, then browser_fill / browser_click to submit credentials. Wait for navigation/load between steps. For OTP/codes, ask the user once, then enter via browser.

  1. Orient
  • browser_snapshot (interactive) to see structure and refs.

  • browser_take_screenshot (full page or viewport) for the initial state; save to {ARTIFACTS}/screenshots/initial.png .

  • Identify main nav and plan which routes to hit (e.g. /, /login, /dashboard, /settings).

  1. Explore

Read references/issue-taxonomy.md at session start — severity levels, categories, and the exploration checklist.

  • Work through the app systematically: main nav → each section → interactive elements (buttons, forms, links).

  • At each page: browser_snapshot, browser_take_screenshot for {page-name}.png , and check console/errors if the MCP exposes them.

  • Test forms (submit, validation), navigation (back, deep links), empty/loading/error states.

  • Spend more time on core flows; go deeper where you find clusters of issues.

  1. Document issues (repro-first)

Explore and document in one pass. When you find an issue, document it immediately, then continue.

Evidence by issue type:

  • Interactive/behavioral (needs steps to reproduce): Take a screenshot before the action, perform the action (click, fill, etc.), take a screenshot after. Save as issue-{NNN}-step-1.png , issue-{NNN}-step-2.png , issue-{NNN}-result.png . Write numbered repro steps in the report; each step references its screenshot. Playwright MCP may not offer video recording — use screenshot sequences as the standard.

  • Static (typos, visual glitches on load): One annotated/view screenshot is enough. In the report set Repro Video to N/A.

For every issue:

  • Append to the report immediately (use the template block: Severity, Category, URL, Description, Repro Steps with screenshot refs).

  • Increment issue counter (ISSUE-001, ISSUE-002, …).

  • Save screenshots under {ARTIFACTS}/screenshots/ with consistent names.

  1. Linear + progress
  • Use the linear-cli skill for all Linear operations (list issues, create/update issues, add comments). For issue descriptions and comment bodies with markdown, use --description-file and --body-file per the skill. Include artifact paths in the issue body or comments. Every issue: URL, environment, expected vs actual, deterministic repro steps.

  • Dedupe: check open Linear issues (title + route + expected/actual) so you don’t duplicate.

  • Append one entry to .ralph/dogfood-progress.md : iteration, routes tested, issue IDs, artifact paths. See references/progress-format.md.

  1. Wrap up
  • Update the report summary counts to match the issues.

  • If no new findings and no issue updates this iteration, output <promise>NO_NEW_FINDINGS</promise> so the script can exit.

Reference guide

Topic Reference Load when

Issue taxonomy references/issue-taxonomy.md Start of session — severity, categories, exploration checklist

Report template templates/dogfood-report-template.md Creating the report file

Playwright MCP references/playwright-mcp-evidence.md Browser automation, screenshots, snapshots

Linear linear-cli skill + references/linear-cli.md All Linear commands; dogfood dedupe + artifact paths

Progress format references/progress-format.md dogfood-progress entries

Pre-flight checklist

  • Playwright MCP in Codex config (~/.codex/config.toml ; install script adds it).

  • linear-cli skill loaded (e.g. npx skills add https://github.com/schpet/linear-cli --skill linear-cli ); linear on PATH.

  • Project root path and target URL (from Ralph script).

  • Linear team key and artifact dir.

  • Dedupe policy (title + route + expected/actual).

  • Stop criteria: NO_NEW_FINDINGS sentinel.

Setup

  • Script: scripts/ralph-dogfooding.sh — run with --project , --iterations , optional --url .

  • Progress log: .ralph/dogfood-progress.md (script creates .ralph/ and adds it to .gitignore ). See progress-format.

  • Lessons: Maintain .ralph/lessons.md for recurring failure patterns and tool constraints.

Evidence policy

  • At least one screenshot per issue; for interactive bugs, a step-by-step screenshot sequence.

  • Attach artifacts to Linear issues using the linear-cli skill (include artifact paths in description/comment; use CLI attachment commands if available).

  • Every issue: exact URL, environment, expected vs actual, deterministic repro steps. Do not block on video; screenshot sequences are the standard.

Guidance

  • Repro first. Match evidence to issue type: interactive → step screenshots; static → single screenshot.

  • Append to the report as you go. Do not batch issues for the end.

  • Never read the target app’s source code. Test as a user; all findings from the browser.

  • Check the console when the MCP allows it; many issues show only as JS or network errors.

  • Test like a user. Common workflows, realistic data, systematic navigation.

  • Do not use agent-browser or agent-use. This skill uses only Playwright MCP and the linear-cli skill for Linear.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

mutation-testing

No summary provided by upstream source.

Repository SourceNeeds Review
General

dont-use-use-effect

No summary provided by upstream source.

Repository SourceNeeds Review
General

react-render-performance

No summary provided by upstream source.

Repository SourceNeeds Review
General

react-composable-components

No summary provided by upstream source.

Repository SourceNeeds Review