From 6d3fc888e5658aae858c68f3c6666bbdae115c11 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 3 Jun 2026 19:04:46 +0000 Subject: [PATCH] Statements: PWA shell + nftables volume populator + app roadmap Make the gallery installable on phone/laptop and close the one real data gap. PWA (phone + laptop demo, no app store): - manifest.webmanifest, sw.js (offline precache), branded A7 icons (icon.svg + 192/512/maskable/apple-touch PNGs via tools/make_icons.py) - wired into index.html only (manifest, theme-color, apple-touch, SW register) so individual statement files stay self-contained - pages.yml now also publishes from this branch Real data (volume by category): - tools/collect/populate_sets.py resolves categories.json -> public CDN IPs and feeds the nft accounting sets (the previously-missing half of the volume layer) - tools/collect/README.md: deploy + cron runbook (fixes the dangling references in nftables-accounting.nft) - README data-sourcing: volume moves from 'buildable' to 'built, run on the box' Roadmap: - APP-ROADMAP.md: honest path from mockup to real app (PWA -> data -> service backend -> native + store) with the data-honesty gate --- .github/workflows/pages.yml | 2 +- docs/statements/APP-ROADMAP.md | 108 ++++++++++++++++ docs/statements/README.md | 8 +- docs/statements/icons/apple-touch-icon.png | Bin 0 -> 7867 bytes docs/statements/icons/icon-192.png | Bin 0 -> 8374 bytes docs/statements/icons/icon-512-maskable.png | Bin 0 -> 8454 bytes docs/statements/icons/icon-512.png | Bin 0 -> 22887 bytes docs/statements/icons/icon-maskable.svg | 12 ++ docs/statements/icons/icon.svg | 13 ++ docs/statements/index.html | 20 +++ docs/statements/manifest.webmanifest | 16 +++ docs/statements/sw.js | 51 ++++++++ docs/statements/tools/collect/README.md | 89 +++++++++++++ .../statements/tools/collect/populate_sets.py | 122 ++++++++++++++++++ docs/statements/tools/make_icons.py | 27 ++++ 15 files changed, 465 insertions(+), 3 deletions(-) create mode 100644 docs/statements/APP-ROADMAP.md create mode 100644 docs/statements/icons/apple-touch-icon.png create mode 100644 docs/statements/icons/icon-192.png create mode 100644 docs/statements/icons/icon-512-maskable.png create mode 100644 docs/statements/icons/icon-512.png create mode 100644 docs/statements/icons/icon-maskable.svg create mode 100644 docs/statements/icons/icon.svg create mode 100644 docs/statements/manifest.webmanifest create mode 100644 docs/statements/sw.js create mode 100644 docs/statements/tools/collect/README.md create mode 100644 docs/statements/tools/collect/populate_sets.py create mode 100644 docs/statements/tools/make_icons.py diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 405dce9..bf38cf3 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -12,7 +12,7 @@ name: Publish statement gallery to Pages on: workflow_dispatch: push: - branches: ["main", "claude/meta-audit-priorities-MzByf"] + branches: ["main", "claude/meta-audit-priorities-MzByf", "claude/inspiring-fermi-FIdYr"] paths: - "docs/statements/**" - ".github/workflows/pages.yml" diff --git a/docs/statements/APP-ROADMAP.md b/docs/statements/APP-ROADMAP.md new file mode 100644 index 0000000..ae83878 --- /dev/null +++ b/docs/statements/APP-ROADMAP.md @@ -0,0 +1,108 @@ +# From mockup to app — the honest roadmap + +> The question was "how do we get this into an app store?" The honest answer is that +> the app store is the *last* step, not the first — and most of the work between here +> and there is backend, not app. This is the real path, in order, with what's true at +> each stage. Nothing fabricated ships as real at any phase. + +--- + +## Where we are + +The statements are a **working generator** (`collect → compose → generate`). Three of +the four data sources are real today (Pi-hole, Uptime Kuma, WireGuard); the fourth +(volume by category) needs the nftables layer stood up. The multi-home "Alliance" +portfolio is **sample data** — there is one real home behind this today. + +So "an app" has to answer: an app *of what data, for whom*? That defines the phases. + +--- + +## Phase 0 — A phone/laptop demo, today ✅ (done) + +The gallery is now an installable **PWA**: `manifest.webmanifest` + `sw.js` + icons, +wired into `index.html`. Published via the existing Pages workflow it: + +- opens at a real URL on **any laptop or phone** browser; +- **installs** to the home screen / dock (Add to Home Screen on iOS, Install on + Chrome/Edge desktop + Android) with the A777ance icon, no app store; +- works **offline** once opened (handy for demoing with no signal). + +This is not throwaway: the PWA *is* the UI a native wrapper reuses verbatim in Phase 4. + +**To publish:** repo **Settings → Pages → Source: "GitHub Actions"** (one-time), then +the `pages.yml` workflow deploys `docs/statements/` to +`https://.github.io//`. + +--- + +## Phase 1 — Make one home's numbers real + +Close the one measured-data gap so the demo shows *this* home, not samples. + +- Stand up the volume layer: `collect/nftables-accounting.nft` + `collect/populate_sets.py` + (see `collect/README.md`). +- Run `collect_stats.py` → `compose.py` → `generate_client.py` on the box on a schedule. +- **Gate:** only figures that are measured get printed as real. Peer benchmarks stay + labeled illustrative until there is a real cohort dataset. + +--- + +## Phase 2 — The service backend (the real prerequisite for an app) + +The QR codes already promise things that **don't exist yet**: + +| QR target | Promises | Needs | +| --------- | -------- | ----- | +| `status.a777ance.com/` | live per-home status page | a hosted status view + per-account scoping | +| `my.a777ance.com/` | password-protected online statement | **auth** + an API serving each account's statement JSON + history | +| `alliance.a777ance.com/connect/` | opt-in member directory | a directory service (only if/when the Alliance is real) | + +This is the actual "backend." An app is just a client to it. Minimum viable: + +1. A host — the t630 can serve it behind the existing tunnel, or a small VPS. +2. Auth — one login per account; statements scoped to the logged-in home. +3. An API — `GET /statement/` returns the JSON the generator already + produces; `GET /status` returns live Uptime-Kuma-backed health. +4. TLS + the real domains. + +No "Claude" piece is required here — it's a standard small web stack. (Claude Haiku +for richer statement prose, `compose_prose()`, stays an optional, default-off add-on.) + +--- + +## Phase 3 — Multi-home / operator reality + +The operator portfolio (`generate_operator.py`) becomes a real document only when +there is **more than one real home** under management. Today its 20-home book is +`random.seed(77)` sample data and must stay labeled as such. When real homes exist, +add a roll-up step (per-home JSON → `portfolio.json`); until then, don't manufacture +a fleet. + +--- + +## Phase 4 — Native app + the stores + +Only now does "app store" enter. The PWA from Phase 0 wraps directly: + +- **Wrapper:** Capacitor (or similar) loads the web UI into iOS/Android shells — + reuses ~100% of what's built. Add native bits only if needed (push, biometrics). +- **Apple App Store:** Apple Developer Program ($99/yr; identity verification can + take a day+), App Store Connect setup, privacy labels, then **App Review** — count + on days and at least one rejection round, not same-day. +- **Google Play:** $25 one-time. New **personal** developer accounts must run a + closed test with ~20 testers for ~14 days before production access (org accounts + differ). So Play isn't same-day for a fresh personal account either. + +**Realistic timeline:** ~2–6 weeks from "Phase 2 backend done" to a live listing — +dominated by backend + review, not by the app shell. + +--- + +## The honesty gate (every phase) + +The repo's own rule: *"nothing here is aspirational"* (SKILLS.md), *"don't print +invented peer averages on a kept document"* (statements README). A document that +goes out as real — on paper, in an inbox, or in an app — only shows figures we can +stand behind. Samples are fine; samples labeled as real are not. This is also what +keeps a public app-store submission out of "misleading content" rejection territory. diff --git a/docs/statements/README.md b/docs/statements/README.md index 42a90a4..0ad02f2 100644 --- a/docs/statements/README.md +++ b/docs/statements/README.md @@ -24,7 +24,10 @@ GitHub shows `.html` as source code, not a rendered page, so there are three way One-time setup: **Settings → Pages → Source: "GitHub Actions"**. The [`pages.yml`](../../.github/workflows/pages.yml) workflow then regenerates and publishes `docs/statements/` on every change; the gallery lands at the site root - (`https://.github.io//`). + (`https://.github.io//`). Published this way the gallery is an **installable + PWA** — *Add to Home Screen* on a phone, *Install* in Chrome/Edge on a laptop; it opens + full-screen and works offline. The path from here to a native app is in + [`APP-ROADMAP.md`](APP-ROADMAP.md). --- @@ -119,6 +122,7 @@ Everything renders from JSON — the template never holds data. The flow: | [`tools/collect/collect_stats.py`](tools/collect/collect_stats.py) | On-box gatherer (Pi-hole / Kuma / wg / nft). `--sample` runs anywhere | | [`tools/collect/categories.json`](tools/collect/categories.json) | Domain → category map | | [`tools/collect/nftables-accounting.nft`](tools/collect/nftables-accounting.nft) | The flow-accounting ruleset that yields per-category bytes | +| [`tools/collect/populate_sets.py`](tools/collect/populate_sets.py) | Resolves `categories.json` → IPs and feeds the nft sets — the piece that makes volume real. Runbook in [`collect/README.md`](tools/collect/README.md) | | [`tools/collect/sample-sidecar.json`](tools/collect/sample-sidecar.json) | Example operator sidecar (narrative + cohort + prior/YTD) | Regenerate the mockups (only dependency is `segno`): @@ -153,7 +157,7 @@ Read before shipping to a paying client. Be honest about which figures are real: | Uptime, peak latency | Uptime Kuma `/metrics` | **Real** — available today | | VPN session count | `wg show` | **Real** — available today | | "Handled For You" log | The operator's own change record (the sidecar) | **Real** — operator-maintained | -| **Traffic volume in GB, by category** | nftables accounting (`nftables-accounting.nft`) | **Buildable** — the ruleset + IP-set populator are scaffolded here; stand it up on the box before these sections are real | +| **Traffic volume in GB, by category** | nftables accounting (`nftables-accounting.nft` + `populate_sets.py`) | **Built — run it on the box.** Ruleset *and* IP-set populator now both ship here; load the ruleset, schedule `populate_sets.py`, and these sections are real (runbook: [`collect/README.md`](tools/collect/README.md)). Until then the committed examples use sample volume. | | Demographic benchmark averages | the cohort block in the sidecar | **Needs a real cohort dataset**, or it's a placeholder. Don't print invented peer averages on a kept document. | The committed examples use **sample data** for the volume-based sections. Before these go out for diff --git a/docs/statements/icons/apple-touch-icon.png b/docs/statements/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ea8107eafd71fd36d1352b2e0573bad7011fcf GIT binary patch literal 7867 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 Z`Tv_v7k!WcISK#(002ovPDHLkV1j6Ag*^ZO literal 0 HcmV?d00001 diff --git a/docs/statements/icons/icon-192.png b/docs/statements/icons/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..5e8ce4349719fe845e3a6258be9a813fca0e9a05 GIT binary patch literal 8374 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 M07*qoM6N<$g4Wng!vFvP literal 0 HcmV?d00001 diff --git a/docs/statements/icons/icon-512-maskable.png b/docs/statements/icons/icon-512-maskable.png new file mode 100644 index 0000000000000000000000000000000000000000..45d8368c46828ccca75fceaf046357daac78f8d3 GIT binary patch literal 8454 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 bybF@(=_Vv|M(RZoqX6#Q(oib8X&L%IsE#xm literal 0 HcmV?d00001 diff --git a/docs/statements/icons/icon-512.png b/docs/statements/icons/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9292f408d962326e5482fed09674f95c1bfc34 GIT binary patch literal 22887 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 literal 0 HcmV?d00001 diff --git a/docs/statements/icons/icon-maskable.svg b/docs/statements/icons/icon-maskable.svg new file mode 100644 index 0000000..be561f4 --- /dev/null +++ b/docs/statements/icons/icon-maskable.svg @@ -0,0 +1,12 @@ + + + + + + + + + A7 + diff --git a/docs/statements/icons/icon.svg b/docs/statements/icons/icon.svg new file mode 100644 index 0000000..86c67a5 --- /dev/null +++ b/docs/statements/icons/icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + A7 + diff --git a/docs/statements/index.html b/docs/statements/index.html index a01bb75..a9c5b95 100644 --- a/docs/statements/index.html +++ b/docs/statements/index.html @@ -4,6 +4,14 @@ A777ance — Statement Gallery + + + + + + + +