CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/mfa-flow-test-author

Use when multi-factor login needs automated tests or a new second factor is being added: deterministic TOTP and HOTP codes, SMS or email OTP, WebAuthn passkeys via the Chrome virtual authenticator, recovery codes, enrollment and step-up challenges.

Quality

83%

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

Overview
Quality
Evals
Security
Files

Quality

Content

81%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 well-structured, highly actionable per-flow test recipe with executable code, RFC test vectors, a coverage checklist, and an anti-patterns table. The main defects are a minor internal inconsistency (Step 6 uses `totp.now()` against its own clock-injection guidance), a little textbook explanation that could be trimmed, and room to offload more per-factor detail into references.

Suggestions

Fix Step 6's `test_totp_enrollment_verify_confirms_factor` to use `totp.at(for_time=fixed_time)` with clock injection, matching the skill's own anti-patterns guidance.

Trim textbook restatements Claude already knows (the HOTP secret/counter definition, the navigator.credentials.create()/get() sentence) to save tokens.

Follow the Step 4 pattern by moving the longer per-factor test listings (e.g., TOTP/HOTP/SMS suites) into references/ files, keeping SKILL.md as a leaner overview.

DimensionReasoningScore

Conciseness

The body is dense with executable pytest code and brief, testability-relevant guidance; nearly every token earns its place ("A code more than valid_window steps old must be rejected", the anti-patterns table). Minor over-explanation of concepts Claude already knows keeps it at 4 rather than 5: "HOTP(K, C) is counter-based: K is the shared secret, C the counter" and "Registration calls navigator.credentials.create(); authentication calls navigator.credentials.get()" restate textbook knowledge.

4 / 5

Actionability

Guidance is concrete and near copy-paste ready: full pytest functions, RFC test vectors with expected outputs ("secret `12345678901234567890`, counter 0 -> `755224`"), exact CDP commands ("WebAuthn.addVirtualAuthenticator" with complete options), and a runnable fixture. It falls short of 5 because Step 6's enrollment test calls `totp.now()` without clock injection — directly contradicting the skill's own anti-patterns row "Call `totp.now()` without clock injection" — and several examples silently assume project-specific fixtures (`db.set_totp_secret`, `sms_stub`, `freeze_clock`) whose provisioning is only sketched.

4 / 5

Workflow Clarity

The process is clearly sequenced: shared setup, then Steps 1-7 (one per mechanism, each with happy-path and negative cases), a Step 8 end-to-end coverage checklist that functions as an explicit validation checkpoint for test completeness, plus an anti-patterns table with failure causes and fixes. This matches the 5 anchor's clear sequence with checklists; the operations are test authoring, so no destructive/batch validation cap applies.

5 / 5

Progressive Disclosure

The single bundle file (references/webauthn-virtual-authenticator.md) exists and is well signaled at exactly the right point — "Full authentication round-trip, user-verification enforcement, and server-side verification... [references/webauthn-virtual-authenticator.md]" — and is one level deep with no nested references. It stays at 4 rather than 5 because the ~400-line body inlines substantial per-factor detail (all of Steps 1-3 and 5-7 are full code listings) that could partially be split out the way Step 4 was, leaving SKILL.md closer to an overview.

4 / 5

Total

17

/

20

Passed

Description

78%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 description with an explicit dual-trigger 'Use when' clause and specific, comprehensive coverage of all six second-factor mechanisms. The main gaps are the absence of common synonyms (MFA, 2FA, two-factor) and a topic-list style 'what' that lacks explicit action verbs.

Suggestions

Lead with an explicit action verb for the 'what' (e.g., "Write automated tests for multi-factor login: deterministic TOTP and HOTP codes...") so the capability is stated, not just the topic list.

Add natural synonyms users say aloud — "MFA", "2FA", "two-factor" — to broaden trigger coverage without lengthening the description.

DimensionReasoningScore

Specificity

The description enumerates concrete, specific items — "deterministic TOTP and HOTP codes", "WebAuthn passkeys via the Chrome virtual authenticator", "recovery codes, enrollment and step-up challenges" — covering all six second-factor mechanisms with only minor gaps. It falls short of the 5 anchor because the items are topic noun-phrases rather than explicit action verbs (e.g., "Write deterministic TOTP test fixtures"), and above 3 because it lists many specific capabilities rather than just 1-2.

4 / 5

Completeness

The 'when' is explicit and concrete ("Use when multi-factor login needs automated tests or a new second factor is being added"), and the 'what' is conveyed via the colon-separated list of covered mechanisms. It sits at 4 rather than 5 because the 'what' is expressed as a topic list without an explicit capability verb, so what the skill actually does (author/generate these tests) must be lightly inferred from the when-clause.

4 / 5

Trigger Term Quality

Natural phrases users would say are well represented: "multi-factor login", "automated tests", "second factor", "passkeys", "recovery codes", "step-up". A few common synonyms are missing — "MFA"/"2FA"/"two-factor"/"2-step verification" never appear as literal trigger terms — which keeps it below the comprehensive-synonym coverage of the 5 anchor and clearly above the 3 anchor's missing-variations profile.

4 / 5

Distinctiveness Conflict Risk

It carves out a clear niche — second-factor test automation — with distinct triggers ("TOTP", "HOTP", "WebAuthn passkeys", "recovery codes", "step-up") that are unlikely to fire for the neighboring first-factor OAuth or session-management skills. This matches the 5 anchor's clear-niche/minimal-conflict profile.

5 / 5

Total

17

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Reviewed

On this page