Most of the objects you mentioned (like packages, tables) cannot be tracked unless you have a string to differentiate it is a customized object from a standard object when creating t. This is infact an Oracle recommended practice to be followed when working with customized objects.
Others like shell scripts, sql scripts, custom.pll is trackable if you have a specific location to deploy these objects based on their function so that you may track them at a later stage.
In general, what I would say is that there is no common standard way of tracking them as far as I know, unless you have taken measure before hand such as
- strings in the front or end when naming the object.
- Standard location to differentiate customized objects in OS, db directories and etc
- documentations and etc.