We raised $3M for agent-native runners

Declare the inputs and outputs of cached builds

Make build-cache contracts cover the actual files and configuration consumed and produced by the task.

How companies used this technique

Read what each company changed and follow the original sources.

Make build cache keys describe the build

Mastra declared source, package and compiler configuration inputs for library builds, excluding test files and Markdown where they were not build inputs. Composite tasks received their own input declarations.

Use it when
A remote build cache misses after edits that leave the emitted artifact unchanged.
Before applying it
Exclusions must match actual tools, generators and imported assets.

Declare every input and output of expensive transforms

The Java SDK declared the R8 program, rule and JDK inputs and both the transformed JAR and mapping outputs, so Gradle restores the result when inputs match. Both executable compatibility smoke tests still run.

Fixture command on local JDK 21: 45s to 3s with the outputs restored Source

Use it when
A build task reruns an expensive transformation on unchanged inputs.
Before applying it
An undeclared input serves stale output. Toolchain paths can limit reuse across machines, and the cache needs a trusted writer.

Company Playbooks