CtrlK
BlogDocsLog inGet started
Tessl Logo

inngest-local

Set up self-hosted Inngest on macOS as a durable background task manager for AI agents. Interactive Q&A to match intent — from Docker one-liner to full k8s deployment with persistent state. Use when: 'set up inngest', 'background tasks', 'durable workflows', 'self-host inngest', 'event-driven functions', 'cron jobs', or any request for a local workflow engine.

66

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Medium

Suggest reviewing before use

SKILL.md
Quality
Evals
Security

Quality

Content

77%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly actionable, well-sequenced setup guide with copy-paste commands, complete configs, and an explicit verification checklist including failure-recovery tests. Its main weaknesses are the monolithic structure with dead ADR references (no bundle files exist to back them), one broken code example (missing EventSchemas import), and minor time-sensitive/duplicated content.

Suggestions

Create actual reference files in the bundle (e.g., references/adrs.md, references/k8s-manifest.yaml) and point the Decision Chain table and Tier 3 manifest at them, or remove the dead /adrs/* and /joel-deploys-k8s links — they currently navigate to nothing.

Fix the Step 2 client example: add `EventSchemas` to the import from "inngest" so the code is copy-paste runnable, and show how INNGEST_EVENT_KEY maps to the curl /e/key endpoint.

Move the "As of Feb 2026" signing-key note and other time-sensitive version details into a dedicated notes/compatibility section, and drop the duplicate service-naming explanation (keep it in Gotchas or Tier 3, not both).

DimensionReasoningScore

Conciseness

The body is lean and command-first — nearly every section is executable code or a config with one-line rationale (e.g., "if step 3 of 5 fails, only step 3 retries"), assuming Claude's competence throughout. It misses score 5 because of minor trimmable material: the service-naming gotcha is explained twice (Tier 3 block and Gotchas #3), and the time-sensitive "As of Feb 2026" date stamp sits in the main flow rather than a deprecation/notes section; it is well above score 3's "some unnecessary explanation".

4 / 5

Actionability

Almost everything is copy-paste executable: docker run commands, a full k8s StatefulSet+Service manifest, a six-step typed worker, a curl test event, and a launchd plist. It falls short of score 5 because the Step 2 client example uses `new EventSchemas().fromRecord<Events>()` without importing `EventSchemas`, so that file fails as written; the curl example's `/e/key` endpoint also assumes an event-key setup not wired to the earlier `.env.inngest` values.

4 / 5

Workflow Clarity

The process is clearly sequenced (intent-alignment questions → tiered setup → worker steps 1–6 → patterns → persistence → gotchas) with an explicit Verification checklist including a failure-recovery test ("Kill the worker mid-function — restart worker, function resumes from last step") and reboot checks — matching the score-5 anchor's validation steps, feedback loops, and checklists. Error messages for failure modes ("Error: signing-key is required", "Cannot find module '@inngest/ai'") give concrete recovery guidance.

5 / 5

Progressive Disclosure

Section headers are clear, but the skill is a ~430-line monolith with no bundle reference files (references/, scripts/, and adrs/ do not exist), while the body links to nonexistent paths like [ADR-0010](/adrs/0010-system-loop-gateway) and defers to an external joelclaw.com setup script — content that belongs in separate files (k8s manifest, launchd plist, patterns, ADR context) is inlined and navigation is partly dead. This matches the score-3 anchor ("references present but not clearly signaled; content that should be separate is inline") and is above score 2 only because the section structure itself is well-organized.

3 / 5

Total

16

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description that clearly and explicitly states what the skill does, scopes it across three deployment tiers, and provides an explicit 'Use when' clause with six natural trigger phrases anchored to a distinct named tool. The only gaps are minor: a few missing trigger synonyms and no mention of the worker-building capabilities the body delivers.

DimensionReasoningScore

Specificity

The description names concrete capabilities — "Set up self-hosted Inngest on macOS as a durable background task manager for AI agents" and "from Docker one-liner to full k8s deployment with persistent state" — with "Interactive Q&A to match intent" describing the delivery mechanism. It stops short of score 5 because it omits several capabilities the body actually covers (building a typed worker, event chaining, cron functions, reboot persistence), and is above score 3 because multiple specific actions and deployment tiers are explicitly stated rather than generic.

4 / 5

Completeness

It explicitly answers both questions: what ("Set up self-hosted Inngest on macOS as a durable background task manager for AI agents... from Docker one-liner to full k8s deployment with persistent state") and when ("Use when: 'set up inngest', 'background tasks', ..."), with concrete trigger phrases — matching the score-5 anchor exactly. Voice is third-person imperative, so no voice penalty applies.

5 / 5

Trigger Term Quality

Six quoted natural phrases — 'set up inngest', 'background tasks', 'durable workflows', 'self-host inngest', 'event-driven functions', 'cron jobs' — plus the catch-all "any request for a local workflow engine" give good coverage of what a user would actually say. It falls short of score 5 because common synonyms like "job queue", "task queue", or "scheduled tasks" are missing, but clearly exceeds score 3's "missing common variations" bar.

4 / 5

Distinctiveness Conflict Risk

The named tool (Inngest) and "self-host inngest" trigger give it a clear niche with minimal conflict risk, but generic triggers like 'background tasks' and 'cron jobs' could overlap with other job-queue or scheduling skills — matching the score-4 anchor ("mostly distinct; minor overlap risk with closely related skills") rather than score 5's minimal conflict.

4 / 5

Total

17

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 6 suspicious

Warning

Total

14

/

16

Passed

Repository
joelhooks/joelclaw
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.