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. |