# zombat/S.C.R.U.B.

Source: https://glimind.com/server/glama%2Fzombat%2Fs.c.r.u.b.
Registry id: `glama/zombat/s.c.r.u.b.`
Status: unknown

## Tools (22)

- `add_comments`: Only fires on complex functions (cyclomatic/cognitive threshold)
- `analyze_complexity`: Cyclomatic + cognitive complexity, nesting depth, hotspots
- `annotate_types`: All args + all returns, no exceptions
- `explore_architecture`: AST skeleton: signatures + docstrings, bodies replaced with ...
- `find_dead_code`: Unreachable code, unused vars, redundant else, commented blocks
- `find_symbols`: Extract function/class signatures via AST
- `generate_docstrings`: Google-style, all files/classes/methods/functions
- `generate_sbom`: CycloneDX 1.5 / SPDX 2.3 from pip, pyproject, lock files
- `generate_tests`: pytest stubs: happy path, edge cases, parametrize
- `grep_multi`: Multi-pattern regex search across the codebase
- `hygiene_batch`: hygiene_full across multiple files in parallel
- `hygiene_full`: Full pipeline: lint, docstrings, types, comments
- `hygiene_incremental`: Diff-aware, cache-accelerated hygiene (skips unchanged functions)
- `lint_file`: Ruff lint + autofix
- `optimize_imports`: Ruff removes unused, DSPy infers missing imports
- `read_files`: Batch-read multiple files in one call
- `run_tests`: Run pytest with PYTHONPATH=src, returns exit code + output
- `scan_vulnerabilities`: Cross-reference PURLs against OSV.dev (PyPI, GHSA, NVD)
- `security_remediate`: Triage-first: rewrite, # nosec with justification, or accept risk
- `security_scan`: Bandit static analysis: hardcoded secrets, injection, weak crypto
- `suggest_refactoring`: Extract function candidates, rename suggestions
- `suggest_simplifications`: Concrete refactoring: early returns, guard clauses, extract function

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
