01 — Three-Layer Architecture

Three layers. Each solves a different problem. They talk to each other.

The system isn't three separate tools — it's three layers with defined roles, explicit data flows, and bidirectional checks that keep them in sync. D1 is the source of truth for operational data. Memories hold the big picture. Project files hold the stable playbook. Skills are the glue that pull from all three.

monthly updates

Memories

Claude's built-in memory

Identity, current state, behavioral rules, architecture decisions. The stuff that rarely changes. Reserved for big-picture context — not operational data.

stable

Project Files

~20 markdown files in Claude Projects

Playbook and stable reference. Org charts, skill scripts, deploy notes, lessons learned. Changes when your job or systems change, not daily.

daily writes

D1 Database

Cloudflare D1 + Workers API

Live operational data — tasks, people, tribal knowledge, relationship intel. Source of truth. Claude reads and writes via API every session.

↑ ↓   bidirectional sync   ↑ ↓

Migration rules — data moves between layers on a cadence, not randomly:

Weekly+D1. Tasks, knowledge captures, intel updates, anything that changes during the workweek.
MonthlyMemories. Architecture changes, role shifts, new behavioral rules, updated goals.
RareProject files. Org chart updates, new skills, stable reference that doesn't change for months.

02 — Skills Are the Glue

Slash commands connect the layers

Each skill is a markdown file with step-by-step instructions Claude follows exactly. The critical design rule: every skill explicitly declares which data sources it pulls from and in what order. Skills don't just read one layer — they consult all three, reconcile conflicts, and write back.

/morningDaily, before first meetingPull D1 stats, read project lessons file, compare memories against D1 counts, flag cold relationships
/debriefAfter every meetingPull transcript, extract tasks and people intel, present for review, push approved items to D1
/closeEnd of each sessionCapture decisions, run bidirectional drift check (D1 ↔ memories), update state across layers
/weeklyFridayFull semantic audit — contradictions, stale data, orphaned references, relationship gaps, duplicates
/grill-meBefore executing any planStress-test a plan or design — Claude interviews you one question at a time, walking each branch of the decision tree with its recommended answer

03 — Project Files

What Claude reads every session

These markdown files live inside a Claude Project. They give Claude persistent context about the job, people, infrastructure, and repeatable workflows. Claude reads them at the start of every conversation — like onboarding docs for a hire that never forgets.

FilePurpose
Reference — loaded first, every session
ref-context.mdWho I am, career trajectory, daily cadence, what to watch for
ref-project-instructions.mdAPI endpoints, credentials, key people, facility context, commands
ref-eaton-stable.mdStable reference pruned from memories — org chart, PPE rules, shift supervisors
ref-debrief-protocol.mdPost-meeting extraction format and strategic analysis structure
Skills — slash commands Claude executes like scripts
skill-morning.md/morning — pull stats, surface overdue, check drift, flag cold relationships
skill-debrief.md/debrief — extract tasks and intel from transcript, review gate, push to database
skill-close.md/close — capture decisions, drift check, update state across all three layers
skill-weekly.md/weekly — full audit: contradictions, stale data, duplicates, drift
skill-grill-me.md/grill-me — stress-test plans by walking every branch of the decision tree
skill-1on1-prep.md/1on1-prep — 1-on-1 meeting prep with open items and talking points
skill-audit.md/audit — semantic audit and drift scan across the whole system
Knowledge base — what doesn't exist in any official system
kb-tribal-knowledge.mdLegacy snapshot — live data now in D1 database via API
kb-people-intel.mdLegacy snapshot — relationship dynamics now in D1 via API
kb-lessons.mdDead ends and mistakes only. Force-read every morning to prevent repeats.
Infrastructure — the code that connects everything
infra-worker-api.mjsLive Cloudflare Worker source — the API Claude reads and writes to
infra-deploy-notes.mdDeploy patterns, gotchas, credential locations
Tools — interactive artifacts
tool-floor-form.jsxMobile React form for machine walkthrough data collection
tool-1on1-coach.jsxInteractive 1-on-1 meeting prep coach (API-powered)
Meta
00-index.mdThis file list. Naming convention, rules, what goes where.

04 — Data Flow

Meeting to database in one command

Nothing hits the database without approval. Claude extracts, you review, then it pushes. This single rule prevents most of the problems people run into with AI assistants.

MeetingOtter.ai records
/debriefSlash command
ExtractTasks + intel
ReviewYou approve
D1 PushAPI writes
DashboardAuto-updates

