# Dear Ethicist

[![CI](https://github.com/ahb-sjsu/sqnd-probe/actions/workflows/ci.yaml/badge.svg)](https://github.com/ahb-sjsu/sqnd-probe/actions/workflows/ci.yaml)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

An advice column game that measures the mathematical structure of moral reasoning.

## What Is This?

You play as a newly hired advice columnist for *The Morning Chronicle*. Letters arrive from readers tangled in everyday moral dilemmas:

> *"My friend promised to help me move, but texted 'only if convenient.' Can I still count on them?"*

> *"I lent my neighbor a drill two months ago. Do I have a right to demand it back?"*

> *"My coworker made a mistake and asked me to cover for them. Am I obligated to help?"*

Your job: read the letters, give advice, publish your verdicts.

**The twist:** These everyday questions map directly to formal normative positions. When someone asks "Do I have to...?" they're asking about *Obligation*. When they ask "Can they demand...?" they're asking about *Claims*. The game captures your moral reasoning structure while you think you're just giving advice.

## Installation

```bash
git clone https://github.com/ahb-sjsu/sqnd-probe.git
cd sqnd-probe
pip install -e ".[dev]"
```

## How to Play

### Start a Session

```bash
dear-ethicist play
```

### The Game Loop

1. **Read the letter** — A reader presents their dilemma
2. **Consider the situation** — Who owes what to whom?
3. **Render your verdict** — Classify each party's normative position
4. **Publish** — Your column goes live
5. **See reactions** — Readers respond (some agree, some don't)
6. **Next letter** — Repeat until you quit or finish the session

### The Verdict Screen
