CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

oauth2-skill

Implement OAuth2 authentication flows (authorization code, PKCE for SPAs), provider integration (Google, GitHub), callback handling, token exchange, session management, and CSRF protection.

Quality

73%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./auth/oauth2-skill/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly actionable skill body with executable code covering both Node.js and Python variants and sound security conventions (PKCE, state validation, httpOnly cookies). Its main weaknesses are inlined bulk that should live in reference files, duplicated provider callback code, and the absence of an explicit ordered workflow with validation checkpoints.

Suggestions

Move the full controller code, user-linking service, and Python variant into references/ files (e.g., references/controller.md, references/python.md), keeping SKILL.md as an overview with clearly signaled links.

Factor the near-identical Google and GitHub callback handlers into a single shared handler parameterized by provider config to cut ~50 duplicated lines.

Add a short ordered workflow section (redirect -> validate state -> exchange tokens -> link user -> issue session) with an explicit verification step for testing the completed flow.

DimensionReasoningScore

Conciseness

Mostly efficient with tight comments, but there is noticeable slack: the frontmatter description is restated as an opening blockquote, the prerequisites duplicate the frontmatter compatibility field, and the Google and GitHub callback handlers are near-identical ~50-line duplicates that could be factored.

3 / 5

Actionability

Concrete, mostly executable guidance: complete provider configs, PKCE helpers, token exchange, scaffold commands, and env-var setup. Minor gaps: 'findOAuthAccount', 'createUser', and 'generateTokenPair' are unimplemented stubs, and the session middleware (lib/session.ts) referenced by req.session is never shown.

4 / 5

Workflow Clarity

The sequence is clear via Key Conventions plus the controller code, with an explicit state-validation checkpoint and error-redirect handling. Minor gaps: no ordered step-by-step workflow section, and no verification step for the issued tokens (e.g., testing the session).

4 / 5

Progressive Disclosure

Sections are well-organized with clear headers, but roughly 300 lines of provider configs, controllers, and a user-linking service are inlined directly in SKILL.md with no reference files in the bundle; this content clearly belongs in separate one-level-deep reference files.

3 / 5

Total

14

/

20

Passed

Description

71%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, specific description that clearly communicates what the skill does across the full OAuth2 flow, hindered mainly by the absence of any explicit 'when to use' trigger clause. Keyword coverage is good but lacks common synonyms like 'login' or 'sign in'.

Suggestions

Append an explicit trigger clause, e.g. 'Use when the user mentions OAuth2, social login, sign in with Google/GitHub, or needs callback/token handling.'

Add natural user phrasings and synonyms such as 'login', 'sign in', 'auth', and 'OAuth' to broaden trigger coverage.

DimensionReasoningScore

Specificity

The description lists multiple concrete, specific actions — 'authorization code, PKCE for SPAs', 'provider integration (Google, GitHub)', 'callback handling', 'token exchange', 'session management, and CSRF protection' — giving comprehensive end-to-end coverage of the OAuth2 implementation domain.

5 / 5

Completeness

The 'what' is clearly and concretely answered, but there is no 'Use when...' clause or equivalent explicit trigger guidance; the when is only weakly implied by the topic, which caps completeness at 3.

3 / 5

Trigger Term Quality

Good natural keyword coverage ('OAuth2', 'authentication', 'Google', 'GitHub', 'token', 'CSRF'), but a few common user phrasings are missing, such as 'login', 'sign in with Google', or 'auth', and no 'OAuth' variant without the '2'.

4 / 5

Distinctiveness Conflict Risk

A clear niche (OAuth2 provider flows with PKCE, named providers) that is mostly distinct; only minor overlap risk with closely related auth skills like a JWT or session-management skill.

4 / 5

Total

16

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

achreftlili/deep-dev-skills

Path

auth/oauth2-skill/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.