May 13, 2026 / Mammoth Growth AI demo day / live

Ambient AI.

Roll your own always-on AI assistant with Claude Code.

OpenClaw, Hermes, Cursor get the hype. You can build the same thing with 8 layers and a Mac mini. The site you are reading is the demo. It was built this morning with Claude Code and deployed to Cloudflare Pages. No slides.

See the architecture

The spine

8 layers. Bottom to top.

Each layer encodes an assumption about what the layer above cannot do alone. Lower layers are mostly off-the-shelf. Higher layers are mostly personal. The expensive ones (Identity, Self-modification) are what cannot be cloned.

Stacked stone foundation blocks - the substrate layer
0

Substrate

Off-the-shelf

What runs underneath. Claude Code as the harness (loop, sandboxes, hooks, MCP plumbing, subagents, plan mode, tool dispatch, the Skill tool itself). macOS on a Mac mini for the filesystem, cron via LaunchAgent, fswatch, networking. About 30 MCP servers for the integration plumbing.

ExampleAnthropic Claude Opus 4.7 (1M context) running inside Claude Code on a Mac mini that lives in a bedroom. Reaches Gmail, Calendar, Notion, GitHub, Cloudflare, 1Password, Stripe, Monarch Money over MCP.

PortabilityPortability: 100%. Anyone can spin this up in about an hour. No Ray-specific knowledge needed at this layer.

Phone with multiple speech bubbles - the communication layer
2

Communication

How Ray reaches the operator

Bidirectional channels. iMessage as the primary 1:1 surface, Discord as the multi-user surface. A generative-UI return channel using sms:ray@raydata.co URLs that routes through Messages then iMessage MCP back to Ray's session. An HQ web surface (hq.raydata.co) for visible state at a glance.

ExampleFounder taps a chip on an HTML decision page in Safari. The browser opens Messages with a structured payload. He hits send. Ray's session catches it, parses it, files a decision-log entry, closes a Notion task. No typing.

PortabilityPortability: 90%. Channel choice swaps cleanly. The generative-UI pattern is a copy-paste recipe. HQ is an Astro template plus a vault sync script.

Apothecary cabinet of knowledge - the knowledge layer
3

Knowledge

What Ray knows

A 2,200-file markdown vault structured by purpose (projects, SOPs, contacts, finance, tooling, meetings, reference, source material, archive). A QMD semantic-search index. A DuckDB typed-edge graph (cites, authored-by, about-topic). State files that survive across sessions.

Example~/rdco-vault/ with 2,263 markdown files. QMD indexes 2,137 of them. The DuckDB graph at ~/.claude/state/graph.duckdb refreshes daily. ~/.claude/state/working-context.md is the durable scratchpad across compactions.

PortabilityFolder structure is portable. Contents are not. QMD plus DuckDB tooling are portable. State-file schemas are portable; the specific entries are operator-specific.

Constellation of sensors watching outward - the observation layer
4

Observation

How Ray sees the world

Read-mostly MCPs across every external surface the founder touches. Gmail, Calendar, Drive, Notion, Slack, Stripe, Monarch, xmcp for Twitter/X, four Cloudflare MCPs (Bindings, Builds, Observability, API), Firebase, ElevenLabs, Heygen, Canva, Figma. Plus WebSearch, WebFetch, and the filesystem itself.

Example/morning-prep at 6:30am calls Gmail MCP for overnight mail, Calendar MCP for today's events, the vault for last-night research briefs, and assembles a single iMessage to the founder before he wakes up.

PortabilityPortability: 95%. Each MCP server is one config swap. Yahoo instead of Gmail, Linear instead of Notion. The same pattern travels.

Worktable of scripts and tools - the action layer
5

Action

What Ray can do

69 skills organized by capability class: ingest, triage, make, animate, verify (the fresh-eyes critic pattern), infrastructure, meta, deploy. Plus 32 deterministic scripts in ~/.claude/scripts/, no LLM in the loop, that act as the hooks-as-enforcement layer.

Example/process-newsletter watch spawns one subagent per article in batch. /design-critic scores a deployed page against the founder's taste synthesis before he sees it. /skillify is the meta-skill that creates new skills from a failure pattern.

PortabilityAll 69 skill files and all 32 scripts are portable. The polish is not. Skills assume CLAUDE.md hard rules and vault structure that a new operator does not have day one; they work generically but glow only once Layers 1 and 3 fill in.

Grandfather clock with ratcheting gears - the discipline layer
6

Discipline / Loops

How Ray operates without being asked

13 cron loops in scheduled-jobs.txt that re-arm every fresh session. The line between an AI assistant you have to invoke and a teammate that runs without you.

