Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Expertise in evaluating Okta configurations for compliance — policies, MFA, session management, admin accounts, lifecycle. Maps to FedRAMP/NIST/SOC2/PCI identity controls.
.claude/skills/grcengclub-okta-inspector-expert/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 18% | 0% |
You are the interpretation layer between Okta configuration and compliance frameworks.
Policies:
| SCF | Check | Source endpoint | Severity | |---|---|---|---| | IAC-06 | Password policy: length ≥14, complexity, age ≤90d, history ≥24 | /api/v1/policies?type=PASSWORD | high | | IAC-01.2 | At least one active MFA enrollment policy requires a factor | /api/v1/policies?type=MFA_ENROLL | high | | IAC-15 | Sign-on session lifetime ≤ 720 min (12h) | /api/v1/policies/{id}/rules | medium | | IAC-15.1 | Sign-on session idle ≤ 15 min | same | medium |
Users:
| SCF | Check | Severity | |---|---|---| | IAC-15.1 | No active users inactive > N days (default 90) | medium |
Admin factors:
| SCF | Check | Severity | |---|---|---| | IAC-07.1 | ≤5 super admins | medium | | IAC-01.2 | Every super admin has ≥1 active MFA factor | critical | | IAC-01.3 | Every super admin has ≥2 active MFA factors (backup) | high |
Okta's default policy is lenient (minLength=8, no age, no history). Almost every org needs a custom policy assigned to the Everyone group with tighter settings. FedRAMP Moderate baseline is minLength=14, complexity on, age=60d, history=24. The fix is usually straightforward but requires admin access to Okta.
Two distinct failures under this control:
FedRAMP requires session termination after inactivity. Okta's default max is 2 hours which passes; the idle timeout is the stricter check — default is often 1 hour or unlimited, fails the 15-minute FedRAMP baseline. For SOC 2, 30 minutes is usually acceptable — but the connector flags anything over 15m conservatively. Adjust with --inactive-threshold-days if your target framework is more lenient.
FedRAMP is notoriously strict here — 35 days is the cutoff for Moderate. SOC 2 doesn't have a hard number but most auditors expect ≤90. The default threshold is 90; pass --inactive-threshold-days=35 for FedRAMP.
"Never logged in" users: separate signal. If an account was activated more than N days ago and has never logged in, it's either (a) a dormant service account, (b) a forgotten former-employee ghost, or (c) a future new-hire provisioned early. Any of those warrant review.
Okta has built-in admin roles: Super Admin, Org Admin, App Admin, Group Admin, Help Desk Admin, Read-Only Admin, etc. The connector specifically counts Super Admins because that's the "root" of the org. 5 is a guideline — some very large orgs need more, some small shops should have 2. FedRAMP and SOC 2 don't mandate a number, but auditors look for "reasonable scope." Pair with the group memberships evaluation (future work) for a complete picture.
Not covered yet:
When a user asks about these, say "v0.2 roadmap" and point at Okta's built-in reports (Admin → Reports) as complementary.
--inactive-threshold-days still works but some policy settings are named differently; expect more inconclusive results.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 18,605 | 26,759 | +44% | 1 | 1 | 0% | 3,524 | 4,986 | +41% | 0 | 0 | — |
case-02 | fail→pass | 19,912 | 13,726 | -31% | 1 | 1 | 0% | 3,312 | 3,898 | +18% | 0 | 0 | — |
case-03 | fail→fail | 17,111 | 12,405 | -28% | 1 | 1 | 0% | 2,671 | 3,635 | +36% | 0 | 0 | — |
case-04 | pass→pass | 16,829 | 15,469 | -8% | 1 | 1 | 0% | 2,715 | 4,049 | +49% | 0 | 0 | — |
case-05 | pass→pass | 17,977 | 17,666 | -2% | 1 | 1 | 0% | 2,891 | 4,335 | +50% | 0 | 0 | — |
case-06 | fail→fail | 16,317 | 13,373 | -18% | 1 | 1 | 0% | 2,954 | 3,860 | +31% | 0 | 0 | — |
case-07 | pass→pass | 13,070 | 9,716 | -26% | 1 | 1 | 0% | 1,946 | 3,149 | +62% | 0 | 0 | — |
case-08 | pass→pass | 10,214 | 4,493 | -56% | 1 | 1 | 0% | 1,756 | 2,277 | +30% | 0 | 0 | — |
case-09 | fail→pass | 7,229 | 4,365 | -40% | 1 | 1 | 0% | 1,302 | 2,279 | +75% | 0 | 0 | — |
case-10 | fail→fail | 10,092 | 3,283 | -67% | 1 | 1 | 0% | 1,486 | 2,021 | +36% | 0 | 0 | — |
case-11 | fail→pass | 16,938 | 11,811 | -30% | 1 | 1 | 0% | 2,410 | 3,346 | +39% | 0 | 0 | — |
case-12 | fail→pass | 14,256 | 8,858 | -38% | 1 | 1 | 0% | 2,278 | 2,771 | +22% | 0 | 0 | — |
case-13 | fail→pass | 12,475 | 5,102 | -59% | 1 | 1 | 0% | 2,056 | 2,433 | +18% | 0 | 0 | — |
case-14 | pass→pass | 15,032 | 10,853 | -28% | 1 | 1 | 0% | 2,170 | 3,044 | +40% | 0 | 0 | — |
case-15 | pass→pass | 13,538 | 9,011 | -33% | 1 | 1 | 0% | 2,239 | 3,102 | +39% | 0 | 0 | — |
case-16 | fail→pass | 11,004 | 3,139 | -71% | 1 | 1 | 0% | 1,663 | 2,068 | +24% | 0 | 0 | — |
case-17 | fail→pass | 18,298 | 9,764 | -47% | 1 | 1 | 0% | 2,767 | 3,157 | +14% | 0 | 0 | — |
case-18 | fail→pass | 14,322 | 6,700 | -53% | 1 | 1 | 0% | 2,349 | 2,585 | +10% | 0 | 0 | — |
case-19 | pass→pass | 20,096 | 3,578 | -82% | 1 | 1 | 0% | 2,902 | 2,210 | -24% | 0 | 0 | — |
case-20 | pass→pass | 15,825 | 7,435 | -53% | 1 | 1 | 0% | 2,316 | 2,762 | +19% | 0 | 0 | — |
case-21 | pass→pass | 27,596 | 4,345 | -84% | 1 | 1 | 0% | 2,756 | 2,241 | -19% | 0 | 0 | — |
case-22 | fail→pass | 15,447 | 6,531 | -58% | 1 | 1 | 0% | 2,374 | 2,603 | +10% | 0 | 0 | — |
case-23 | pass→pass | 10,681 | 5,450 | -49% | 1 | 1 | 0% | 1,725 | 2,026 | +17% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +39 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.