with one click
repro-api
// Reproduce an EmDash bug that lives below the browser layer -- REST handlers, CLI, MCP, migrations, schema registry, or build tooling. No agent-browser. Prefer a failing vitest test in the affected package.
// Reproduce an EmDash bug that lives below the browser layer -- REST handlers, CLI, MCP, migrations, schema registry, or build tooling. No agent-browser. Prefer a failing vitest test in the affected package.
Review one pull request for real bugs, regressions, and convention violations. Enumerate candidate issues across the whole diff, verify each against the code, then return structured line-anchored findings and a verdict. Read-only on GitHub; the orchestrator posts the review.
Write the fix when verify says bug and diagnose says high confidence. Follow EmDash conventions, confirm the reproduce test now passes, run lint and typecheck, stage but do not commit.
Reproduce an EmDash admin UI bug. Boots a demo with bgproc, drives the admin with agent-browser using the dev-bypass session, and captures the reproduction as screenshots plus a written transcript.
Reproduce a bug in the public-facing rendered site (not the admin). Boots a demo with bgproc, drives the public routes with agent-browser, and captures the reproduction as screenshots plus a written transcript.
Trace from a reproduced symptom to the source code that causes it. Identify the specific file and approximate line, then rate confidence honestly.
Decide whether the diagnosed behaviour is actually a bug or whether the code is doing what it was designed to do. Gate the fix stage.
| name | repro-api |
| description | Reproduce an EmDash bug that lives below the browser layer -- REST handlers, CLI, MCP, migrations, schema registry, or build tooling. No agent-browser. Prefer a failing vitest test in the affected package. |
The issue you are reproducing does not need a browser. It is in a handler, the CLI, the MCP server, a migration, the schema registry, or the build pipeline. Your goal is a deterministic local reproduction the bot can describe in a comment, ideally as a failing vitest test that becomes the regression fixture once the bug is fixed.
git commit, no git push, no branch creation that survives the workflow.gh issue comment, gh pr ..., gh issue edit).curl to arbitrary external hosts. Local processes only.pnpm publish or npm publish.area plus any file paths in the issue body. CLI bugs live in packages/core/src/cli/. REST handlers in packages/core/src/api/handlers/. Migrations in packages/core/src/database/migrations/. Build tooling typically in packages/*/tsdown.config.ts or the root pnpm-workspace.yaml. MCP in packages/core/src/mcp/. If multiple packages are plausible, search with grep before guessing.node_modules looks stale or missing, run pnpm install. Otherwise skip it -- installs are slow and the runner usually has the deps already.pnpm --filter <package> build if the bug is in compiled output or in cross-package type generation.tests/ directory. Use setupTestDatabase() / setupForDialect() from tests/utils/test-db.ts for anything that touches the database. Mirror the source structure (packages/core/src/api/handlers/foo.ts -> packages/core/tests/integration/api/handlers/foo.test.ts). Name the test for the issue: it("reproduces #<number>: <short description>", ...). Run it with pnpm --filter <package> test <path> and confirm it fails for the reason the user reported, not for an unrelated setup error./tmp/repro-<issueNumber>/ when a vitest test would need too much scaffolding (e.g. needs a built CLI binary, needs to spawn child processes in a specific order). Keep it to a single file when possible. Capture stdout, stderr, and exit code.pnpm exec emdash ... command when the bug is a single CLI invocation and the failure is obvious from the output.Mark skipped: true and explain in notes when any of the following apply. Do not burn runner minutes trying to work around these.
wrangler dev does not reproduce these faithfully.pg will not surface the same plan.Return:
failing-test, repro-script, pnpm-command, or none.If you wrote a failing test, leave it in place. Do not stage or commit it. The fix stage may pick it up; if no fix runs, the orchestrator decides what to do with the working tree.