active/secrets/SKILL.md
Load local dotenvx credential sets for agent workflows.
npx skillsauth add kevinslin/skills secretsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to load local credential sets into agent-run commands without printing or copying secret values into chat.
Credential files live under:
~/.secrets/.env.{name}[.{stage}]
Examples:
$secrets slack uses ~/.secrets/.env.slack.$secrets chat.prod uses ~/.secrets/.env.chat.prod.$secrets init foo creates ~/.secrets/.env.foo.Manage values with dotenvx. Do not hand-edit encrypted values unless the user explicitly wants plaintext local env files.
env, printenv, set, or dotenvx decrypt after loading real credentials.~/.secrets private: create it with mode 700 and env files with mode 600.dotenvx run --no-ops -f <file> -- <command> so secrets are scoped to the one subprocess that needs them.Use the bundled helper from this skill directory:
./scripts/secrets <name>[.<stage>] [-- command ...]
./scripts/secrets init <name>[.<stage>]
./scripts/secrets path <name>[.<stage>]
If running from outside the skill directory, resolve the helper relative to SKILL.md; do not assume it is on PATH.
When the user invokes:
$secrets slack
Resolve the file:
./scripts/secrets path slack
Then run commands that need those credentials through dotenvx:
./scripts/secrets slack -- <command>
If the user has not provided a command yet, report that slack maps to ~/.secrets/.env.slack and ask for or infer the next command that needs the credentials. In an interactive shell session, ./scripts/secrets slack opens a subshell under dotenvx.
When the user invokes:
$secrets chat.prod
Use:
./scripts/secrets chat.prod -- <command>
This maps directly to ~/.secrets/.env.chat.prod. Dots are part of the credential-set name, so do not reinterpret prod as a separate flag.
When the user invokes:
$secrets init foo
Run:
./scripts/secrets init foo
This creates ~/.secrets if needed and creates ~/.secrets/.env.foo if missing. It intentionally does not write placeholder credentials.
Add or update values with dotenvx:
dotenvx set API_TOKEN "<value>" -f ~/.secrets/.env.foo
Do not put real values in chat. If the value is not already available through a safe local mechanism, ask the user to run the dotenvx set command themselves.
./scripts/secrets slack -- slack-cli auth test
Use this only when multiple follow-up commands need the same credentials and the shell session will stay local:
./scripts/secrets chat.prod
Avoid running commands inside that shell that print all environment variables.
The helper is thin. If a command needs a custom option, call dotenvx directly:
dotenvx run --no-ops -f ~/.secrets/.env.chat.prod -- <command>
For a non-default keys file:
dotenvx run --no-ops -f ~/.secrets/.env.chat.prod -fk ~/.secrets/.env.keys -- <command>
dotenvx is missing, install it before using this skill: npm install @dotenvx/dotenvx --global../scripts/secrets init <name>[.<stage>]..env.keys or DOTENV_PRIVATE_KEY_* value is available locally, but do not print either one.dotenvx set NEW_NAME "<value>" -f ~/.secrets/.env.<name> rather than exporting aliases in shell history.development
Generate incremental Slack digests for channels, topics, and categories.
testing
Audit an OpenClaw maturity-scorecard surface into an evidence-backed component score report. Use when given a surface from an OpenClaw maturity-scorecard.md and asked to score coverage, quality, readiness, or generate a detailed surface report plus per-component subreports.
tools
Turn an existing concrete spec into a reusable generic spec template. Use when asked to create a generic spec, template spec, reusable implementation template, or generalized version of a spec from a specific implementation such as one plugin, channel, integration, feature, or PR.
data-ai
Trace how something works with an investigator subagent and a skeptical reviewer subagent.