Use case · Production errors → GitHub issues

Production errors in. Scoped GitHub issues out.

RunGuard watches your production crashes and turns each one into a well-scoped GitHub issue — grouped, deduplicated, and enriched with a review-grade crash packet. Then it hands the issue to the coding agent your team already pays for.
Live · GitHub CopilotLive · Claude Code ActionTypeScript + Python SDKs

In short

To turn production errors into GitHub issues automatically, send each error to RunGuard. It groups duplicates by signature, applies your safety policy, builds a crash packet with the stack trace and suspected files, and files a labeled GitHub issue through your GitHub App installation — then routes it to your own AI coding agent and tracks the fix back to merge.

RG-FLOWHow it worksSix stations, one durable route

From a thrown exception to a tracked GitHub issue.

Every error walks the same line. No skipped stops, no manual triage in the middle.
  1. 01

    Capture the error

    The RunGuard SDK (TypeScript or Python) or a plain POST /ingest sends the exception, stack trace, and request metadata the moment it happens in production.

  2. 02

    Group & classify

    Identical signatures collapse into a single incident, so 10,000 occurrences of one bug become one issue — not 10,000. Each group is classified by error type.

  3. 03

    Apply safety policy

    Ignore patterns, protected paths, and your plan quota are evaluated before anything leaves RunGuard. Noise and out-of-scope errors never reach your repo.

  4. 04

    Build the crash packet

    A structured Markdown packet is assembled: repository, classification, frequency, first/last seen, suspected file and line, and the safety policy that was applied.

  5. 05

    Open the GitHub issue

    RunGuard files a labeled issue in your repo through your GitHub App installation — deduped against existing issues, so a recurring error updates one issue instead of spawning new ones.

  6. 06

    Track it to done

    When a pull request closes the issue or merges, GitHub webhooks flip the incident to completed and link the PR back to the original error. No manual cross-referencing.

INCIDENT ROUTE · 6 STATIONScrash → executor
  1. 01
    Ingest
    POST /ingest · SDK or HTTP
  2. 02
    Classify
    Group by signature · classify
  3. 03
    Safety policy
    Protected paths · ignore
  4. 04
    Crash packet
    Markdown context · stored in R2
  5. 05
    Dispatch
    Route to chosen executor
  6. 06
    Track
    Status timeline · audit log
← signal · received via SDK or webhookexecutor · github copilot + claude today · cursor / openai next
RG-PACKETWhat lands in the issueReview-grade context

A stack trace becomes a packet worth acting on.

Agents and reviewers both need context. The crash packet is structured Markdown — repository, classification, suspected file, frequency, and the policy that was applied.
RAW SIGNAL · IN
received · 19:11:04 UTC
TypeError: Cannot read properties of undefined (reading 'trim')
    at parseJSON (/app/src/utils/parse.js:3:22)
    at handleSubmit (/app/src/routes/checkout.js:48:12)
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at next (/app/node_modules/express/lib/router/route.js:144:13)
    at /app/src/middleware/auth.js:21:5
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    ...
REVIEW CONTEXT · OUTpacket · 1.2 kb · markdown

RunGuard Incident · null_undefined

Repositoryacme/web · default branch main
Serviceapi · Environment production
Frequency42 in 2h · First seen 2026-04-25 19:11 UTC
Executorgithub_copilot_issue
Task

Investigate this production error and propose a small, reviewable fix.

Prefer a failing regression test first when reproducible.

Open a PR for review — never auto-merge. Leave an investigation note if confidence is low.

Top stack frame
src/utils/parse.js:3 · parseJSON
Safety policy applied
Protected paths respected · src/auth, src/billing untouched
Ignore patterns matched · 0
Dispatched to Copilot · review required before merge
RG-VSWhy automate it

The same job, by hand versus on rails.

You can wire an alert to a webhook that opens an issue. The hard parts are everything after that line: dedupe, context, routing, and safety.
RunGuardBy hand / DIY webhook
Duplicate errorsCollapsed into one incident by signatureEvery alert is a fresh ticket; duplicates pile up
Issue contextCrash packet: stack, suspected file, frequency, repoA raw stack trace pasted into the description, if any
Routing to an agentAuto-assigned to Copilot or Claude Code ActionA human remembers to @-mention an agent later
GuardrailsProtected paths + never auto-merge, enforced pre-dispatchNothing between the alert and your code
Status trackingIssue → PR → merge linked back to the incidentManual, and usually skipped
RG-NEXTRoute it to your agent

Pick the executor that opens the pull request.

The crash packet is provider-neutral. Choose where each issue goes — RunGuard never holds your AI credentials.
  • Protected paths are a hard gate, checked before dispatch and again before accepting output.
  • Auto-merge is never enabled — every fix arrives as a pull request you review.
  • You bring the AI seat or key; RunGuard bills only for routing and retention.
RG-FAQQuestions

Plain answers about errors-to-issues.

How do you turn production errors into GitHub issues automatically?

Send each production error to RunGuard from your app (SDK or HTTP). RunGuard groups duplicates, classifies the error, applies your safety policy, builds a crash packet with the stack trace and suspected files, and files a labeled GitHub issue through your GitHub App installation — then keeps that issue in sync as the fix lands.

Does RunGuard fix the bug itself?

No. RunGuard is the control plane — it ingests, groups, enriches, applies policy, and routes. The actual code change comes from a coding agent you own (GitHub Copilot or Claude Code Action), running on your own seat or API key. RunGuard never spends your LLM tokens for you.

Won’t this flood my repository with issues?

No. Errors are deduplicated by signature, so a single bug produces one incident no matter how many times it fires. Ignore patterns and protected paths filter out noise before an issue is ever created, and recurring errors update the existing issue instead of opening new ones.

Which languages and platforms are supported?

There are first-party SDKs for TypeScript/JavaScript and Python, and any runtime can report errors over plain HTTP to POST /ingest. That covers Node, FastAPI, Django, Flask, and most other server stacks.

What exactly does the GitHub issue contain?

A Markdown crash packet: repository and branch, error classification, how often it has fired and when it was first seen, the suspected file and line, a scoped task description, and the safety policy that was applied (protected paths respected, auto-merge disabled).

Is it safe to let an AI agent work from these issues?

Safety is enforced before dispatch, not hoped for after. Protected paths are a hard gate, auto-merge is never enabled, and low-confidence work is framed as an investigation rather than a speculative fix. Every change still arrives as a pull request you review.

Route your first incident in 15 minutes.

Connect a repo, drop in the SDK, and watch the next production error land as a scoped GitHub issue.