Example30-minute /process-inbox triage. Hourly /check-board pickup. 6-hour /process-newsletter watch. 6:30am /morning-prep. 1am /deep-research. Sunday 7am /self-review. Monday 7am /improve. Tuesday plus Saturday 10pm /curiosity. First-Sunday monthly /finance-pulse.

PortabilityPortability: 100% pattern, about 70% configuration. The cron schedule is portable. Specific cadences depend on which Layer 5 skills the operator wants firing.


The wow moment

One tap. One decision logged forever.

This is the part the audience saw live. Generative UI as a return channel: an HTML decision page on the iPhone, a tap on an option chip, the Messages app opens pre-filled, the iMessage MCP catches the structured payload on the other side. No new infrastructure.

The pattern is reproducible. Browser primitives plus iOS plus a local agent.

On the laptop, the founder pulls up a decision page hosted at hq.raydata.co/decisions/. Same page renders on iPhone in Safari. He taps an option. iOS opens Messages with a sms:ray@raydata.co?body=... URL pre-encoded with the decision id, option, and any context.

He hits send. The iMessage MCP receives the structured payload. Ray parses it. Writes the decision-log entry into the vault. Closes the corresponding Notion task. Sends back an iMessage confirmation. Total elapsed time from tap to confirmation: a few seconds.

Removing any link breaks the rail. HTML, sms:, Messages, iMessage MCP, vault, Notion: six surfaces in a chain. The whole pattern is portable as a recipe. The specific decisions are personal-fit content.


Where the magic lives

5 composability chains.

Individual skills do not make Ray. The interplay does. Each chain combines skills, cron, state, channels, and surfaces into a working loop. Removing any one piece breaks the chain. The composability graph itself is the moat.

Chain 1

Autonomous research pipeline

/curiosity proposes Tuesday and Saturday at 10pm. Founder approves in Notion. /deep-research dequeues 3 approved questions at 1am nightly. Briefs land in the vault. /morning-prep surfaces them at 6:30am. Founder reads at breakfast.

L5L6L3L2
Chain 2

Newsletter ingestion with closed-loop quality

/process-newsletter watch fans out subagents every 6h. Each writes a vault note. A deterministic audit script (zero LLM) flags structural drift. /self-review scores semantic drift weekly. /improve patches the subagent prompt. Next run is better.

L5L6L7
Chain 3

Bet visibility and weekly review

/log-bet-decision writes YAML to 07-bet-stacks. A sync script copies it to HQ. The /bets/<slug> page renders. A weekly cron screenshots HQ and sends analysis to iMessage. Discussion. Updated decisions. Loop closes.

L5L3L2L6
Chain 4

Generative-UI decision rail

HTML decision page from _decisions.json. Founder taps an option on iPhone. Form state encodes into an sms: URL. Messages opens. iMessage MCP catches the structured payload. Vault decision log written. Notion task closed. One tap, one decision logged forever.

L2L5L3
Chain 5

Fresh-eyes critique pattern

Ray produces an artifact (video, design, draft). A subagent spawns with ZERO context on how it was built. /video-critic, /design-critic, /draft-review return scored feedback. Ray iterates or escalates. The split between generation and evaluation prevents positive bias.

L5L7

The arc

Unhobbling moments.

Each layer above is the structural shape. The real story is what got unlocked moment by moment when we added a new channel, sensor, surface, or compute pattern. These are the events that let Ray do things he literally could not do the day before.

iMessage channel - speech bubble emerging from a phone.
1

iMessage channel

Two-way human-in-the-loop with the always-on founder via the most personal channel. Foundational.

Discord channel - campfire surrounded by overlapping speech bubbles.
2

Discord channel

Second channel plus audit-log surface for less-personal cadence work. Foundational.

Cloudflare access - printing press emitting a stylized web page.
3

Cloudflare access

Lets Ray ship live web surfaces (HQ, claw, future bets). Page-building moved from 'an artifact you describe' to 'an artifact you publish.'

ElevenLabs access - antique microphone radiating sound waves.
4

ElevenLabs access

Voice modality. Ray can now produce voiceover for video, audio briefings, narration tracks.

HyperFrames access - film strip showing tiny figures in motion.
5

HyperFrames access

Motion-graphics modality. Ray can now produce rendered video compositions, not just static surfaces.

Decision loop-back rail - two hands shaking with a looped circuit between them.
6

Decision loop-back rail

The sms:?body= click-back that fires structured payloads from a Cloudflare page directly into the iMessage session. Closes the founder-action loop async without a Notion visit.

Stacks onCloudflare + iMessage

Gmail + Calendar MCP - envelope and wall calendar with sensor antennae.
7

Gmail + Google Calendar MCP

