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 catpilotai/catpilot-ai-guardrails --skill secrets-managementgit clone --depth 1 https://github.com/catpilotai/catpilot-ai-guardrailsWrote 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/catpilotai/catpilot-ai-guardrails/secrets-management)<a href="https://agentmods.dev/skills/catpilotai/catpilot-ai-guardrails/secrets-management"><img src="https://agentmods.dev/badge/skills/catpilotai/catpilot-ai-guardrails/secrets-management/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/catpilotai/catpilot-ai-guardrails/secrets-management"><img src="https://agentmods.dev/badge/skills/catpilotai/catpilot-ai-guardrails/secrets-management.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.00103 | $0.04363 |
| Opus 5 | $0.00051 | $0.02181 |
| Sonnet 5 | $0.00021 | $0.00873 |
| Haiku 4.5 | $0.00010 | $0.00436 |
Grade C, and why
secrets-management scanned grade C with 2 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 11d 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.
Harvests environment variableshighData exfiltration
Enumerating or grepping the environment for keys collects credentials unrelated to what the mod says it does.
return dict(os.environ) Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
fetch(url, opts).then(res => { How it starts
The opening of the file, as written. The whole thing — 501 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Why
Secrets fail in predictable ways. secret-blocking catches the
hardcoded patterns themselves — sk-live-..., AKIA..., private-key
blocks — and prevents them from being written into source files. But
secrets that are correctly handled at the point of generation still
fail in five other places:
.envfiles committed by accident. A developer adds.envto the repo for "just one quick test" and the secret is in git history forever, even after a follow-up commit removes it.- CI logs echo the secret. A workflow step does
echo $API_KEYfor "debugging," or a tool the workflow runs decides to print the environment, and the secret lands in a log that the CI provider retains for 30+ days and that anyone with read access to the repo can view. - Secrets travel in URLs. A database connection string with the
password embedded ends up in error messages, in
SELECT pg_stat_*output, in HTTP request logs from a reverse proxy, in browser history, in the agent's own tool-call transcripts. - One secret for every environment. The same
STRIPE_API_KEYvalue is configured in dev, staging, and prod because there is no separation. A developer-laptop compromise becomes a production compromise. - No rotation, no inventory. When a secret leaks, nobody knows where it is used, what it grants access to, or how to revoke it. The leak persists because rotation requires hand-tracing every service that has the value pinned.
This skill governs the lifecycle around the secret value once it exists: stored in a secret manager, scoped per environment, distributed via tooling that redacts, never logged, rotated on a schedule, and revoked on exposure.
When to apply
Apply this skill before the agent recommends, writes, or commits any of the following:
.env,.env.*,.envrc,secrets.yml,secrets.json, or similar developer-environment secret files..gitignore, repository setup scripts, or PR/CI configuration that determines what gets committed.- CI workflow files (GitHub Actions, GitLab CI, CircleCI, Azure
Pipelines, Buildkite, Jenkinsfile, Drone) — particularly any step
that uses
echo,printenv,env,set, or shell tracing (set -x). - Container manifests, Helm charts, Kubernetes
Secret/ConfigMap, Terraform/Pulumi/Bicep that defines runtime configuration. - Application code that connects to a database, calls an external API, or reads configuration from the environment.
- Error-handling code paths that format exception messages, log request/response payloads, or post to external observability systems.
- Incident-response steps after a secret has been exposed.
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.
- 11d ago First seen · 501 lines · 103 tokens per session scan C f1d4fe6ef67d
secrets-management is a skill published in the GitHub repository catpilotai/catpilot-ai-guardrails (2 stars, last pushed 2mo ago), licensed MIT. It adds 103 tokens to every session and 4,363 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it C with 2 findings (harvests environment variables, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…