CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/secrets-rotation-runner

Build-an-X for the secret-rotation workflow after detection - detect via gitleaks/trufflehog/kingfisher → identify provider via verifier → rotate via provider API (AWS IAM / GitHub PAT / Stripe / GCP / Azure / Twilio / Slack / etc.) → invalidate old secret → audit log via observability stack → post-mortem cross-ref. Use when a secret is detected in code (or proactively for periodic rotation) - assume git-history scrub does NOT prevent compromise.

68

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, dense operational runbook: concrete commands, a provider mapping table, three clearly delineated rotation strategies, audit verification, and an end-to-end checklist. Main weaknesses are a repeated warning that costs tokens, an ellipsized consumer-deployment step in the flagship example, and no explicit failure-path guidance if post-rotation verification fails.

Suggestions

State the 'git-history scrub does not prevent compromise' assumption once (Overview) and have the Anti-patterns row reference it rather than restate it, saving repeated tokens.

Flesh out the 'Deploy new key to all consumers' ellipsis in the Step 3A example with at least one concrete consumer-update command (e.g., updating a Kubernetes secret or Vault KV path), since consumer deployment is the hardest part of the flow.

Add an explicit failure path to Step 4: what to do when the audit log shows old-key usage after deactivation (e.g., reactivate the old key, re-check missed consumers, redeploy) so the verify step closes a feedback loop instead of just reporting.

DimensionReasoningScore

Conciseness

The body is operational (provider tables, CLI commands, strategy patterns) with little concept-explanation padding, but the 'git-history scrub does NOT prevent compromise' warning is repeated three times (Overview, Critical assumption, Anti-patterns table) and the 'easy part / hard part' opening framing could be trimmed.

4 / 5

Actionability

Mostly executable guidance: copy-paste-ready AWS two-secret rotation with jq parsing, concrete CloudTrail/GitHub audit-log commands, and a specific provider-to-API table. The core 'Deploy new key to all consumers...' step is left as a comment ellipsis, which is a minor gap in the primary worked example.

4 / 5

Workflow Clarity

Steps 1-9 are clearly sequenced with validation checkpoints (verify consumers use the new key before deleting the old one, 24h observation window, Step 4 audit verification, Step 9 end-to-end checklist), satisfying the destructive-operation validation requirement. However, no explicit error-recovery feedback loop is given (e.g., what to do if audit shows old-key usage after deactivation), so it falls short of the 5 anchor.

4 / 5

Progressive Disclosure

A single well-sectioned file with clear headers, a References section, and clearly signaled cross-refs to sister skills (gitleaks-scanning, trufflehog-scanning, post-mortem-author); no bundle files exist to verify. At ~250 lines it exceeds the simple-skill exception, and the per-provider rotation details and cadence table could arguably live in separate reference files, so it is good-but-not-perfect structure.

4 / 5

Total

16

/

20

Passed

Description

88%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description that explicitly covers the full rotation lifecycle with named providers and a clear 'Use when' trigger clause. Its only gaps are a few missing natural synonyms (credential, API key, leaked, compromised) that users would plausibly say, and slight trigger overlap with the sister detection skills.

Suggestions

Add natural synonyms to the trigger clause, e.g., 'Use when a secret or credential is detected, leaked, or exposed in code', so users saying 'API key leaked' or 'rotate a compromised credential' match naturally.

Sharpen the boundary with the sister detection skills by making the trigger unambiguously post-detection, e.g., 'Use after a scanner (gitleaks/trufflehog) has detected a leaked secret, to rotate and invalidate it'.

DimensionReasoningScore

Specificity

Quotes: 'rotate via provider API (AWS IAM / GitHub PAT / Stripe / GCP / Azure / Twilio / Slack / etc.)', 'invalidate old secret', 'audit log via observability stack', 'post-mortem cross-ref'. The description enumerates the full lifecycle (detect, identify provider, rotate, invalidate, audit, post-mortem) with a comprehensive provider list, matching the 'multiple specific concrete actions; comprehensive coverage' anchor rather than the 4 anchor, which expects coverage gaps.

5 / 5

Completeness

Quotes: the full workflow pipeline states what the skill does, and 'Use when a secret is detected in code (or proactively for periodic rotation)' explicitly states when. Both what and when are answered explicitly with concrete trigger phrases, matching the 5 anchor.

5 / 5

Trigger Term Quality

Quotes: 'secret is detected in code', 'periodic rotation', 'gitleaks', 'trufflehog'. Natural phrases like 'secret', 'rotation', and 'detected in code' are present, but common user synonyms such as 'credential', 'API key', 'leaked', 'exposed', or 'compromised' are missing, matching the 'good keyword coverage; a few natural terms missing' anchor rather than the comprehensive 5 anchor.

4 / 5

Distinctiveness Conflict Risk

Quotes: 'Build-an-X for the secret-rotation workflow after detection'. The post-detection rotation niche is clearly distinct, but the mention of 'detect via gitleaks/trufflehog' and the trigger 'a secret is detected in code' create minor overlap risk with the sister scanning skills, matching 'mostly distinct; minor overlap risk' rather than the minimal-conflict 5 anchor.

4 / 5

Total

18

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Reviewed

Table of Contents