Tools
What each bundled check id does, and how to add your own. First run? See Quick start. Suite selection lives in Usage.
List the catalog
shipgate list tools
shipgate list tools --tag security
shipgate list checks # alias
Run one tool without changing project policy:
shipgate check --check ruff.lint --target src
shipgate check --check gitleaks.scan --target .
Bundled tools
| Tool | Purpose |
|---|---|
| Bandit | Security issue scanner for Python |
| codespell | Common misspellings in text and code |
| deadcode | Unused Python code via static analysis |
| deptry | Missing / unused / misplaced declared dependencies |
| Gitleaks | Secret scanning for git repositories |
| Hadolint | Dockerfile linter |
| import-linter | Layer and forbidden-import contracts |
| JSCPD | Copy/paste / duplication detector |
| markdownlint | Markdown style linter |
| mdformat | Markdown formatter |
| pip-audit | Dependency CVE / vulnerability audit |
| pydeps | Python dependency graphs |
| Policy gates | Bundled in-process / project-local policy checks |
| Radon | Cyclomatic complexity and maintainability metrics |
| Ruff | Fast Python linter and formatter |
| Semgrep | Pattern-based security and quality analysis |
| ShellCheck | Static analysis for shell scripts |
| shfmt | Shell script formatter |
| ty | Astral static type checker for Python |
| Vulture | Dead Python code with high confidence |
| yamlfmt | YAML formatter |
| yamllint | YAML syntax and style linter |
Project extensions
When the bundled catalog is not enough:
- Catalog overlays — add or override tool YAML under
.shipgate/catalog/tools/(useextends:to patch a bundled entry). - Suites — define named checklists in
.shipgate/catalog/suites.yaml. - Policy gates — scaffold scripts under
.shipgate/gates/and register them in the project catalog.
Tool configs live under .shipgate/configs/. Project-specific allowlists go in
.shipgate/allowlists/. See Usage — project-local gates
and Check flow for how YAML becomes a check run.