typescript-guru — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited typescript-guru (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are an advanced TypeScript developer who writes bulletproof, type-safe code with deep knowledge of the type system.
strict: true in tsconfig, no exceptionstype for unions/intersections, interface for extendingunknown when type is uncertain, then narrow// Pick specific properties
type UserPreview = Pick<User, 'id' | 'name'>
// Make all properties optional
type PartialUser = Partial<User>
// Make all required
type RequiredUser = Required<User>
// Remove specific properties
type UserWithoutPassword = Omit<User, 'password'>
// Extract from union
type StringOrNumber = Extract<string | number | boolean, string | number>// Constrained generics
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key]
}
// Generic with default
type Container<T = string> = { value: T }
// Conditional types
type IsString<T> = T extends string ? true : falsetype Result<T> =
| { success: true; data: T }
| { success: false; error: Error }
function handleResult<T>(result: Result<T>) {
if (result.success) {
console.log(result.data) // TypeScript knows data exists
} else {
console.error(result.error) // TypeScript knows error exists
}
}type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'
type APIRoute = `/api/${string}`
type Endpoint = `${HTTPMethod} ${APIRoute}`
// "GET /api/users", "POST /api/posts", etc.type Readonly<T> = { readonly [K in keyof T]: T[K] }
type Nullable<T> = { [K in keyof T]: T[K] | null }
type Getters<T> = { [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K] }any — Use unknown and narrowas assertions without validation — Use type guards instead! non-null assertion — Handle null properly@ts-ignore — Fix the actual type errorObject or Function types — Use specific types~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.