Agent skill

Lathe Work

by devenjarvis in devenjarvis/lathe

Run the Lathe worker loop so the web UI's Ask / Verify / Add-a-part buttons drive work directly in this session instead of handing back a command to paste.

MITAuto-check passedFrontend & Design

Install Lathe Work

skills CLI
$ npx skills add devenjarvis/lathe --skill lathe-work -a claude-code

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

GitHub CLI
$ gh skill install devenjarvis/lathe lathe-work --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/devenjarvis/lathe.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/lathe-work .claude/skills/lathe-work && 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
lathe-work
GitHub stars
1.7k
Token cost
~1.7k tokens
SKILL.md length
945 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Run the Lathe worker loop so the web UI's Ask / Verify / Add-a-part buttons drive work directly in this session instead of handing back a command to paste.

  • Works in 3 steps: Claim the next job → Dispatch on type, applying the existing… → Briefly note in chat what you just…
  • The user invokes /lathe-work (start it once per session while lathe serve is running)
  • SKILL.md covers Prerequisite, The loop, Keeping the loop responsive… and Boundaries, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Lathe Work is an agent skill from devenjarvis/lathe. Run the Lathe worker loop so the web UI's Ask / Verify / Add-a-part buttons drive work directly in this session instead of handing back a command to paste. Use when the user invokes /lathe-work (start it once per session while lathe serve is running). Works in any coding agent.

Its SKILL.md is about 1.7k 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 Frontend & Design, covering Frontend development. The repository describes itself as: Generate hands-on, multi-part technical tutorials on demand, with LLM skills tuned to make content approachable. Then you work through them yourself, by hand ✋. The licence is MIT.

When your agent uses it

  • The user invokes /lathe-work (start it once per session while lathe serve is running)
  • Tasks that involve Frontend development

Example prompts

  • “/lathe-work”

Workflow steps

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

  1. Claim the next job
  2. Dispatch on type, applying the existing protocol as the source of truth — don't duplicate or paraphrase it, apply it
  3. Briefly note in chat what you just handled (e.g. "Verified digital-synth-zig — clean" or "Answered a question on part-02"), then loop back…

What it can do on your machine

Read from SKILL.md and the folder at commit 1e7c9f6. 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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and json).

    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 no API keys, tokens, secrets or passwords.

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

Context cost

Lathe Work loads about 1.7k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 945 words of instructions outside code blocks.

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

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 devenjarvis/lathe at commit 1e7c9f6, republished under its MIT licence (© devenjarvis). 945 words, ~1,662 tokens.

