Rules

Rules files

Checked by the lint page against CLAUDE.md, AGENTS.md, Cursor rules (.mdc and .cursorrules), Copilot instructions, GEMINI.md, and .windsurfrules. Frontmatter is skipped by every rule except R009, R015 and R016. R015 and R016 apply to Cursor .mdc rules only.

Id Rule Severity Summary
R001 RationaleProse Info Instructions explain why instead of stating what.
R002 VagueVerbs Warning Pattern-based: instructions use verbs with no checkable outcome.
R003 ContradictoryModals Error Mirrored instructions: the same instruction is both required and forbidden.
R004 FileLength Warning The file is longer than 200 lines.
R005 DuplicateLines Warning The same instruction appears more than once.
R006 MissingIdentifiers Warning (App-only) A rules file names a path, script, or target that does not exist in the repository.
R007 HedgedInstructions Warning A hedge makes the instruction optional.
R008 EmphasisInflation Warning Emphasis is on so many lines that none of it stands out.
R009 SecretsInRulesFile Error The file contains a credential.
R010 PersonaPreamble Info The file assigns the agent a persona instead of stating facts.
R011 EmptySections Warning A heading has no content.
R012 UnclosedCodeFence Error A code fence is opened and never closed.
R013 ProseParagraph Info Instructions are written as a long paragraph.
R014 UnverifiableCrossReference Info A line refers to something elsewhere without naming it.
R015 FrontmatterFields Warning A Cursor rule's frontmatter is missing, has unknown keys, or has an invalid alwaysApply.
R016 ManualCursorRule Info A Cursor rule is in Apply Manually mode and is included only when @-mentioned.

How rules are chosen and scored · Changelog (ruleset v4)

Aibysitter lint score

Every file starts at 100. Each finding costs points by severity: Error 10, Warning 4, Info 1. One rule costs at most 30. Total costs per severity are capped: Error 40, Warning 30, Info 10. The lowest possible score is 20. Grades: A ≥ 90, B ≥ 80, C ≥ 70, D ≥ 60, F below 60.

Fenced code blocks are excluded from all rules. Headings are excluded from R001–R003.

Suppressing a rule

An HTML comment on its own line. IDs are required; separate several with commas. Suppressed findings are listed on the lint page and not scored.

Suppression comments live in the rules file itself: the agent reads them and they cost tokens on every run. For the GitHub App, prefer disable in .github/aibysitter.json.

<!-- aibysitter-disable R002 -->            whole file
<!-- aibysitter-disable-next-line R001, R005 -->   the next line only

Pull request checks

Run by the GitHub App on every pull request in an installed repository.

Id Rule Severity Summary
P001 PlaceholderIdentifiers Error A change leaves a placeholder where a real identifier or value belongs.
P002 TodoStubs Warning A change adds a stub or a TODO where the implementation belongs.
P004 OutOfScopeFiles Error A change touches files outside the scope declared in .github/aibysitter.json.
P005 SecretsInDiff Error A change adds a credential.
P006 SkippedTests Error A change skips a test instead of fixing it.
P007 SuppressedDiagnostics Warning A change silences a compiler or linter warning.
P008 DeletedTests Error A change deletes a test file.
P009 SwallowedExceptions Warning A change catches an exception and does nothing with it.
P010 NewDependencies Warning A change adds a package dependency.
P011 CiConfigEdited Info A change edits CI configuration.
P013 CommittedArtifacts Error A change adds build output, dependencies, caches, or an environment file.
P014 RulesFileLint Warning A change adds or edits a rules file that has rule findings.
P015 UnpinnedActions Warning A change uses a GitHub Action without pinning it to a commit.
P016 SecurityExemptions Warning A change exempts an endpoint from antiforgery or authorization.
P018 BrowserPolicyLoosened Warning A change loosens the Content-Security-Policy or CORS policy.
P019 ConfigTodos Warning A change leaves an unfinished value in a config file.