Skip to content

Docs · Product

Reading rules

A rule decides when a file counts as read. Every workspace gets one default rule. Any repo can override it. Edit both in the dashboard under Rules.

The threshold formula

Three numbers set the required seconds for each file:

SettingDefaultMeaning
minSecondsPerFile15Floor. Every non-excluded file needs at least this.
secondsPer100Lines5Added per 100 changed lines (additions plus deletions).
maxSecondsPerFile180Cap. No single file requires more than this.

Requirement per file: clamp(min, min + ceil(lines × per100 / 100), max). Deleted files need only the floor. Examples with the defaults:

Changed linesRequired
1016s
10020s
50040s
3,300 or more180s (capped)
The rules page in the Read PR dashboard
The rules form in the dashboard. The workspace default applies to every repo without an override.

Exclusions

Files matching any exclusion glob need zero seconds, are skipped by the check, and are labeled excluded in the files view. The default set covers what nobody should be forced to read:

**/*.lock          pnpm-lock.yaml     yarn.lock
package-lock.json  Cargo.lock         Gemfile.lock
poetry.lock        **/*.generated.*   **/*.min.js
**/*.min.css       **/dist/**         **/vendor/**
**/node_modules/**

Globs match with dotfile support, so **/dist/** also covers hidden directories. Add patterns for your own generated code: protobuf output, snapshots, fixtures. Up to 200 patterns per rule.

Reviewer requirements

SettingDefaultEffect
requireAllReviewersoffOn: every assigned reviewer must read every file. Off: one required reader completing is enough.
allowDismissOnReApproveonGoverns how re-review works after a new push on an already approved PR.
postReadByCommentoffOn: posts a "Read by" summary comment on the PR when the check completes, so the record is visible in the thread.

Per-repo overrides

Open a repo in the dashboard and edit its rule to detach it from the workspace default. An override replaces the whole rule for that repo, including exclusions. Repos without an override follow the default, including future edits to it.