Agent skill

Inngest Brownfield Audit

by Asymmetric-al in Asymmetric-al/core

A skill your agent uses when analyzing an existing TypeScript or JavaScript codebase to decide where and how to introduce Inngest.

AGPL-3.0Auto-check passedBackend & APIs

Install Inngest Brownfield Audit

skills CLI
$ npx skills add Asymmetric-al/core --skill inngest-brownfield-audit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Asymmetric-al/core inngest-brownfield-audit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Asymmetric-al/core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/inngest-brownfield-audit .claude/skills/inngest-brownfield-audit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
inngest-brownfield-audit
GitHub stars
381
Token cost
~3.1k tokens
SKILL.md length
1,339 words
Files
1
Skills in repo
43
Repo updated
First seen
Licence
AGPL-3.0

At a glance

A skill your agent uses when analyzing an existing TypeScript or JavaScript codebase to decide where and how to introduce Inngest.

  • Works in 5 steps: Map the project shape. → Find existing Inngest usage. → Find durability gaps. → …
  • Analyzing an existing TypeScript
  • SKILL.md covers When to Trigger, Audit Loop, Useful Discovery Commands and Brownfield Decision Matrix, plus 9 more sections
  • Calls rg, stripe and shopify; needs INNGEST_SIGNING_KEY

What it does

Inngest Brownfield Audit is an agent skill from Asymmetric-al/core. 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.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Webhooks and LLM evaluation. It works with TypeScript and JavaScript. The repository describes itself as: A high-performance, enterprise-grade Next.js 16 application for mission-focused non-profit organizations. Built for high impact teams. The licence is AGPL-3.0.

When your agent uses it

  • Analyzing an existing TypeScript
  • JavaScript codebase to decide where and how to introduce Inngest

Example prompts

  • “/inngest-brownfield-audit”

Requirements

  • A credential in INNGEST_SIGNING_KEY

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Map the project shape.
  2. Find existing Inngest usage.
  3. Find durability gaps.
  4. Classify each candidate.
  5. Choose the smallest safe integration.

What it can do on your machine

Read from SKILL.md and the folder at commit c30c8ff. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • rg
    • stripe
    • shopify

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • INNGEST_SIGNING_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Inngest Brownfield Audit loads about 3.1k tokens when it runs. Until then it costs about 108 tokens; SKILL.md has 1,339 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~108
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Asymmetric-al/core at commit c30c8ff, republished under its AGPL-3.0 licence (© Asymmetric-al). 1,339 words, ~3,139 tokens.

