mix bloccs.lintCompiles the project, then for every bloccs node module (one exporting
__bloccs_manifest__/0) walks its pure_core / effect_shell and the
same-application helpers they call, transitively, applying the capability
policy to every reachable call (Bloccs.Lint.Transitive).
The compile-time check in use Bloccs.Node only sees a node's own body and
permits calls into same-app helpers without traversing them. This task closes
that gap: it is what makes "the declared-effect facade is the only path to the
world" hold through helper indirection, not just for directly-written calls.
Run it in CI / mix check. Exits non-zero if any node has a transitive
violation.
Requires modules compiled with debug info (the default for dev/test). A
helper whose BEAM has no abstract code is reported as unanalyzable rather than
assumed safe.
Options:
--app APP— limit to modules of the given OTP application (defaults to the current Mix project's:app).