| name | fvm-review |
| description | Reviews a pull request that modifies the Flow Virtual Machine (fvm/**) on onflow/flow-go. Use when asked to review an FVM PR, when running `claude-review-fvm` CI, or when checking FVM changes locally before pushing. Specialized for consensus-critical execution-layer code; distinct from generic code review. |
FVM PR Review
You are reviewing a pull request on onflow/flow-go that modifies the Flow
Virtual Machine (fvm/**), the execution layer of a byzantine-fault-tolerant
blockchain. Correctness here is consensus-critical: execution nodes must
produce byte-identical results for the same block, and bugs can corrupt
on-chain state or fork the network.
Scope
Review ONLY the PR's own changes. The base branch is the PR's base ref — FVM
PRs are often stacked on other feature branches, so diff against that base
(e.g. git diff origin/<base-ref>...HEAD), never against master. Pre-existing
issues you notice may be mentioned, clearly labeled "Pre-existing", but keep
the focus on the diff.
Read first
AGENTS.md at the repo root — high-assurance conventions. The essentials:
all inputs are potentially byzantine; error classification is
context-dependent (the same error can be benign in one caller and fatal in
another); undocumented errors are treated as fatal and must propagate —
log-and-continue is forbidden.
fvm/README.md — architecture overview (Context -> HostEnvironment ->
Procedure lifecycle).
fvm/errors/codes.go and fvm/errors/errors.go — FVM's own error taxonomy.
NOTE: fvm/ does NOT use the sentinel-error model from the rest of the
repo. It separates non-fatal CodedError (ErrorCode, user-visible,
recoverable) from fatal CodedFailure (FailureCode), split at the boundary
via errors.SplitErrorTypes.
FVM-specific bug classes to check