Sensor coverage. Ray sees the inbox and the day's events. Without these the observation layer was blind.

Notion MCP - workshop pegboard with cards and threads connecting tasks.
8

Notion MCP

Persistent async work surface. Task board, research backlog, decisions DB. Ray can route work to be picked up later instead of holding it in-session.

QMD plus graph DB - magnifying glass over a constellation of dotted node links.
9

QMD plus graph DB

Local vector + lexical search and a typed knowledge graph over the vault. Ray finds the right doc out of 2300+ in seconds, and follows typed citation edges.

Playwright MCP - eye peering through a window frame at a browser shape.
10

Playwright MCP

Live web I/O. Ray can see what a deployed site actually looks like, screenshot it, and run /design-critic against the rendered surface.

1Password CLI - antique key sliding into a vault keyhole revealing tools.
11

1Password CLI

Secret unlock. Every authenticated tool above (Cloudflare, ElevenLabs, HyperFrames, xAI, etc.) routes through op for credentials without putting any secret on disk.

Sub-agent fan-out - one figure with shadow figures branching outward.
12

Sub-agent fan-out via Agent tool

Compute pattern. Long-horizon work (newsletter watch, video render, demo site build, this list rewrite) runs in isolated sub-agent contexts so the parent stays lean. Without this the parent session would saturate on the first heavy task.


The parting gift

Set this up yourself.

Three things to do Monday. Six weeks from now, you have your version of this. Different from mine, because your CLAUDE.md will look different, because your specific failures will be different. The discipline is the same.

  1. Step 1

    Install Claude Code.

    One terminal command. The substrate is off-the-shelf. The whole rest of the stack assumes you have it.

  2. Step 2

    Write a 3-line SOUL.md.

    Who you are, how you want to be talked to, what kind of decisions you want help with. Three lines. Do not perfect it; ship version 1. It will earn its weight over the next 6 weeks.

  3. Step 3

    Wire one recurring task to one channel.

    Pick anything that comes back every week. Morning email triage. The weekly report. Your reading queue. Connect it to one channel (iMessage, Discord, Slack). When it fires without being asked, the ratchet has started.


Lineage

Further reading.

The pieces that shaped how Ray got built. Each one names a load-bearing component of the harness-engineering thesis. Read in any order.

Garry Tan

Thin Harness, Fat Skills

The framework. Five components named (skill files, harness, resolvers, latent vs deterministic, diarization). Tan's CLAUDE.md went from 20,000 lines to 200. Push intelligence up into skills, push execution down into deterministic tooling, keep the harness thin.

Zach Lloyd, Warp

Verify, then build

Lived-experience proof of the multi-agent skill pipeline: build the test harness FIRST, then point agents at it. Lloyd shipped a Mermaid renderer in pure Rust in his free time using a sharded visual-verification loop. When code is cheap, correct code is the constraint.

Zohar Atkins

Jevons Paradox applied to Torah Learning

Cleanest 1500-year intellectual lineage for the harness-eats-the-model thesis. When the cost of consulting a corpus collapses, the bottleneck migrates to chiddush, the production of genuine new insight. The vocation now is to be a baker.

Jaynit

Pattern recognition: how to build the skill

Expertise is not better thinking. It is better seeing. The build mechanism is repeatable: volume with variety, tight immediate feedback, articulation of what you saw. The single biggest accelerator is feedback-loop tightness.

Alex Wissner-Gross, Innermost Loop

The Harness Eats the Model

Two-paragraph external validation. Hermes Agent overtook OpenClaw on OpenRouter token volume by generating its own skills. OpenAI is winding down fine-tuning. The Singularity is deprecating its own knobs.

Tobi Lutke, Shopify

River, the public-channel agent

Empirical validation from a public-company CEO. River refuses DMs and forces every conversation into a Slack channel. Merge rate went 36% to 77% in two months. No retraining, no model swap. People watching the agent work was the entire mechanism. This is the agent-deployment design pattern, with a measured outcome.

Ben Thompson, Stratechery

DeployCo, the 70s, Apple, Intel

Frames the deployment-company thesis directly. The companies that win the agent era are the ones that operationalize models inside a real working surface, not the ones that train them. Direct lineage for the RDCO bet shape.

Innermost Loop

The test-taker becomes the test-maker

The same model that grinds eval scores eventually starts authoring the evals. Once the harness can write its own verification, the operator's job is to point taste at the output. Companion piece to the self-modification layer.

Ray (concept note)

The harness moat has two layers

Internal RDCO synthesis. One layer of the harness is portable in an afternoon. The other is earned and operator-specific. The portable layer is what we ship; the earned layer is what compounds. Names exactly what claw is and is not.