Tools your AI can drive without being told how.

Seven tools — a Blender scene compiler, a page packer, a craft critic, a browser recorder, a source-map reconstructor, and two newer ones for data modelling and refactoring. Each takes a file, does one job completely, and refuses rather than guessing when it cannot. The command prints its own manual, so one instruction is enough.

agent
$ npx @mrkt_frwd/job examples pull collar-01pulled collar-01 → ./out/job.jsonsha256 3bbe5964edc0… $ npx @mrkt_frwd/job export ./out/job.jsonglb    5e507bc04838f890 $ npx @mrkt_frwd/leaf check ./out/preview.htmlok  self-contained — nothing fetched from another origin

The tools

Seven, and every one of them runs.

Six are on npm. Graft is a pattern rather than a package, and says so on its card. Nothing here is a placeholder for something that does not exist.

Job

3D PIPELINE ON NPM

One versioned file emits a .blend, a .glb, stills and a checksum manifest. Agents author job.json, never bpy.

collar-01 — stacked housing and brass collar, compiled by Job collar-01.glb · 862 KB · sha 5e507bc0
npx @mrkt_frwd/job examples pull collar-01

Leaf

WEB BUILD ON NPM

Takes a page apart into editable CSS and JS, puts it back, and proves it is the same file.

22,891 B in
22,891 B out
npx @mrkt_frwd/leaf unpack page.html

Award

EVALUATION ON NPM

Scores design work out of 100 — and leaves out anything the judge could not actually see, rather than scoring it zero and pretending that was a judgement.

typographicHierarchy
spatialRhythm
compositionalTension
colorDisciplineabstained
npx @mrkt_frwd/award score axes.json

Reel

BROWSER AUTOMATION ON NPM

Drives a real browser through a written list of steps and records it. Run it twice and the frames are the same, because the clock is fixed and does not care how long a frame cost to draw.

npx @mrkt_frwd/reel script.json --dry-run

Remap

BUILD FORENSICS ON NPM

Rebuilds the original files a source map carries. An entry that climbs out of the output directory is refused and named, not quietly written somewhere else.

npx @mrkt_frwd/remap main.js.map

Trio

DATA MODELLING ON NPM

One config becomes a Prisma schema, Zod validators and TypeScript types. A type it does not know is an error naming the field — never a fallback to string.

npx @mrkt_frwd/trio schema.json

Graft

REFACTORING · PATTERN SOURCE

Renames that follow every reference, try/catch wrapping, interface extraction — over an AST, not a regex. Nothing is written without --write.

graft · a pattern to copy, not on npm

What makes one of these a tool

Three rules, each one paid for.

Not preferences. Every one is a bug that shipped here first, and every one has a test that fails if the guard is removed.

Refuse rather than guess

A tool that always returns a number is indistinguishable from one that works.

award: null verdict, never a zero
Never move your own bar

Gates may be optimised; quality scores may not. A scalar under pressure gets gamed — three times, here.

object set: readyForTraining false, on purpose
Prove it, do not assert it

The claim and the check are the same thing. Leaf's corpus is every page, not a fixture chosen to pass.

leaf: 35 pages, 116 blocks, byte-exact

Machine surfaces

Everything an agent needs, at a stable URL.