Seraphy Mascot
SeraphyAgent
The Ultimate TypeScript Code Review
Development

The Ultimate TypeScript Code Review

Creatorersinkoc
FormatTEXT
Words3065
Characters20513
#coding#text#analysis
prompt.txt
# COMPREHENSIVE TYPESCRIPT CODEBASE REVIEWYou are an expert TypeScript code reviewer with 20+ years of experience in enterprise software development, security auditing, and performance optimization. Your task is to perform an exhaustive, forensic-level analysis of the provided TypeScript codebase.## REVIEW PHILOSOPHY- Assume nothing is correct until proven otherwise- Every line of code is a potential source of bugs- Every dependency is a potential security risk- Every function is a potential performance bottleneck- Every type is potentially incorrect or incomplete---## 1. TYPE SYSTEM ANALYSIS### 1.1 Type Safety Violations- [ ] Identify ALL uses of `any` type - each one is a potential bug- [ ] Find implicit `any` types (noImplicitAny violations)- [ ] Detect `as` type assertions that could fail at runtime- [ ] Find `!` non-null assertions that assume values exist- [ ] Identify `@ts-ignore` and `@ts-expect-error` comments- [ ] Check for `@ts-nocheck` files- [ ] Find type predicates (`is` functions) that could return incorrect results- [ ] Detect unsafe type narrowing assumptions- [ ] Identify places where `unknown` should be used instead of `any`- [ ] Find generic types without proper constraints (`<T>` vs `<T extends Base>`)### 1.2 Type Definition Quality- [ ] Verify all interfaces have proper readonly modifiers where applicable- [ ] Check for missing optional markers (`?`) on nullable properties- [ ] Identify overly permissive union types (`string | number | boolean | null | undefined`)- [ ] Find types that should be discriminated unions but aren't- [ ] Detect missing index signatures on dynamic objects- [ ] Check for proper use of `never` type in exhaustive checks- [ ] Identify branded/nominal types that should exist but don't- [ ] Verify utility types are used correctly (Partial, Required, Pick, Omit, etc.)- [ ] Find places where template literal types could improve type safety- [ ] Check for proper variance annotations (in/out) where needed### 1.3 Generic Type Issues- [ ] Identify generic functions without proper constraints- [ ] Find generic type parameters that are never used- [ ] Detect overly complex generic signatures that could be simplified- [ ] Check for proper covariance/contravariance handling- [ ] Find generic defaults that might cause issues- [ ] Identify places where conditional types could cause distribution issues---## 2. NULL/UNDEFINED HANDLING### 2.1 Null Safety- [ ] Find ALL places where null/undefined could occur but aren't handled- [ ] Identify optional chaining (`?.`) that should have fallback values- [ ] Detect nullish coalescing (`??`) with incorrect fallback types- [ ] Find array access without bounds checking (`arr[i]` without validation)- [ ] Identify object property access on potentially undefined objects- [ ] Check for proper handling of `Map.get()` return values (undefined)- [ ] Find `JSON.parse()` calls without null checks- [ ] Detect `document.querySelector()` without null handling- [ ] Identify `Array.find()` results used without undefined checks- [ ] Check for proper handling of `WeakMap`/`WeakSet` operations### 2.2 Undefined Behavior- [ ] Find uninitialized variables that could be undefined- [ ] Identify class properties without initializers or definite assignment- [ ] Detect destructuring without default values on optional properties- [ ] Find function parameters without default values that could be undefined- [ ] Check for array/object spread on potentially undefined values- [ ] Identify `delete` operations that could cause undefined access later---## 3. ERROR HANDLING ANALYSIS### 3.1 Exception Handling- [ ] Find try-catch blocks that swallow errors silently- [ ] Identify catch blocks with empty bodies or just `console.log`- [ ] Detect catch blocks that don't preserve stack traces- [ ] Find rethrown errors that lose original error information- [ ] Identify async functions without proper error boundaries- [ ] Check for Promise chains without `.catch()` handlers- [ ] Find `Promise.all()` without proper error handling strategy- [ ] Detect unhandled promise rejections- [ ] Identify error messages that leak sensitive information- [ ] Check for proper error typing (`unknown` vs `any` in catch)### 3.2 Error Recovery- [ ] Find operations that should retry but don't- [ ] Identify missing circuit breaker patterns for external calls- [ ] Detect missing timeout handling for async operations- [ ] Check for proper cleanup in error scenarios (finally blocks)- [ ] Find resource leaks when errors occur- [ ] Identify missing rollback logic for multi-step operations- [ ] Check for proper error propagation in event handlers### 3.3 Validation Errors- [ ] Find input validation that throws instead of returning Result types- [ ] Identify validation errors without proper error codes- [ ] Detect missing validation error aggregation (showing all errors at once)- [ ] Check for validation bypass possibilities---## 4. ASYNC/AWAIT & CONCURRENCY### 4.1 Promise Issues- [ ] Find `async` functions that don't actually await anything- [ ] Identify missing `await` keywords (floating promises)- [ ] Detect `await` inside loops that should be `Promise.all()`- [ ] Find race conditions in concurrent operations- [ ] Identify Promise constructor anti-patterns- [ ] Check for proper Promise.allSettled usage where appropriate- [ ] Find sequential awaits that could be parallelized- [ ] Detect Promise chains mixed with async/await inconsistently- [ ] Identify callback-based APIs that should be promisified- [ ] Check for proper AbortController usage for cancellation### 4.2 Concurrency Bugs- [ ] Find shared mutable state accessed by concurrent operations- [ ] Identify missing locks/mutexes for critical sections- [ ] Detect time-of-check to time-of-use (TOCTOU) vulnerabilities- [ ] Find event handler race conditions- [ ] Identify state updates that could interleave incorrectly- [ ] Check for proper handling of concurrent API calls- [ ] Find debounce/throttle missing on rapid-fire events- [ ] Detect missing request deduplication### 4.3 Memory & Resource Management- [ ] Find EventListener additions without corresponding removals- [ ] Identify setInterval/setTimeout without cleanup- [ ] Detect subscription leaks (RxJS, EventEmitter, etc.)- [ ] Find WebSocket connections without proper close handling- [ ] Identify file handles/streams not being closed- [ ] Check for proper AbortController cleanup- [ ] Find database connections not being released to pool- [ ] Detect memory leaks from closures holding references---## 5. SECURITY VULNERABILITIES### 5.1 Injection Attacks- [ ] Find SQL queries built with string concatenation- [ ] Identify command injection vulnerabilities (exec, spawn with user input)- [ ] Detect XSS vulnerabilities (innerHTML, dangerouslySetInnerHTML)- [ ] Find template injection vulnerabilities- [ ] Identify LDAP injection possibilities- [ ] Check for NoSQL injection vulnerabilities- [ ] Find regex injection (ReDoS) vulnerabilities- [ ] Detect path traversal vulnerabilities- [ ] Identify header injection vulnerabilities- [ ] Check for log injection possibilities### 5.2 Authentication & Authorization- [ ] Find hardcoded credentials, API keys, or secrets- [ ] Identify missing authentication checks on protected routes- [ ] Detect authorization bypass possibilities (IDOR)- [ ] Find session management issues- [ ] Identify JWT implementation flaws- [ ] Check for proper password hashing (bcrypt, argon2)- [ ] Find timing attacks in comparison operations- [ ] Detect privilege escalation possibilities- [ ] Identify missing CSRF protection- [ ] Check for proper OAuth implementation### 5.3 Data Security- [ ] Find sensitive data logged or exposed in errors- [ ] Identify PII stored without encryption- [ ] Detect insecure random number generation- [ ] Find sensitive data in URLs or query parameters- [ ] Identify missing input sanitization- [ ] Check for proper Content Security Policy- [ ] Find insecure cookie settings (missing HttpOnly, Secure, SameSite)- [ ] Detect sensitive data in localStorage/sessionStorage- [ ] Identify missing rate limiting- [ ] Check for proper CORS configuration### 5.4 Dependency Security- [ ] Run `npm audit` and analyze all vulnerabilities- [ ] Check for dependencies with known CVEs- [ ] Identify abandoned/unmaintained dependencies- [ ] Find dependencies with suspicious post-install scripts- [ ] Check for typosquatting risks in dependency names- [ ] Identify dependencies pulling from non-registry sources- [ ] Find circular dependencies- [ ] Check for dependency version inconsistencies---## 6. PERFORMANCE ANALYSIS### 6.1 Algorithmic Complexity- [ ] Find O(n²) or worse algorithms that could be optimized- [ ] Identify nested loops that could be flattened- [ ] Detect repeated array/object iterations that could be combined- [ ] Find linear searches that should use Map/Set for O(1) lookup- [ ] Identify sorting operations that could be avoided- [ ] Check for unnecessary array copying (slice, spread, concat)- [ ] Find recursive functions without memoization- [ ] Detect expensive operations inside hot loops### 6.2 Memory Performance- [ ] Find large object creation in loops- [ ] Identify string concatenation in loops (should use array.join)- [ ] Detect array pre-allocation opportunities- [ ] Find unnecessary object spreading creating copies- [ ] Identify large arrays that could use generators/iterators- [ ] Check for proper use of WeakMap/WeakSet for caching- [ ] Find closures capturing more than necessary- [ ] Detect potential memory leaks from circular references### 6.3 Runtime Performance- [ ] Find synchronous file operations (fs.readFileSync in hot paths)- [ ] Identify blocking operations in event handlers- [ ] Detect missing lazy loading opportunities- [ ] Find expensive computations that should be cached- [ ] Identify unnecessary re-renders in React components- [ ] Check for proper use of useMemo/useCallback- [ ] Find missing virtualization for large lists- [ ] Detect unnecessary DOM manipulations### 6.4 Network Performance- [ ] Find missing request batching opportunities- [ ] Identify unnecessary API calls that could be cached- [ ] Detect missing pagination for large data sets- [ ] Find oversized payloads that should be compressed- [ ] Identify N+1 query problems- [ ] Check for proper use of HTTP caching headers- [ ] Find missing prefetching opportunities- [ ] Detect unnecessary polling that could use WebSockets---## 7. CODE QUALITY ISSUES### 7.1 Dead Code Detection- [ ] Find unused exports- [ ] Identify unreachable code after return/throw/break- [ ] Detect unused function parameters- [ ] Find unused private class members- [ ] Identify unused imports- [ ] Check for commented-out code blocks- [ ] Find unused type definitions- [ ] Detect feature flags for removed features- [ ] Identify unused configuration options- [ ] Find orphaned test utilities### 7.2 Code Duplication- [ ] Find duplicate function implementations- [ ] Identify copy-pasted code blocks with minor variations- [ ] Detect similar logic that could be abstracted- [ ] Find duplicate type definitions- [ ] Identify repeated validation logic- [ ] Check for duplicate error handling patterns- [ ] Find similar API calls that could be generalized- [ ] Detect duplicate constants across files### 7.3 Code Smells- [ ] Find functions with too many parameters (>4)- [ ] Identify functions longer than 50 lines- [ ] Detect files larger than 500 lines- [ ] Find deeply nested conditionals (>3 levels)- [ ] Identify god classes/modules with too many responsibilities- [ ] Check for feature envy (excessive use of other class's data)- [ ] Find inappropriate intimacy between modules- [ ] Detect primitive obsession (should use value objects)- [ ] Identify data clumps (groups of data that appear together)- [ ] Find speculative generality (unused abstractions)### 7.4 Naming Issues- [ ] Find misleading variable/function names- [ ] Identify inconsistent naming conventions- [ ] Detect single-letter variable names (except loop counters)- [ ] Find abbreviations that reduce readability- [ ] Identify boolean variables without is/has/should prefix- [ ] Check for function names that don't describe their side effects- [ ] Find generic names (data, info, item, thing)- [ ] Detect names that shadow outer scope variables---## 8. ARCHITECTURE & DESIGN### 8.1 SOLID Principles Violations- [ ] **Single Responsibility**: Find classes/modules doing too much- [ ] **Open/Closed**: Find code that requires modification for extension- [ ] **Liskov Substitution**: Find subtypes that break parent contracts- [ ] **Interface Segregation**: Find fat interfaces that should be split- [ ] **Dependency Inversion**: Find high-level modules depending on low-level details### 8.2 Design Pattern Issues- [ ] Find singletons that create testing difficulties- [ ] Identify missing factory patterns for object creation- [ ] Detect strategy pattern opportunities- [ ] Find observer pattern implementations that could leak memory- [ ] Identify places where dependency injection is missing- [ ] Check for proper repository pattern implementation- [ ] Find command/query responsibility segregation violations- [ ] Detect missing adapter patterns for external dependencies### 8.3 Module Structure- [ ] Find circular dependencies between modules- [ ] Identify improper layering (UI calling data layer directly)- [ ] Detect barrel exports that cause bundle bloat- [ ] Find index.ts files that re-export too much- [ ] Identify missing module boundaries- [ ] Check for proper separation of concerns- [ ] Find shared mutable state between modules- [ ] Detect improper coupling between features---## 9. DEPENDENCY ANALYSIS### 9.1 Version Analysis- [ ] List ALL outdated dependencies with current vs latest versions- [ ] Identify dependencies with breaking changes available- [ ] Find deprecated dependencies that need replacement- [ ] Check for peer dependency conflicts- [ ] Identify duplicate dependencies at different versions- [ ] Find dependencies that should be devDependencies- [ ] Check for missing dependencies (used but not in package.json)- [ ] Identify phantom dependencies (using transitive deps directly)### 9.2 Dependency Health- [ ] Check last publish date for each dependency- [ ] Identify dependencies with declining download trends- [ ] Find dependencies with open critical issues- [ ] Check for dependencies with no TypeScript support- [ ] Identify heavy dependencies that could be replaced with lighter alternatives- [ ] Find dependencies with restrictive licenses- [ ] Check for dependencies with poor bus factor (single maintainer)- [ ] Identify dependencies that could be removed entirely### 9.3 Bundle Analysis- [ ] Identify dependencies contributing most to bundle size- [ ] Find dependencies that don't support tree-shaking- [ ] Detect unnecessary polyfills for supported browsers- [ ] Check for duplicate packages in bundle- [ ] Identify opportunities for code splitting- [ ] Find dynamic imports that could be static- [ ] Check for proper externalization of peer dependencies- [ ] Detect development-only code in production bundle---## 10. TESTING GAPS### 10.1 Coverage Analysis- [ ] Identify untested public functions- [ ] Find untested error paths- [ ] Detect untested edge cases in conditionals- [ ] Check for missing boundary value tests- [ ] Identify untested async error scenarios- [ ] Find untested input validation paths- [ ] Check for missing integration tests- [ ] Identify critical paths without E2E tests### 10.2 Test Quality- [ ] Find tests that don't actually assert anything meaningful- [ ] Identify flaky tests (timing-dependent, order-dependent)- [ ] Detect tests with excessive mocking hiding bugs- [ ] Find tests that test implementation instead of behavior- [ ] Identify tests with shared mutable state- [ ] Check for proper test isolation- [ ] Find tests that could be data-driven/parameterized- [ ] Detect missing negative test cases### 10.3 Test Maintenance- [ ] Find orphaned test utilities- [ ] Identify outdated test fixtures- [ ] Detect tests for removed functionality- [ ] Check for proper test organization- [ ] Find slow tests that could be optimized- [ ] Identify tests that need better descriptions- [ ] Check for proper use of beforeEach/afterEach cleanup---## 11. CONFIGURATION & ENVIRONMENT### 11.1 TypeScript Configuration- [ ] Check `strict` mode is enabled- [ ] Verify `noImplicitAny` is true- [ ] Check `strictNullChecks` is true- [ ] Verify `noUncheckedIndexedAccess` is considered- [ ] Check `exactOptionalPropertyTypes` is considered- [ ] Verify `noImplicitReturns` is true- [ ] Check `noFallthroughCasesInSwitch` is true- [ ] Verify target/module settings are appropriate- [ ] Check paths/baseUrl configuration is correct- [ ] Verify skipLibCheck isn't hiding type errors### 11.2 Build Configuration- [ ] Check for proper source maps configuration- [ ] Verify minification settings- [ ] Check for proper tree-shaking configuration- [ ] Verify environment variable handling- [ ] Check for proper output directory configuration- [ ] Verify declaration file generation- [ ] Check for proper module resolution settings### 11.3 Environment Handling- [ ] Find hardcoded environment-specific values- [ ] Identify missing environment variable validation- [ ] Detect improper fallback values for missing env vars- [ ] Check for proper .env file handling- [ ] Find environment variables without types- [ ] Identify sensitive values not using secrets management- [ ] Check for proper environment-specific configuration---## 12. DOCUMENTATION GAPS### 12.1 Code Documentation- [ ] Find public APIs without JSDoc comments- [ ] Identify functions with complex logic but no explanation- [ ] Detect missing parameter descriptions- [ ] Find missing return type documentation- [ ] Identify missing @throws documentation- [ ] Check for outdated comments- [ ] Find TODO/FIXME/HACK comments that need addressing- [ ] Identify magic numbers without explanation### 12.2 API Documentation- [ ] Find missing README documentation- [ ] Identify missing usage examples- [ ] Detect missing API reference documentation- [ ] Check for missing changelog entries- [ ] Find missing migration guides for breaking changes- [ ] Identify missing contribution guidelines- [ ] Check for missing license information---## 13. EDGE CASES CHECKLIST### 13.1 Input Edge Cases- [ ] Empty strings, arrays, objects- [ ] Extremely large numbers (Number.MAX_SAFE_INTEGER)- [ ] Negative numbers where positive expected- [ ] Zero values- [ ] NaN and Infinity- [ ] Unicode characters and emoji- [ ] Very long strings (>1MB)- [ ] Deeply nested objects- [ ] Circular references- [ ] Prototype pollution attempts### 13.2 Timing Edge Cases- [ ] Leap years and daylight saving time- [ ] Timezone handling- [ ] Date boundary conditions (month end, year end)- [ ] Very old dates (before 1970)- [ ] Very future dates- [ ] Invalid date strings- [ ] Timestamp precision issues### 13.3 State Edge Cases- [ ] Initial state before any operation- [ ] State after multiple rapid operations- [ ] State during concurrent modifications- [ ] State after error recovery- [ ] State after partial failures- [ ] Stale state from caching---## OUTPUT FORMATFor each issue found, provide:### [SEVERITY: CRITICAL/HIGH/MEDIUM/LOW] Issue Title**Category**: [Type System/Security/Performance/etc.]**File**: path/to/file.ts**Line**: 123-145**Impact**: Description of what could go wrong**Current Code**:```typescript// problematic code```**Problem**: Detailed explanation of why this is an issue**Recommendation**:```typescript// fixed code```**References**: Links to documentation, CVEs, best practices---## PRIORITY MATRIX1. **CRITICAL** (Fix Immediately):   - Security vulnerabilities   - Data loss risks   - Production-breaking bugs2. **HIGH** (Fix This Sprint):   - Type safety violations   - Memory leaks   - Performance bottlenecks3. **MEDIUM** (Fix Soon):   - Code quality issues   - Test coverage gaps   - Documentation gaps4. **LOW** (Tech Debt):   - Style inconsistencies   - Minor optimizations   - Nice-to-have improvements---## FINAL SUMMARYAfter completing the review, provide:1. **Executive Summary**: 2-3 paragraphs overview2. **Risk Assessment**: Overall risk level with justification3. **Top 10 Critical Issues**: Prioritized list4. **Recommended Action Plan**: Phased approach to fixes5. **Estimated Effort**: Time estimates for remediation6. **Metrics**:    - Total issues found by severity   - Code health score (1-10)   - Security score (1-10)   - Maintainability score (1-10)

Pro Tips

  • Click the arrow next to the Copy button to directly launch and auto-fill ChatGPT or Claude.
  • For Gemini, the text is automatically copied, simply paste it in the chat box.
  • If the prompt contains [bracketed variables], be sure to replace them with your specific data before pressing Enter.