CtrlK
BlogDocsLog inGet started
Tessl Logo

simon/skills

Auto-generated tile from GitHub (10 skills)

92

1.16x
Quality

94%

Does it follow best practices?

Impact

92%

1.16x

Average score across 44 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

Evaluation results

93%

18%

Shipping a Multi-Region Payment Service

Criteria
Without context
With context

env-schema used

0%

100%

TypeBox schema for config

0%

100%

dotenv option used

0%

0%

No config files

100%

100%

No per-env object

100%

100%

No NODE_ENV conditionals

100%

100%

Config as fastify-plugin

100%

100%

Config decorated on instance

100%

100%

TypeScript declaration merging

100%

100%

Fail-fast on missing vars

100%

100%

No process.env in routes/handlers

100%

77%

100%

24%

Authentication Service for a SaaS Platform

Criteria
Without context
With context

@fastify/jwt used

100%

100%

jwtVerify for auth

100%

100%

@node-rs/argon2 used

0%

100%

Argon2 parameters set

100%

100%

Rate limiting on auth routes

100%

100%

Redis backend for rate limit

100%

100%

Redis rationale documented

100%

100%

close-with-grace used

0%

100%

app.close() in shutdown

100%

100%

fp() for auth plugin

100%

100%

Argon2 rationale documented

100%

100%

100%

12%

Writing a Test Suite for an Inventory API

Criteria
Without context
With context

node:test imported

100%

100%

node --test in package.json

100%

100%

inject() used for requests

100%

100%

t.assert.* used

0%

100%

app.ready() awaited

100%

100%

app.close() in teardown

100%

100%

200 routes tested

100%

100%

404 route tested

100%

100%

Validation error tested

100%

100%

Warehouse filter tested

100%

100%

100%

Product Catalog API for an E-Commerce Platform

Criteria
Without context
With context

TypeBox imported

100%

100%

Static type extraction

100%

100%

TypeBoxTypeProvider wired

100%

100%

Response schema on GET /

100%

100%

Response schema on POST /

100%

100%

Response schema on GET /:id

100%

100%

Internal fields stripped

100%

100%

Body validation schema

100%

100%

Enum for category

100%

100%

Schemas in dedicated file

100%

100%

100%

2%

Set Up Agent Instructions for a Node.js Monorepo

Criteria
Without context
With context

No tech stack summaries

100%

100%

No directory structure

100%

100%

No generic best practices

100%

100%

No tooling-enforced rules

100%

100%

Non-discoverable commands present

100%

100%

Landmines section present

100%

100%

Instructions are actionable

100%

100%

Hierarchical recommendation

80%

100%

Uses recommended sections

100%

100%

Short and high-signal

100%

100%

82%

14%

Consistent Error Handling for a Multi-Tenant SaaS API

Criteria
Without context
With context

@fastify/error imported

100%

100%

Custom error types created

100%

100%

@fastify/sensible registered

100%

100%

Sensible helper methods used

100%

0%

Global setErrorHandler registered

0%

100%

Error handler logs with request.log

37%

100%

Structured error response shape

50%

100%

Plugin-scoped error handler

100%

100%

setNotFoundHandler configured

0%

0%

5xx details hidden in prod

100%

100%

100%

Security Hardening for a Healthcare Web API

Criteria
Without context
With context

@fastify/cors registered

100%

100%

No wildcard CORS origin

100%

100%

CORS credentials enabled

100%

100%

CORS maxAge configured

100%

100%

@fastify/helmet registered

100%

100%

HSTS configured

100%

100%

Content-Security-Policy configured

100%

100%

Frame protection configured

100%

100%

Security documented

100%

100%

No manual security headers

100%

100%

94%

13%

Restructure Documentation for a Configuration Library

Criteria
Without context
With context

Four doc types present

100%

100%

Tutorial title starts with verb

40%

100%

How-to title is task-framed

40%

50%

Reference entry format

70%

100%

Explanation title is concept-framed

100%

100%

Single type per document

80%

100%

Tutorial has numbered steps

100%

100%

How-to skips background theory

80%

90%

Cross-links between types

100%

100%

Reference avoids instructions

100%

100%

97%

-3%

Add User Authentication to a Fastify API

Criteria
Without context
With context

@fastify/oauth2 used

100%

100%

PKCE S256 configured

100%

100%

fastify-plugin wrapper used

100%

100%

JWT validates exp claim

100%

100%

JWT validates iss claim

100%

100%

JWT validates aud claim

100%

100%

Asymmetric signing used

100%

62%

Tokens not in localStorage

