Skip to content

Commit 15a8e83

Browse files
feat(auth0): fold tenant audit (CheckMate) into the unified skill
Add an 'audit' intent to the unified auth0 router that runs an Auth0 CheckMate tenant configuration/security audit, produces a markdown + PDF report, and applies approved fixes via the Auth0 CLI with per-command confirmation. - SKILL.md: Step 1 intent row + Step 4 load block; extend the description. - references/feature-audit.md: full workflow (CLI bootstrap, M2M app, company context, CheckMate run, report fusion, gated apply loops). - references/feature-audit-pricing.md: feature to plan matrix (shared). - references/feature-audit-remediation.md: command-shape map + safety rules. - scripts/render_pdf.sh + assets/audit/report-template.{md,html}. - Routing eval (audit-tenant) + README coverage.
1 parent de92946 commit 15a8e83

10 files changed

Lines changed: 1846 additions & 2 deletions

File tree

evals/behavioral/cases/audit.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"slug": "audit",
3+
"origin_skill": "auth0-checkmate",
4+
"skill_name": "auth0-checkmate",
5+
"evals": [
6+
{
7+
"id": 1,
8+
"prompt": "Run an Auth0 CheckMate tenant audit for the company acmecorp.io. The Auth0 tenant is acmecorp.us.auth0.com. Generate a personalized security/configuration report as a PDF.",
9+
"expected_output": "Phased CheckMate audit producing a personalized Auth0 Platform Development Review with triaged findings, immediate vs. post-upgrade action lists, and a plan recommendation. Report saved as markdown, HTML, and PDF.",
10+
"files": [],
11+
"assertions": [
12+
"Bootstraps the Auth0 CLI (auth0 login or verifies existing session)",
13+
"Creates or reuses a dedicated CheckMate M2M application in the tenant",
14+
"Writes credentials to ~/.auth0-checkmate.env with mode 600 (chmod 600)",
15+
"Substitutes <tenant_domain>, <client_id>, and <client_secret> before writing the env file",
16+
"Runs the CheckMate audit tool against the tenant",
17+
"Gathers lightweight company context for acmecorp.io (business model, products, auth surfaces)",
18+
"Produces a findings list with severity, title, and personalized remediation notes",
19+
"Triages findings into Immediate Actions (current plan) vs After Upgrading (requires upgrade)",
20+
"Emits a plan recommendation with exact cost from the pricing reference",
21+
"Saves report as auth0checkmate_<tenant>_<timestamp>.{md,html,pdf}",
22+
"State written to ~/.auth0-checkmate/state/ (not ~/.claude/skills/)",
23+
"Does not include sales fit scores or firmographic data in the report"
24+
]
25+
},
26+
{
27+
"id": 2,
28+
"prompt": "I already have my Auth0 tenant set up and the M2M app created. Just run CheckMate and give me the findings — skip the bootstrap steps.",
29+
"expected_output": "CheckMate audit skipping Phase 1/2 bootstrap if credentials exist, producing findings and a report.",
30+
"files": [],
31+
"assertions": [
32+
"Reads existing credentials from ~/.auth0-checkmate.env or ~/.auth0-checkmate/state/setup.json",
33+
"Skips M2M app creation if client_id is already cached",
34+
"Runs the CheckMate audit and parses data.report.summary[]",
35+
"Produces a report with triaged findings"
36+
]
37+
}
38+
],
39+
"graders": null
40+
}

evals/routing-cases.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,13 @@
129129
"framework": "nextjs",
130130
"tooling": "terraform",
131131
"expect_refs": ["feature-migration.md", "tooling-terraform.md", "framework-nextjs.md"]
132+
},
133+
{
134+
"id": "audit-tenant",
135+
"intent": "audit",
136+
"framework": null,
137+
"tooling": "cli",
138+
"expect_refs": ["feature-audit.md", "feature-audit-pricing.md", "feature-audit-remediation.md", "tooling-cli.md"]
132139
}
133140
]
134141
}

plugins/auth0/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ npx skills add auth0/agent-skills/plugins/auth0
2828

