# Working Memory — Oliver Chapple

## Me
Oliver Chapple (Ollie). Runs Chapple Property Services (CPS). Based in UK, relocating to Spain (move-in 1 May 2026).
Email accounts: ojc@chappleproperty.co.uk (business Outlook), ochapple@btinternet.com (personal BT), Gmail (personal).

## People
| Who | Role |
|-----|------|
| **Jamie Wells** | Burgess Hodgson (BH) — accountants, handling A1/S1 certs with HMRC |
| **Matthew** | Burgess Hodgson (BH) — also on A1/S1 |
| **Rachel** | Webdadi — IT/web provider in liquidation; handles 3CX renewal payment |
| **Guy Insull** | Contact at/for 3CX / Webdadi matters |
| **Ian** | Tenant/owner at 1-8 Crescent Stables, SW15 2TN; owes CPS for Cardioscan insurance |
| **José** | jmartinezmu@icam.es — Spanish sworn translator |
| **Carol & Michael** | Contacts at Crescent Stables — received insurance confirmation |
| **Cicely** | Family member (child) — involved in Spain move, boarding pass sent to José |
| **Quantuma** | Insolvency practitioners handling Webdadi liquidation |
| **James Hallam** | Insurance broker — Crescent Stables property owners insurance |
| **AbbeyGate Insurance** | Ollie's insurance broker — contact via WhatsApp for Volvo claim |
| **Generali** | Insurance company for Volvo car claim |

