dockerfile SKILL.md skillA

dockerfile from andypitcher/ponytail-sec is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add andypitcher/ponytail-sec/dockerfile@git:20260618.31fd63d

Pins git:20260618.31fd63d in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
andypitcher/ponytail-sec
Path
skills/dockerfile/SKILL.md
Versions recorded
1
Latest version
git:20260618.31fd63d, committed Jun 18, 2026
Size
1,464 bytes
Repository stars
12
License
MIT

Binary Dockerfile image-build hardening check. Use when reviewing Dockerfiles, container image builds, multi-stage builds, runtime users, pinned bases, or reproducible dependency installs. Minimal output only: OK or NOT_OK: RULE, RULE.

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

Ask once before enforcing:

> Enforce dockerfile skill? (yes / no)

If no: stop.

If yes: inspect locally. Do not web-search by default. Web-search only if the
user asks or the Dockerfile uses a platform feature whose semantics are unknown.

## Contract

Return exactly one line:

- `OK`
- `NOT_OK: RULE, RULE`

No severity. No advisory text. No maybes. If a rule cannot be verified, it is
not OK.

## Rules

All rules are mandatory.

- `NON_ROOT` — final image must set `USER` to a non-root user or numeric UID
  that is not `0`.
- `MULTI_STAGE` — production Dockerfile must use more than one `FROM` and copy
  only the runtime result into the final stage.
- `LEAN_FINAL` — final stage must not install or retain package managers,
  compilers, build tools, caches, or test tooling.
- `PIN_BASE` — every `FROM` must be pinned to a non-floating tag or digest; no
  `latest`, no untagged images. Digest wins.
- `REPRO_DEPS` — dependency installation must use reproducible inputs: lockfile,
  hash-pinned requirements, vendor directory, or equivalent. Raw manifest-only
  installs are not OK.

## Output examples

`OK`

`NOT_OK: NON_ROOT, PIN_BASE, REPRO_DEPS`

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add andypitcher/ponytail-sec/dockerfile@sha256:6381a3e07e4354c7

The line at the top of this page pins the label git:20260618.31fd63d, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_ty3ctkl56zuvojid.svg)](https://markdownregistry.com/a/art_ty3ctkl56zuvojid)

2 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 1 version of this file, committed on Jun 18, 2026.

versioncommittedcommitsizeaudit
git:20260618.31fd63d latest2026-06-18 31fd63d 1,464 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (1464 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

andypitcher/ponytail-sec · 12 stars · license MIT · pushed 2026-11-02 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_ty3ctkl56zuvojid
GET https://markdownregistry.com/api/v1/resolve?ref=andypitcher/ponytail-sec/dockerfile
GET https://markdownregistry.com/api/v1/blob/6381a3e07e4354c73a7a0f9a3fef22e1b761add51e5bdfb428e81f0d7e8b1bc3

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from andypitcher/ponytail-sec

k8s-securitycontext SKILL.md skill
andypitcher/ponytail-sec · skills/k8s-securitycontext/SKILL.md · Binary Kubernetes securityContext hardening check. Use when reviewing Pods, Deployments, StatefulSets, DaemonSets…
git:20260618.31fd63d · audit A · 12 stars
ponytail-sec-audit SKILL.md skill
andypitcher/ponytail-sec · skills/ponytail-sec-audit/SKILL.md · Full project security audit. Scans the entire codebase across three passes: code that shouldn't exist, all dependencies…
git:20261021.78c6c1a · audit A · 12 stars
ponytail-sec-triage SKILL.md skill
andypitcher/ponytail-sec · skills/ponytail-sec-triage/SKILL.md · Final gate for ponytail-sec-audit security findings. Proves, disproves, or rescores selected findings (or a pasted one)…
git:20261021.78c6c1a · audit A · 12 stars
ponytail-sec SKILL.md skill
andypitcher/ponytail-sec · skills/ponytail-sec/SKILL.md · Security companion for active development. Scopes to the current diff or changed files. Three passes: YAGNI code…
git:20261019.67a3bce · audit A · 12 stars

Every file in andypitcher/ponytail-sec

Browse by kind, by grade A, or by owner.