2929
| Skill | Description | Documentation |
3030
|-------|-------------|---------------|
31-
| [auth0](skills/auth0) | Adds Auth0 authentication to any app. Covers 35+ frameworks (React, Next.js, Vue, Angular, Express, Flask, FastAPI, Spring Boot, Swift, Android, Flutter, Laravel, Go, PHP, .NET MAUI, ASP.NET Core, React Native, Expo, Ionic, and more), MFA, Organizations, custom domains, ACUL screen generation, branding, debugging auth errors, security best practices, and migration from other providers. | [SKILL.md](skills/auth0/SKILL.md) |
31+
| [auth0](skills/auth0) | Adds Auth0 authentication to any app. Covers 35+ frameworks (React, Next.js, Vue, Angular, Express, Flask, FastAPI, Spring Boot, Swift, Android, Flutter, Laravel, Go, PHP, .NET MAUI, ASP.NET Core, React Native, Expo, Ionic, and more), MFA, Organizations, custom domains, ACUL screen generation, branding, debugging auth errors, security best practices, running a tenant security & configuration audit (CheckMate), and migration from other providers. | [SKILL.md](skills/auth0/SKILL.md) |
3232

3333
## Forcing the skill with `/auth0`
3434

plugins/auth0/skills/auth0/SKILL.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: auth0
3-
description: Use when adding, fixing, or improving authentication in any app — login, logout, signup, route protection, JWT/access token validation, refresh token rotation, MFA, passkeys, step-up auth, SSO, RBAC, Organizations for B2B multi-tenant SaaS, custom login domains, ACUL, or Universal Login branding. Use even if Auth0 isn't mentioned — any time a developer asks how to authenticate users, secure an API, debug a 401, CORS error, callback URL mismatch, redirect loop, or 429 rate limit, or migrate from Clerk, NextAuth.js, Firebase Auth, Supabase, Cognito, or Passport.js. Covers React, Next.js, Vue, Nuxt, Angular, Express, Flask, FastAPI, Spring Boot, Go, Swift, Android, Flutter, PHP, Laravel, ASP.NET Core, React Native, Expo, Ionic, and all Auth0 SDKs.
3+
description: Use when adding, fixing, or improving authentication in any app — login, logout, signup, route protection, JWT/access token validation, refresh token rotation, MFA, passkeys, step-up auth, SSO, RBAC, Organizations for B2B multi-tenant SaaS, custom login domains, ACUL, or Universal Login branding. Use to audit a tenant (CheckMate) or fix findings. Use even if Auth0 isn't mentioned — any time a developer asks how to authenticate users, secure an API, debug a 401, CORS error, callback URL mismatch, redirect loop, or 429 rate limit, or migrate from Clerk, NextAuth.js, Firebase, Supabase, Cognito, or Passport.js. Covers React, Next.js, Vue, Nuxt, Angular, Express, Flask, FastAPI, Spring Boot, Go, Swift, Android, Flutter, PHP, Laravel, ASP.NET Core, React Native, Expo, Ionic, and all Auth0 SDKs.
44
license: Apache-2.0
55
metadata:
66
author: Auth0 <support@auth0.com>
@@ -45,6 +45,7 @@ section heading (`### feature:mfa`) listing which reference files to load.
4545
| Build fully custom login/signup screens with your own code or framework, beyond what theme settings allow. *Auth0: Advanced Customization for Universal Login (ACUL).* | **feature:acul** |
4646
| Change how the login page looks — logo, colors, fonts, background, overall theme. *Auth0: branding, Universal Login customization.* | **feature:branding** |
4747
| Bind tokens to the client so a stolen or leaked token can't be reused/replayed from another machine. *Auth0: DPoP (Demonstrating Proof-of-Possession), sender-constrained tokens.* | **feature:dpop** |
48+
| Audit an existing Auth0 tenant for security & configuration issues and produce a report — run CheckMate, get a tenant configuration / platform development review, then optionally fix findings via the CLI. *Auth0: tenant audit, CheckMate.* | **audit** |
4849
| Ask for best practices, "is this secure?", how to handle tokens safely, "how should I do X". *Auth0: guidance / security.* | **guidance** |
4950
| Hit an error: 401 Unauthorized, 403 Forbidden, CORS, callback URL mismatch, redirect loop. *Auth0: debugging.* | **debug** |
5051
| Hit rate limiting: 429 Too Many Requests, quota exceeded. *Auth0: rate limits.* | **debug:rate-limit** |
@@ -339,6 +340,15 @@ Read: references/tooling-{tooling}.md
339340
If framework detected: Read references/framework-{framework}.md
340341
```
341342

343+
### audit
344+
```
345+
Read: references/feature-audit.md
346+
Read: references/feature-audit-pricing.md
347+
Read: references/feature-audit-remediation.md
348+
Read: references/tooling-{tooling}.md
349+
Apply findings only with per-command confirmation; verify each change by re-fetch.
350+
```
351+
342352
### upgrade-sdk
343353
```
344354
Read: references/framework-{framework}.md

0 commit comments

Comments
 (0)