# ADR 001: TypeScript and Python language defaults

- HTML version: https://robbiepalmer.me/projects/personal-engineering-platform/adrs/001-language-defaults
- Project: Personal Engineering Platform (https://robbiepalmer.me/projects/personal-engineering-platform.md)
- Status: Accepted
- Date: 2026-09-12
- Initiatives: Semi-autonomous Software Development (https://robbiepalmer.me/initiatives/semi-autonomous-software-development.md)

## Context

Most personal applications use TypeScript. Machine-learning projects need the
Python library ecosystem, and both languages need runtime validation and test
conventions.

## Decision

Use TypeScript as the base layer's default primary language and activate the
TypeScript layer from that selection. Use Zod for runtime schema validation.

Projects may override the primary-language slot with Python. The Python layer
then requires Pydantic and pytest-cases.

## Consequences

Language tooling follows one resolved primary-language choice. Supplemental
languages remain direct project technologies.

---

Markdown index of this site: https://robbiepalmer.me/llms.txt
