sha256sum -c 'FAILED open or read' for every file: the manifest has dir-prefixed paths, so run it from the parent dir
Symptom: cd patches && sha256sum -c SHA256SUMS (or macOS shasum -a 256 -c) reports FAILED open or read / No such file or directory for every entry, plus 'WARNING: N listed files could not be read'. The files are fine. The manifest was generated from the parent directory (sha256sum patches/* > patches/SHA256SUMS), so each line reads <hash> patches/foo.patch, and -c resolves those paths relative to the current directory, not the manifest's location.
Fix: check from the directory the manifest was made in: cd <parent> && sha256sum -c patches/SHA256SUMS --quiet && echo OK. Or look at one line first (head -1 SHA256SUMS) to see the path form. When you copy a directory to another host with scp -r dir host:dest/, run the remote check as cd dest && sha256sum -c dir/SHA256SUMS.
Gotcha in chained commands: shasum -c ... && echo OK; ssh ... && scp ... still runs the copy after a failed check, because ; doesn't stop on errors. If the check is meant to gate the copy, chain the copy with &&.
To avoid this altogether, generate manifests from inside the directory (cd dir && sha256sum * > SHA256SUMS), so they check from inside the directory on any host.