Download SKILL.mdSave it as .claude/skills/inngest-brownfield-audit/SKILL.md (or your agent's skills folder).
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 the user asks Codex 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 changing anything.
  3. Find durability gaps.

    • Search for fire-and-forget work: void someAsync(), un-awaited promises, .then( chains, setTimeout, setInterval, detached jobs after HTTP response, and background work in route handlers.
    • Search for cron and schedulers: cron, node-cron, agenda, bull, bullmq, bee-queue, qstash, sqs, temporal, trigger.dev, deployment cron config, and scheduled API routes.
    • Search for webhooks and at-least-once producers: Stripe, Clerk, GitHub, Slack, Shopify, HubSpot, Linear, Svix, and generic webhook.
    • Search for long-running work: PDF generation, exports, video/image processing, embeddings, bulk email, imports, ETL, sync jobs, polling loops, retries, and external API calls.
    • Search for AI agent shapes: tool loops, LLM calls, streaming tokens, human approval, multi-step reasoning, vector search, eval loops, scoring, experiment assignment, user-feedback signals, and provider calls that need rate limits or retry-safe state.
  4. Classify each candidate.

    • P0: user-visible loss, duplicate charge/email/action, timeout, missed webhook, or crash-prone workflow.
    • P1: fragile but recoverable background work, manual retry burden, noisy 429s, or poor observability.
    • P2: cleanup, ergonomics, or future migration opportunity.
    • For each candidate, record: file, current trigger, side effects, idempotency key, failure mode, recommended Inngest primitive, migration size, and confidence.
  5. Choose the smallest safe integration.

    • Prefer one vertical slice over a wide rewrite.
    • Keep existing domain functions and data models where possible.
    • Add an Inngest client and serve endpoint only once.
    • Move side effects into step.run one boundary at a time.
    • Make event IDs and database writes idempotent before adding retries.
    • Add tests around existing behavior and the new event/function boundary.

Useful Discovery Commands

Run commands that fit the repo. Prefer rg; keep output focused.

bash
rg -n "inngest|createFunction|step\\.|serve\\(|/api/inngest|INNGEST_" .
rg -n "setTimeout|setInterval|Promise\\.all|void [a-zA-Z0-9_]+\\(|\\.then\\(" .
rg -n "cron|node-cron|schedule|bull|bullmq|bee-queue|agenda|qstash|sqs" .
rg -n "webhook|stripe|svix|clerk|github|shopify|slack|hubspot|linear" .
rg -n "retry|backoff|poll|status|timeout|429|rate limit|rate-limit" .
rg -n "openai|anthropic|ai\\.|generateText|streamText|tool|agent|embedding" .

When the repo is large, narrow searches to app source directories and exclude generated/vendor folders.

Brownfield Decision Matrix

Existing shapeInngest fitPrimary primitives
HTTP handler does slow side effects before respondingEmit event, return fastinngest.send, event trigger, step.run
Webhook must acknowledge quickly but process reliablyVerify signature, emit idempotent eventEvent ID, step.run, retries
Cron job loses progress midwayCron-triggered durable functionCron trigger, page-level step.run, flow control
Polling loop waits for external async workDurable wait or durable pollstep.waitForEvent, step.sleep, step.run
Large fan-out exceeds request/serverless limitsSplit orchestration and item workstep.sendEvent, per-item function, concurrency
External API hits 429sMove limits to function configthrottle, rateLimit, concurrency
Human review can take daysPersist the wait in Inngeststep.waitForEvent, timeout, realtime
AI agent/tool loop needs retry-safe progressOne step per tool/model boundarystep.ai, step.run, step.sleep, realtime
AI workflow needs production evalsAttach outcome signals to durable runsmeta.sessions, step.score, createScorer, defer, group.experiment
Existing queue only hides fragile workReplace queue boundary graduallyEvent trigger, idempotency, function-level retries

Integration Plan Format

Before editing, summarize findings in this compact shape:

text
Inngest audit:
- Existing Inngest: none / partial / healthy / risky
- Framework: <framework and evidence>
- Best first slice: <file + workflow>
- Why: <loss/timeout/retry/idempotency failure>
- Proposed primitives: <event, steps, flow control, waits, realtime>
- Idempotency key: <source of truth>
- Files likely touched: <short list>
- Tests/checks: <commands or focused cases>

Then implement unless the user asked for audit-only.

Existing Inngest Checklist

If Inngest is already present, verify:

  • A single shared client is exported from a stable module.
  • The app id is a stable slug and is not derived from deploy-specific data.
  • v4 local development uses INNGEST_DEV=1; production uses INNGEST_SIGNING_KEY.
  • Serve endpoint path is discoverable, usually /api/inngest.
  • The serve handler registers all functions that should sync.
  • Side effects and non-deterministic work are inside steps.
  • Step IDs are stable and descriptive.
  • Event names follow domain/noun.verb.
  • Events that may be replayed use deterministic IDs.
  • Webhook handlers verify signatures before emitting events.
  • Flow control is configured where external APIs have limits.
  • Realtime uses v4 native inngest/realtime, not the v3 @inngest/realtime package.
Show full SKILL.md (532 more words)Show less

Durable Agent Patterns

Use Inngest when an AI or agent workflow needs durable progress across model calls, tool calls, waits, approvals, or streaming UI updates.

Good candidates:

  • Multi-step agent that calls tools or external APIs.
  • LLM workflow that may exceed one HTTP request lifetime.
  • Human-in-the-loop review, approval, correction, or escalation.
  • Agent that must pause for an external event or scheduled follow-up.
  • Bulk AI work that needs provider-level rate limits and cost protection.
  • User-visible agent progress that should stream from durable execution.

Recommended shape:

  1. HTTP/UI request stores the user intent and emits an event with a stable id.
  2. Inngest function loads state inside step.run.
  3. Each model call, tool call, vector search, and external side effect lives in its own step.ai or step.run boundary.
  4. Human pauses use step.waitForEvent or step.waitForSignal with a timeout.
  5. Progress updates use step.realtime.publish between steps, or inngest.realtime.publish inside an existing step.run.
  6. Provider rate limits use concurrency, throttle, or rateLimit, not ad hoc in-process throttlers.

Avoid:

  • Keeping agent state only in memory.
  • Retrying whole agent loops after a single tool failure.
  • Charging for repeated successful model calls because the result was not memoized.
  • Using setTimeout or a cron poller for follow-ups and approvals.
  • Streaming progress from a process-local WebSocket server when the workflow itself is durable elsewhere.

Implementation Guardrails

  • Do not replace working queues, crons, or webhooks blindly. First preserve behavior with a thin Inngest slice.
  • Do not create duplicate clients or serve endpoints if the repo already has them.
  • Do not put database writes, API calls, random IDs, timestamps, or LLM calls outside steps in the new function.
  • Do not hide missing idempotency behind retries. Retries require idempotent side effects.
  • Do not hardcode secrets or dev-mode flags in source.
  • Do not leave the app unable to sync: register new functions with the serve endpoint and run available type/tests.

Verification

Pick checks that prove the integration path:

  • Typecheck/build/lint the touched app.
  • Run existing tests around the migrated handler or workflow.
  • Add focused tests for "handler emits event and returns fast" and "function calls the same domain operations in step boundaries" where the repo supports it.
  • If local runtime is available, start the app and Inngest dev server, confirm the function syncs, then send a sample event.
  • If only static checks are available, explicitly state that runtime sync was not verified.

This Repository

These upstream Inngest instructions are vendored for agent tooling and integration work in this monorepo.

Repository Triggers

Use this skill when inngest-brownfield-audit matches the current Inngest task. If the right skill is unclear, start with docs/ai/skills/inngest/SKILL.md.

Repository Workflow

  1. Confirm whether the request is agent-tooling guidance or product runtime integration.
  2. Use inngest-brownfield-audit before changing existing app workflows or fragile background work.
  3. Follow this upstream guidance under OpenSpec, root AGENTS.md, repo rulebooks, framework docs, and runtime evidence.
  4. Keep runtime packages, app code, migrations, and INNGEST_* env requirements out of agent-tooling-only changes.

Repository Checklist

  • The task has explicit product-runtime scope before adding Inngest app code or dependencies.
  • Existing workflows were audited before introducing or changing durable workflow behavior.
  • Any MCP usage is backed by a running Inngest dev server on the configured port.
  • Upstream source and license attribution remain documented in docs/ai/skills/inngest/references/upstream.md.

© Asymmetric-al, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/inngest-brownfield-audit of Asymmetric-al/core.

Open the folder on GitHubat commit c30c8ff

Compare with similar skills

Inngest Brownfield Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Inngest Brownfield Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Inngest Brownfield Audit this skillAsymmetric-al/core381—~3.1kAutomated safety check: PassAGPL-3.0
Build With SimplepdfSimplePDF/simplepdf-embed407—~7kAutomated safety check: PassMIT
Gemini Live API Devgoogle-gemini/gemini-skills4.3k—~4.6kAutomated safety check: PassApache-2.0
Azure AI Voicelive TSmicrosoft/skills3.1k5 repos~3.4kAutomated safety check: PassMIT
Gemini Live API DevJetBrains/skills366—~2.6kAutomated safety check: PassNone
Qstash JSupstash/qstash-js269—~746Automated safety check: PassMIT

Similar skills

  • Build With Simplepdf

    SimplePDF/simplepdf-embed

    Integrate SimplePDF into a web application for PDF viewing, editing, filling, signing, programmatic control, AI-agent interaction, human-in-the-loop form prefilling, submissions, webhooks, or…

    407 GitHub stars~7k tokensUpdated 2 days ago
    Documents & OfficeAuto-check passed
  • Gemini Live API Dev

    google-gemini/gemini-skills

    Official

    A skill your agent uses when building real-time, bidirectional streaming applications with the Gemini Live API, or migrating legacy Live models (2.0/2.5/3.1) to Gemini 3.8 Live.

    4.3k GitHub stars~4.6k tokensUpdated 5 days ago
    Backend & APIsAuto-check passed
  • Azure AI Voicelive TS

    microsoft/skills

    Official

    Azure AI Voice Live SDK for JavaScript/TypeScript. An agent skill from microsoft/skills.

    3.1k GitHub starsUsed in 5 repos~3.4k tokens
    Backend & APIsAuto-check passed
  • Gemini Live API Dev

    JetBrains/skills

    Official

    A skill your agent uses when building real-time, bidirectional streaming applications with the Gemini Live API.

    366 GitHub stars~2.6k tokensUpdated 3 mo ago
    Backend & APIsAuto-check passed
  • Qstash JS

    upstash/qstash-js

    Official

    Work with the QStash JavaScript/TypeScript SDK for serverless messaging, scheduling.

    269 GitHub stars~746 tokensUpdated 5 days ago
    Backend & APIsAuto-check passed
  • Deepgram JS Audio Intelligence

    deepgram/deepgram-js-sdk

    A skill your agent uses when writing or reviewing JavaScript/TypeScript in this repo that calls Deepgram audio analytics overlays on /v1/listen - summarize, topics, intents, sentiment, diarize…

    276 GitHub stars~1.5k tokensUpdated 2 days ago
    Media & CreativeAuto-check passed

More from Asymmetric-al/core

All 43 skills in this repo
  • Idempotency Handling

    Asymmetric-al/core

    Implement idempotency keys and handling to ensure operations can be safely retried without duplicate effects.

    381 GitHub stars~867 tokensUpdated today
    Auto-check passed
  • Accessibility Review

    Asymmetric-al/core

    Audit and fix accessibility in Core UI. An agent skill from Asymmetric-al/core.

    381 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Email Inbox

    Asymmetric-al/core

    A skill your agent uses when building any system where email content triggers actions — AI agent inboxes, automated support handlers, email-to-task pipelines, or any workflow processing untrusted…

    381 GitHub stars~4.1k tokensUpdated today
    Auto-check: notes
  • Components Build

    Asymmetric-al/core

    Build modern, composable, and accessible React UI components following the components.build specification.

    381 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Create Agent

    Asymmetric-al/core

    Guides a one-question-at-a-time design interview, captures alignment in agent/EVE-BRIEF.md, then scaffolds and implements a runnable eve agent with verbose teaching comments.

    381 GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Emil Design Engineering

    Asymmetric-al/core

    Design engineering principles and patterns for building polished, accessible web interfaces.

    381 GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Questions about Inngest Brownfield Audit

What does Inngest Brownfield Audit do?

A skill your agent uses when analyzing an existing TypeScript or JavaScript codebase to decide where and how to introduce Inngest. Inngest Brownfield Audit is an agent skill from Asymmetric-al/core. Use when analyzing an existing TypeScript or JavaScript codebase to decide where and how to introduce Inngest.

When should I use Inngest Brownfield Audit?

Inngest Brownfield Audit fits situations like: analyzing an existing TypeScript; javaScript codebase to decide where and how to introduce Inngest.

How do I install Inngest Brownfield Audit in Claude Code?

Run `npx skills add Asymmetric-al/core --skill inngest-brownfield-audit -a claude-code`. Or copy the skill folder (.agents/skills/inngest-brownfield-audit in Asymmetric-al/core) into .claude/skills/inngest-brownfield-audit in your project. Claude Code loads it when a task matches its description.

How do I install Inngest Brownfield Audit in Codex?

Run `npx skills add Asymmetric-al/core --skill inngest-brownfield-audit -a codex`. Or copy the skill folder (.agents/skills/inngest-brownfield-audit in Asymmetric-al/core) into .agents/skills/inngest-brownfield-audit in your project. Codex loads it when a task matches its description.

Can I use Inngest Brownfield Audit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Asymmetric-al/core --skill inngest-brownfield-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/inngest-brownfield-audit, .gemini/skills/inngest-brownfield-audit, .github/skills/inngest-brownfield-audit and .opencode/skills/inngest-brownfield-audit in your project.

What does Inngest Brownfield Audit need to run?

Going by SKILL.md and its folder, Inngest Brownfield Audit needs the command-line tools its instructions call (rg, stripe and shopify) and credentials named INNGEST_SIGNING_KEY. Our summary lists: A credential in INNGEST_SIGNING_KEY.

Does Inngest Brownfield Audit access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Inngest Brownfield Audit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Inngest Brownfield Audit use?

Inngest Brownfield Audit is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Inngest Brownfield Audit use?

About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Inngest Brownfield Audit?

Skills that share tags, products or a category with Inngest Brownfield Audit: Build With Simplepdf (SimplePDF/simplepdf-embed, 407 stars), Gemini Live API Dev (google-gemini/gemini-skills, 4.3k stars), Azure AI Voicelive TS (microsoft/skills, 3.1k stars) and Gemini Live API Dev (JetBrains/skills, 366 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Inngest Brownfield Audit?

Asymmetric-al (a GitHub organization) maintains it in Asymmetric-al/core, which has 381 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on October 9, 2026.

Source: Asymmetric-al/core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.