This was mostly a copy-paste error (the `watch_file` calls). As for the shell hooks, it looks like `nix-direnv` takes care of that automatically.
Now that `nix flake check` doesn't complain about it anymore, try to be consistent about using that feature.