$NewSymbol is a global variable which, if set, is applied to the name and context of each new symbol that Mathematica creates.
The name and context of the symbol are given as strings.
$NewSymbol is applied before the symbol is actually created. If the action of $NewSymbol causes the symbol to be created, perhaps in a different context, then the symbol as created will be the one used.
$NewSymbol is applied even if a symbol has already been created with a Stub attribute by DeclarePackage.
$NewSymbol is not applied to symbols automatically created by scoping constructs such as Module.