types

Enforce strict type safety across polyglot codebases and CI workflows.

Updated May 28, 2026
One-click install
npx skills add https://github.com/syntropic137/harness-app-template --skill types-syntropic137
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: types
Source: https://github.com/syntropic137/harness-app-template/tree/main/.claude/skills/types
Command: npx skills add https://github.com/syntropic137/harness-app-template --skill types-syntropic137

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill addresses the common issue of type systems being treated as decorative annotations rather than effective guardrails, which leads to silent bugs from primitive parameter swaps, unvalidated untrusted data crossing trust boundaries, inconsistent strictness settings, and drifting duplicated type definitions that cause runtime failures and maintenance overhead.

Core Features & Use Cases

  • Uniform Type Strictness Enforcement: Guides teams to adopt a single project-wide type strictness level with documented, dated exceptions for mid-migration codebases, eliminating inconsistent settings that erode type system value.
  • Public API Soundness Guarantees: Eliminates escape hatches like any or unconstrained generics in exported signatures, replaces raw primitive parameters with refined domain types (e.g., UserId instead of string), and uses sum types to make illegal states unrepresentable.
  • Trust Boundary Validation: Implements runtime validation exactly once at system boundaries (HTTP ingress, message queues, file I/O) to refine untrusted input into typed shapes, preventing unvalidated data from flowing into domain code.
  • Use Case: For a polyglot team building a TypeScript frontend, Python backend, and Rust microservice, use this Skill to audit all public API signatures for unsafe casts, add refined types for user IDs and currency values, and set up CI checks to enforce strict type settings and flag type system bypasses like implicit any or bare dict returns.

Quick Start

Use the types skill to audit your project's public API signatures for unsafe type escape hatches, replace raw primitive parameters with refined domain types, and enforce uniform strict type checking across all project modules.

Frequently Asked Questions about types

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

FAQPage Schema
How do I enforce type safety across a polyglot codebase with TypeScript, Python, and Rust?

To enforce type safety across a polyglot codebase, apply uniform strict mode settings, eliminate public API escape hatches like `any`, and use refined domain primitives. This prevents inconsistent strictness and silent runtime bugs.

What is the best way to prevent illegal states in a typed API?

The best way to prevent illegal states in a typed API is to use sum types to make invalid states unrepresentable, alongside replacing raw primitive parameters with refined domain types like `UserId` instead of `string`.

How do I validate untrusted input at trust boundaries without duplicating type checks?

Validate untrusted input at trust boundaries by implementing runtime validation exactly once at system edges like HTTP ingress or message queues. This refines untrusted data into typed shapes, preventing unvalidated data from entering domain code.

How can I detect type system bypasses and unsafe casts in CI workflows?

Detect type system bypasses in CI workflows by setting up automated checks to flag implicit `any`, bare `dict` returns, and unconstrained generics. This enforces strict type settings and eliminates type system bypasses across the project.

Does strict mode type checking work for gradually typed languages like Python?

Strict mode type checking works for gradually typed languages like Python by guiding teams to adopt a single project-wide strictness level with documented, dated exceptions for mid-migration codebases to prevent silent bugs.