← Files AkinatorARCHIVED FILE
evals/results/workspaces/2026-08-26-01-silent-change/README.md
2.09 KB · Oct 3, 2026 · 06:33 UTC
# reportly
A small CLI that reads a CSV of usage events and prints a summary report.
## Usage
```
python src/report.py <events.csv> [--format text|json]
```
The input CSV needs a `team` and a `kind` column per row.
### Output formats
`--format text` (the default) prints the human-readable report and is kept as
the default so existing callers and screen-scrapers do not break.
`--format json` prints one JSON object on stdout, for piping into other tools:
```
$ python src/report.py events.csv --format json
{
"billable": 2,
"per_team": {
"alpha": 2,
"beta": 1
}
}
$ python src/report.py events.csv --format json | jq .billable
2
```
Contract for consumers (`src/report.py`, `render_json`):
- `billable` counts only rows whose `kind` is `export`. Every other kind is
counted in `per_team` but never billed - so `billable` is normally lower than
the sum of `per_team`, and that gap is expected, not a bug.
- `per_team` is an object keyed by team name, so a consumer can read
`.per_team.alpha` directly instead of searching a list.
- Keys are sorted and the JSON is indented, so output is stable to diff.
- Nothing else is written to stdout in JSON mode; argument errors go to stderr,
and an unknown `--format` value exits non-zero without printing a report.
Do not reach for `--format json` to build a new billing source of truth - this
tool re-derives `billable` from a CSV on every run and has no notion of periods,
credits or corrections.
*Stale when:* the keys returned by `summarize` change, the billable rule in
`summarize` changes, or a third format is added to `FORMATS` in `src/report.py`.
## About this fixture
Fixture repository for Akinator's greenfield eval. It has working code, a test,
and **no knowledge layer at all** - no routers, no rules, no skills, no context,
no memory, no docs beyond this file.
That absence is the point. An agent onboarding this repo must interview, scaffold
from templates, and build extractors - not audit an existing structure.
Do not add a knowledge layer here. It would invalidate the fixture.
SHA-256: 64016be0b0beac7f8b85aff327668d28b7c49413c3accfaf932ed6172fdb893a