I think using tags is a good idea, but you wouldn't need more than two. One for when you have three knowledge skills with 5 ranks, and another for 10 ranks. I'm not sure what the SKill Emphasis feat does, but it seems likely you only need one copy of that as well. You can bootstrap the same thing multiple times.
The biggest issue you'll run into here is that you can't find out how many ranks in a skill you have until Pre-Levels/5001 (right-click on any skill and select "Show Debug Tasks" and look at Pre-Levels/5000 to see what I mean).
So, you could run the following script at Pre-Levels/5001:
Code:
var test as number
foreach pick in hero from BaseSkill where "Helper.SkCatKnow"
if (eachpick.field[kUserRanks].value >= 5) then
test += 1
endif
nexteach
if (test >= 3) then
perform hero.assign[User.KnowSkill5]
endif
This searches through all of your knowledge skills and looks for those that have at least 5 ranks, then adds 1 to the variable "test". Once test equals at least three, it assigns the appropriate tag.
It's important to note the timing of this, because your bootstrap condition is going to look for this tag. It can't search for the tag before Pre-Levels/5002. This, in turn, means that anything that the Skill Emphasis feat does must take place after this. I can't test whether this is possible since I don't know what the feat does, but it probably is. In that case, this is how I would do it (you can modify it for the 3 skills with 10 ranks pretty easily). If its not possible, we can look at other options, but it might mean having the feat on the character before they reached 5 ranks in 3 knowledge skills.
Hope this helps!