# Specification: <project name>

<!--
The four elements: task, context, constraints, output format.
Write this before the agent creates a single file, and commit it before the agent runs.
-->

## Task

What the tool must do, in a sentence or two. Name the inputs, the output, and the core
operation.

Not "build a web app". More like: "build a web application that reads sensor data from an
Arduino over serial and displays it as a live chart in a browser, logging each session to a
CSV file for later review."

## Context

The environment the tool runs in and the data it operates on. What does the world look like
from inside the program?

- Language and version:
- Where it runs:
- Input format, exactly:
- Anything about the data that affects the design (rates, scales, units):
- How you will develop without the real hardware or the real service attached:

## Constraints

The choices you have already made. Technology decisions, things the tool must not do, limits
on scope. These are not restrictions for their own sake; they are the decisions you settled
during brainstorming, written down so the agent does not re-make them differently.

- Framework:
- Front end, and whether there is a build step:
- Hardware or external service access, and the mock that stands in for it:
- Storage:
- Configuration: every value that might change between runs lives in config.py as a named
  constant, with nothing hardcoded in application logic.
- Out of scope:

## Output format

The file structure. Name the files, name the directories, name the entry point. The agent
should be able to build exactly this layout rather than infer a plausible one.

```text
project_name/
├── app.py              # entry point
├── config.py           # all configuration constants
├── requirements.txt
├── static/
├── templates/
└── ...
```

These file names are not incidental. Every later conversation refers back to them, so fixing
them here is what keeps the rest of the build coherent.

---

## Before the agent starts

- [ ] `git init` and commit this specification. Git before AI, not alongside it, not after.
- [ ] `.env` created and listed in `.gitignore`, if the project needs any secret.
- [ ] The handoff test: could a competent stranger build this from the document alone?