I finally looked at this again.
For whatever reason, parsing skills on the char sheet intentionally excludes that are permed but unavailable in current path.
At the time you got this charsheet, you were on day 96 of the run.
Looks like you used your Big Book of Every Skill and have learned a bunch of skills, one of which was previously permed.
All of those skills would normally be unavailable of AoSP, but your book gave them to you.
The other three skills you permed are unavailable in AoSP and you have not yet re-learned them.
Code:
// Skills that you cannot use right now (e.g. due to path restrictions) are wrapped in a <span> tag:
//
// <span id="permskills" ...>...</span>
The xpath expression:
Code:
"//a[contains(@onclick,'skill') and not(ancestor::*[@id='permskills'])]",
Since we parse the char sheet to find out your currently available skills, it intentionally omits permed-but-not-available skills.
I am honestly not sure what the contract of permed_skills() should be.
1) Include only skills that are currently available to you, accounting for path (or Standard) restrictions
2) Include all skills you have ever permed, even they are not currently available to you.
Since we intentionally do not parse permed-but-not-available skills, you get option 1.
You expected it to be option 2.
What is your use case for option #2?
I suppose we could parse the DOM a second time and select ONLY the permed-but-not-available skills and save those ... somewhere else.