union_square 0.2.0

A proxy/wire-tap service for making LLM calls and recording everything that happens in a session for later analysis and test-case extraction
Documentation
# Architecture Decision Records

This directory contains the Architecture Decision Records (ADRs) for the Union Square project.

## What are ADRs?

Architecture Decision Records (ADRs) are a lightweight way to document architectural decisions made throughout the project. They help future developers understand not just *what* decisions were made, but *why* they were made and what alternatives were considered.

## Why use ADRs?

- **Knowledge Preservation**: Captures the context and reasoning behind decisions before it's forgotten
- **Onboarding**: Helps new team members understand the system's evolution
- **Decision History**: Provides a historical record of architectural choices
- **Transparency**: Makes the decision-making process visible and reviewable
- **Prevents Revisiting**: Reduces time spent re-discussing already-made decisions

## ADR Structure

Each ADR follows a consistent template that includes:

1. **Context and Problem Statement**: What situation or challenge prompted this decision?
2. **Decision Drivers**: Key factors that influenced the decision
3. **Considered Options**: Alternative approaches that were evaluated
4. **Decision Outcome**: The chosen solution and rationale
5. **Consequences**: Both positive and negative impacts of the decision
6. **Pros and Cons**: Detailed analysis of each considered option

## ADR Lifecycle

ADRs can have the following statuses:
- **proposed**: The decision is being discussed but not yet agreed upon
- **accepted**: The decision has been agreed upon and should be followed
- **deprecated**: The decision is no longer relevant but kept for historical context
- **superseded**: The decision has been replaced by a newer ADR

## Working with ADRs

To view ADRs in a web interface, run:
```bash
npm run adr:preview
```

To create a new ADR, run:
```bash
npm run adr:new
```

## When to Create an ADR

Create an ADR when making decisions about:
- Technology choices (databases, frameworks, libraries)
- Architectural patterns and approaches
- API design and protocols
- Security strategies
- Performance optimization approaches
- Testing strategies
- Deployment and infrastructure
- Any decision with long-term implications

## ADR Index

<!-- This index will be automatically maintained by log4brains -->