Checks ordinary non-TODO comments of at least eight trimmed characters for restatement, generic headings, straightforward narration, or assistant meta commentary. Defaults: threshold: { warning: 0.9, error: 0.97 }, minConfidence: 0.7.
Checks history-like candidates for completed-change narration that no longer explains a current constraint or active compatibility behavior. Defaults: threshold: { warning: 0.95, error: 0.99 }, minConfidence: 0.7.
Checks ordinary comments whose trimmed value is at least minCharacters for substantially reducible prose. Defaults: threshold: { warning: 0.9, error: 0.97 }, minConfidence: 0.65, minCharacters: 100. minCharacters must be a non-negative safe integer.
The provider first classifies each bounded, non-directive comment as a future-work marker or ordinary prose. This recognizes variants such as todo:, to-do:, FIXME, and HACK without treating “to-do list” as a marker. Selected comments are then checked for enough context to identify work, rationale, a removal condition, or a relevant issue. The rule does not require an owner, date, or ticket. Defaults: threshold: { warning: 0.8, error: 0.95 }, minConfidence: 0.7.
Reviews @deprecated comments for a named replacement, concrete migration steps, or a useful explanation that no replacement exists. Defaults: threshold: { warning: 0.85, error: 0.95 }, minConfidence: 0.7.
Probability options in this package must be finite values from 0 through 1.
Comments
@scruple/commentschecks whether source comments are useful, accurate, concise, and actionable.comments/no-useless-commentscomments/no-misleading-commentscomments/no-commented-out-codecomments/no-change-history-commentscomments/prefer-concise-commentscomments/require-actionable-todoscomments/require-justified-suppressionscomments/require-actionable-deprecationsTool directives, generated-code notices, licenses, preservation comments, and similar recognized metadata are ignored.
comments/no-useless-commentsChecks ordinary non-TODO comments of at least eight trimmed characters for restatement, generic headings, straightforward narration, or assistant meta commentary. Defaults:
threshold: { warning: 0.9, error: 0.97 },minConfidence: 0.7.comments/no-misleading-commentsChecks whether a concrete comment claim materially contradicts visible current code. Defaults:
threshold: { warning: 0.85, error: 0.95 },minConfidence: 0.7.comments/no-commented-out-codeDistinguishes disabled executable implementation from examples, pseudocode, patterns, and data. Defaults:
threshold: { warning: 0.95, error: 0.99 },minConfidence: 0.7.comments/no-change-history-commentsChecks history-like candidates for completed-change narration that no longer explains a current constraint or active compatibility behavior. Defaults:
threshold: { warning: 0.95, error: 0.99 },minConfidence: 0.7.comments/prefer-concise-commentsChecks ordinary comments whose trimmed value is at least
minCharactersfor substantially reducible prose. Defaults:threshold: { warning: 0.9, error: 0.97 },minConfidence: 0.65,minCharacters: 100.minCharactersmust be a non-negative safe integer.comments/require-actionable-todosThe provider first classifies each bounded, non-directive comment as a future-work marker or ordinary prose. This recognizes variants such as
todo:,to-do:, FIXME, and HACK without treating “to-do list” as a marker. Selected comments are then checked for enough context to identify work, rationale, a removal condition, or a relevant issue. The rule does not require an owner, date, or ticket. Defaults:threshold: { warning: 0.8, error: 0.95 },minConfidence: 0.7.comments/require-justified-suppressionsReviews explicit Scruple, lint, TypeScript, coverage, formatter, and Semgrep suppression directives. Generated code and deliberate negative fixtures are accepted. Defaults:
threshold: { warning: 0.85, error: 0.95 },minConfidence: 0.7.comments/require-actionable-deprecationsReviews
@deprecatedcomments for a named replacement, concrete migration steps, or a useful explanation that no replacement exists. Defaults:threshold: { warning: 0.85, error: 0.95 },minConfidence: 0.7.Probability options in this package must be finite values from
0through1.