diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index ec9d101..5128d3b 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -212,6 +212,7 @@
},
"active": "26813e16e829b798",
"lastOpenFiles": [
+ "010 inbox/Compass NHS — Harry and Finn's School Service.md",
"010 inbox/Ai Resume RAG Architecture Ideas.md",
"200 projects/210 AI Resume/Ai Resume RAG Architecture Ideas.md",
"000 daily/Daily Notes and To Do.md",
@@ -239,7 +240,6 @@
"100 inbox",
"010 inbox/Hindsight AI Resume Tool.md",
"200 projects/210 AI Resume/Hindsight AI Resume Tool.md",
- "010 inbox/Alibaba Code Review AI Tool.md",
"010 inbox/_WATCHER",
"300 areas/355 AI Research and Techniques",
"300 areas/355 Ai Research and Techniques",
diff --git a/010 inbox/Compass NHS — Harry and Finn's School Service.md b/010 inbox/Compass NHS — Harry and Finn's School Service.md
new file mode 100644
index 0000000..494d659
--- /dev/null
+++ b/010 inbox/Compass NHS — Harry and Finn's School Service.md
@@ -0,0 +1,137 @@
+---
+type: note
+proposed_folder: 200 projects/Tools Software WebUI
+proposed_toc: "100 Table of Contents/Projects.md → Tools & Software"
+proposed_tags:
+ - project
+ - family
+ - architecture
+ - go
+ - compass
+ - finn
+ - school
+ - service
+ - sqlite
+ - htmx
+ - playwright
+ - apprise
+confidence: 0.38
+approved: false
+proposed_for: 242a5e5a3d38
+created: "2026-10-15 20:00"
+tags:
+ - project
+ - family
+ - school
+ - compass
+ - go
+ - sqlite
+ - htmx
+ - playwright
+ - apprise
+aliases:
+ - Compass NHS
+ - School Service
+skills:
+ - Go service with no heavy framework
+ - SQLite data modelling with versioned migrations
+ - HTMX server-rendered dashboard with no build step
+ - Headless browser automation (patchright) past a Cloudflare challenge
+ - HTML parsing into structured items
+ - Read-only HTTP contract for another service (the Hub)
+ - Docker and Caddy deployment
+ - n8n scheduling with a restricted SSH trigger
+tools:
+ - Go
+ - SQLite
+ - HTMX
+ - patchright (headless Playwright)
+ - Docker
+ - Caddy
+ - n8n
+ - Apprise
+ - Home Assistant
+ - OmniRoute
+---
+
+# [[Compass NHS — Harry and Finn's School Service]]
+
+## What is this project?
+
+This project watches the school for Harry and Finn. Each morning it reads the
+school system, Compass, and works out what each boy has due. It shows Sam one
+page with what is overdue first. It then sends each boy his own short brief, and
+one combined brief to Jo and Sam.
+
+The point is simple. Nobody has to log into Compass in the morning. The family
+learns about late work **before** it is late, not after.
+
+## What it does
+
+- **Reads Compass** for both children, twice a day apart or on demand.
+- **Stores every item**: homework, tasks, notices and school events, each against
+ the right child.
+- **Finds overdue work** and puts it first. Then due today, then due this week.
+- **Shows a dashboard** with one tab per child. It works on a phone.
+- **Writes important school events** to the Home Assistant calendar
+ `calendar.school`.
+- **Sends the morning briefs** at 6:00am on Email and WhatsApp.
+- **Answers the Hub** to a question such as "what does Harry have on today at
+ school?" That path is read-only.
+
+## Why it matters (what it shows)
+
+This is a small but complete home-lab product, not a script. The service is one
+Go binary with SQLite. It has its own container, its own port, its own login and
+its own Caddy route. It is read-only against the school: it logs in and reads,
+and it never posts or messages.
+
+The interesting engineering part is the login. Compass sits behind **Cloudflare**,
+and the login form is protected by a managed bot challenge. A normal headless
+browser gets a 403. The project uses **patchright**, a headless Playwright build
+that behaves enough like a real browser to pass the challenge. The parent login
+needed **no** two-factor code.
+
+The other deliberate design is honesty about failure. A failed scan must never
+look like a quiet day with no homework. The dashboard, the briefs and the Hub
+answer all state the real scan state in plain words.
+
+## Architecture
+
+```mermaid
+flowchart LR
+ N8N["n8n on .13
06:00 daily trigger"] --> SVC["Compass / NHS service
Go + SQLite :8792"]
+ SAM["Sam
browser dashboard"] --> CADDY["Caddy on .35"] --> SVC
+ SVC -->|scan| PATCH["patchright scraper"] -->|login + pages| COMPASS["Compass NHS
read-only"]
+ SVC -->|"create event"| HA["Home Assistant
calendar.school"]
+ SVC -->|briefs| APPRISE["Apprise .35:8210
Email + WhatsApp"]
+ APPRISE --> BOYS["Harry and Finn
per-boy brief"]
+ APPRISE --> PARENTS["Jo and Sam
combined brief"]
+ HUB["Hub :8788
read-only /ask"] --> SVC
+```
+
+## What is still missing (state it plainly)
+
+**Teams (FR-15) is DEFERRED.** The project does not scan Teams for homework. This
+is a known gap that the brief set aside on purpose. Everything else in the build
+spec is built, deployed and running. Compass alone already answers what is due
+and overdue.
+
+## Where it lives
+
+- **Code**: Gitea repo `sam/compass_teams_nhs` (`main`).
+- **Live**: — its own container on `.13`,
+ port 8792, behind Caddy on `.35`.
+- **Interactive map**:
+
+- **AI context**: `docs/outline/` in the repo, and the Outline collection
+ *Compass / NHS (School)*.
+- **Tasks**: Vikunja project **Compass / NHS (School)** (id 21).
+- **Diagram source**: `docs/architecture.mmd`, rendered to
+ `docs/diagrams/architecture.png`.
+
+## Status
+
+Built and deployed. Phases 1 to 9 are done. Teams (FR-15) is deferred. The service
+scans both children, shows overdue work first, writes important events to the
+calendar, and sends the briefs every morning at 6:00am.
diff --git a/010 inbox/_sort log.md b/010 inbox/_sort log.md
index 69dad5f..d329bc1 100644
--- a/010 inbox/_sort log.md
+++ b/010 inbox/_sort log.md
@@ -20094,3 +20094,7 @@ What the watcher did, newest last.
### 2026-10-14 16:00:53
- **filed** `Ai Resume RAG Architecture Ideas.md` → `200 projects/210 AI Resume/Ai Resume RAG Architecture Ideas.md` (type project)
+
+### 2026-10-15 19:59:17
+- **proposed** `Compass NHS — Harry and Finn's School Service.md` → `200 projects/Tools Software WebUI` (confidence 0.38)
+- - Low JEV confidence — recommend human confirmation