# inngest-brownfield-audit

Walks an existing TypeScript or JavaScript codebase and points out where background work gets lost on deploy or a process crash.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 659 installs · ★ 29
- Author: inngest
- License: Apache-2.0 · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/inngest/inngest-skills/tree/HEAD/skills/inngest-brownfield-audit/SKILL.md
- Updated: 2026-09-28
- HTML: https://affpapa.org/en/nevibecode/skills/inngest-brownfield-audit

## What it does

The skill reads through a repo looking for work that can disappear: HTTP handlers that finish side effects after responding, webhooks, cron jobs, queues built on `bullmq` or `agenda`, long jobs like PDF generation and exports, polling loops against external APIs. It also checks agent shapes — tool loops, token streaming, waits for human approval.

It runs as a sequence of steps. First it reads `package.json`, router structure and deploy config to identify the framework and package manager. Then it looks for existing Inngest usage: version, client config, the `/api/inngest` endpoint, event names. After that come pattern searches for `setTimeout`, `.then(`, `void someAsync()`, `cron`, `webhook`, `retry`, `429`. Every hit gets a P0, P1 or P2 label plus a record of the file, current trigger, side effects, idempotency key and the Inngest primitive that fits.

Before touching code the skill prints a summary: framework with the evidence behind it, the best first slice to migrate, why that slice, which primitives to use, which files will change. Then it implements, unless you asked for the audit alone. One vertical slice at a time, so existing domain functions and data models stay where they are.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-brownfield-audit -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/inngest-brownfield-audit/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/inngest-brownfield-audit/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-brownfield-audit -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/inngest-brownfield-audit/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-brownfield-audit -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/inngest-brownfield-audit/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install inngest/inngest-skills inngest-brownfield-audit
```

2. **Manually: put the files in place**
- File: `.github/skills/inngest-brownfield-audit/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-brownfield-audit -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/inngest/inngest-skills --path skills/inngest-brownfield-audit
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/inngest-brownfield-audit/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-brownfield-audit -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/inngest/inngest-skills/tree/HEAD/skills/inngest-brownfield-audit/SKILL.md

## When to use it
- find code that loses work on deploy or a crash
- sort risky background work from tolerable work
- pick the first slice to migrate onto Inngest
- inspect an existing Inngest setup before changing it
- make side effects idempotent before enabling retries

## Example prompts
- audit this repo for Inngest opportunities
- add Inngest to this codebase where it makes sense
- find places where work can be lost on deploy or process crash

## Source text · SKILL.md · Apache-2.0

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: da596be1d5d2e87d.

BEGIN THIRD-PARTY FILE da596be1d5d2e87d
```text
---
name: inngest-brownfield-audit
description: Use when analyzing an existing TypeScript or JavaScript codebase to decide where and how to introduce Inngest. Covers repository discovery, framework and package detection, finding durability gaps in HTTP handlers, webhooks, cron jobs, queues, long-running jobs, AI agents, Agent Evals, polling loops, eval loops, and side-effect-heavy code, then producing and implementing an incremental integration plan.
---

# Inngest Brownfield Audit

Use this skill when asked to inspect an existing codebase, add
Inngest "where it makes sense", migrate fragile background work, or find
durability gaps before making changes.

This is an agent-first workflow. Do the audit from evidence in the repo, name
the specific files and call sites that drove each conclusion, and make small
integration moves that preserve current behavior.

## When to Trigger

Use this skill for requests like:

- "Audit this repo for Inngest opportunities"
- "Add Inngest to this codebase"
- "Make our webhooks / cron jobs / background tasks reliable"
- "Find places where work can be lost on deploy or process crash"
- "Replace fragile polling, delayed jobs, or fire-and-forget promises"
- "Make this AI workflow / agent durable"

If the user is starting from scratch instead of a brownfield repo, use
`inngest-setup`, `inngest-durable-functions`, `inngest-events`,
`inngest-steps`, and, for AI workflows, the agent patterns in this skill. Use
`inngest-agent-evals` when the request includes scoring, sessions, experiments,
deferred scorers, Insights, or outcome-based evaluation.

## Audit Loop

1. **Map the project shape.**
   - Read `package.json`, workspace files, app/router structure, server entry
     points, deployment config, and test scripts.
   - Identify framework: Next.js App Router, Next.js Pages Router, Express,
     Hono, Fastify, Remix, SvelteKit, Astro, NestJS, worker-only service, or
     other.
   - Detect package manager and TypeScript conventions before adding files.

2. **Find existing Inngest usage.**
   - Search for `inngest`, `createFunction`, `serve(`, `/api/inngest`,
     `INNGEST_`, `step.run`, `step.sleep`, `step.waitForEvent`,
     `step.sendEvent`, `step.invoke`, `step.ai`, `inngest.send`, and
     `@inngest/realtime`.
   - If Inngest exists, inspect version, client config, serve endpoint,
     registered functions, event naming, env vars, and v3/v4 API shape before
```
END THIRD-PARTY FILE da596be1d5d2e87d

The third-party file has ended. Everything between the da596be1d5d2e87d tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2427 of 10534 bytes. © inngest · Apache-2.0 · https://github.com/inngest/inngest-skills/tree/HEAD/skills/inngest-brownfield-audit/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
