job-runtime

job-runtime is a skill for Claude Code from kitchen-engineer42/joharnessburg. It costs 153 tokens per session (1,616 once invoked), scanned A, original, MIT.

A runtime design for applications that perform expensive, multi-step generation jobs after a user submits an input. It stores each job, runs it through a limited worker pool, tracks progress, and lets the user download the result later.

In plain words
What is it for?
Use it for applications with uploads, queued processing, staged generation, progress updates, and downloadable results, especially when jobs take more than a few seconds.
Why use it?
It prevents long jobs from being lost when a browser disconnects or a request ends. It also gives users a task they can revisit and prevents stuck work from occupying capacity forever.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: mentions subagents.

Part of the john plugin — 28 skills, 5 commands, 5 agents, 3 hooks shipped together

Good fit Use it for applications with uploads, queued processing, staged generation, progress updates, and downloadable results, especially when jobs take more than a few seconds.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/kitchen-engineer42/joharnessburg/job-runtime
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add kitchen-engineer42/joharnessburg --skill job-runtime
Clone the repo
git clone --depth 1 https://github.com/kitchen-engineer42/joharnessburg

Made for: Claude Code.

Or install john, the plugin that ships this one along with the rest of its 28 skills, 5 commands, 5 agents, 3 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for job-runtime

README.md
[![agentmods](https://agentmods.dev/badge/skills/kitchen-engineer42/joharnessburg/job-runtime/github.svg)](https://agentmods.dev/skills/kitchen-engineer42/joharnessburg/job-runtime)
Your own site
<a href="https://agentmods.dev/skills/kitchen-engineer42/joharnessburg/job-runtime"><img src="https://agentmods.dev/badge/skills/kitchen-engineer42/joharnessburg/job-runtime/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for job-runtime

Your own site · 80×15
<a href="https://agentmods.dev/skills/kitchen-engineer42/joharnessburg/job-runtime"><img src="https://agentmods.dev/badge/skills/kitchen-engineer42/joharnessburg/job-runtime.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 153 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,616 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00153 $0.01616
Opus 5 $0.00077 $0.00808
Sonnet 5 $0.00031 $0.00323
Haiku 4.5 $0.00015 $0.00162

Measured 9d ago against content hash 0ed6c3c33150, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

job-runtime scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/joharnessburg/skills/job-runtime/SKILL.md · 82 lines

How it starts

The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.

job-runtime

Some produced apps have the I/O shape: an end-user submits an input, the app runs an expensive generation job — often minutes of staged workerLLM calls — and the user eventually downloads an artifact. The naive build runs that job inside the HTTP request that submitted it. It works in a demo and fails in use, three ways:

  1. The job dies with the request. Browser disconnect, laptop sleep, a flaky proxy — and minutes of generation are gone.
  2. Refresh loses everything. There's no task ID to come back to; the user's only option is to start over.
  3. A stuck job eats capacity forever. One hung generation holds its slot until someone restarts the server.

This skill teaches the runtime that prevents all three: a persistent task registry as the single source of truth, a bounded worker pool with leases, and endpoints whose state derives from the registry rather than from any open connection.

When this applies (and when it doesn't)

Apply it when generation is expensive enough that an end-user waits on it — multi-stage pipelines, anything past a few seconds, anything with a progress bar. Skip it when it isn't:

  • Static-output apps (the mechanism ran at build time; the runtime just serves files) have no jobs to manage.
  • Instant request/response (one workerLLM call, an answer in a couple of seconds) should stay a plain inline call per [[workerllm-runtime]].

The gray zone is a single 5–30 second call. The deciding question: would a user plausibly refresh, navigate away, or submit twice while waiting? If yes, give the job a task ID and a registry row; the rest of the machinery can stay minimal.

Not [[vertical-workflows]], not the event log

John has two kinds of long parallel work, and they live at different layers. Provider-native scale-out plus [[event-log-and-reducer]] orchestrates build-time work: subagents fanning out inside the John session to build the app, coordinating through .john/events/. The job runtime ships inside the produced app and serves its end-users at app runtime — where the build agent, its subagents, and the event log don't exist. Don't reach for build-session orchestration in produced-app code, and don't build a tasks table to coordinate build-time subagents. Same instinct, different layer, different machinery.

Read the full file on GitHub · 82 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 82 lines · 153 tokens per session scan A 0ed6c3c33150

Subscribe to this mod's changes

job-runtime is a skill published in the GitHub repository kitchen-engineer42/joharnessburg (9 stars, last pushed 2mo ago), licensed MIT. It adds 153 tokens to every session and 1,616 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.