Panic is appropriate when:
A programmer error occurred (impossible state). Initialization fails and your program can't continue. An invariant is violated.
Don't panic for expected errors like missing files or network failures. Those should return errors. Panic is for bugs, not runtime problems.