Why is vacuum at a critical level in PostgreSQL when I'm running autovacuum?
check_postgres isn't very sophisticated software. It just checks if a particular table was vacuumed in the last 2 days (or as configured). For tables with no updates or deletes it is perfectly normal to not be vacuumed for extended periods of time. You can either ignore this or configure check_postgres to ignore this particular table.

I don't think this functionality of check_postgres is of much use. Maybe for some particular tables. Definitely not so much for system tables like pg_catalog.pg_shdepend.