← ClaudeAtlas

revenue-checklisted

Pull product revenue per app from Firestore (or fixtures) and produce a cash-flow report
Silex-Research/DontPanic · ★ 2 · AI & Automation · score 74
Install: claude install-skill Silex-Research/DontPanic
# revenue-check ## Purpose Aggregate product revenue per app and write `dashboard/state/revenue.json` so cost-model can compute net cash-flow positions. Source-aware: each app declares an adapter (`glam` reads Firestore `creatorEarningsLedger`; `spindine` is deferred to a follow-up — see D001 in the parent plan). Stub mode reads fixtures so fresh-clone tests need zero credentials. ## Arguments | Argument | Required | Description | |---|---|---| | `--stub` | no | Use the FixtureAdapter for every app instead of live Firestore. Fresh-clone tests use this. | | `--live` | no | Explicitly opt in to live adapters that may require ADC. Mutually exclusive with `--stub` / `--fixtures`. | | `--apps` | no | Comma-separated list of apps to query (default: `Styln`). SpinDine is intentionally not in the default list — see D001. | | `--out` | no | Path for revenue.json output (default: `dashboard/state/revenue.json`) | | `--evidence-dir` | no | Where to write the cash-flow report (default: `evidence/revenue-check/`) | | `--costs` | no | Path to costs.json for the cash-flow report (default: `dashboard/state/costs.json`) | | `--as-of` | no | ISO-8601 timestamp to override "now" (deterministic tests) | | `--fixtures` | no | Directory containing per-app fixture subdirectories. Implies `--stub`. | If no mode is supplied: refuses to run live (avoids surprising network calls). Use `--stub` for fresh-clone testing or `--live` for operator-approved Firestore/deferred adapters. ## Prerequisites