An agent about to change internal/billing/invoice.go should know which agreed rules govern that file before it writes a line. A pull request that touches it should get the same answer. Smeldr now has one question that gives it.
An Area covers paths through coverage rules. A rule names a repository and a path pattern, such as internal/billing/** for everything under a directory or README.md for one file. One Area can cover paths in several repositories. A rule is a record of its own, placed in its Area, so whoever may read the Area reads its rules.
You ask with a repository and the paths you are about to touch, up to 3,000, which is GitHub's own limit for a pull request. The answer lists the Areas those paths fall in and whether each wants a comment or an approval, the Decisions in force that apply, and the paths no rule covers. The Decisions that apply are the ones placed in those Areas, in their Domains and on the Organization.
Everything is filtered by the caller's read rights. A Decision you cannot read does not appear and does not change any count. Smeldr never reads your repository. You send the paths, and on a benchmark of 3,000 paths and 300 rules the whole answer takes about 40 ms.
Code moves, and a rule that covered legacy/** can quietly cover nothing. Send the repository's full file list and Smeldr counts the matches for every rule. A rule that matches nothing opens a condition that reaches the people who can fix it. The condition closes when the rule is changed or archived, or when a later check finds a match again.
Released in core v1.168.0, mcp v1.66.0 and cli v0.29.0.