Borrowing it
Nothing to install: this file belongs to T-rav/hydraflow. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/T-rav/hydraflow/staging/.codex/skills/hf.scan-secrets-before-commit/SKILL.mdgit clone --depth 1 https://github.com/T-rav/hydraflowWrote 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/t-rav/hydraflow/hf.scan-secrets-before-commit)<a href="https://agentmods.dev/skills/t-rav/hydraflow/hf.scan-secrets-before-commit"><img src="https://agentmods.dev/badge/skills/t-rav/hydraflow/hf.scan-secrets-before-commit/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/t-rav/hydraflow/hf.scan-secrets-before-commit"><img src="https://agentmods.dev/badge/skills/t-rav/hydraflow/hf.scan-secrets-before-commit.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.00015 | $0.00754 |
| Opus 5.5 | $0.00006 | $0.00302 |
| Sonnet 5.5 | $0.00003 | $0.00151 |
| Haiku 4.5 | $0.00002 | $0.00075 |
Grade A, and why
hf.scan-secrets-before-commit scanned grade A with 0 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 1mo 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
hf.scan-secrets-before-commit
#!/bin/bash
# Hook: Scan staged files for potential secrets before allowing commit.
# Fires on PreToolUse for Bash commands matching git commit.
# Blocks commit if API keys, tokens, or hardcoded passwords are found in staged diffs.
set -euo pipefail
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
CWD=$(echo "$INPUT" | jq -r '.cwd // empty')
# Only intercept git commit commands
if ! echo "$COMMAND" | grep -qE '(^|\s|&&\s*|;\s*)git commit'; then
exit 0
fi
cd "$CWD"
# Get staged files
STAGED_FILES=$(git diff --cached --name-only 2>/dev/null || true)
if [ -z "$STAGED_FILES" ]; then
exit 0
fi
# Get only the added lines from the staged diff (ignore removed lines)
ADDED_LINES=$(git diff --cached -U0 2>/dev/null | grep -E '^\+[^+]' || true)
if [ -z "$ADDED_LINES" ]; then
exit 0
fi
# Define secret patterns (high-confidence, low false-positive)
PATTERNS=(
'xoxb-[0-9]' # Slack bot tokens
'xapp-[0-9]' # Slack app tokens
'xoxp-[0-9]' # Slack user tokens
'sk-[a-zA-Z0-9]{20,}' # OpenAI / Stripe keys
'AKIA[0-9A-Z]{16}' # AWS access key IDs
'ghp_[a-zA-Z0-9]{36}' # GitHub personal access tokens
'ghs_[a-zA-Z0-9]{36}' # GitHub server tokens
'glpat-[a-zA-Z0-9\-]{20}' # GitLab personal access tokens
'AIza[0-9A-Za-z\-_]{35}' # Google API keys
)
# Build combined regex
COMBINED_PATTERN=$(printf '%s|' "${PATTERNS[@]}")
COMBINED_PATTERN="${COMBINED_PATTERN%|}" # Remove trailing pipe
# Scan added lines for secrets
MATCHES=$(echo "$ADDED_LINES" | grep -oEn "$COMBINED_PATTERN" 2>/dev/null || true)
if [ -n "$MATCHES" ]; then
echo "BLOCKED: Potential secrets detected in staged changes:" >&2
echo "" >&2
# Show which files contain the matches
while IFS= read -r file; do
[ -f "$file" ] || continue
FILE_DIFF=$(git diff --cached -U0 -- "$file" 2>/dev/null | grep -E '^\+[^+]' || true)
if echo "$FILE_DIFF" | grep -qE "$COMBINED_PATTERN" 2>/dev/null; then
echo " - $file" >&2
fi
done <<< "$STAGED_FILES"
echo "" >&2
echo "Remove secrets and use environment variables instead." >&2
echo "If this is a false positive (e.g., test fixtures), ask the user to confirm." >&2
exit 2
fi
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.
- 1mo ago First seen · 78 lines · 15 tokens per session scan A df9ab39009be
hf.scan-secrets-before-commit is a skill published in the GitHub repository T-rav/hydraflow (5 stars, last pushed 2d ago), licensed Apache-2.0. It adds 15 tokens to every session and 754 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
document
Run /document pr | changelog | release-note | postmortem (or let it ask) to write the human facing prose about a change. Drafts from the real commits and diff, writing to the right place. Does not write code, tests, or specs.
feedback-resolution
Address PR review feedback through surgical fixes traceable to specific comments, apply the Boy Scout Rule only to already-modified files (separate improve: commits), recover context by code snippet rather than line number, and enforce pushback only when factually incorrect, test-breaking, or CLAUDE.md-violating. Use…
merge-and-release
Reference document describing merge prerequisites (approval, CI checks, mergeable, conversations resolved, stale approval), release versioning (semantic semver), and changelog generation. Explains why Tier 3 confirmation is structural: merge and release cost is borne by downstream people. Reference only…
merge-conflict-resolution
Detect, classify (porcelain status; complexity: trivial, semantic, structural, delete-modify), and resolve git merge conflicts through per-file strategy selection (accept-ours, accept-theirs, manual-merge, rebase), manual conflict hunk parsing, and post-resolution verification (orphaned markers, build, tests). Use…
branch-and-task-management
Create feature branches with naming conventions, load full issue context and impact analysis, and decompose acceptance criteria into atomic parallel tasks with dependencies. Use when starting work on a GitHub issue. This skill MUST be consulted because starting code without context causes misaligned implementations…
change-classification
Classify code changes as in-context, uncertain, or out-of-context using primary signals (branch diff, issue keywords, active tasks), secondary signals (directory proximity, test naming), and red-flag patterns (secrets, large binaries). Use when preparing commits or reviewing staged changes. This skill MUST be…