Rule profiles¶
Profiles give teams and agents a stable name for a reviewed set of rules. They control rule membership only; a rule keeps its declared severity unless configuration overrides it.
| Profile | Reference | Intended use |
|---|---|---|
| Baseline | mule-lint:baseline |
High-confidence vendor, security, and correctness requirements |
| Recommended | mule-lint:recommended |
Stable vendor requirements and reviewed recommended practices |
| Strict | mule-lint:strict |
All stable rules, including opinionated conventions |
Experimental rules are excluded from every stable profile. Use --experimental when evaluating
them; promoting an experimental rule into a profile requires a reviewed minor release.
Select a profile¶
From the CLI:
mule-lint ./src/main/mule --profile recommended
Or in .mulelintrc.json:
{
"extends": "mule-lint:recommended",
"rules": {
"MULE-002": { "enabled": false },
"SEC-001": { "enabled": true, "severity": "error" }
}
}
The short names baseline, recommended, and strict are also accepted. The CLI profile wins over
the configuration profile, and an explicit per-rule setting wins over profile membership.
Compatibility contract¶
- Adding a new optional profile is a minor change.
- Adding a rule to
recommendedorstrictis a minor change and is called out in release notes. - Removing a rule from a profile, renaming a profile, or changing its meaning is a breaking change.
- The library keeps its historical behavior when no profile is configured: every registered rule
runs at its declared severity. MCP scans default to
recommendedso agents get a stable set.
Each rule's machine-readable profile membership is published in mule-lint://rules and its
individual mule-lint://rules/{id} resource.