C:\Users\matt_\.claude\projects\C--Users-matt--OneDrive-Claude\memory\ and are indexed in MEMORY.md. Claude writes and updates these automatically. There are four types: project (ongoing work context), reference (where to find things), user (preferences and background), and feedback (how to behave).
Matthew moved in 2012 (earlier sessions had this as 2022 — this is the correct date).
- Andy Balding — technical lead — andy.balding@northernpowergrid.com
- Ben Hardy — complaints handler — ben.hardy@northernpowergrid.com
- Paul McGinlay — Operations Director — paul.mcginlay@northernpowergrid.com
- Louise Lowes — Director of Customer Service — louise.lowes@northernpowergrid.com (unverified)
- Garry Dando — Data Governance — garry.dando@northernpowergrid.com
New contacts: Mark Appleyard (Andy's manager) — mark.appleyard@northernpowergrid.com; Dean Hogarth (OCU DPO) — dpo@ocugroup.com.
Status (4 June 2026): All letters sent. Andy Balding responded to technical letter — did not refuse reinstatement conditions. Meeting agreed in principle with 6 conditions (date after 21 June, Saturday, reinstatement in writing, assessment only, disconnection threat withdrawn, prior letter provided). OCU SAR chased. TPO enquiry sent to Wakefield Council; emergency provisional TPO request to follow 5 June. Key Andy admission: NPG books works first, informs later. All files reorganised to _output\NPG-dispute\.
Do not use em dashes or hyphens as connectives in any written text (letters, documents, responses). Use full sentences instead.
Why: It makes writing look AI-generated. Matthew flagged this while reviewing NPG correspondence.
Exception: Hyphens in compound words (e.g. well-established, hand-pointed) are fine.
mattnoodling@gmail.com — used by the Personal Assistant agent for outbound enquiries: quote requests, tradespeople, bookings, and similar personal tasks. Keeps Matthew's personal addresses out of agent correspondence.
Password stored in the global secrets vault as CLAUDES-GMAIL-PASSWORD.
C:\Users\matt_\.claude\sql-standards.md- Developer in all proc headers: Matthew Denison, Team: D&A
- UPDATE then INSERT — never use SQL MERGE statement
- RowHash computed in staging view, stored in target, compared on join
- Surrogate keys:
SK{TableName}ID— generated via@maxid + ROW_NUMBER()(no IDENTITY in Fabric) - DELETE commented out for Dims by default; active for Facts
- Schemas: target
dw, stagingSTG, procsLOAD
The disseminate.co.uk website is split into two repos in the diss-tfs Azure DevOps org, project Disseminate Web Site:
- disseminate-compass — Claude Compass internal guide site. Source:
_claude-guide\. Deployed tocompass.disseminate.co.ukvia Cloudflare Pages, triggered on push tomain. Password protected with Cloudflare Access (one-time PIN to matthew@disseminate.co.uk). - disseminate-web — Main disseminate.co.uk website (not yet built). Separate Cloudflare Pages project.
Hosting stack: 123-reg DNS → Cloudflare nameservers → Cloudflare Pages (free tier). Auth via Cloudflare Access (Zero Trust, personal plan).
Why separate repos: Each is an independent app — Compass updates should not trigger a main site deployment. The main site will be public; only Compass needs auth.
Claude Compass is styled after awwwards.com/jobs — bold, near-monochromatic editorial aesthetic with an amber accent.
- Sidebar:
#111111near-black - Accent:
#D4920Aamber/gold - Background:
#F2F2F2, cards white - Headings: 52px, weight 900, uppercase, tight letter-spacing
- Logo bars: amber shades
#F5D08A → #E8A020 → #D4920A - Shadows: minimal/flat. Border-radius: 6px.
~/.claude/CLAUDE.md is a symlink. The real file is C:\Users\matt_\OneDrive\Claude\_global\CLAUDE.md.
Always edit the real path directly — the Edit tool refuses to write through symlinks. The symlink keeps global rules in OneDrive for backup and portability while making them available in Claude's config folder.
When selecting from CRL_Silver_LH views, always use the exact column casing from the original LOAD proc (typically all lowercase, e.g. countryname, iso2). Alias to DW PascalCase in the #Staged SELECT. Everything referencing #Staged afterwards uses DW names.
Why: The Silver Lakehouse is case-sensitive. Using PascalCase like [CountryName] directly in a Silver query causes Msg 207 "Invalid column name" at runtime.
How to apply: Find the original Silver→STG LOAD proc and copy column names from its SELECT list exactly. Never infer casing from the DW or STG DDL.
Once Matthew has approved a plan and execution is underway, proceed without giving additional warnings about actions covered in the plan.
Why: Rule 6 already covers this — plan approval = permission to execute. Mid-task warnings feel like re-asking for permission and slow things down.
How to apply: Give one-time warnings at the planning stage if something is irreversible or risky. Once Matthew says go, execute cleanly without commentary on each step.
- Model: Jacuzzi J-235 (2021), nickname "Huzi"
- Purchased from: Outdoor Living — contact for servicing, parts, and warranty
- Tariff: Intelligent Octopus Go — 6.9p/kWh off-peak (23:30–05:30), 28.5p/kWh peak
- Setup: Built-in economy/off-peak mode + external timer plug
- Data retention: 2 years of transactional GL data only — do not load
bi.gl_groupedhistorical rollup (pre-2023 Dufrain-era monthly summaries with degraded dimensionality) - Invoiced filter: mainaccountid IN ('600000','600100','603500','619500','600500','601000','600600') AND postingtype <> 14
- AccDef filter: mainaccountid IN ('602000','602100','602200','602300','602010','602110','600000','600100','600500') AND postingtype = 14
- Sign convention: All amounts negated (* -1) to match business reporting convention
- Schema mapping:
_output\fee-flash-schema-mapping.xlsx - Source model: GL SL PBIP at
_context\powerbi\GL SL.SemanticModel\
- Read-only commands (git status, git log, git diff, git show) are fine to use freely
- Exception: git operations directly implied by an agreed task instruction (e.g. "update this folder from branch X")
- Always ask or confirm before committing, pushing, pulling, or checking out