← ClaudeAtlas

secretslisted

Resolves a secret reference to the program that needs it and never to the conversation, puts a new value into a declared store, never through argv, and finds plaintext that should have been a reference. Owns the grammar of rules/secret-placement.md and the policy of infra/secret-stores/: `refs` lists every reference with its file and line, `check` reports bytes and a sha256 fingerprint instead of a value, `run` hands a value to a child process and scrubs what comes back, `where` says where a new secret belongs, `store` writes it there, `stores` lists the declarations, `audit` finds credentials and personal data in the tree. No command prints a secret. Trigger: "/secrets", "secret", "token", "credential", "where do I put this token", "keychain", "keepass", "is there a token in the repo".
bks-lab/open-bridge · ★ 10 · AI & Automation · score 75
Install: claude install-skill bks-lab/open-bridge
# Secrets Owns every secret reference written down in this tree: what they are, whether they still resolve here, and how a value reaches a program without reaching the answer. Read the referenced file ONLY when triggered. The engine is `skills/secrets/engine/` behind the shim `skills/secrets/secrets.sh`. The grammar it parses is the machine readable twin of [`rules/secret-placement.md`](../../rules/secret-placement.md), which stays the source of truth for which schemes exist and where a secret belongs. ## The principle An agent reads this output. Whatever is printed here sits in the model's context for the rest of the session, in the transcript, and in whatever log the harness keeps. So this skill hands out three things about a secret and never a fourth: its NAME (the reference), its LENGTH in bytes, and a FINGERPRINT (the first eight hex characters of its sha256). That is enough to tell two live tokens apart, to see that a rotation actually landed, and to prove that something was read. It is not enough to use. **There is deliberately no command that prints a value.** Not behind a flag, not behind a confirmation, not in `--json`. `run` is the one path a value takes, and it goes into a child process rather than into the answer: the child's own output is scrubbed on the way back, and a stream that still holds the value after scrubbing is dropped rather than printed. The second thing the report carries is the one nobody had: CONTEXT. The same reference is readable from a d