dare.co.uk — daily hygiene
DARE.CO.UK · DAILY HYGIENE · 21 JUNE 2026
Site hygiene: GREEN ✅ — 3 ok, 0 warnings, 0 failures.
At a glance
| Check | Verdict | Summary |
|---|---|---|
| portfolio link-graph tripwire | ✅ green | link-graph GREEN: crawled 7 surfaces (pa-ebay, pa-amazon, assets, payload, print, snapshots, GF — Strategy), all 135 intended links/clicks resolve. |
| snapshots.gf.cx R2 push | ✅ green | All snapshot entries in last 48h have working R2 URLs across 22 surface(s). |
| Burst-VM Linode billing | ✅ green | burst-vm: no instances, uninvoiced $2.14 |
✅ portfolio link-graph tripwire — GREEN
link-graph GREEN: crawled 7 surfaces (pa-ebay, pa-amazon, assets, payload, print, snapshots, GF — Strategy), all 135 intended links/clicks resolve.
- Detail (markdown):
dare_linkgraph_2026-06-21.md - Detail (HTML):
dare_linkgraph_2026-06-21.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
surfaces=7,links=135,problems=0,gated=0,unreachable=0
✅ snapshots.gf.cx R2 push — GREEN
All snapshot entries in last 48h have working R2 URLs across 22 surface(s).
- Detail (markdown):
dare_snapshots_r2_push_2026-06-21.md - Detail (HTML):
dare_snapshots_r2_push_2026-06-21.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
surfaces=[{'slug': 'antifragile-gf', 'total_entries': 18, 'in_window': 5, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'antifragile-gf_2026-06-21_842f982.jpg'}, {'slug': 'brand-gf-cx', 'total_entries': 6, 'in_window': 3, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'brand-gf-cx_2026-06-21_fbac34c.jpg'}, {'slug': 'brooklyn-gf-cx', 'total_entries': 6, 'in_window': 2, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'brooklyn-gf-cx_2026-06-21_c8ddc84.jpg'}, {'slug': 'crm-gf-cx', 'total_entries': 6, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'crm-gf-cx_2026-06-20_110128.jpg'}, {'slug': 'cv-gf-cx', 'total_entries': 6, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'cv-gf-cx_2026-06-20_110139.jpg'}, {'slug': 'dash-gf-cx', 'total_entries': 55, 'in_window': 4, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'dash-gf-cx_2026-06-21_cd56e77.jpg'}, {'slug': 'dash-reports', 'total_entries': 75, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'dash-reports_2026-06-20_8d6462a.jpg'}, {'slug': 'data-gf-cx', 'total_entries': 30, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'data-gf-cx_2026-06-20_df04686.jpg'}, {'slug': 'data-sourced', 'total_entries': 28, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'data-sourced_2026-06-20_df04686.jpg'}, {'slug': 'email-gf-cx', 'total_entries': 7, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'email-gf-cx_2026-06-20_7558645.jpg'}, {'slug': 'growth-gf-cx', 'total_entries': 13, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'growth-gf-cx_2026-06-20_110121.jpg'}, {'slug': 'happiness-gf-cx', 'total_entries': 88, 'in_window': 19, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'happiness-gf-cx_2026-06-20_c66153a.jpg'}, {'slug': 'london-gf-cx', 'total_entries': 10, 'in_window': 7, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'london-gf-cx_2026-06-20_552a60b.jpg'}, {'slug': 'pa-gf-cx', 'total_entries': 23, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'pa-gf-cx_2026-06-20_110037.jpg'}, {'slug': 'patterns-gf-cx', 'total_entries': 49, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'patterns-gf-cx_2026-06-20_4e3ab40.jpg'}, {'slug': 'radar-gf-cx', 'total_entries': 6, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'radar-gf-cx_2026-06-20_110133.jpg'}, {'slug': 'sandbox-fal', 'total_entries': 9, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'sandbox-fal_2026-06-20_110110.jpg'}, {'slug': 'sandbox-gf-cx', 'total_entries': 10, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'sandbox-gf-cx_2026-06-20_110105.jpg'}, {'slug': 'sandbox-one-pager', 'total_entries': 4, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'sandbox-one-pager_2026-06-20_110116.jpg'}, {'slug': 'services-gf-cx', 'total_entries': 4, 'in_window': 1, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'services-gf-cx_2026-06-20_32ec2f7.jpg'}, {'slug': 'status-gf-cx', 'total_entries': 273, 'in_window': 2, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'status-gf-cx_2026-06-21_b92a74d.jpg'}, {'slug': 'status-transfer-windows', 'total_entries': 41, 'in_window': 2, 'missing_r2': 0, 'missing_examples': [], 'broken_url_count': 0, 'latest_broken': False, 'latest_filename': 'status-transfer-windows_2026-06-21_b92a74d.jpg'}],total_missing_r2=0,total_broken_url=0,latest_broken_surfaces=[]
✅ Burst-VM Linode billing — GREEN
burst-vm: no instances, uninvoiced $2.14
- Detail (markdown):
dare_burst_billing_2026-06-21.md - Detail (HTML):
dare_burst_billing_2026-06-21.html— surfaces in the dev-reports catalog after the next sync.
What this tells us
- Across 3 check(s), nothing is broken today. The site’s reader-facing surface (pages, images, sitemap) and its agent-facing surface (JSON-LD, robots, sitemap) are intact.
- Daily run continues as a tripwire — the value is in catching the day the verdict flips, not in the daily green tick.
What’s next
- Re-runnable any time:
python3 ~/bin/dare_daily_hygiene.py. - Scheduled daily 07:30 local via
~/Library/LaunchAgents/uk.co.dare.daily-hygiene.plist. - Each detail report in the catalog (sync runs every 30 min from
~/Library/LaunchAgents/uk.co.dare.devreports-sync.plist). - Add more checks: register an adapter in
CHECKSinside~/bin/dare_daily_hygiene.py. Phase 2 candidates parked inPHASE2_PARKED(same file): Broken-link crawl (outbound), Image-naming audit, Content-freshness audit.
Generated 2026-06-21 18:06:05 via dare_daily_hygiene.py.
Source:
dare_daily_hygiene_2026-06-21.md · Rendered Built with — component scripts
dare_daily_hygiene.py— generated this reportseo_render_html.py— wraps the source.mdin the dash.gf.cx design language (+anchor_enricher.pyfor inline-link promotion & rollover thumbnails)dare_dev_reports_publish.py— bundles the day’s reports into the catalog and ships to dash.gf.cx/reports