## Terms
| Term | Meaning |
|------|---------|
| CPS | Chapple Property Services — Oliver's business |
| BH | Burgess Hodgson — accountants |
| A1 / S1 | HMRC certificates for working/healthcare abroad (Spain move) |
| 3CX | VoIP/phone system — renewal due 2 May, currently via Webdadi |
| EAW | Invoice type/reference at Burgess Hodgson (Webdadi-related) |
| SoA | Statement of Affairs (Webdadi liquidation document) |
| S100 | Webdadi liquidation document (signed via DocuSign) |
| Xero | Cloud accounting software used by CPS |
| Pipedream | Automation platform (Ollie's workspace: ollierc) |
| Agencia Tributaria | Spanish tax authority |

## Projects
| Name | What |
|------|------|
| **Webdadi liquidation** | IT/web provider winding down — liquidation date 23 Apr 2026, Quantuma handling |
| **Spain move** | Relocating family to Spain, move-in 1 May 2026; needs A1/S1/sworn translations |
| **Crescent Stables** | 1-8 Crescent Stables, SW15 2TN — property managed by CPS; Ian is key contact |
| **Allica Bank switch** | New business account open, Current Account Switch underway |
| **Volvo claim** | Car insurance claim — pack to be sent to Generali |

## Email Accounts (email-manager skill v5.1 — cloud-first, runtime-aware)
- **ojc@chappleproperty.co.uk** — Outlook/Exchange, business. Primary MCP: **ms365** (Microsoft Graph). Desktop fast-path: apple-mail.
- **ochapple@btinternet.com** — BT Yahoo, personal. Primary MCP: **bt-email** (IMAP/SMTP). Desktop fast-path: apple-mail.
- **Gmail** — personal (ollierc@gmail.com). Primary MCP: **Gmail connector**. Desktop fast-path: apple-mail.

Runtime is detected per session via capability flags (`MAIL_LOCAL`, `CAL_LOCAL`, `FS_LOCAL`). When all local MCPs are responsive within ~3s → `RUNTIME = DESKTOP`; otherwise `RUNTIME = REMOTE` and local-resource actions are queued via **Despatch**.

## Dashboard & Remote-Queue Architecture (single source of truth)
| File / Dir | Role | Path on disk |
|------------|------|-------------|
| `TASKS.md` | **Single source of truth** — all tasks live here | `/Email/TASKS.md` |
| `productivity.html` | Visual dashboard — auto-loads TASKS.md on open, no file picker | `/Email/productivity.html` |
| `email-todo-list.md` | Richer narrative version with full context | `/Email/email-todo-list.md` |
| `regenerate_dashboard.py` | Re-embeds TASKS.md into productivity.html | `/Email/email-manager-update/scripts/regenerate_dashboard.py` |
| `.email-scan-state.json` | Records last successful scan time — used by incremental scans | `/Email/.email-scan-state.json` |
| `memory/MEMORY.md` | **Index only** — points to the 5 KB sub-files (glossary, contacts, active, judgement_rules, irrelevance_signals); sub-files are parallel-read at session start | `/Email/memory/` |
| `calendar-outbox/` | `.ics` files generated in REMOTE context, imported into Apple Calendar on next Desktop session | `/Email/calendar-outbox/` |
| `drafts-outbox/` | Draft `.eml`/markdown files generated in REMOTE context, materialised into Apple Mail drafts on next Desktop session | `/Email/drafts-outbox/` |
| `despatch-queue.jsonl` | Queue of Desktop-only actions (calendar add, draft save, send, TASKS.md write) created while REMOTE; drained on next Desktop session start | `/Email/despatch-queue.jsonl` |
| `dashboard.html` | Productivity plugin generic dashboard — **ignore, use productivity.html** | `/Email/dashboard.html` |

**How it works:**
1. Every Desktop session starts with: parallel-read the 5 KB sub-files, sync & read `TASKS.md`, drain `despatch-queue.jsonl`.
2. Email triage → cloud-first MCP calls (ms365 / bt-email / Gmail) in a single parallel batch; Apple Mail used only when it's the faster Desktop fast-path (draft review, search-by-thread) or as a fallback.
3. After any task change → surgical Edit to `TASKS.md` → run `regenerate_dashboard.py` → `productivity.html` auto-loads the new data next open.
4. Calendar events on Desktop: `(y/n)` prompt → add to Family (personal/travel) or Outlook (business) with 30-min reminder + duplicate check. On Remote: write `.ics` (with `VTIMEZONE:Europe/Madrid`) to `calendar-outbox/` and enqueue Despatch for Desktop.

**Dashboard link rules:**
- Cloud (always available): `https://emailmanager.aiassists.me/productivity.html`
- Desktop local (when server.py is running): `http://localhost:8765/productivity.html`
- **Never emit `computer://` URLs** — they only work inside the deprecated CoWork Schedule session sandbox and break in Claude Desktop / mobile.

**Scheduled / background runs:** A Desktop-side scheduled run (e.g. lunchtime incremental scan) reads `TASKS.md` + `.email-scan-state.json`, scans only mail since last run, drains Despatch, updates `TASKS.md`, regenerates `productivity.html`, and writes new state. On mobile (REMOTE) the same work is queued via Despatch and completes on the next Desktop session — Cursor sessions never own task state, they only bootstrap an initial `TASKS.md` which then syncs into `/Email/TASKS.md` as the canonical copy.

## Preferences
- Update TASKS.md and run `regenerate_dashboard.py` after every email session (Desktop) or via Despatch (Remote).
- **TASKS.md edits must be surgical — use Edit tool only**: mark items `[x]`, add new lines to the correct section, update specific text. Never rewrite the whole file with Write. Full Write is only permitted when creating the file from scratch or doing a deliberate structural reorganisation agreed with Oliver.
- Completed tasks are moved to the Completed section (with date), not deleted.
- Calendar default = **Family** (iCloud) for personal/family/travel; Outlook for business. Always ask `(y/n)` on Desktop unless the event is already a confirmed travel booking in-context. Multi-leg flights → one event **per leg**; hotels → one event spanning check-in → check-out.
- Cloud-first routing by default; choose Apple Mail / Apple Calendar on Desktop only when it's demonstrably the faster path.
- Chase-up items are time-sensitive — flag deadlines prominently.
- Use WhatsApp (not email) to contact AbbeyGate Insurance.