Download SKILL.mdSave it as .claude/skills/lathe-work/SKILL.md (or your agent's skills folder).
name
lathe-work
description
Run the Lathe worker loop so the web UI's Ask / Verify / Add-a-part buttons drive work directly in this session instead of handing back a command to paste. Use when the user invokes /lathe-work (start it once per session while `lathe serve` is running). Works in any coding agent.

Lathe — Worker Loop

Start a long-running loop that lets the lathe serve web UI drive Ask, Verify, and Add-a-part directly in this session. With this loop running, the browser buttons enqueue a job and you pick it up here — no copy-paste of a /lathe-* command. Triggered by /lathe-work.

This is just long-poll → do the model work → report → repeat, so it works in any supported coding agent. The strict boundary still holds: the binary never drives a model. All model work runs here, in your normal interactive session — never via -p / headless. Verify runs the tutorial's code under exactly the same trust model as /lathe-verify does today (a fresh mktemp -d, your normal permissions).

When this loop is not running, the buttons fall back to today's copy-paste handoff — so starting it is purely additive.

Prerequisite

lathe serve must be running (the loop talks to it via ~/.lathe/serve.json). If lathe work next reports "no lathe server is running", tell the user to start lathe serve in another terminal, then start the loop.

The loop

Repeat until the user stops you (Ctrl-C, "stop the worker", or closing the session):

  1. Claim the next job:

    bash
    lathe work next

    This long-polls (~50s) and prints either no task or a single JSON object like:

    json
    {"id":"7","type":"verify","slug":"digital-synth-zig","part":"part-02.md","question":"…","guidance":"…","state":"claimed"}
    • If it prints no task, loop back to step 1 immediately — that's just an idle long-poll, not an error.
    • Otherwise parse the JSON and note id, type, slug, and (depending on type) part/question/guidance.
  2. Dispatch on type, applying the existing protocol as the source of truth — don't duplicate or paraphrase it, apply it:

    • verify → apply the /lathe-verify protocol against slug exactly as written (it marks the tutorial verifying, follows it in a fresh scratch dir, and records the outcome via lathe verify-result). When it finishes, close the job:

      bash
      lathe work done <id>
    • extend → apply the /lathe-extend protocol against slug, passing guidance (when present) as the guidance for where the new part should go. It does the full reserve → write → lathe extend-commit handshake. When it finishes, close the job:

      bash
      lathe work done <id>
    • ask → apply the /lathe-ask protocol against slug / part / question. The one difference from the chat flow: the reader is in the browser, not here, so return the answer through the CLI instead of only replying in chat. Pipe your full markdown answer to:

      bash
      lathe work answer <id> --answer -

      (--answer - reads the answer from stdin, the same stdin pattern lathe voice add --file - uses.) The browser is polling for it and will render it in the reader's Ask drawer. work answer closes the job for you — don't also call work done for an ask.

  3. Briefly note in chat what you just handled (e.g. "Verified digital-synth-zig — clean" or "Answered a question on part-02"), then loop back to step 1.

Show full SKILL.md (487 more words)Show less

Keeping the loop responsive and its context small

This loop is long-running and each job is independent — nothing carries over from one job to the next — so keep the dispatcher thin and don't let it block or accumulate full job transcripts.

  • Dispatch each job to a fresh sub-context, in the background if you can (best). When you can spawn a sub-task/subagent with its own context window (e.g. Claude Code subagents), run each claimed job there: the sub-task applies the matching /lathe-* protocol and closes the job itself (lathe work done / lathe work answer). Two payoffs: the dispatcher's context grows by a sentence per job instead of a whole verify/extend transcript, and — crucially — if your agent can run the sub-task in the background (e.g. run_in_background), do that and immediately go back to lathe work next instead of waiting on it. The sub-task self-reports, so the loop never needs its return value; meanwhile your continued polling keeps worker presence fresh during a long verify/extend (a foreground/blocking dispatch would stop polling and let presence lapse, so a mid-job button click would fall back to copy-paste). Keep the outer loop to just: claim → fire the job into a background sub-context → poll again.
  • If you can't background sub-tasks, process one job at a time — that's fine, the loop simply isn't concurrent. Foreground each job, report it, then poll again.
  • Lean on auto-compaction and restart periodically as a backstop. If sub-contexts aren't available at all, your agent's automatic context compaction will keep the loop alive, but it's lossy — so periodically stop and re-run /lathe-work to reset. This is safe and lossless: the queue lives in the server, so any unclaimed job stays queued and a mid-flight claimed job is re-queued after the reclaim timeout. Nothing is lost by restarting.

Boundaries

  • Reuse the protocols, don't reinvent them. Each job type is just "run the matching /lathe-* skill, then report." All the real rules (read-only verify, the extend handshake, grounded ask answers) live in those skills and win on any conflict.
  • Always close the job. verify/extend → lathe work done <id>; ask → lathe work answer <id> --answer - (which closes it). A job left open ties up the browser until the server's reclaim timeout.
  • Interactive session only. Never shell out to -p / headless to do the work — that's the metered path this whole design avoids.
  • Sequential or concurrent — match your harness. Without background sub-tasks, finish and report each job before claiming the next. With them, several jobs may be in flight at once; that's fine and keeps presence fresh. Concurrency is safe: the server rejects a second verify/extend on a tutorial that's already verifying/extending, so two jobs can't collide on the same slug, and ask jobs are read-only.

Stop

Stop the loop when the user asks (or close the session). Stopping is safe: the buttons revert to the copy-paste handoff, and any job already claimed but not closed is re-queued by the server after its reclaim timeout.

© devenjarvis, MIT. 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 .claude/skills/lathe-work of devenjarvis/lathe.

Open the folder on GitHubat commit 1e7c9f6

Compare with similar skills

Lathe Work 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.

Lathe Work compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Lathe Work this skilldevenjarvis/lathe1.7k—~1.7kAutomated safety check: PassMIT
React Router Developmentremix-run/react-router57k1 repos~1.5kAutomated safety check: PassMIT
React UI State PatternsChrisWiles/claude-code-showcase6.1k8 repos~1.6kAutomated safety check: PassNone
GSAP in Vue, Nuxt and Sveltegreensock/gsap-skills16k3 repos~2.6kAutomated safety check: PassMIT
Svelte Core Best Practicesrilldata/rill2.9k4 repos~1.8kAutomated safety check: PassApache-2.0
Vuetify Playgroundvuetifyjs/vuetify41k—~730Automated safety check: PassCustom licence

Similar skills

  • React Router Development

    remix-run/react-router

    Guides work on React Router apps by first identifying whether the app uses Framework, Data or Declarative mode, then loading the matching reference and the installed package docs.

    57k GitHub starsUsed in 1 repo~1.5k tokens
    Frontend & DesignAuto-check passed
  • React UI State Patterns

    ChrisWiles/claude-code-showcase

    Sets patterns for React interfaces: when to show loading spinners or skeletons, how to surface errors, how to disable buttons during async work and how to handle empty lists.

    6.1k GitHub starsUsed in 8 repos~1.6k tokens
    Frontend & DesignAuto-check passed
  • GSAP in Vue, Nuxt and Svelte

    greensock/gsap-skills

    Shows how to use GSAP in Vue, Nuxt, Svelte and other lifecycle-based frameworks: create after mount, scope selectors to the component, and revert on unmount.

    16k GitHub starsUsed in 3 repos~2.6k tokens
    Frontend & DesignAuto-check passed
  • Rules for writing idiomatic Svelte 5 code: when to reach for runes like state, derived and effect, and how to handle props, attachments and bindings.

    2.9k GitHub starsUsed in 4 repos~1.8k tokens
    Frontend & DesignAuto-check passed
  • Vuetify Playground

    vuetifyjs/vuetify

    Maintains the Vuetify repo's local Playground.vue so contributors get a realistic reproduction and a short demo they can paste into a pull request description.

    41k GitHub stars~730 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Starts the right Tabler dev server, keeps it from clashing with builds and verifies changes in the browser before a page or component is handed back.

    42k GitHub stars~1.2k tokensUpdated today
    Frontend & DesignAuto-check passed

More from devenjarvis/lathe

  • Lathe Ask

    devenjarvis/lathe

    Answer a reader's question about a specific part of a Lathe tutorial, in session.

    1.7k GitHub stars~532 tokensUpdated 2 mo ago
    Auto-check passed
  • Lathe Extend

    devenjarvis/lathe

    Write the next part of an existing Lathe tutorial, in session.

    1.7k GitHub stars~1.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Lathe Tag

    devenjarvis/lathe

    Pick or backfill the search tags on a stored Lathe tutorial, in session.

    1.7k GitHub stars~466 tokensUpdated 2 mo ago
    Auto-check passed
  • Lathe Verify

    devenjarvis/lathe

    Verify that a stored Lathe tutorial actually works by following it end to end in a fresh scratch dir, in session.

    1.7k GitHub stars~844 tokensUpdated 2 mo ago
    Auto-check passed
  • Lathe Voice

    devenjarvis/lathe

    Author a custom writing voice for Lathe tutorials, in session, then persist it via the CLI.

    1.7k GitHub stars~1.3k tokensUpdated 2 mo ago
    Auto-check passed
  • Lathe

    devenjarvis/lathe

    Generate hands-on technical tutorials for any topic on demand.

    1.7k GitHub stars~7.2k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Lathe Work

What does Lathe Work do?

Run the Lathe worker loop so the web UI's Ask / Verify / Add-a-part buttons drive work directly in this session instead of handing back a command to paste. Lathe Work is an agent skill from devenjarvis/lathe. Run the Lathe worker loop so the web UI's Ask / Verify / Add-a-part buttons drive work directly in this session instead of handing back a command to paste.

When should I use Lathe Work?

Lathe Work fits situations like: the user invokes /lathe-work (start it once per session while lathe serve is running); tasks that involve Frontend development.

How do I install Lathe Work in Claude Code?

Run `npx skills add devenjarvis/lathe --skill lathe-work -a claude-code`. Or copy the skill folder (.claude/skills/lathe-work in devenjarvis/lathe) into .claude/skills/lathe-work in your project. Claude Code loads it when a task matches its description.

How do I install Lathe Work in Codex?

Run `npx skills add devenjarvis/lathe --skill lathe-work -a codex`. Or copy the skill folder (.claude/skills/lathe-work in devenjarvis/lathe) into .agents/skills/lathe-work in your project. Codex loads it when a task matches its description.

Can I use Lathe Work 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 devenjarvis/lathe --skill lathe-work -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lathe-work, .gemini/skills/lathe-work, .github/skills/lathe-work and .opencode/skills/lathe-work in your project.

What does Lathe Work need to run?

SKILL.md names no scripts, command-line tools or credentials: Lathe Work is instructions for the agent only.

Does Lathe Work 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 Lathe Work 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 Lathe Work use?

Lathe Work is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Lathe Work use?

About 1.7k tokens (SKILL.md is roughly 6.6k 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 Lathe Work?

Skills that share tags, products or a category with Lathe Work: React Router Development (remix-run/react-router, 57k stars), React UI State Patterns (ChrisWiles/claude-code-showcase, 6.1k stars), GSAP in Vue, Nuxt and Svelte (greensock/gsap-skills, 16k stars) and Svelte Core Best Practices (rilldata/rill, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Lathe Work?

devenjarvis (a GitHub user) maintains it in devenjarvis/lathe, which has 1,686 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on August 3, 2026.

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