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.
npx skills add niels-emmer/myace --skill image-buildgit clone --depth 1 https://github.com/niels-emmer/myaceWrote 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.
[](https://agentmods.dev/skills/niels-emmer/myace/image-build)<a href="https://agentmods.dev/skills/niels-emmer/myace/image-build"><img src="https://agentmods.dev/badge/skills/niels-emmer/myace/image-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.
<a href="https://agentmods.dev/skills/niels-emmer/myace/image-build"><img src="https://agentmods.dev/badge/skills/niels-emmer/myace/image-build.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00032 | $0.00543 |
| Opus 5 | $0.00016 | $0.00271 |
| Sonnet 5 | $0.00006 | $0.00109 |
| Haiku 4.5 | $0.00003 | $0.00054 |
Grade A, and why
Image 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 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.
What it actually says
Purpose
A container image is the unit of deployment — its size, contents, and provenance determine how fast deploys are and how big the attack surface is. This skill is the checklist for building images that are small, secure, and reproducible.
When to use it
When writing or modifying a Dockerfile, adding a new service image, or reviewing image builds for security or size.
Steps / checklist
- Multi-stage builds. Build in a fat stage (compilers, dev dependencies), copy only the runtime artifacts into a minimal final stage. The final image contains what runs, nothing more.
- Minimal base images. Prefer distroless or slim base images over full distributions. Fewer packages means fewer CVEs and a smaller attack surface.
- Run as non-root. The container runs as a non-root user with the least privileges it needs. No
USER rootin the final stage. - Pin base images. Pin base image tags (ideally by digest) so builds are reproducible. Unpinned
latestmakes today's build differ from last week's. - Scan images. Scan images for CVEs in CI (Trivy, Grype, etc.) and fail on critical/high findings. Scanning after deploy is too late.
- SBOM and provenance. Generate an SBOM for production images so you can answer "what's in this image and where did it come from" during an incident or audit.
- Layer hygiene. Order layers by change frequency (dependencies first, code last) to maximize cache reuse. Don't copy secrets or build args into layers that ship.
- Tag immutably. Tag images with a unique, immutable identifier (commit SHA or digest) and promote that tag through environments — never retag a mutable
latestand call it a release.
Expected output
An image that is small enough to deploy fast, minimal enough to have a small attack surface, and reproducible enough that today's build equals last week's. If the image contains a compiler, a root user, or an unpinned base, it isn't done.
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.
- 9d ago First seen · 30 lines · 32 tokens per session scan A 0e9b4003f139
Image Build is a skill published in the GitHub repository niels-emmer/myace (1 stars, last pushed 5d ago), licensed MIT. It adds 32 tokens to every session and 543 once invoked, about $0.0002 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-09-03.
Other skills, from other repositories
loom-docker
Docker and container expertise.
loom-kubernetes
Kubernetes deployment, cluster architecture, security, and operations.
loom-kustomize
Kubernetes-native configuration management with Kustomize.
loom-karpenter
Kubernetes node autoscaling and cost optimization with Karpenter.
docker-best-practices
A guide to writing Dockerfiles and building containers, which package an application with what it needs to run. It covers smaller images, faster rebuilds, fixed base versions, safer users, and keeping secrets out.
build-mcpb
This skill should be used when the user wants to "package an MCP server", "bundle an MCP", "make an MCPB", "ship a local MCP server", "distribute a local MCP", discusses ".mcpb files", mentions bundling a Node or Python runtime with their MCP server, or needs an MCP server that interacts with the local filesystem…