golang-gin-deploy — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited golang-gin-deploy (Agent Skill) and scored it 45/100 (orange). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 1 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 flagged
A base64 string of 128+ characters appears in a documentation file. Encoded prompt injection hides the hostile instruction in base64 — invisible to keyword filters — and relies on the agent's ability to decode it at runtime. There is no normal authoring reason to embed a multi-hundred-byte base64 blob in skill docs.
*.sig, SIGNATURES) outside the documentation.A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Package and deploy Gin APIs to production. This skill covers the essential deployment patterns: multi-stage Docker builds, local dev with docker-compose, and Kubernetes manifests with health checks.
Multi-Stage Dockerfile
golang:1.24-bookworm as builder, gcr.io/distroless/static-debian12:nonroot as runtimeCGO_ENABLED=0 mandatory for distroless/scratch — produces statically linked binary, no libc dependencyTARGETARCH build arg for multi-platform builds-ldflags="-s -w" -trimpath strips debug info and reduces binary sizeHealth Checks
DBPinger interface (PingContext) — satisfied by *sql.DB and *sqlx.DB503 Service Unavailable when DB is unreachableReadiness vs Liveness probes:
| Probe | Checks | On failure |
|---|---|---|
| Liveness | Is the process alive? | Restart container |
| Readiness | Can the app serve traffic? | Remove from load balancer (no restart) |
/health/live — returns 200 if process is running (no DB check)/health/ready — returns 200 only when DB is reachable/health endpoint that pings the DB is sufficient12-Factor Config
DATABASE_URL and JWT_SECRET are required; fail fast on startup if missingPORT=8080, GIN_MODE=release in productionparseDuration helper with sensible fallbacks for timeout valuesDocker best practices
.git, .env, *.md, docs/, plans/ in .dockerignore.env prevents secrets from leaking into the imagedepends_on with condition: service_healthy in docker-composedocker inspect, kubectl describe pod, curl /health. Paste the output. "I believe it's running" is not "health check returns 200"This skill handles containerization and deployment of Go Gin APIs: Docker multi-stage builds, docker-compose, Kubernetes manifests, health checks, 12-factor config, and CI/CD pipelines. Does NOT handle application code (see golang-gin-api), authentication (see golang-gin-auth), database queries (see golang-gin-database), or testing (see golang-gin-testing).
cmd/api/main.go): see the golang-gin-api skillreferences/migrations.md)references/clean-architecture.md)If this skill doesn't cover your use case, consult the Docker documentation, Kubernetes documentation, or OpenTelemetry Go docs.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.