typescript

Enforce TypeScript conventions across the Tale monorepo.

20|5|Updated Nov 30, 2025
One-click install
npx skills add https://github.com/tale-project/tale --skill typescript-tale-project
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: typescript
Source: https://github.com/tale-project/tale/tree/main/.claude/skills/typescript
Command: npx skills add https://github.com/tale-project/tale --skill typescript-tale-project

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

TypeScript conventions across the Tale monorepo are enforced to ensure consistent type-safety, readability, and maintainable code by discouraging unsafe patterns such as any, non-null assertions, and default exports, while guiding proper use of types, generics, and validation.

Core Features & Use Cases

  • Enforces no-any, no-non-null assertions, and preference for discriminated unions, readonly and as const patterns, and explicit boundary validation using Zod.
  • Applies to all TypeScript files in services and packages, including Convex functions, shared schemas, and code reviews; real-world scenarios include onboarding new contributors and maintaining code quality.

Quick Start

Review these TypeScript conventions before editing any TS file in the repo to ensure alignment with Tale standards.

Frequently Asked Questions about typescript

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce type-safety in a monorepo without using any or non-null assertions?

TypeScript monorepo linting rules enforce type-safety by banning any, non-null assertions, and default exports, while guiding proper use of generics, discriminated unions, readonly, and as const patterns.

What is the best way to validate TypeScript boundaries in shared schemas?

Validating TypeScript boundaries in shared schemas involves applying explicit boundary validation using Zod, ensuring strict typed boundaries and safe imports across services and packages.

Does this TypeScript linting approach work with Convex functions?

TypeScript linting applies to all files including Convex functions, ensuring consistent type-safety and code quality during onboarding and reviews.

How do I standardize TypeScript conventions for onboarding new contributors?

Standardize TypeScript conventions for new contributors by enforcing rules like no any, no non-null assertions, and no default exports, while emphasizing strict typed boundaries and safe imports to maintain code quality.

Why should I avoid default exports in a TypeScript monorepo?

Avoiding default exports in a TypeScript monorepo discourages unsafe patterns, ensuring consistent type-safety, readability, and maintainable code by guiding proper use of types, generics, and safe imports.

When do I need to use discriminated unions and readonly patterns in TypeScript?

Use discriminated unions and readonly patterns in TypeScript when enforcing strict type-safety and explicit boundary validation, replacing unsafe patterns like any and non-null assertions.