100%

100%

No implicit flow

100%

100%

Refresh token rotation

100%

100%

State validation present

100%

100%

96%

20%

Automate Feature Branch PR Submission

Criteria
Without context
With context

gh CLI only

100%

100%

--body-file flag

0%

100%

Explicit --base and --head

100%

100%

CI check wait command

66%

100%

No AI co-authorship

100%

100%

No signing config changes

100%

100%

Structured PR body content

100%

100%

Shell script artifact

100%

100%

Rebase validation step

50%

50%

Temp file cleanup

50%

100%

100%

18%

Protecting a High-Traffic Product Catalogue API from Overload

Criteria
Without context
With context

@fastify/under-pressure registered

100%

100%

maxEventLoopDelay set

100%

100%

pressureHandler sends 503

0%

100%

Additional pressure threshold

100%

100%

async-cache-dedupe imported

100%

100%

cache.define() used

100%

100%

Cache TTL configured

100%

100%

Cache storage type set

0%

100%

Response schemas on all routes

100%

100%

Cached function called in handler

100%

100%

100%

10%

Modernize the Linting Setup for a Node.js Library

Criteria
Without context
With context

neostandard installed

100%

100%

standard uninstalled

100%

100%

Flat config file

100%

100%

neostandard in config

100%

100%

lint script uses eslint

100%

100%

lint:fix script present

100%

100%

CI uses non-fix run

100%

100%

standard config removed

100%

100%

lint-staged uses eslint

100%

100%

migrate command used

0%

100%

eslint@9 installed

100%

100%

95%

5%

Preparing Commits for a Node.js Core Module Contribution

Criteria
Without context
With context

Subsystem prefix

100%

100%

Imperative subject line

100%

100%

No AI co-authorship

100%

100%

core-validate-commit used

100%

100%

Validation passed

100%

100%

Fixes/Refs footer format

100%

100%

No generic signatures

0%

50%

100%

Hardening Logging in a Fintech API

Criteria
Without context
With context

Structured log calls

100%

100%

redact option present

100%

100%

Authorization header redacted

100%

100%

Password/token fields redacted

100%

100%

Censor value set

100%

100%

LOG_LEVEL from env

100%

100%

request.log in handlers

100%

100%

Child logger with context

100%

100%

No console.log usage

100%

100%

No pino-pretty in production logger

100%

100%

100%

4%

Order Management API with PostgreSQL

Criteria
Without context
With context

@fastify/postgres used

100%

100%

No raw pg in routes

100%

100%

Database plugin uses fp()

100%

100%

Plugin name declared

100%

100%

Repository object per entity

100%

100%

Repositories decorated on instance

100%

100%

Pool max configured

100%

100%

onClose cleanup hook

60%

100%

DATABASE_URL from config/env

100%

100%

Parameterised queries only

100%

100%

87%

19%

Code Snippet Image Pipeline for Documentation Site

Criteria
Without context
With context

snipgrapher init first

0%

16%

Named profile usage

100%

100%

Profile defined in config

100%

100%

Output verification step

40%

100%

Explicit output path and extension

62%

62%

Batch --out-dir flag

100%

100%

Batch --concurrency flag

100%

100%

npx fallback pattern

70%

100%

doctor validation step

0%

100%

Env var override documented

100%

100%

Shell script artifact

100%

100%

98%

-2%

High-Throughput Merchant DNS Routing Service

Criteria
Without context
With context

dns.resolve* used

100%

100%

No dns.lookup

100%

80%

UV_THREADPOOL_SIZE via env

100%

100%

No process.env assignment

100%

100%

DNS result caching

100%

100%

Cache expiry

100%

100%

Thread pool monitoring

100%

100%

100%

Eliminate `any` Types from a Data Pipeline Utility Library

Criteria
Without context
With context

No any types remain

100%

100%

tsc workflow logged

100%

100%

Generics used for containers

100%

100%

Type guards present

100%

100%

Assertion functions use function keyword

100%

100%

Type tests file present

100%

100%

unknown used for external data

100%

100%

No enums introduced

100%

100%

Utility types used appropriately

100%

100%

Call sites still compile

100%

100%

100%

16%

Project Bootstrap: Node.js TypeScript Service

Criteria
Without context
With context

Type stripping usage

100%

100%

import type for type imports

100%

100%

No enums

100%

100%

No namespaces

100%

100%

No constructor parameter properties

100%

100%

.ts import extensions

100%

100%

tsconfig noEmit

100%

100%

tsconfig verbatimModuleSyntax

0%

100%

