container-scan

container-scan is a skill for Claude Code, Codex from tahirraufkeeyu/software-development-agent-stack--sdas. It costs 65 tokens per session (1,735 once invoked), scanned B, original, MIT.

A release check for Docker and OCI container images, which are packaged applications designed to run consistently across environments. It scans images and Dockerfiles for known vulnerabilities, exposed secrets, and configuration problems.

In plain words
What is it for?
Use it before publishing a container image, during release checks, or when investigating a base-image update; it can scan the image, filesystem, secrets, and Dockerfile settings.
Why use it?
It helps identify security and packaging issues before an image is pushed or shipped. The check can fail when findings reach configured severity levels such as high or critical.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it before publishing a container image, during release checks, or when investigating a base-image update; it can scan the image, filesystem, secrets, and Dockerfile settings.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/tahirraufkeeyu/software-development-agent-stack--sdas/container-scan
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 tahirraufkeeyu/software-development-agent-stack--sdas --skill container-scan
Clone the repo
git clone --depth 1 https://github.com/tahirraufkeeyu/software-development-agent-stack--sdas

Made for: Claude Code, Codex.

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 container-scan

README.md
[![agentmods](https://agentmods.dev/badge/skills/tahirraufkeeyu/software-development-agent-stack--sdas/container-scan.svg)](https://agentmods.dev/skills/tahirraufkeeyu/software-development-agent-stack--sdas/container-scan)
Your own site
<a href="https://agentmods.dev/skills/tahirraufkeeyu/software-development-agent-stack--sdas/container-scan"><img src="https://agentmods.dev/badge/skills/tahirraufkeeyu/software-development-agent-stack--sdas/container-scan.svg" alt="Measured on agentmods" height="20"></a>
Per session 65 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,735 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
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.00065 $0.01735
Opus 5 $0.00032 $0.00868
Sonnet 5 $0.00013 $0.00347
Haiku 4.5 $0.00006 $0.00173

Measured 7d ago against content hash b26351652619, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade B, and why

container-scan scanned grade B with 1 finding 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 7d 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.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

- Never suggest `chmod 777` or `USER root` as a fix for a permissions
departments/security/skills/container-scan/SKILL.md · 165 lines

How it starts

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

When to use

Trigger on any of:

  • "Scan this Docker image before I push."
  • "Is ghcr.io/acme/api:1.14.2 safe to ship?"
  • Pre-release gate: CI job that builds an image and needs a pass/fail.
  • Investigating a base-image upgrade ("did alpine:3.19 clear the openssl CVE?").

Do not use for running-container runtime monitoring (that is Falco/EDR territory) or for dependency scanning of the source tree pre-build (use dependency-audit).

Inputs

  • IMAGE — OCI reference to scan, e.g. ghcr.io/acme/api:1.14.2 or a local tag api:dev. Required unless DOCKERFILE is given.
  • DOCKERFILE (optional) — path to a Dockerfile to lint and scan.
  • CONTEXT (optional) — build context when DOCKERFILE is provided.
  • OUT_DIR (default: ./container-scan-out).
  • FAIL_ON (default: CRITICAL,HIGH) — severities that cause non-zero exit.
  • IGNORE_UNFIXED (default: 0) — Trivy --ignore-unfixed.
  • Optional env:
    • TRIVY_CACHE_DIR — share vulnerability DB across runs.
    • TRIVY_IGNOREFILE — path to .trivyignore.

Outputs

  • trivy-image.json — Trivy CVE scan of the image.
  • trivy-secret.json — secrets found in image layers.
  • trivy-config.json — Dockerfile / IaC misconfiguration scan.
  • hadolint.json — Dockerfile lint (if DOCKERFILE provided).
  • image-inspect.jsondocker inspect output.
  • container-scan-report.md — human summary with pass/fail gates.

Tool dependencies

  • trivy >= 0.50 (https://aquasecurity.github.io/trivy/).
  • docker or podman (for image inspect and saving images).
  • hadolint >= 2.12 (optional; auto-skipped if missing).
  • jq.
  • syft (optional) for SBOM generation.

Procedure

  1. Validate inputs. If IMAGE not provided and DOCKERFILE is, build first: docker build -t scan-target:tmp -f "$DOCKERFILE" "$CONTEXT".
  2. Pull the image if remote: docker pull "$IMAGE" (or podman pull).
  3. Inspect: docker image inspect "$IMAGE" > "$OUT_DIR/image-inspect.json". Parse Config.User, Config.ExposedPorts, RootFS.Layers, History[].CreatedBy.
  4. Trivy vulnerability scan:
    trivy image \
      --format json --output "$OUT_DIR/trivy-image.json" \
      --severity CRITICAL,HIGH,MEDIUM,LOW \
      --vuln-type os,library \
      --scanners vuln \
      ${IGNORE_UNFIXED:+--ignore-unfixed} \
      "$IMAGE"
    
  5. Trivy secret scan (examines each layer):
    trivy image --scanners secret \
      --format json --output "$OUT_DIR/trivy-secret.json" "$IMAGE"
    
  6. Trivy config scan (Dockerfile + embedded IaC):
    trivy config --format json --output "$OUT_DIR/trivy-config.json" \
      ${DOCKERFILE:+"$(dirname "$DOCKERFILE")"} \
      ${DOCKERFILE:-"$IMAGE"}
    
  7. If DOCKERFILE provided, run hadolint: hadolint --format json "$DOCKERFILE" > "$OUT_DIR/hadolint.json".
  8. Best-practice checks against image-inspect.json:
    • Config.User must be non-empty and not root / 0 (else FAIL).
    • RootFS.Layers count should be <= 20 (advisory).
    • Base image SHOULD be distroless, Chainguard Wolfi, or *-slim — heuristic: missing /bin/sh, /bin/bash, or no shell in manifest.
    • No ADD http:// URLs in history (use COPY + verified artefact).
    • No secrets in Config.Env (cross-check against trivy-secret.json).
    • Healthcheck defined (Config.Healthcheck) — advisory.
  9. Optional SBOM: syft "$IMAGE" -o cyclonedx-json > "$OUT_DIR/sbom.cdx.json".
  10. Aggregate and write container-scan-report.md:
    • Gate table: Critical CVE, High CVE, Secrets in layers, Non-root, Dockerfile issues (each row: status + count).
    • Findings grouped by severity with fix-version hints.
    • Upgrade plan: which base-image bump clears the most CVEs.
  11. Exit non-zero if any gate in $FAIL_ON failed.

Read the full file on GitHub · 165 lines

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. 7d ago First seen · 165 lines · 65 tokens per session scan B b26351652619

Subscribe to this mod's changes

container-scan is a skill published in the GitHub repository tahirraufkeeyu/software-development-agent-stack--sdas (18 stars, last pushed 4mo ago), licensed MIT. It adds 65 tokens to every session and 1,735 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 1 finding (asks for root). 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

deploy-docker-compose

Run the Omnigent server as a Docker compose stack (server + Postgres) on any Docker host — your laptop, a VPS, EC2 by hand, or as the base layer of any container-platform deploy. Invoke when the user wants to build the image, bring up the compose stack, debug the stack on a host they already have, or extend the stack…

omnigent-ai/omnigent · 84 tokens

compute-env-setup

Set up a reproducible Feynman compute environment for research jobs. Use when a task needs Python/R packages, GPU libraries, containers, Modal, SSH, caches, or managed model runtime setup.

companion-inc/feynman · 45 tokens

securing-kubernetes-on-cloud

This skill covers hardening managed Kubernetes clusters on EKS, AKS, and GKE by implementing Pod Security Standards, network policies, workload identity, RBAC scoping, image admission controls, and runtime security monitoring. It addresses cloud-specific security features including IRSA for EKS, Workload Identity for…

xalgorix/xalgorix · 80 tokens

detecting-privilege-escalation-in-kubernetes-pods

Detect and prevent privilege escalation in Kubernetes pods by monitoring security contexts, capabilities, and syscall patterns with Falco and OPA policies.

xalgorix/xalgorix · 40 tokens

implementing-rbac-hardening-for-kubernetes

Harden Kubernetes Role-Based Access Control by implementing least-privilege policies, auditing role bindings, eliminating cluster-admin sprawl, and integrating external identity providers.

xalgorix/xalgorix · 41 tokens

docker-socket-mount

Docker / containerd socket mounted into a container → host RCE. Common in CI runners, GitOps controllers (ArgoCD, Flux), and 'Docker-in-Docker' setups. Single-command escape via docker run --rm --privileged -v /:/host alpine chroot /host.

PurpleAILAB/Decepticon · 67 tokens