---
id: "0001"
date: 2026-07-06
status: Accepted
supersedes:
superseded-by:
affected-paths: [bin/reportgen, lib/reportgen/renderer.rb]
affected-components: []
---

# 0001 — Reports generated as static artifacts, no server component

## Context

reportgen produces client reports on a schedule. Running a persistent server process for what is fundamentally a batch job would add operational surface (uptime, deploys, auth) with no corresponding benefit for this workload.

## Decision

reportgen ships as a CLI invoked by cron on the ops box. Each invocation generates static report artifacts (HTML/CSV) and, for the deliver command, ships them to the client. There is no long-running server component.

## Consequences

Simple to operate and reason about; no server to patch or scale. Any future need for on-demand/interactive report generation would require revisiting this decision.

## Alternatives rejected

A small Sinatra/Rack service exposing report generation on demand was considered and rejected as unnecessary complexity for a batch workload.
