Skip to main content
Strictness is a per-rule setting, configured in a rule’s YAML frontmatter, that controls how strongly density scoring penalizes errors in the documents a check rule reviews.

Why it exists

Not every rule should penalize errors equally. A rule that catches banned phrases in polished marketing copy should be unforgiving; a rule that flags style preferences in early drafts should be more lenient. Strictness scales the penalty per rule without changing the rule’s criteria or the scoring formula.

How it works

Strictness is the multiplier in the density scoring formula:
rawScore = clamp(0, 100,  100 - density * strictness)
A higher strictness means a given error density causes a larger score drop. VectorLint accepts three named levels or any positive number:
LevelValueBehavior
lenient5Forgives occasional errors; small penalty per issue
standard10Balanced - the default when strictness is unset
strict20Penalizes errors heavily; small issues still cost points
Any positive number is also valid, for fine-grained control between the named levels.

Key properties

Set strictness with the strictness field in the rule’s frontmatter. A check rule using the strict preset:
---
specVersion: 2.0.0
evaluator: base
type: check
id: AIPattern
name: AI Pattern
severity: warning
strictness: strict
---
A numeric value works the same way:
strictness: 15
When strictness is omitted, the rule scores at standard (10).
  • lenient forgives occasional errors - suited to draft-stage or low-stakes content.
  • standard is the balanced default for most rules.
  • strict penalizes errors heavily - suited to published, high-stakes content where even rare issues matter.

Constraints

  • Strictness applies only to density scoring - rules that count discrete issues. It has no effect on rubric scoring, which uses criterion weights instead.
  • Strictness is set per rule, in its frontmatter.