CLAUDE.md
Language Markdown5.1 KB52 lines
---type: claude-instructionsscope: project-roottags: [claude, outreach]created: 2026-06-16updated: 2026-07-24---# CLAUDE: Quarterly Outreach Project Instructions## What this project isA client research database for Meridian Display Co.'s quarterly outreach, covering the **full Partner Program client base (Palladium and up)** plus the original Check-In/Winback cohorts. This repo ships a generated sample book: 381 Plinth accounts, 130 of them partner clients with a stub each (see [[README]]). Each client has a stub in `03-Clients/client-stubs/` ready to receive scraped/enriched data and human notes. The `03-Clients/` root holds only the folder rules ([[CLAUDE-clients]]) and `partner-client-master-list.xml`, the **master list of clients in the Partner Program** (schema 3.0). That file is a **complete machine-readable census of every partner client**, each carrying both a `<bitrix_id>` (CRM) and a `<plinth_id>` (Plinth order backend), whether pipeline-mapped or not; clients not yet in a pipeline carry `<pipelines count="0" />`. Segmentation: partner tier (`user_group` / `user_group_correct`) and outreach play (`outreach_pipelines`).## Folder map- `01-Tiers/`: Partner Program tier notes (Dataview rollups of members).- `02-Outreach/`: outreach-play notes, email templates, call scripts.- `03-Clients/`: `client-stubs/` (all stubs, flat) + `partner-client-master-list.xml` + [[CLAUDE-clients]]. Read the folder rules before touching anything here.- `04-Working/`: in-progress drafts.- `05-Outputs/`: finished deliverables, email drafts, run artifacts, backups.- `06-Resources/`: reference material.- `07-Automation/`: the **live Weekly Partner Client Pipeline** (driver, SOP, thresholds, runbook, local order history in `data/`). **Armed and scheduled** since 2026-07-23: Mondays 06:00 America/Chicago, autonomy `through_vault`. It pulls Plinth deltas, classifies, verifies (the no-shrink guardrail halts on exit 2), writes/upgrades partner stubs, and refreshes the XML census. It does NOT enrich, and it never writes to Bitrix: routing only proposes candidates (rules in [[pipeline-routing-rules]]), and every Bitrix write stays human-gated. Don't modify the driver or config without Matt's explicit go-ahead. The local `data/order_history.json` is the LTV source of truth: never recompute lifetime totals from a raw Plinth query (the API truncates; see the SOP).- `08-Planning/`: **human-only** planning space for Matt, Hazel, and Ines. Claude may read it for context but never creates, edits, moves, or deletes anything in it. No exceptions unless Matt explicitly grants one.## How to work here- Read [[MEMORY]] at the start of every session.- Client-facing work comes first. Outreach copy must sound like Matt, never like an AI. Use the `matt-guerra-email` skill for any client email; avoid the AI tells (no em-dashes, no "leverage/seamless/ensure/utilize", no over-structured short replies).- When enriching a client, append to the stub's `## Research` section. Never overwrite human notes. Follow [[CLAUDE-clients|the client-folder rules]].- Everything links: tier and outreach notes pull their members back via Dataview over stub frontmatter. Preserve this when adding files.- Facts must be sourced. Don't fabricate company/person detail. Use `[TBD: ...]` markers for gaps.## Shared vault: log every change to [[LEDGER]]This vault is worked by two operators through separate Cowork projects synced over Obsidian: **Matt** and **Hazel**. The ledger is how each side sees what the other did. This is a **session requirement, not optional**:- **On any vault change** (creating, editing, enriching, moving, or deleting any file: stubs, templates, tier/outreach notes, reference files, and including any update to [[CHANGELOG]] or [[HEARTBEAT]]), append an entry to [[LEDGER]] before ending the turn. Batch one change-set into one entry; don't spam one entry per file.- **Attribute by the active session's user email:** `hello@meridiandisplay.example` → **Matt**; `accounts@meridiandisplay.example` → **Hazel**; anything else → log as `Unknown (<email>)` and flag it. Never guess the actor.- **Timestamp from the system clock** (`date`), in the operator's local time. Don't approximate.- Follow the entry format defined in [[LEDGER]]. The ledger is append-only: never rewrite or delete prior entries.- Pulling in others' synced changes? Skim [[LEDGER]] first to see what they touched.## Map of Claude reference files- [[LEDGER]]: append-only who-changed-what log for Matt + Hazel. Update on every vault change.- [[MEMORY]]: durable project context.- [[MODEL_GUIDE]]: which model for which task.- [[SKILLS_REFERENCE]]: skills relevant to this project.- [[HEARTBEAT]]: in-flight working state.- [[CHANGELOG]]: what changed.- [[DECISIONS]]: why it changed.- [[SETUP]]: how to open and run the vault.- [[00-Index]]: human-facing navigation.## Subdirectory reference files- [[CLAUDE-clients]] (at `03-Clients/CLAUDE-clients.md`): the client-folder rules. Covers the `client-stubs/` layout, the XML map contract (chunking, `<summary>` regeneration, stub-path sync), and the scraping-dump contract. Read before creating, editing, or enriching any client stub or touching the XML map.