The main difference between nvd
and nix-diff
is not the output format, I think: it is that nvd
works on store paths and nix-diff
works on derivations. This makes it natural for nvd
to answer the question “what user-visible things changed” and for nix-diff
to answer “what causes this derivation to be different”.
On the other hand, I seem to remember the mechanisms are similar for both closures and derivations (in both cases, you call nix-store --query --requisites
), so doing both might actually be doable.