ConstExact matching rule, deliberately kept purely structural. A
fetch(...) is exempt the moment it is lexically inside an
execute/subscribe function of an operation declared in a
buildData/createData call's getters/mutators/subscriptions
section -- position alone. There is no cross-referencing against declared
endpoints metadata, no URL matching, and no inspection of what the
operation's body actually does: an operation body is opaque to data-cap's
static analysis by design (AGENTS.md invariant 6), and a rule that peeked
inside one would be the first thing in this package to break that.
The consequence is worth stating plainly: this rule proves where a call is written, never that the capability declaring it is honest about what it fetches. It is a structural convention check, not a security control.
options.functions names global identifiers, so the rule never learns
about a specific HTTP client library; options.allow exempts whole files
by glob, for a project's own transport layer or scripts.
Flags a direct call to a global I/O function (
fetchby default) written anywhere other than inside a capability's ownexecute/subscribe, so external data access always goes through a declared, analyzable capability operation instead of being scattered through application code.