Code Review Checklist
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
TypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling.
$ npx skills add cin12211/orca-q --skill typescript-expert -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cin12211/orca-q typescript-expert --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agent/skills/typescript-expert .claude/skills/typescript-expert && rm -rf skills-srcUse ~/.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/
Install the "typescript-expert" agent skill from https://github.com/cin12211/orca-q/tree/main/.agent/skills/typescript-expert into .claude/skills/typescript-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "typescript-expert", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cin12211/orca-q/tree/main/.agent/skills/typescript-expertType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cin12211/orca-q --skill typescript-expert -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cin12211/orca-q typescript-expert --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agent/skills/typescript-expert .agents/skills/typescript-expert && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "typescript-expert" agent skill from https://github.com/cin12211/orca-q/tree/main/.agent/skills/typescript-expert into .agents/skills/typescript-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "typescript-expert", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cin12211/orca-q --skill typescript-expert -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cin12211/orca-q typescript-expert --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agent/skills/typescript-expert .cursor/skills/typescript-expert && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "typescript-expert" agent skill from https://github.com/cin12211/orca-q/tree/main/.agent/skills/typescript-expert into .cursor/skills/typescript-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "typescript-expert", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cin12211/orca-q.git --path .agent/skills/typescript-expert--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cin12211/orca-q --skill typescript-expert -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cin12211/orca-q typescript-expert --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agent/skills/typescript-expert .gemini/skills/typescript-expert && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "typescript-expert" agent skill from https://github.com/cin12211/orca-q/tree/main/.agent/skills/typescript-expert into .gemini/skills/typescript-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "typescript-expert", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cin12211/orca-q typescript-expertInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cin12211/orca-q --skill typescript-expert -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agent/skills/typescript-expert .github/skills/typescript-expert && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "typescript-expert" agent skill from https://github.com/cin12211/orca-q/tree/main/.agent/skills/typescript-expert into .github/skills/typescript-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "typescript-expert", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cin12211/orca-q --skill typescript-expert -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cin12211/orca-q typescript-expert --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agent/skills/typescript-expert .opencode/skills/typescript-expert && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "typescript-expert" agent skill from https://github.com/cin12211/orca-q/tree/main/.agent/skills/typescript-expert into .opencode/skills/typescript-expert/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "typescript-expert", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
typescript-expertTypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling.
Typescript Expert is an agent skill from cin12211/orca-q. TypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling. Use PROACTIVELY for any TypeScript/JavaScript issues including complex type gymnastics, build performance, debugging, and architectural decisions. If a specialized expert is a better fit, I will recommend switching and stop.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Monorepo tooling, Performance optimization and Type safety. It works with TypeScript and JavaScript. The repository describes itself as: The open source | Next Generation database editor. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3142fe6. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npxnodenpmeslintprettiervitestjestFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comegghead.iotypescriptlang.orgtype-level-typescript.combiomejs.devvitest.devFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Typescript Expert loads about 3.7k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 946 words of instructions outside code blocks.
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.
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); files beside SKILL.md are not scanned.
The full file from cin12211/orca-q at commit 3142fe6, republished under its MIT licence (© cin12211). 946 words, ~3,655 tokens.
.claude/skills/typescript-expert/SKILL.md (or your agent's skills folder).You are an advanced TypeScript expert with deep, practical knowledge of type-level programming, performance optimization, and real-world problem solving based on current best practices.
If the issue requires ultra-specific expertise, recommend switching and stop:
Example to output: "This requires deep bundler expertise. Please invoke: 'Use the typescript-build-expert subagent.' Stopping here."
Analyze project setup comprehensively:
Use internal tools first (Read, Grep, Glob) for better performance. Shell commands are fallbacks.
# Core versions and configuration
npx tsc --version
node -v
# Detect tooling ecosystem (prefer parsing package.json)
node -e "const p=require('./package.json');console.log(Object.keys({...p.devDependencies,...p.dependencies}||{}).join('\n'))" 2>/dev/null | grep -E 'biome|eslint|prettier|vitest|jest|turborepo|nx' || echo "No tooling detected"
# Check for monorepo (fixed precedence)
(test -f pnpm-workspace.yaml || test -f lerna.json || test -f nx.json || test -f turbo.json) && echo "Monorepo detected"After detection, adapt approach:
Identify the specific problem category and complexity level
Apply the appropriate solution strategy from my expertise
Validate thoroughly:
# Fast fail approach (avoid long-lived processes)
npm run -s typecheck || npx tsc --noEmit
npm test -s || npx vitest run --reporter=basic --no-watch
# Only if needed and build affects outputs/config
npm run -s buildSafety note: Avoid watch/serve processes in validation. Use one-shot diagnostics only.
Branded Types for Domain Modeling
// Create nominal types to prevent primitive obsession
type Brand<K, T> = K & { __brand: T };
type UserId = Brand<string, 'UserId'>;
type OrderId = Brand<string, 'OrderId'>;
// Prevents accidental mixing of domain primitives
function processOrder(orderId: OrderId, userId: UserId) { }Advanced Conditional Types
// Recursive type manipulation
type DeepReadonly<T> = T extends (...args: any[]) => any
? T
: T extends object
? { readonly [K in keyof T]: DeepReadonly<T[K]> }
: T;
// Template literal type magic
type PropEventSource<Type> = {
on<Key extends string & keyof Type>
(eventName: `${Key}Changed`, callback: (newValue: Type[Key]) => void): void;
};Type Inference Techniques
// Use 'satisfies' for constraint validation (TS 5.0+)
const config = {
api: "https://api.example.com",
timeout: 5000
} satisfies Record<string, string | number>;
// Preserves literal types while ensuring constraints
// Const assertions for maximum inference
const routes = ['/home', '/about', '/contact'] as const;
type Route = typeof routes[number]; // '/home' | '/about' | '/contact'Type Checking Performance
# Diagnose slow type checking
npx tsc --extendedDiagnostics --incremental false | grep -E "Check time|Files:|Lines:|Nodes:"
# Common fixes for "Type instantiation is excessively deep"
# 1. Replace type intersections with interfaces
# 2. Split large union types (>100 members)
# 3. Avoid circular generic constraints
# 4. Use type aliases to break recursionBuild Performance Patterns
skipLibCheck: true for library type checking only (often significantly improves performance on large projects, but avoid masking app typing issues)incremental: true with .tsbuildinfo cacheinclude/exclude preciselycomposite: true"The inferred type of X cannot be named"
ReturnType<typeof function> helperMissing type declarations
// types/ambient.d.ts
declare module 'some-untyped-package' {
const value: unknown;
export default value;
export = value; // if CJS interop is needed
}"Excessive stack depth comparing types"
interface extends instead of type intersection// Bad: Infinite recursion
type InfiniteArray<T> = T | InfiniteArray<T>[];
// Good: Limited recursion
type NestedArray<T, D extends number = 5> =
D extends 0 ? T : T | NestedArray<T, [-1, 0, 1, 2, 3, 4][D]>[];Module Resolution Mysteries
moduleResolution matches your bundlerbaseUrl and paths alignmentrm -rf node_modules/.cache .tsbuildinfoPath Mapping at Runtime
ts-node -r tsconfig-paths/registerJavaScript to TypeScript Migration
# Incremental migration strategy
# 1. Enable allowJs and checkJs (merge into existing tsconfig.json):
# Add to existing tsconfig.json:
# {
# "compilerOptions": {
# "allowJs": true,
# "checkJs": true
# }
# }
# 2. Rename files gradually (.js → .ts)
# 3. Add types file by file using AI assistance
# 4. Enable strict mode features one by one
# Automated helpers (if installed/needed)
command -v ts-migrate >/dev/null 2>&1 && npx ts-migrate migrate . --sources 'src/**/*.js'
command -v typesync >/dev/null 2>&1 && npx typesync # Install missing @types packagesTool Migration Decisions
| From | To | When | Migration Effort |
|---|---|---|---|
| ESLint + Prettier | Biome | Need much faster speed, okay with fewer rules | Low (1 day) |
| TSC for linting | Type-check only | Have 100+ files, need faster feedback | Medium (2-3 days) |
| Lerna | Nx/Turborepo | Need caching, parallel builds | High (1 week) |
| CJS | ESM | Node 18+, modern tooling | High (varies) |
Nx vs Turborepo Decision Matrix
TypeScript Monorepo Configuration
// Root tsconfig.json
{
"references": [
{ "path": "./packages/core" },
{ "path": "./packages/ui" },
{ "path": "./apps/web" }
],
"compilerOptions": {
"composite": true,
"declaration": true,
"declarationMap": true
}
}Use Biome when:
Stay with ESLint when:
Vitest Type Testing (Recommended)
// in avatar.test-d.ts
import { expectTypeOf } from 'vitest'
import type { Avatar } from './avatar'
test('Avatar props are correctly typed', () => {
expectTypeOf<Avatar>().toHaveProperty('size')
expectTypeOf<Avatar['size']>().toEqualTypeOf<'sm' | 'md' | 'lg'>()
})When to Test Types:
# Debug TypeScript files directly (if tools installed)
command -v tsx >/dev/null 2>&1 && npx tsx --inspect src/file.ts
command -v ts-node >/dev/null 2>&1 && npx ts-node --inspect-brk src/file.ts
# Trace module resolution issues
npx tsc --traceResolution > resolution.log 2>&1
grep "Module resolution" resolution.log
# Debug type checking performance (use --incremental false for clean trace)
npx tsc --generateTrace trace --incremental false
# Analyze trace (if installed)
command -v @typescript/analyze-trace >/dev/null 2>&1 && npx @typescript/analyze-trace trace
# Memory usage analysis
node --max-old-space-size=8192 node_modules/typescript/lib/tsc.js// Proper error class with stack preservation
class DomainError extends Error {
constructor(
message: string,
public code: string,
public statusCode: number
) {
super(message);
this.name = 'DomainError';
Error.captureStackTrace(this, this.constructor);
}
}{
"compilerOptions": {
"strict": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"exactOptionalPropertyTypes": true,
"noPropertyAccessFromIndexSignature": true
}
}"type": "module" in package.json.mts for TypeScript ESM files if needed"moduleResolution": "bundler" for modern toolsconst pkg = await import('cjs-package')await import() requires async function or top-level await in ESM(await import('pkg')).default depending on the package's export structure and your compiler settingsWhen reviewing TypeScript/JavaScript code, focus on these domain-specific aspects:
any types (use unknown or proper types)as) justified and minimalinterface over type for object shapes (better error messages)skipLibCheck: true in tsconfignever typeType checking only? → tsc
Type checking + linting speed critical? → Biome
Type checking + comprehensive linting? → ESLint + typescript-eslint
Type testing? → Vitest expectTypeOf
Build tool? → Project size <10 packages? Turborepo. Else? NxSlow type checking? → skipLibCheck, incremental, project references
Slow builds? → Check bundler config, enable caching
Slow tests? → Vitest with threads, avoid type checking in tests
Slow language server? → Exclude node_modules, limit files in tsconfigAlways validate changes don't break existing functionality before considering the issue resolved.
© cin12211, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agent/skills/typescript-expert of cin12211/orca-q.
Open the folder on GitHubat commit 3142fe6
We found 27 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 11 other GitHub owners. This page covers the copy in cin12211/orca-q, which our catalogue first saw on October 7, 2026.
Typescript Expert 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Typescript Expert this skillcin12211/orca-q | 223 | 11 repos | ~3.7k | Automated safety check: Pass | MIT | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Pnpm Engineteambit/bit | 18k | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Convert Internal Package to TypeScriptTryGhost/Ghost | 55k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Update Est Fixturesethereumjs/ethereumjs-monorepo | 2.8k | — | ~3.3k | Automated safety check: Pass | None | |
| Bumpy Add Changezap-studio/monorepo | 172 | 1 repos | ~1.4k | Automated safety check: Notes | MIT |
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
teambit/bit
Work on the pnpm Rust engine (@pnpm/napi, the pacquet crates) that bit install runs through.
TryGhost/Ghost
Moves a legacy internal Ghost package from JavaScript and CommonJS to TypeScript and ESM in three focused commits that keep git file history intact.
ethereumjs/ethereumjs-monorepo
Updates EthereumJS execution-spec test fixtures from an ethereum/execution-specs release, then (after a human merge) points the monorepo submodule, updates VM npm scripts, reports a first test run…
zap-studio/monorepo
Create a bumpy bump file describing which packages changed and how, for version bumping and changelog generation.
Consensys-Incorporated/linea-attestation-registry
Safely plan and execute dependency maintenance for JavaScript/TypeScript (npm, pnpm) and GitHub Actions, including npm lockfiles, pnpm workspaces, catalogs, overrides, SHA-pinned action versions…
cin12211/orca-q
Database performance optimization, schema design, query analysis, and connection management across PostgreSQL, MySQL, MongoDB, and SQLite with ORM integration.
cin12211/orca-q
Playwright E2E testing expert for browser automation, cross-browser testing, visual regression, network interception, and CI integration.
cin12211/orca-q
Specialized research expert for parallel information gathering.
cin12211/orca-q
OrcaQ-specific testing guide. An agent skill from cin12211/orca-q.
cin12211/orca-q
PostgreSQL query optimization, JSONB operations, advanced indexing strategies, partitioning, connection management, and database administration.
cin12211/orca-q
CSS architecture and styling expert with deep knowledge of modern CSS features, responsive design, CSS-in-JS optimization, performance, accessibility, and design systems.
Works with
Categories
TypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling. Typescript Expert is an agent skill from cin12211/orca-q. TypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling.
Typescript Expert fits situations like: tasks that involve Monorepo tooling; tasks that involve Performance optimization; tasks that involve Type safety.
Run `npx skills add cin12211/orca-q --skill typescript-expert -a claude-code`. Or copy the skill folder (.agent/skills/typescript-expert in cin12211/orca-q) into .claude/skills/typescript-expert in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cin12211/orca-q --skill typescript-expert -a codex`. Or copy the skill folder (.agent/skills/typescript-expert in cin12211/orca-q) into .agents/skills/typescript-expert in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cin12211/orca-q --skill typescript-expert -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/typescript-expert, .gemini/skills/typescript-expert, .github/skills/typescript-expert and .opencode/skills/typescript-expert in your project.
Going by SKILL.md and its folder, Typescript Expert needs the command-line tools its instructions call (npx, node, npm, eslint, prettier and vitest). Our summary lists: Node.js.
SKILL.md names 6 domains. As links in the text: github.com, egghead.io, typescriptlang.org, type-level-typescript.com, biomejs.dev and vitest.dev. This is read from the text; nothing was executed.
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. Review the folder before installing.
Typescript Expert is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Typescript Expert: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Pnpm Engine (teambit/bit, 18k stars), Convert Internal Package to TypeScript (TryGhost/Ghost, 55k stars) and Update Est Fixtures (ethereumjs/ethereumjs-monorepo, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cin12211 (a GitHub user) maintains it in cin12211/orca-q, which has 223 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on September 21, 2026.
Source: cin12211/orca-q on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.