Drift check at close — every session ends with a bidirectional sync:

D1 → Memories

Does memory match reality?

Compare task counts, WSRA progress, people count in memories against what D1 actually holds. Flag mismatches before the context window closes.

Memories → D1

Did anything get missed?

Check if decisions or state changes from this session need to be written to D1 before the chat ends. Catch orphaned work.


05 — Drift & Recovery

The layers will drift. Build the checks in from day one.

Three data stores means three places that can get out of sync. Without automated checks, you'll discover drift at the worst time — mid-conversation when a wrong number leads to a wrong decision.

Morning drift scan

Lightweight check built into /morning. Compares memory claims against D1 counts (task totals, people count, key metrics). Also flags orphaned task references and cold key relationships. No extra API calls — uses data already pulled for the brief.

Close drift check

Bidirectional comparison built into /close. Runs after every session. Catches both directions: D1 drifting from what memories claim, and session work that hasn't been written to D1 yet.

Weekly full audit

/weekly runs the deep scan: contradictions between layers, intel conflicts, orphaned references, duplicate records, stale knowledge, memory drift, and cold relationships. Stores a baseline to D1 for trend tracking.

D1 failure protocol

When the API is down mid-conversation: buffer failed writes in the chat, degrade to memories + project files for context, flag the failure at close, recover and replay buffered writes next session. Don't lose work just because the database is unreachable.


06 — Lessons

Things that will bite you if nobody warns you

Artifact persistence is fake

Claude's in-app artifacts don't survive closing the app. It creates a new instance every time. Anything that needs to persist goes to an external host or gets exported before the session ends.

AI over-attributes tasks to you

Claude will assign you tasks that were merely mentioned in conversation, not directed at you. Build a review gate — nothing hits the database without explicit approval. Default ambiguous items to FYI.

Transcript tools misspell names

Otter, Whisper, and other transcription tools frequently get names wrong. Always search for name variants before creating a new person record or you'll create duplicates.

Memories bloat fast

Move stable reference out of memories into project files. Memories should hold identity, current state, behavioral rules, and architecture decisions — not org charts or shift schedules. Prune monthly.

Only log failures, not successes

Your lessons file should capture dead ends and mistakes. The rest of the system tracks wins. The lessons file prevents repeat mistakes and gets force-read every morning.


07 — Daily Routine

It compounds. Every meeting makes it smarter.

Every debrief adds knowledge, every correction trains better behavior, every close catches drift, every weekly audit cleans what accumulated.

AM/morning — pull D1 stats, read lessons, lightweight drift scan, flag cold relationships
POST-MTG/debrief — extract tasks and intel from transcript, review, push to D1
EOD/close — capture decisions, bidirectional drift check, sync all three layers
FRIDAY/weekly — full audit: contradictions, stale data, duplicates, relationship gaps
AS NEEDED/grill-me — stress-test any plan before committing to it

08 — Cost

Total cost: $100/month. Infrastructure is free.

Claude Max$100/moProjects give persistent file context. 5x more usage than Pro.
CloudflareFree tierD1 database (SQLite at the edge) + Workers (serverless API). 100K reads/day free.
NetlifyFree tierStatic site hosting for the dashboard. Single HTML file, no build step.

09 — Getting Started

Where to begin if you want to build your own

Start with the markdown files

Create a Claude Project. Add a context file (who you are, what you do, your daily rhythm), an index file, and one skill file for your most common workflow. This alone — before any infrastructure — makes Claude dramatically more useful.

Use Claude to build the API

Ask Claude to write a Cloudflare Worker with a D1 database. Start with tasks and people tables. Claude can write the Worker, the SQL schema, and walk you through the Cloudflare dashboard setup.

Connect Claude to the API

Add your Worker URL and auth token to your project instructions file. Now Claude can read from and write to your database during conversations. Start with a /morning skill that pulls your open tasks.

Build the drift checks early

Add a bidirectional comparison to your /close skill from the start. Memory claims vs D1 reality, session work vs database state. Drift is invisible until it causes a bad decision — catch it every session instead.

Add the debrief loop

Connect a transcription tool (Otter.ai, Granola, or manual paste). Build a /debrief skill that extracts tasks and knowledge from meetings — with a review gate. Every meeting now feeds the system.

Build the dashboard last

Ask Claude to build a single-file HTML dashboard that pulls from your API. Deploy to Netlify. This gives you a visual view of everything Claude manages — but only after the data pipeline is solid.