tsconfig isolatedModules

0%

100%

package.json type module

100%

100%

Node engines field

100%

100%

72%

-10%

Set Up Agent Instructions for a Growing Python Monorepo

Criteria
Without context
With context

uv over pip documented

100%

60%

Custom test flags documented

100%

0%

Legacy module landmine documented

100%

100%

Hierarchical AGENTS recommendation

0%

0%

No tech stack summary

100%

100%

No directory overview

100%

100%

Recommended section headings

0%

50%

No generic best practices

100%

100%

Source file evidence

100%

100%

Actionable instructions

100%

100%

No CI-enforced rules

100%

100%

63%

33%

Product Catalog Caching Service

Criteria
Without context
With context

async-cache-dedupe usage

0%

100%

Cache TTL configured

0%

100%

p-limit or p-map usage

0%

0%

Factory function pattern

0%

80%

Named exports

100%

100%

Env-schema or Zod validation

0%

0%

No NODE_ENV branching

100%

100%

No swallowed errors

100%

100%

Error cause chain

0%

0%

97%

27%

Add SSO Login to a Fastify Web Portal

Criteria
Without context
With context

@fastify/oauth2 package

100%

100%

fastify-plugin wrapping

100%

100%

PKCE S256 method

100%

100%

State generation uses randomUUID

0%

100%

State validation in checkStateFunction

0%

70%

getAccessTokenFromAuthorizationCodeFlow

100%

100%

HTTPS callbackUri

100%

100%

Tokens stored in session

0%

100%

No raw token logging

100%

100%

No implicit flow

100%

100%

87%

-5%

Domain-Safe Payment Processing Types

Criteria
Without context
With context

Opaque/branded type definition

100%

100%

Assertion function keyword

100%

100%

Type predicate function

100%

100%

No raw cast without validation

100%

100%

unknown for unvalidated input

100%

30%

Discriminated union

100%

100%

Exhaustiveness check

100%

100%

Before/after illustration

20%

40%

No any in validators

100%

100%

92%

1%

Set Up Automated Lint Enforcement for the Reporting Service

Criteria
Without context
With context

CI lint step present

100%

100%

No --fix in CI

100%

100%

CI lint is required

100%

100%

lint-staged used

100%

100%

lint-staged uses eslint

58%

100%

lint-staged file globs

50%

50%

Node version aligned

100%

60%

lint script in package.json

100%

100%

Flat config file

100%

100%

Fix reserved for local

100%

100%

90%

-10%

Automating Changelog Snippet Images in CI

Criteria
Without context
With context

Batch command used

100%

100%

Glob pattern in batch

100%

100%

Out-dir flag used

100%

100%

Concurrency or manifest flag

100%

0%

Env var for CI defaults

100%

100%

CLI flag for override

100%

100%

Output verification step

100%

100%

Commands and paths documented

100%

100%

68%

43%

CI Snippet Rendering Pipeline

Criteria
Without context
With context

SNIPGRAPHER_THEME env var

0%

100%

SNIPGRAPHER_FORMAT env var

0%

100%

SNIPGRAPHER_PROFILE env var

0%

100%

Additional env vars

0%

100%

CLI flag override

20%

100%

Precedence documented

25%

25%

Explicit output path

50%

100%

Output size verification

90%

100%

Npx --yes syntax

0%

0%

Commands logged

100%

100%

Verbose on failure

0%

0%

Config-first pattern

0%

20%

100%

32%

Audit and Slim Down a Bloated AGENTS.md

Criteria
Without context
With context

Tech stack removed

0%

100%

Directory overview removed

0%

100%

Generic advice removed

100%

100%

Linter-enforced rule removed

100%

100%

DB-wipe landmine retained

100%

100%

Non-standard tooling retained

100%

100%

Integration test caveat retained

100%

100%

Recommended sections used

0%

100%

No architecture narrative

100%

100%

Result is shorter

100%

100%

No boilerplate header

0%

100%

100%

54%

Add Linting to the Inventory Service

Criteria
Without context
With context

eslint devDependency

100%

100%

neostandard devDependency

0%

100%

Flat config file

100%

100%

No legacy rc file

100%

100%

neostandard as base

0%

100%

lint script uses eslint

100%

100%

lint:fix script present

100%

100%

ts:true for TypeScript

0%

100%

resolveIgnoresFromGitignore

0%

100%

TS rules scoped to TS files

22%

100%

No duplicate JS/TS rules

0%

100%

90%

25%

Webhook Receiver Service

Criteria
Without context
With context

close-with-grace usage

0%

100%

