Skip to content
Agentmart
Submit a tool

crew-lint

Configure and run linters and formatters for PowerShell, PHP, Python, Terraform, and JavaScript, and wire them into the verification gate.

Skill by mbadali25

IndexedGPL-2.0★ 2
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/mbadali25-crew-lint

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Configure and run linters and formatters for PowerShell, PHP, Python, Terraform, and JavaScript, and wire them into the verification gate. Use when the user says set up linting, add a linter, format this code, run PSScriptAnalyzer, ruff, phpstan, or tflint, or asks why style keeps drifting.

Use cases: devops

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/crew-lint

What's inside

Skill name
crew-lint
Description
Configure and run linters and formatters for PowerShell, PHP, Python, Terraform, and JavaScript, and wire them into the verification gate. Use when the user says set up linting, add a linter, format this code, run PSScriptAnalyzer, ruff, phpstan, or tflint, or asks why style keeps drifting.
License
GPL-2.0
Instructions
96 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Linting

Linters belong in `.crew/verify.json` under `always` or a path rule — not in an
agent's head. A linter an agent remembers to run is a linter that gets skipped
on the turn it mattered.

## Per language

### Python
```bash
pip install ruff mypy
ruff check .            # lint
ruff format --check .   # formatting, replaces black
mypy src/               # types, only if the codebase is annotated
```
`ruff` covers what flake8, isort, pyupgrade and several plugins used to, in one
fast binary. Add `mypy` only where annotations already exist — turning it on over
an unannotated legacy codebase produces thousands of findings nobody will read,
which teaches the team to ignore the whole gate.

### PowerShell
```powershell
Install-Module -Name PSScriptAnalyzer -Scope CurrentUser
Invoke-ScriptAnalyzer -Path . -Recurse -Severity Error,Warning
```
Fail the gate on `Error` only at first. `Warning` on legacy scripts is usually a
few hundred findings; promote it once the error count is zero.

Settings live in `PSScriptAnalyzerSettings.psd1` at the repo root. Suppress
per-rule there rather than sprinkling `[Diagnostics.CodeAnalysis.SuppressMessage]`
through the code.

### PHP
```bash
composer require --dev phpstan/phpstan squizlabs/php_codesniffer
php -l <file>                      # syntax only, but catches parse errors fast
vendor/bin/phpstan analyse --level=1
vendor/bin/phpcs --standard=PSR12 src/
```
Start phpstan at `--level=1` on legacy code and raise it one level at a time,
each raise as its own ticket. Starting at level 8 produces an unreadable wall and
the gate gets disabled within a week.

`php -l` across changed files is cheap enough to run on every gate.

### Terraform
```bash
terraform fmt -recursive -check
terraform validate
tflint
```
See the `crew-terraform` skill — `tflint` needs `tflint --init` once, and there
is a rule you must keep disabled if terraform-docs reads its header from a
`/** */` block.

### JavaScript / TypeScript / AngularJS
```bash
npx eslint .
npx prettier --check .
```
For AngularJS 1.x, the useful rules are the deprecated-pattern ones; most modern
ESLint presets assume ES modules and will produce noise on string-annotated DI.
Configure deliberately or the output is worthless.

## Wiring into the gate

```json
{
  "rules": [
    { "paths": ["**/*.py"],  "run": ["ruff check .", "ruff format --check ."], "why": "style and common bugs" },
    { "paths": ["**/*.ps1", "**/*.psm1"], "run": ["pwsh -c \"Invoke-ScriptAnalyzer -Path . -Recurse -Severity Error\""], "why": "PowerShell errors only" },
    { "paths": ["**/*.php"], "run": ["vendor/bin/phpstan analyse --level=1", "vendor/bin/phpcs --standard=PSR12 src/"], "why": "types and PSR-12" },
    { "paths": ["**/*.tf", "**/*.tfvars"],
      "run": ["terraform fmt -recursive -check", "terraform validate", "tflint",
              "terraform-docs markdown table . --output-file README.md --output-check"],
      "why": "syntax, lint, and README stays honest" }
  ]
}
```

Path-scoped, not `always`. A Python change should not wait on `terraform init`.

## Two rules that keep a gate alive

**Format automatically, lint blockingly.** Run the formatter in write mode and
commit the result; run the linter in check mode and fail on it. Arguing with a
formatter in a review is wasted time, and a formatter that only complains is
pure friction.

**Baseline legacy debt, do not fix it in the same change.** Every tool here has
a way to freeze existing findings — `ruff`'s per-file ignores, phpstan's
`--generate-baseline`, PSScriptAnalyzer's settings file. Baseline on day one so
the gate is green, then burn the baseline down as its own tickets. A gate that
starts red never becomes a gate; it becomes something people pass with `--force`.

From mbadali25/useful-claude-add-ons, GPL-2.0.

More from mbadali25/useful-claude-add-ons

Signals

Stars
2
Forks
0
Open issues
17
Last commit (this folder)
Aug 23, 2026 (2 months ago)
Last release
Jul 28, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
GPL-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from mbadali25

Cite this page

crew-lint skill. Agent Mart. https://agentmart.dev/skills/mbadali25-crew-lint (last updated 2026-10-24)