# SPEC.md — {Package Name}

## Scope

{What this package owns — 2-4 sentences.}

## Boundaries

{What this package does NOT own and where those responsibilities live.}

## Architecture Overview

{Layer structure, key components, design patterns used.}

## Type Ownership

| Type       | Location        | Purpose   |
| ---------- | --------------- | --------- |
| {TypeName} | `src/{file}.ts` | {purpose} |

## Public API Surface

| Export       | Kind                | Description   |
| ------------ | ------------------- | ------------- |
| {ExportName} | class/function/type | {description} |

## Extension Points

{How consumers extend behavior — abstract classes, interfaces, strategies.}

## Error Taxonomy

| Error       | Code   | Category   | Recoverable |
| ----------- | ------ | ---------- | ----------- |
| {ErrorName} | {code} | {category} | yes/no      |

## Test Strategy

{Current test files, scenario verification, coverage gaps.}

## Class Contract Registry

| Class       | Implements/Extends | Defined In      |
| ----------- | ------------------ | --------------- |
| {ClassName} | {InterfaceName}    | `src/{file}.ts` |
