Agent skill

Verify Authendpoints

by madeyoga in madeyoga/AuthEndpoints

Drive the AuthEndpoints HTTP API via the in-repo test host (cookie sessions, Identity bearer, Simple JWT, CSRF, ReAuth).

MITAuto-check passedBackend & APIs

Install Verify Authendpoints

skills CLI
$ npx skills add madeyoga/AuthEndpoints --skill verify-authendpoints -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install madeyoga/AuthEndpoints verify-authendpoints --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/madeyoga/AuthEndpoints.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/verify-authendpoints .claude/skills/verify-authendpoints && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
verify-authendpoints
GitHub stars
121
Token cost
~2.7k tokens
SKILL.md length
1,162 words
Files
12 (incl. scripts)
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Drive the AuthEndpoints HTTP API via the in-repo test host (cookie sessions, Identity bearer, Simple JWT, CSRF, ReAuth).

  • Works in 3 steps: $AE_RUN_DIR/host.pid exists and that PID… → AE_BASE_URL accepts connections (the… → Compose host: GET /identity/csrfToken is…
  • Verifying a change to src/AuthEndpoints
  • SKILL.md covers Launch, Doctor, Drive and Evidence, plus 4 more sections
  • Runs Shell scripts from its folder; calls dotnet

What it does

Verify Authendpoints is an agent skill from madeyoga/AuthEndpoints. Drive the AuthEndpoints HTTP API via the in-repo test host (cookie sessions, Identity bearer, Simple JWT, CSRF, ReAuth). Use when verifying a change to src/AuthEndpoints or tests/AuthEndpoints.Tests, proving register/login/session/token behavior, or when a task needs a live auth API instead of only dotnet test.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts (for example `features/README.md`, `features/bearer-facade.md` and `features/confirm-email.md`).

It sits in Backend & APIs, covering Authentication, REST APIs and Web application vulnerabilities. It works with .NET, OpenTelemetry and ASP.NET Core. The repository describes itself as: A composable authentication endpoints library for aspnetcore. The licence is MIT.

When your agent uses it

  • Verifying a change to src/AuthEndpoints
  • Tests/AuthEndpoints.Tests
  • Proving register/login/session/token behavior
  • A task needs a live auth API instead of only dotnet test

Example prompts

  • “/verify-authendpoints”

Requirements

  • A Bash shell

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. $AE_RUN_DIR/host.pid exists and that PID is alive.
  2. AE_BASE_URL accepts connections (the port we chose).
  3. Compose host: GET /identity/csrfToken is 200 with a non-empty csrfToken. Bearer facade host: GET /identity/manage/info is 401.

What it can do on your machine

Read from SKILL.md and the folder at commit 70db53d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Verify Authendpoints loads about 2.7k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 1,162 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from madeyoga/AuthEndpoints at commit 70db53d, republished under its MIT licence (© madeyoga). 1,162 words, ~2,714 tokens.

Download SKILL.mdSave it as .claude/skills/verify-authendpoints/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
verify-authendpoints
description
Drive the AuthEndpoints HTTP API via the in-repo test host (cookie sessions, Identity bearer, Simple JWT, CSRF, ReAuth). Use when verifying a change to src/AuthEndpoints or tests/AuthEndpoints.Tests, proving register/login/session/token behavior, or when a task needs a live auth API instead of only `dotnet test`.

Verify AuthEndpoints

AuthEndpoints is a library, not a GUI app. The user-facing surface to drive is the HTTP API composed by the in-repo test host in tests/AuthEndpoints.Tests/Program.cs. A later agent that has never seen the repo should launch that host, call the same routes a first-party client would, and keep response files as proof.

xUnit under tests/AuthEndpoints.Tests is complementary regression coverage. It does not replace this skill. Do not treat dotnet test as evidence that a live cookie/CSRF/token path works.

The Nuxt docs site in Documentation/ is a separate surface. Do not use this skill to verify docs UI.

Launch

Preconditions:

  • .NET 10 SDK on PATH (dotnet --version starts with 10.).
  • Run from the repository root.
  • Pick a unique AE_RUN_ID and a free AE_PORT. Do not attach to an already-running host.
bash
export PATH="$HOME/.dotnet:$PATH"   # if the SDK was installed with dotnet-install.sh
export AE_RUN_ID="${AE_RUN_ID:-$(date +%Y%m%dT%H%M%S)-$$}"
export AE_PORT="${AE_PORT:-5088}"
export AE_EVIDENCE_DIR="${AE_EVIDENCE_DIR:-/tmp/authendpoints-verify-${AE_RUN_ID}/evidence}"
HARNESS=".cursor/skills/verify-authendpoints/scripts/ae-http.sh"

chmod +x "$HARNESS"
"$HARNESS" launch
"$HARNESS" doctor

Ready signal for the default compose host: GET {AE_BASE_URL}/identity/csrfToken returns 200 and JSON with csrfToken (Pascal CsrfToken is also accepted). The helper polls that URL after start.

launch turns on OpenTelemetry export when OTEL_EXPORTER_OTLP_ENDPOINT is unset (http://localhost:4317, service name authendpoints-demo). Set OTEL_EXPORTER_OTLP_ENDPOINT to empty before launch to skip export. How to read those traces is in the repository AGENTS.md.

Identity bearer facade: set AE_HOST_MODE=bearer-facade before launch. Ready signal is GET /identity/manage/info returning 401. Doctor prints mode=bearer-facade. See bearer-facade.md.

Teardown: "$HARNESS" stop kills only the PID in $AE_RUN_DIR/host.pid. It must not delete $AE_EVIDENCE_DIR.

What the host actually is (tests/AuthEndpoints.Tests/Program.cs):

Default AE_HOST_MODE=compose:

PrefixMapped surface
/identityIdentity management + cookie login (LoginCookie) + logout + /csrfToken
/identity/bearerSecond management map + Identity bearer login (Login)
/authSimple JWT (/create, /refresh, /verify, /logout, /csrfToken)
/accountPasskey routes
/test/*Test-only probes (/test/csrf, /test/reauth, /test/csrf-auth). Not library surface. Use them only as extra observation, never as the sole proof of a library feature.

AE_HOST_MODE=bearer-facade uses AddAuthEndpoints(..., AuthEndpointsSignIn.IdentityBearer) / MapAuthEndpoints instead of the compose maps:

PrefixMapped surface
/identityIdentity management + Identity bearer login (Login) + /refresh (no /csrfToken)
/authSimple JWT (facade JWT opt-in is on for this host)
/accountPasskey routes
/test/*Same test-only probes

Host defaults that differ from production library defaults:

  • SignIn.RequireConfirmedAccount = false (library facade default is true). Set AE_REQUIRE_CONFIRMED_ACCOUNT=true before launch to match the library default for confirmation-gated sign-in.
  • Confirm-email SPA redirect is unset. Set AE_CONFIRM_EMAIL_REDIRECT_URI (and AE_CONFIRM_EMAIL_ALLOWED_ORIGINS for an absolute URI) before launch. The launch whitelist passes both through exec env.
  • Password rules are relaxed (RequiredLength = 6, no digit/case/symbol requirements). Use Passw0rd!.
  • EF Core SQLite file under the temp directory (TestDbName). All users vanish when that file is removed; a new AE_RUN_ID uses a new file.
  • JWT signing key is the test-only value in Program.cs. Never treat it as a production secret.
  • IEmailSender<TUser> is a capturing sender. GET /test/mailbox lists {email,kind,body} (confirmation links are HTML-encoded). This is a test-only probe.
  • Software WebAuthn: POST /test/webauthn/attestation and POST /test/webauthn/assertion turn options JSON into credentialJson. These are test-only probes. The library still verifies attestation/assertion on /account/passkeys/register and /login.

Isolation: two hosts may run on different ports. Refuse to drive a port that was already listening when launch ran. Never kill by process name (pkill, killall).

Doctor

Run "$HARNESS" doctor before the first drive, after any failed drive, and whenever the host looks wrong. It is read-only and must report:

  1. $AE_RUN_DIR/host.pid exists and that PID is alive.
  2. AE_BASE_URL accepts connections (the port we chose).
  3. Compose host: GET /identity/csrfToken is 200 with a non-empty csrfToken. Bearer facade host: GET /identity/manage/info is 401.

If doctor fails, stop (if we started the process) and launch again. Do not keep driving a surprising instance.

Drive

Use the harness. It wraps curl with a cookie jar, retries 429 (login is a token bucket: 10 tokens, +2 / 10s), and can attach CSRF, Authorization: Bearer, and X-AuthEndpoints-Reauth.

bash
HARNESS=".cursor/skills/verify-authendpoints/scripts/ae-http.sh"
EMAIL="verify-${AE_RUN_ID}@test.local"
PASS='Passw0rd!'

"$HARNESS" post /identity/register "{\"email\":\"${EMAIL}\",\"password\":\"${PASS}\"}" --out register
"$HARNESS" post /identity/login "{\"email\":\"${EMAIL}\",\"password\":\"${PASS}\"}" --out login
"$HARNESS" get /identity/manage/info --out info
"$HARNESS" post --csrf /identity/logout --out logout

Stable handles (paths and headers), not coordinates:

HandleValue
Cookie loginPOST /identity/login JSON {email,password}. Query useCookies is ignored. Only useSessionCookies=false makes the cookie persistent.
Bearer loginPOST /identity/bearer/login with no cookie flags → JSON accessToken + refreshToken. ?useCookies=true issues the application cookie instead.
JWT loginPOST /auth/create JSON {email,password} → JSON accessToken; refresh is cookie AuthEndpoints.Jwt.RefreshToken.
CSRF fetchGET /identity/csrfToken or GET /auth/csrfToken
CSRF headerRequestVerificationToken (ASP.NET Core default; the library does not rename it)
ReAuth headerX-AuthEndpoints-Reauth with reauthToken from POST /identity/confirmIdentity
Session cookie.AspNetCore.Identity.Application
JWT refresh cookieAuthEndpoints.Jwt.RefreshToken
ReAuth cookieAuthEndpoints.ReAuth

Read the feature map before driving. Cover the mapped entry points for the feature you claim, not a single convenient alias.

AE_BEARER and AE_REAUTH are honored by the helper on every request when set:

bash
export AE_BEARER='...'    # Identity bearer or JWT access token
export AE_REAUTH='...'    # reauthToken from confirmIdentity
Show full SKILL.md (433 more words)Show less

Evidence

Default location: $AE_EVIDENCE_DIR (default /tmp/authendpoints-verify-$AE_RUN_ID/evidence). stop must leave this directory in place.

Do not commit captured dumps. If a run writes under .cursor/skills/verify-authendpoints/evidence/, gitignore keeps status/body/headers/transcripts, cookie jars, and run dirs out of the repo. Feature maps under features/ are tracked.

Each drive step that uses --out NAME writes:

  • NAME.request — method, URL, body
  • NAME.status — HTTP status code
  • NAME.headers — response headers (cookies, WWW-Authenticate)
  • NAME.body — response body

Proof standards:

  • Hit the real client paths in the table above, not /test/* as the only check, and not WebApplicationFactory internals.
  • Capture the action and the resulting state. Example: login headers (Set-Cookie) and a later GET /identity/manage/info (200 + email), not only the login status.
  • For mutations, prove a second read: after register+login, manage/info; after logout, manage/info is 401; after JWT create, GET /auth/verify with Authorization: Bearer is 204.
  • 429 is not success. Retry via the helper; if still 429, wait 10s and retry the step. Do not record a rate-limit as a product failure unless it persists on a fresh host.
  • Duplicate register emails return 200 (no enumeration). Do not treat that 200 as “a second user was created” without a distinct email.

Cloud Agent walkthroughs may copy evidence files to /opt/cursor/artifacts after the drive. Copying is extra; the named evidence dir is the source of truth.

Cleanup

bash
"$HARNESS" stop

Removes the host process started by this run. Does not delete $AE_EVIDENCE_DIR. Cookie jar and host log under $AE_RUN_DIR may be left; they are scratch. After a failed iteration, still stop so the port is free.

Never pkill -f AuthEndpoints or similar.

Helpers

bash
.cursor/skills/verify-authendpoints/scripts/ae-http.sh --help
CommandWhat it does
launchdotnet build the test project, start AuthEndpoints.Tests.dll on AE_BASE_URL, wait until /identity/csrfToken is 200 (or /identity/manage/info is 401 when AE_HOST_MODE=bearer-facade)
doctorPID + port + ready signal for the current AE_HOST_MODE
csrf [path]Print the token string
get <path> [--out N]GET with cookie jar
post [--csrf] <path> [json] [--out N]POST JSON; --csrf fetches a token first (JWT paths use /auth/csrfToken)
stopSIGTERM the launch PID

The script is executable (chmod +x if git lost the bit).

Feature map

Index: .cursor/skills/verify-authendpoints/features/README.md

Start with those files. Automated dotnet test AuthEndpoints.sln is allowed in addition after a live drive, not instead of it.

Passkeys (/account/passkeys) need a WebAuthn authenticator for a full ceremony. Do not claim passkey register/login verified from HTTP options JSON alone. Use the software authenticator at /test/webauthn/attestation and /test/webauthn/assertion (see Passkeys), then POST the returned credentialJson to the library routes. xUnit in tests/AuthEndpoints.Tests covers the same ceremony.

Maintenance

When the host mappings, CSRF header, or login query flags change, update this skill and the feature map. /maintain-verification-skill is the upkeep loop.

© madeyoga, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 11 other files (scripts) in .cursor/skills/verify-authendpoints of madeyoga/AuthEndpoints.

  • SKILL.md
  • evidence/.gitignore
  • features/README.md
  • features/bearer-facade.md
  • features/confirm-email.md
  • features/cookie-session.md
  • features/csrf.md
  • features/identity-bearer.md
  • features/passkeys.md
  • features/reauth.md
  • features/simple-jwt.md
  • scripts/ae-http.sh

Open the folder on GitHubat commit 70db53d

Compare with similar skills

Verify Authendpoints next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Verify Authendpoints compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Verify Authendpoints this skillmadeyoga/AuthEndpoints121—~2.7kAutomated safety check: PassMIT
Dotnet APInovotnyllc/dotnet-artisan233—~1.6kAutomated safety check: PassMIT
Writing Csharp Codemicrosoft-foundry/foundry-agent-webapp127—~3.2kAutomated safety check: NotesMIT
API Auditbriiirussell/cybersecurity-skills413—~2.8kAutomated safety check: NotesMIT
Frappe Errors APIImpertio-Studio/Frappe_Claude_Skill_Package1871 repos~4kAutomated safety check: PassMIT
Dotnet Webapidotnet/skills5.6k2 repos~5.5kAutomated safety check: PassMIT

Similar skills

  • Dotnet API

    novotnyllc/dotnet-artisan

    Builds ASP.NET Core APIs, EF Core data access, gRPC, SignalR, and backend services with middleware, security (OAuth, JWT, OWASP), resilience, messaging, OpenAPI, .NET Aspire, Semantic Kernel…

    233 GitHub stars~1.6k tokensUpdated today
    Backend & APIsAuto-check passed
  • Writing Csharp Code

    microsoft-foundry/foundry-agent-webapp

    Provides C and ASP.NET Core coding standards for this repository.

    127 GitHub stars~3.2k tokensUpdated 5 mo ago
    Backend & APIsAuto-check: notes
  • API Audit

    briiirussell/cybersecurity-skills

    Audit REST, GraphQL, and RPC APIs against the OWASP API Security Top 10 (2023).

    413 GitHub stars~2.8k tokensUpdated 4 mo ago
    Backend & APIsAuto-check: notes
  • Frappe Errors API

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when debugging or handling API errors in Frappe/ERPNext v14/v15/v16.

    187 GitHub starsUsed in 1 repo~4k tokens
    Backend & APIsAuto-check passed
  • Dotnet Webapi

    dotnet/skills

    Official

    Guides creation and modification of ASP.NET Core Web API endpoints with correct HTTP semantics, OpenAPI metadata, and error handling.

    5.6k GitHub starsUsed in 2 repos~5.5k tokens
    Backend & APIsAuto-check passed
  • C# and .NET Developer

    Jeffallan/claude-skills

    Guides C# work on .NET 8+: ASP.NET Core APIs, Entity Framework Core data access, Blazor apps and CQRS with MediatR, following a five-step build workflow.

    12k GitHub stars~1.3k tokensUpdated 5 days ago
    Backend & APIsAuto-check passed

More from madeyoga/AuthEndpoints

  • Authendpoints

    madeyoga/AuthEndpoints

    Compose AuthEndpoints 3.x in an ASP.NET Core host — AddAuthEndpoints, UseAuthEndpoints, MapAuthEndpoints, cookie vs Identity bearer vs Simple JWT, passkeys, CSRF, ReAuth, and production options.

    121 GitHub stars~3.1k tokensUpdated today
    Auto-check passed

Categories

Questions about Verify Authendpoints

What does Verify Authendpoints do?

Drive the AuthEndpoints HTTP API via the in-repo test host (cookie sessions, Identity bearer, Simple JWT, CSRF, ReAuth). Verify Authendpoints is an agent skill from madeyoga/AuthEndpoints. Drive the AuthEndpoints HTTP API via the in-repo test host (cookie sessions, Identity bearer, Simple JWT, CSRF, ReAuth).

When should I use Verify Authendpoints?

Verify Authendpoints fits situations like: verifying a change to src/AuthEndpoints; tests/AuthEndpoints.Tests; proving register/login/session/token behavior; A task needs a live auth API instead of only dotnet test.

How do I install Verify Authendpoints in Claude Code?

Run `npx skills add madeyoga/AuthEndpoints --skill verify-authendpoints -a claude-code`. Or copy the skill folder (.cursor/skills/verify-authendpoints in madeyoga/AuthEndpoints) into .claude/skills/verify-authendpoints in your project. Claude Code loads it when a task matches its description.

How do I install Verify Authendpoints in Codex?

Run `npx skills add madeyoga/AuthEndpoints --skill verify-authendpoints -a codex`. Or copy the skill folder (.cursor/skills/verify-authendpoints in madeyoga/AuthEndpoints) into .agents/skills/verify-authendpoints in your project. Codex loads it when a task matches its description.

Can I use Verify Authendpoints in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add madeyoga/AuthEndpoints --skill verify-authendpoints -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verify-authendpoints, .gemini/skills/verify-authendpoints, .github/skills/verify-authendpoints and .opencode/skills/verify-authendpoints in your project.

What does Verify Authendpoints need to run?

Going by SKILL.md and its folder, Verify Authendpoints needs a shell for the scripts in its folder and the command-line tools its instructions call (dotnet). Our summary lists: A Bash shell.

Does Verify Authendpoints access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Verify Authendpoints safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Verify Authendpoints use?

Verify Authendpoints is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Verify Authendpoints use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Verify Authendpoints?

Skills that share tags, products or a category with Verify Authendpoints: Dotnet API (novotnyllc/dotnet-artisan, 233 stars), Writing Csharp Code (microsoft-foundry/foundry-agent-webapp, 127 stars), API Audit (briiirussell/cybersecurity-skills, 413 stars) and Frappe Errors API (Impertio-Studio/Frappe_Claude_Skill_Package, 187 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Verify Authendpoints?

madeyoga (a GitHub user) maintains it in madeyoga/AuthEndpoints, which has 121 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 8, 2026.

Source: madeyoga/AuthEndpoints on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.