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 agentmods add skills/arjunprabhulal/devops-skills/image-scanningnpx skills add arjunprabhulal/devops-skills --skill image-scanninggit clone --depth 1 https://github.com/arjunprabhulal/devops-skillsWrote 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/arjunprabhulal/devops-skills/image-scanning)<a href="https://agentmods.dev/skills/arjunprabhulal/devops-skills/image-scanning"><img src="https://agentmods.dev/badge/skills/arjunprabhulal/devops-skills/image-scanning.svg" alt="Measured on agentmods" 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.00124 | $0.01216 |
| Opus 5 | $0.00062 | $0.00608 |
| Sonnet 5 | $0.00025 | $0.00243 |
| Haiku 4.5 | $0.00012 | $0.00122 |
Grade A, and why
image-scanning 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 6d 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.
How it starts
The opening of the file, as written. The whole thing — 98 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Image Scanning
A scanner that reports everything is indistinguishable from one that reports nothing — teams stop reading a 400-line CVE list after the first week. The job of scanning is not to find every issue, it's to find the ones worth someone's attention and force a decision on them before the image ships.
A finding without a decision (fix, accept, or block) is just noise with a CVE number attached.
1. Scan at build time, not just at rest
A scan that runs only against images already sitting in the registry catches problems after they've potentially been deployed. Scan in the CI pipeline immediately after build, before push, so a critical finding blocks promotion rather than triggering a retroactive scramble. Also re-scan images already in the registry periodically — a base image with zero known CVEs today can have a new one disclosed next week against the same digest, so freshness at build time is not sufficient on its own.
Done when: every image is scanned before it is pushed to a registry other images pull from.
2. Gate on severity and exploitability, not raw CVE count
Blocking a deploy on every CVE, including ones with no known exploit and no reachable code path, trains engineers to route around the scanner rather than fix things. Set a gate policy by severity (block critical and high with a known fix available, warn on medium, log low) and by whether the vulnerable package is actually reachable at runtime — a CVE in an unused transitive dependency is a different risk than one in your entry point.
| Severity | Fix available | Action |
|---|---|---|
| Critical/High | Yes | Block the build |
| Critical/High | No | Warn, track, time-box a decision |
| Medium/Low | Either | Log, review on a cadence |
Done when: the pipeline's block/warn behavior matches a written policy, not an ad hoc threshold someone picked once.
3. Distinguish fixable from noise before triaging
A finding with no available patched version is not actionable today no matter how severe it is — flagging it the same way as a one-line dependency bump wastes triage time. Sort findings by "upgrade available" first; those are cheap wins. For the rest, check whether the vulnerable code path is reachable at all — many scanners can filter to only what's actually imported or invoked, cutting a long CVE list down to the handful that matter. Suppress the remainder with a documented, expiring exception, not a silent ignore rule that nobody revisits.
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.
- 6d ago First seen · 98 lines · 124 tokens per session scan A dcb954d53d6f
image-scanning is a skill published in the GitHub repository arjunprabhulal/devops-skills (3 stars, last pushed 11d ago), licensed MIT. It adds 124 tokens to every session and 1,216 once invoked, about $0.0006 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-08-31.
Other skills, from other repositories
gke-app-onboarding
Manages GKE application onboarding, covering containerization, deployment manifests, and migration. Use when onboarding or deploying an application to GKE for the first time, or containerizing an app for GKE. Don't use for general GKE cluster administration or upgrades (use gke-basics or gke-upgrades instead).
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…
google-mobile-ads-android-migrate-to-next-gen
Migrates Android applications from the old, legacy Google Mobile Ads (GMA) SDK (com.google.android.gms:play-services-ads) to the new GMA Next-Gen SDK (com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk). Provides comprehensive mapping tables for imports, classes, and method signatures to help determine…
agent-platform-tuning
Agent Platform Model Tuning. Use when you need to fine-tune open models or Gemini models using Agent Platform infrastructure. Don't use for model training outside Agent Platform, model deployment to endpoints (use agent-platform-deploy), or managing serving endpoints (use agent-platform-endpoint-management).
google-cloud-solution-guided-gke-ai-migration
Guides the migration of existing AI workloads (Cloud Run, Gemini API, Gemini Enterprise Agent Platform) to self-hosted GKE inference using gcloud and kubectl. Use when the user has an existing AI inference workload (on Cloud Run, the Gemini API, Gemini Enterprise Agent Platform, or a custom VM) and wants to move it to…
agent-platform-deploy
Deploy open models or custom weights from Model Garden to Agent Platform endpoints, check the status of an in-progress deployment operation, or clean up resources by undeploying models and deleting endpoints. Use when asked to actively deploy a model, list the Model Garden CATALOG of available models, check if a…