Health returns 503 on shutdown

100%

100%

No manual unhandledRejection

100%

100%

pino for logging

100%

100%

pino redact config

100%

100%

Child logger per request

100%

100%

No NODE_ENV

0%

0%

import type usage

100%

100%

.ts import extensions

0%

100%

100%

25%

Set Up Agent Instructions for a Growing Monorepo

Criteria
Without context
With context

Hierarchical structure

100%

100%

Scope routing section

100%

100%

No tech stack in root

20%

100%

No directory structure

0%

100%

Recommended section name

0%

100%

CI quirk captured

100%

100%

No generic advice

100%

100%

Source files checked

100%

100%

CLI landmine retained

100%

100%

100%

40%

Secure an Internal API Gateway with Token Validation

Criteria
Without context
With context

@fastify/jwt package

0%

100%

Asymmetric algorithm used

100%

100%

exp claim validated

60%

100%

iss claim validated

40%

100%

aud claim validated

46%

100%

onRequest hook pattern

0%

100%

401 with error field

90%

100%

Refresh token rotation

93%

100%

sub claim used

100%

100%

100%

10%

Fix Throughput Degradation in a High-Load API Gateway

Criteria
Without context
With context

UV_THREADPOOL_SIZE in env

100%

100%

No runtime process.env set

100%

100%

UV_THREADPOOL_SIZE within limit

100%

100%

dns.resolve* replaces lookup

100%

100%

dns.lookup not used in hot path

100%

100%

DNS result caching

100%

100%

Thread pool monitoring

66%

100%

File streaming used

100%

100%

Pool size formula applied

40%

100%

Worker threads for CPU work

100%

100%

100%

12%

Modernize the Linting Setup

Criteria
Without context
With context

--migrate flag used

0%

100%

standard uninstalled

100%

100%

standard config key removed

100%

100%

lint script updated

100%

100%

lint:fix script updated

100%

100%

Flat config file present

100%

100%

No legacy rc file

100%

100%

neostandard devDependency

100%

100%

eslint devDependency

100%

100%

Migration steps separated

100%

100%

Lint runner is eslint

100%

100%

100%

Prepare Node.js Core Contribution Commits

Criteria
Without context
With context

subsystem prefix format

100%

100%

Imperative description

100%

100%

Fixes: footer with full URL

100%

100%

core-validate-commit used

100%

100%

Validation passes

100%

100%

No AI co-authorship lines

100%

100%

No trailing AI attribution

100%

100%

100%

OAuth Login Integration for a Fastify Web App

Criteria
Without context
With context

@fastify/oauth2 package

100%

100%

fastify-plugin wrapper

100%

100%

PKCE S256 method

100%

100%

State generation

100%

100%

State validation

100%

100%

Authorization code exchange method

100%

100%

No raw token logging

100%

100%

Session token storage

100%

100%

Correct dependency set

100%

100%

41%

-24%

Add User Login to the Fastify API

Criteria
Without context
With context

Correct OAuth package

100%

100%

fastify-plugin wrapper

100%

20%

PKCE method S256

100%

0%

State generation with randomUUID

0%

0%

State stored in session

0%

0%

State validated on callback

20%

0%

No token logging

100%

100%

Tokens stored in session

30%

100%

Authorization code flow only

100%

100%

Env vars for credentials

100%

25%

100%

53%

Automate Pull Request Workflow

Criteria
Without context
With context

Uses --body-file flag

0%

100%

Explicit --base flag

100%

100%

Explicit --head flag

100%

100%

CI watch command

0%

100%

Stderr redirect in CI watch

0%

100%

Temp file for PR body

0%

100%

gh CLI only

100%

100%

No AI attribution

100%

100%

PR number used for checks

70%

100%

92%

8%

Developer Documentation Image Pipeline Setup

Criteria
Without context
With context

Config filename

100%

100%

Init command used

0%

0%

theme field

100%

100%

fontFamily field

100%

100%

lineNumbers field

100%

100%

windowControls field

100%

100%

backgroundStyle field

100%

100%

defaultProfile field

100%

100%

Named profiles defined

100%

100%

Social profile has watermark

100%

100%

Doctor validation

100%

100%

Themes list command

0%

100%

Render uses named profile

100%

100%

Explicit output path

100%

100%

88%

Fix High-Latency Bottleneck in Customer Verification Service

Criteria
Without context
With context

dns.resolve4 instead of dns.lookup

100%

100%

No dns.lookup in fixed code

100%

100%

Streaming for large file

0%

0%

UV_THREADPOOL_SIZE in startup script

