secret-serialization
Installation
SKILL.md
Secret Serialization Review
Find credentials that can leak because a type serializes itself and something upstream serializes whole objects.
A leak usually needs two changes that each look safe alone:
- Holder: a credential is stored as a field on a type with generated
repr,str,asdict,model_dump,toJSON, or property enumeration. - Sink: logging, tracing, error reporting, caching, or a response serializes whole objects or every kwarg (
str(value),span.set_data(key, obj),logger.info("%s", obj),JSON.stringify(args)).
The two sides are often written months apart by different authors. Report either side on its own. Always search the existing tree for the other side, because it is frequently already on the default branch and absent from the diff.
Boundary
- This skill covers indirect leaks through generated serialization and wholesale sinks.
- Direct leaks, such as interpolating a token into a log message, belong to
security-review. Report them here only when they come from a changed wholesale sink. - Hardcoded secret literals and committed
.envfiles are out of scope.