I would also consider adding
- s(CASP): Goal directed Constraint Answer Set Programming. (SWISH page)
- Persistence: library(persistency): Provide persistent dynamic predicates
- Multithreading code: Often SWI-Prolog is single threaded, should be able to make the code multithreaded when advantageous. (Building a port scanner)
- Converting code from other programming languages.
- Identify OS back ground tasks that might slow down processing, e.g. Microsoft Defender on Windows (ref)
- Bug hunting toolbox notes many techniques to help with bug hunting.