A collection of hooks, tools, and guides for Claude Code configuration best practices, including secret blocking, code formatting, CLAUDE.md generation, and project auditing
This server exhibits critical definition quality gaps. Tool names lack action verbs (e.g., 'check-claude-md', 'block-secret-commits' use hyphens instead of verb_noun convention). Descriptions vary widely in quality: some are detailed (audit-claude-setup, benchmark), others are vague or assume domain knowledge. Input schemas are present but inconsistent, some tools expose minimal parameters while others lack proper type definitions. No output schemas are documented. Error handling is implicit (exit codes) rather than explicit guidance. The server is designed as a collection of bash hooks and utilities rather than a cohesive MCP tool suite, which limits composability and LLM discoverability.
Scores a project's Claude Code configuration by checking CLAUDE.md, .claude/settings.json, permission rules, and hook wiring. Prints a 0-100 score with per-check results and targeted suggestions. Exit codes: 0 if score >= 60 (or --strict with no failures), 1 if score < 60 or --strict with failures.
Reproducible Claude Code benchmark harness. Runs a fixed task set against one or more models in headless mode, captures token usage, wall time, and cost, and emits a CSV. Supports multiple models (opus-4.8, sonnet-4.6, haiku-4.5) and configurable task sets.
Aggregates all benchmark CSVs under benchmarks/history/ into a single benchmarks/latest.md with trend tables. Emits a markdown document with latest run table and 30-day trend table showing median input/output tokens and cost per task and model.
PreToolUse hook for Bash. Blocks `git commit` when staged content looks like secrets. Checks for sensitive filenames and content patterns including AWS keys, private keys, Slack tokens, GitHub PATs, and API keys.
PreToolUse hook for Write and Edit. Blocks writes that contain obvious secrets or target known-sensitive filenames. Exits 2 to block; writes diagnostics to stderr. Detects AWS keys, private keys, Slack tokens, GitHub PATs, API keys, and JWTs.
Tool names do not follow verb_noun convention. Names like 'check-claude-md', 'block-secret-commits', 'format-on-write' use hyphens and lack clear action verbs. LLMs expect names like 'validate_claude_md', 'prevent_secret_commits', 'auto_format_file' to infer intent.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. Tools return exit codes and stderr messages, but the response format is not formally specified.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
PreToolUse hook for Edit/Write. Runs tools/lint-claude-md.sh against any target file whose basename is CLAUDE.md, and blocks the write if the lint reports errors (exit 2 from the linter).
Claude Code cost estimator. Estimates token usage and cost for common tasks based on codebase size. Analyzes project metrics (source files, lines of code, CLAUDE.md presence) and provides cost estimates for various task types across different models (Haiku, Sonnet, Opus).
PostToolUse hook for Write and Edit. Formats the just-written file with the appropriate tool if it's installed on PATH. Supports prettier, ruff, black, gofmt, rustfmt, rubocop, and shfmt. Silent on success, logs to stderr on formatter failure but does not block.
Interactive CLAUDE.md generator. Asks 7 questions about a project (name, description, tech stack, build/test/lint commands, commit style, code style rules) and outputs a ready-to-use CLAUDE.md file. Detects project structure automatically.
Input schemas are minimal and lack proper type definitions for several tools. 'generate-claude-md' has empty input schema ({}), making it impossible for LLMs to understand what parameters it accepts. 'benchmark' and 'estimate-cost' have string parameters without enum constraints or format specifications.
Error handling relies on implicit exit codes (0=success, 1=failure, 2=block) without actionable recovery guidance. LLMs cannot determine if an error is retryable, user-fixable, or fatal. No error messages guide the next step.
Parameter descriptions are inconsistent. Some tools (audit-claude-setup, benchmark) have detailed descriptions; others (format-on-write, block-secrets) lack context on what values are valid or what side effects occur. No enum constraints for multi-valued parameters like 'models' in benchmark.