zuke-write-build

zuke-write-build is a skill for Claude Code from zuke-build/zuke. It costs 93 tokens per session (9,198 once invoked), scanned A, original, MIT.

A tool for writing Zuke build files in Deno and TypeScript. Zuke is a code-based build system where named targets describe tasks such as checking code, running tests, or generating CI.

In plain words
What is it for?
It helps add or edit build targets, connect tasks such as linting and testing, use tool wrappers, generate CI, and refactor a zuke.ts file.
Why use it?
It makes build-task dependencies explicit and catches misspellings or invalid ordering during compilation instead of later.

Skill for Claude Code

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

Part of the zuke plugin — 2 skills shipped together

Good fit It helps add or edit build targets, connect tasks such as linting and testing, use tool wrappers, generate CI, and refactor a zuke.ts file.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/zuke-build/zuke/zuke-write-build
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 zuke-build/zuke --skill zuke-write-build
Clone the repo
git clone --depth 1 https://github.com/zuke-build/zuke

Made for: Claude Code.

Or install zuke, the plugin that ships this one along with the rest of its 2 skills.

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 zuke-write-build

README.md
[![agentmods](https://agentmods.dev/badge/skills/zuke-build/zuke/zuke-write-build/github.svg)](https://agentmods.dev/skills/zuke-build/zuke/zuke-write-build)
Your own site
<a href="https://agentmods.dev/skills/zuke-build/zuke/zuke-write-build"><img src="https://agentmods.dev/badge/skills/zuke-build/zuke/zuke-write-build/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 zuke-write-build

Your own site · 80×15
<a href="https://agentmods.dev/skills/zuke-build/zuke/zuke-write-build"><img src="https://agentmods.dev/badge/skills/zuke-build/zuke/zuke-write-build.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 93 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 9,198 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. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
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.00093 $0.09198
Opus 5.5 $0.00037 $0.03679
Sonnet 5.5 $0.00019 $0.01840
Haiku 4.5 $0.00009 $0.00920

Measured 4d ago against content hash 570c17f1b4e7, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

zuke-write-build 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 4d 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/zuke/skills/zuke-write-build/SKILL.md · 521 lines

How it starts

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

Write or edit a Zuke build

A build is a class that extends Build. Each target is a class field created with target() and made runnable with await run(MyBuild) at the bottom of zuke.ts (no import.meta.main guard — run no-ops on import).

import { Build, run, target } from "@zuke/core";
import { DenoTasks } from "@zuke/deno";

class CI extends Build {
  lint = target()
    .description("Lint sources")
    .executes(async () => {
      await DenoTasks.lint();
    });

  test = target()
    .description("Type-check and test")
    .dependsOn(this.lint)
    .executes(async () => {
      await DenoTasks.test((s) => s.allowAll().coverage("cov_profile"));
    });

  // A field named `default` runs when no target is named on the CLI.
  default = target().dependsOn(this.test).executes(() => {});
}

await run(CI);

Non-negotiable rules

  1. Import @zuke/* by bare specifier, and declare it in deno.json. Write import { DenoTasks } from "@zuke/deno"; and add "@zuke/deno": "jsr:@zuke/deno@^1" to the imports block of the project's deno.json — never an inline jsr:@zuke/deno@^1 in the import statement. Deno's default lint set (the one that applies when deno.json configures no lint.rules, which is what zuke setup scaffolds) rejects an inline jsr: specifier under no-import-prefix, so an inlined one fails the project's own deno task lint. Pin the caret major in the import map instead, so a future @zuke major cannot land unannounced. zuke setup already declares @zuke/core there; adding a wrapper means adding its entry too.
  2. Dependencies are this.<field> references, never strings. .dependsOn(this.lint), not .dependsOn("lint") — so renames and typos are compile-time errors.
  3. A target may only depend on siblings declared above it. Class fields initialise top-to-bottom; a forward reference is undefined and is reported as an error (TypeScript also flags it, TS2729). Order fields so dependencies come first.
  4. Check the package catalogue before writing any command. llms.txt's ## Packages catalogue (raw: https://raw.githubusercontent.com/zuke-build/zuke/master/llms.txt) and the package table in references/cheatsheet.md are the only ways to answer "does a @zuke/<tool> wrapper exist for this CLI?" — per-package deno doc jsr:@zuke/<pkg> only describes a package whose name you already know; it cannot tell you a wrapper exists. Whatever runs in an .executes(...) body drives an external tool through its namespaced *Tasks object, configured with a settings lambda that mirrors the real CLI's flags — DenoTasks, NpmTasks, DockerTasks, GitTasks, and 30+ more — never a raw Deno.Command or shell string. jsr:@zuke/cmd (CmdTasks.exec) or the $ shell from jsr:@zuke/core/shell is the last resort, reached for only once the catalogue confirms no typed wrapper exists — using it for a tool that has a @zuke/<tool> package is a bug, not a style choice: it discards typed flags, argv purity, and tool resolution. (If a build delegates its side effects to your own tested modules behind injected clients, the wrapper rule still governs whatever those modules run in the target body.)
  5. A body is required, unless the target is one of the four forms that replace it: a service(), a .forEach() fan-out, a .waitsFor() gate, or a target declaring only .effect(...). Otherwise set .executes(...); it may be sync or async, and its return value is ignored — .executes(() => DenoTasks.lint()) is fine as-is; never wrap a single wrapper call in an async block just to discard its result.

Read the full file on GitHub · 521 lines

Files

What ships with it

1 file 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. 4d ago Changed · +8 lines 570c17f1b4e7
  2. 8d ago Changed · +10 lines 76b760c3926a
  3. 9d ago Changed · +31 lines e4f7080ff01f
  4. 10d ago Changed · +7 lines 4e84d4127a1d
  5. 17d ago Changed · +49 lines ea11001467fe
  6. 18d ago Changed · +3 lines f88cc0249fb3
  7. 21d ago Changed · +2 lines 9af50a914f7c
  8. 22d ago Changed · +37 lines 23a3560bd8c6
  9. 23d ago Changed · +9 lines c109d41ddb37
  10. 24d ago First seen · 365 lines · 93 tokens per session scan A 8617bd5c091e

Subscribe to this mod's changes

zuke-write-build is a skill published in the GitHub repository zuke-build/zuke (47 stars, last pushed 2d ago), licensed MIT. It adds 93 tokens to every session and 9,198 once invoked, about $0.0004 per session on Opus 5.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-30.

Related

Other skills, from other repositories

turborepo

Configure and troubleshoot Turborepo repositories. Use when working with turbo.json, task pipelines, caching, Remote Cache, the turbo CLI, filtering, environment variables, package boundaries, monorepo structure, or CI workflows.

vercel/turborepo · 50 tokens

debug-task

Diagnose and fix moon tasks that are broken, misconfigured, or behaving unexpectedly. Use this skill when a moon task is failing, not running, skipped, hanging, producing stale or wrong output, cached when it shouldn't be, re-running every time, or missing outputs after a cache hit. Also covers pipeline hangs, tasks…

moonrepo/moon · 203 tokens

golang-continuous-integration

GitHub Actions CI/CD pipeline configuration for Golang projects — workflow files for test, lint, SAST, coverage and vulnerability-scan jobs, Dependabot and Renovate config files, GoReleaser release pipelines, Docker build/push, repository security settings, and AI-driven PR review. Use when setting up or improving Go…

samber/cc-skills-golang · 181 tokens

kotlin-tooling-gradle-to-kotlin-toolchain-project

Load when migrating or converting an entire Gradle Kotlin project (build.gradle(.kts), wrapper, libs.versions.toml, buildSrc) to the Kotlin Toolchain, including rewriting CI and replacing Gradle plugins that have no native Toolchain equivalent. Skip for porting one Gradle plugin or general Toolchain work once Gradle…

Kotlin/kotlin-agent-skills · 83 tokens

sdk-container-publishing

Publish .NET services as container images with the built-in SDK tooling (dotnet publish /t:PublishContainer, Microsoft.NET.Build.Containers) - no Dockerfile required. Covers the MSBuild property surface, base-image inference, self-contained and AOT implications, and CI/CD publishing.

Aaronontheweb/dotnet-skills · 63 tokens

temps-plugin

Design, build, test, and distribute external Temps plugins with TypeScript/Bun; provide development and local-testing guidance for existing Rust plugins. Use for creating a plugin, adding an embedded console UI or deployment-event automation, testing host permissions and AI, installing from GitHub, or submitting a…

gotempsh/temps · 92 tokens