I would have to see the first one to comment.
As for the second, I would have a mechanic that looks for the Advances and then credits the skill points.
This starts the search
Code:
~ Check for spent Advances
foreach pick in hero from Advance sortas _CompSeq_
This searches for one of the Advances, in this case my Novice Attribute
Code:
if (eachpick.tagis[AdvanceId.advAttriN] <> 0) then
Then inside that if statement, with your new advance as advAttriN, you would have it add the skill points.