From 67b3fd23d1f7ca6f1707efae0eb72c2df497f2f4 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Thu, 8 Oct 2026 08:29:17 +0200 Subject: [PATCH] website refresh: true numbers (56 apps), claims checked against the capability map, ten missing apps, an English twin of every public page (public, choice B), 404 page; site gates 13-18 + 11 decoys; R-902 opened MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part A: claim table documentation/audits/website-refresh-2026-10-08/claims.md; "100% open source" corrected from the licence read; unbacked claims cut (firewall, RAID, snapshots, new-machine restore, self-managed mode, household VPN, "never lost"). Part B: dawarich, docmost, grimmory, homebox, karakeep, mealie, metube, radicale, recipe-importer, sparkyfitness cards; plant-it and wger cut (not offered). Part C: /en/ twins, nav language switch, hreflang both ways, sitemap with xhtml:link, og-image-en.png. Part D: site_gates.py twins/lang/same-apps/no-Hungarian/FAQ-JSON-LD/tail. Operator ruling 9 + choice B in 10-localisation.md §11, §10.7. Register: R-902 (contact mailer source in no repo); R-813, R-784, R-559 annotated. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb --- .claude/rules/website.md | 30 +- STATUS.md | 14 + documentation/architecture/10-localisation.md | 49 +- .../website-refresh-2026-10-08/claims.md | 128 ++ .../website-refresh-2026-10-08/decoys.txt | 44 + .../website-refresh-2026-10-08/mailer.md | 79 + .../shots/README.md | 116 ++ .../shots/baseline-9202.txt | 16 + .../shots/docmost/image-app-icon-192x192.png | Bin 0 -> 4722 bytes .../shots/docmost/image-app-icon-512x512.png | Bin 0 -> 13696 bytes .../shots/docmost/raw/1.png | Bin 0 -> 60972 bytes .../shots/docmost/raw/2.png | Bin 0 -> 73920 bytes .../shots/docmost/raw/3.png | Bin 0 -> 108279 bytes .../shots/docmost/run.log | 25 + .../shots/homebox/logo-favicon.svg | 11 + .../shots/homebox/raw/1.png | Bin 0 -> 87740 bytes .../shots/homebox/raw/2.png | Bin 0 -> 83577 bytes .../shots/homebox/raw/3.png | Bin 0 -> 120756 bytes .../shots/homebox/run.log | 160 ++ .../mealie/image-android-chrome-512x512.png | Bin 0 -> 14772 bytes .../shots/mealie/image-icon.png | Bin 0 -> 26836 bytes .../shots/mealie/image-safari-pinned-tab.svg | 28 + .../shots/mealie/raw/1.png | Bin 0 -> 87097 bytes .../shots/mealie/raw/2.png | Bin 0 -> 79309 bytes .../shots/mealie/raw/3.png | Bin 0 -> 93982 bytes .../shots/mealie/raw/unused-recipe-list.png | Bin 0 -> 69609 bytes .../shots/mealie/run.log | 152 ++ .../shots/recipe-importer/image-logo.svg | 255 +++ .../recipe-importer/image-logo_favicon_2.svg | 226 +++ .../shots/recipe-importer/raw/1.png | Bin 0 -> 45389 bytes .../shots/recipe-importer/raw/2.png | Bin 0 -> 67375 bytes .../shots/recipe-importer/raw/3.png | Bin 0 -> 82910 bytes .../raw/unused-phone-import.png | Bin 0 -> 94202 bytes .../shots/recipe-importer/run.log | 60 + .../sparkyfitness/image-icon-512x512.png | Bin 0 -> 129407 bytes .../shots/sparkyfitness/raw/1.png | Bin 0 -> 112283 bytes .../shots/sparkyfitness/raw/2.png | Bin 0 -> 74104 bytes .../shots/sparkyfitness/raw/3.png | Bin 0 -> 121393 bytes .../raw/unused-diary-before-water.png | Bin 0 -> 108676 bytes .../raw/unused-first-load-version-notice.png | Bin 0 -> 74391 bytes .../raw/unused-measurements-scrolled.png | Bin 0 -> 42133 bytes .../shots/sparkyfitness/run.log | 212 +++ .../shots/teardown-9202.txt | 41 + .../shots/tools/docmost.js | 123 ++ .../shots/tools/env.sh | 3 + .../shots/tools/homebox.js | 125 ++ .../shots/tools/mealie-probe.js | 25 + .../shots/tools/mealie.js | 120 ++ .../shots/tools/recipe-importer.js | 46 + .../shots/tools/sparkyfitness.js | 108 ++ .../shots/tools/sw.py | 17 + .../shots/tools/towebp.py | 13 + .../shots/tools/wr.py | 128 ++ .../tools/apps_build.py | 241 +++ .../tools/build_404.py | 45 + .../tools/build_sitemap.py | 25 + .../tools/cards_data.py | 163 ++ .../tools/common.py | 120 ++ .../tools/en_backups.py | 114 ++ .../tools/en_common.py | 29 + .../tools/en_contact.py | 95 ++ .../tools/en_download.py | 11 + .../tools/en_faq.py | 264 +++ .../tools/en_index.py | 195 +++ .../tools/en_tech.py | 158 ++ .../tools/hu_build.py | 121 ++ .../tools/hu_build2.py | 125 ++ .../tools/nonpublic.py | 10 + .../website-refresh-2026-10-08/tools/og_en.py | 46 + documentation/backlog/CLOSED-ITEMS.md | 2 +- documentation/backlog/OPEN-ITEMS.md | 7 +- .../runbooks/VOLUNTEER-first-hour.md | 5 +- scripts/CHANGELOG.md | 17 + scripts/site_gates.py | 288 +++- scripts/test_gate_decoys.py | 62 +- skills/felhom-ui-design/SKILL.md | 6 +- website/404.html | 124 ++ website/CHANGELOG.md | 44 + website/alkalmazasok.html | 311 +++- website/assets/docmost-logo.png | Bin 0 -> 13696 bytes website/assets/docmost-screenshot-1.webp | Bin 0 -> 21706 bytes website/assets/docmost-screenshot-2.webp | Bin 0 -> 28984 bytes website/assets/docmost-screenshot-3.webp | Bin 0 -> 44204 bytes website/assets/homebox-logo.svg | 11 + website/assets/homebox-screenshot-1.webp | Bin 0 -> 32320 bytes website/assets/homebox-screenshot-2.webp | Bin 0 -> 30250 bytes website/assets/homebox-screenshot-3.webp | Bin 0 -> 30528 bytes website/assets/mealie-logo.svg | 26 + website/assets/mealie-screenshot-1.webp | Bin 0 -> 36064 bytes website/assets/mealie-screenshot-2.webp | Bin 0 -> 36944 bytes website/assets/mealie-screenshot-3.webp | Bin 0 -> 40834 bytes website/assets/og-image-en.png | Bin 0 -> 135646 bytes website/assets/recipe-importer-logo.svg | 226 +++ .../assets/recipe-importer-screenshot-1.webp | Bin 0 -> 16418 bytes .../assets/recipe-importer-screenshot-2.webp | Bin 0 -> 26170 bytes .../assets/recipe-importer-screenshot-3.webp | Bin 0 -> 32430 bytes website/assets/sparkyfitness-logo.png | Bin 0 -> 37528 bytes .../assets/sparkyfitness-screenshot-1.webp | Bin 0 -> 43018 bytes .../assets/sparkyfitness-screenshot-2.webp | Bin 0 -> 31936 bytes .../assets/sparkyfitness-screenshot-3.webp | Bin 0 -> 42564 bytes website/biztonsagimentes.html | 18 +- website/en/apps.html | 1459 +++++++++++++++++ website/en/backups.html | 331 ++++ website/en/contact.html | 601 +++++++ website/en/download.html | 12 +- website/en/faq.html | 1047 ++++++++++++ website/en/index.html | 575 +++++++ website/en/technology.html | 498 ++++++ website/gyik.html | 139 +- website/index.html | 56 +- website/kapcsolat.html | 4 + website/letoltes.html | 2 +- website/sitemap.xml | 74 +- website/szolgaltatasok-nonpublic.html | 1 + website/technologiak.html | 63 +- 115 files changed, 9846 insertions(+), 279 deletions(-) create mode 100644 documentation/audits/website-refresh-2026-10-08/claims.md create mode 100644 documentation/audits/website-refresh-2026-10-08/decoys.txt create mode 100644 documentation/audits/website-refresh-2026-10-08/mailer.md create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/README.md create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/baseline-9202.txt create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/docmost/image-app-icon-192x192.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/docmost/image-app-icon-512x512.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/docmost/raw/1.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/docmost/raw/2.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/docmost/raw/3.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/docmost/run.log create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/homebox/logo-favicon.svg create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/homebox/raw/1.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/homebox/raw/2.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/homebox/raw/3.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/homebox/run.log create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/mealie/image-android-chrome-512x512.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/mealie/image-icon.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/mealie/image-safari-pinned-tab.svg create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/mealie/raw/1.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/mealie/raw/2.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/mealie/raw/3.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/mealie/raw/unused-recipe-list.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/mealie/run.log create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/recipe-importer/image-logo.svg create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/recipe-importer/image-logo_favicon_2.svg create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/recipe-importer/raw/1.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/recipe-importer/raw/2.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/recipe-importer/raw/3.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/recipe-importer/raw/unused-phone-import.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/recipe-importer/run.log create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/sparkyfitness/image-icon-512x512.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/sparkyfitness/raw/1.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/sparkyfitness/raw/2.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/sparkyfitness/raw/3.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/sparkyfitness/raw/unused-diary-before-water.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/sparkyfitness/raw/unused-first-load-version-notice.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/sparkyfitness/raw/unused-measurements-scrolled.png create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/sparkyfitness/run.log create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/teardown-9202.txt create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/docmost.js create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/env.sh create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/homebox.js create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/mealie-probe.js create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/mealie.js create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/recipe-importer.js create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/sparkyfitness.js create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/sw.py create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/towebp.py create mode 100644 documentation/audits/website-refresh-2026-10-08/shots/tools/wr.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/apps_build.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/build_404.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/build_sitemap.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/cards_data.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/common.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/en_backups.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/en_common.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/en_contact.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/en_download.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/en_faq.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/en_index.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/en_tech.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/hu_build.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/hu_build2.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/nonpublic.py create mode 100644 documentation/audits/website-refresh-2026-10-08/tools/og_en.py create mode 100644 website/404.html create mode 100644 website/assets/docmost-logo.png create mode 100644 website/assets/docmost-screenshot-1.webp create mode 100644 website/assets/docmost-screenshot-2.webp create mode 100644 website/assets/docmost-screenshot-3.webp create mode 100644 website/assets/homebox-logo.svg create mode 100644 website/assets/homebox-screenshot-1.webp create mode 100644 website/assets/homebox-screenshot-2.webp create mode 100644 website/assets/homebox-screenshot-3.webp create mode 100644 website/assets/mealie-logo.svg create mode 100644 website/assets/mealie-screenshot-1.webp create mode 100644 website/assets/mealie-screenshot-2.webp create mode 100644 website/assets/mealie-screenshot-3.webp create mode 100644 website/assets/og-image-en.png create mode 100644 website/assets/recipe-importer-logo.svg create mode 100644 website/assets/recipe-importer-screenshot-1.webp create mode 100644 website/assets/recipe-importer-screenshot-2.webp create mode 100644 website/assets/recipe-importer-screenshot-3.webp create mode 100644 website/assets/sparkyfitness-logo.png create mode 100644 website/assets/sparkyfitness-screenshot-1.webp create mode 100644 website/assets/sparkyfitness-screenshot-2.webp create mode 100644 website/assets/sparkyfitness-screenshot-3.webp create mode 100644 website/en/apps.html create mode 100644 website/en/backups.html create mode 100644 website/en/contact.html create mode 100644 website/en/faq.html create mode 100644 website/en/index.html create mode 100644 website/en/technology.html diff --git a/.claude/rules/website.md b/.claude/rules/website.md index 9664e233..c32dc214 100644 --- a/.claude/rules/website.md +++ b/.claude/rules/website.md @@ -16,10 +16,27 @@ tag-based publishing is a separate mechanism — see the R-110 fence in the repo ## Gates Website changes go through `python3 scripts/repo_gates.py`, which runs `site_gates.py`. **A new page -must be added to that gate's `PAGES` list** or it is unchecked. +must be registered in that gate** — in `TWINS` together with its English twin, or by name in `NO_TWIN` — +or it is unchecked (and the gate's walk refuses it). -`site_gates.py` asserts: BOM, emoji, nav/footer consistency, analytics, CDN, design tokens, no -embedded `