100%

100%

UV_THREADPOOL_SIZE value > 4

100%

100%

No runtime process.env assignment

100%

100%

monitorEventLoopDelay used

100%

100%

p99 latency check

100%

100%

85%

5%

Microservice Routing Layer: Latency Spike Investigation

Criteria
Without context
With context

No process.env thread pool

100%

100%

Startup env var for pool size

100%

100%

dns.resolve*() not dns.lookup()

100%

100%

DNS result caching

100%

100%

Stream-based file reading

0%

0%

Thread pool saturation monitoring

50%

100%

Thread pool size > default

100%

100%

96%

40%

Document a Developer Library for Two Audiences

Criteria
Without context
With context

Tutorial verb title

0%

100%

Tutorial goal intro

0%

100%

Tutorial prerequisites section

0%

100%

Tutorial step results

30%

100%

Tutorial action focus

50%

60%

Reference noun title

100%

100%

Reference entry format

86%

100%

Reference no instructions

100%

100%

Document type separation

100%

100%

Cross-link present

100%

100%

97%

23%

Getting Started Guide for a CLI Deployment Tool

Criteria
Without context
With context

Verb-start title

40%

100%

Goal section present

100%

100%

Prerequisites section

80%

100%

Numbered steps

100%

90%

Verifiable result per step

100%

100%

Minimal explanation

40%

90%

Final outcome stated

100%

100%

Single doc type

26%

93%

Beginner audience framing

90%

100%

96%

33%

Onboarding Documentation for SwiftFetch

Criteria
Without context
With context

Verb-based title

25%

100%

Goal/intro statement

100%

100%

Prerequisites section

100%

100%

Numbered steps

60%

80%

Verifiable result per step

65%

100%

Minimal explanation in steps

66%

86%

Final outcome statement

25%

100%

No reference tables mixed in

55%

100%

No conceptual digression sections

75%

100%

90%

-4%

Diagnose and Fix V8 Performance Regression in Analytics Processor

Criteria
Without context
With context

trace-opt/trace-deopt flags

100%

100%

Checkpoint before profiling

100%

100%

--prof flag used

100%

100%

--prof-process output

100%

100%

Consistent property order fix

100%

100%

No delete on properties

100%

100%

Rest params instead of arguments

100%

100%

Class or constructor for consistent shape

50%

16%

Type stability fix

100%

100%

Evaluated
Agent
Claude
Model
Claude Sonnet 4.6

Table of Contents

Shipping a Multi-Region Payment ServiceAuthentication Service for a SaaS PlatformWriting a Test Suite for an Inventory APIProduct Catalog API for an E-Commerce PlatformSet Up Agent Instructions for a Node.js MonorepoConsistent Error Handling for a Multi-Tenant SaaS APISecurity Hardening for a Healthcare Web APIRestructure Documentation for a Configuration LibraryAdd User Authentication to a Fastify APIAutomate Feature Branch PR SubmissionProtecting a High-Traffic Product Catalogue API from OverloadModernize the Linting Setup for a Node.js LibraryPreparing Commits for a Node.js Core Module ContributionHardening Logging in a Fintech APIOrder Management API with PostgreSQLCode Snippet Image Pipeline for Documentation SiteHigh-Throughput Merchant DNS Routing ServiceEliminate `any` Types from a Data Pipeline Utility LibraryProject Bootstrap: Node.js TypeScript ServiceSet Up Agent Instructions for a Growing Python MonorepoProduct Catalog Caching ServiceAdd SSO Login to a Fastify Web PortalDomain-Safe Payment Processing TypesSet Up Automated Lint Enforcement for the Reporting ServiceAutomating Changelog Snippet Images in CICI Snippet Rendering PipelineAudit and Slim Down a Bloated AGENTS.mdAdd Linting to the Inventory ServiceWebhook Receiver ServiceSet Up Agent Instructions for a Growing MonorepoSecure an Internal API Gateway with Token ValidationFix Throughput Degradation in a High-Load API GatewayModernize the Linting SetupPrepare Node.js Core Contribution CommitsOAuth Login Integration for a Fastify Web AppAdd User Login to the Fastify APIAutomate Pull Request WorkflowDeveloper Documentation Image Pipeline SetupFix High-Latency Bottleneck in Customer Verification ServiceMicroservice Routing Layer: Latency Spike InvestigationDocument a Developer Library for Two AudiencesGetting Started Guide for a CLI Deployment ToolOnboarding Documentation for SwiftFetchDiagnose and Fix V8 Performance Regression in Analytics Processor