The Habitat Inverts the Stack
Every automation tool shares a hidden assumption: you are the processor. REEF declares the opposite. The habitat tends to itself — declared once, running continuously, surfacing only what earns your attention. The personal machine stops being a workbench and becomes a headquarters.
The Question Nobody Asked
Every automation tool, every AI assistant, every workflow framework built in the last decade shares a single hidden assumption: you are the processor. You intake. You evaluate. You decide. You act — on everything, continuously, every morning. The tools are faster than the old tools. The AI is smarter than the old scripts. But the model of who is doing the attending has never changed.
The question nobody asked is whether that assumption is load-bearing or just inherited.
REEF is an attempt to answer it differently. Not by building faster tools for the processor. By replacing the processor model entirely. The habitat tends to itself. You decide what it surfaces.
Declared, Not Discovered
The word that separates REEF from every prior approach is declared.
Most AI workflows discover context at runtime. The agent reads the inbox. The agent checks the calendar. The agent queries the database — because it has no prior knowledge of the territory. Every session starts the same way: from zero, feeling for the edges. The environment is always unknown until the moment the tool reaches into it.
REEF inverts this. The habitat is declared once, in a .reef file, before any arm moves. Sources are named. Territory is mapped. The organism — REACH arms reaching into sources, OCTO orchestrating them, TRACE recording every movement — knows its reef before it dives. The octopus does not explore a random ocean floor. It knows its crevices, its currents, its food sources. The territory precedes the action.
morning.reef
reef my-habitat
sources
- outlook.inbox
- outlook.calendar
- teams.planner
- git.commits
- sql.staging
This is not configuration. Configuration describes how to connect to a system. Declaration describes what the system is — its place in the habitat, its relationship to the organism that lives there. Adding a SQL database to the reef is not setting up a connection string. It is extending the territory the organism knows how to navigate.
The Interrupt Handler
Once the habitat is declared, the inversion becomes architectural.
In the traditional model: human → tool → result. The human is the processor. Every input is attended to. Every output is evaluated. The tool amplifies throughput but does not change the fundamental flow of attention.
In the REEF model, the flow reverses: habitat → arms → OCTO → human. The arms run. OCTO chains them. TRACE records everything. Nothing reaches the human until the system determines that something cannot proceed without a decision. The human is not the processor. The human is the interrupt handler — engaged at precisely the moments that are designed for human judgment and invisible to everything else.
This distinction is encoded in the TRACE vocabulary — the 12-event closed vocabulary that records everything the organism does. Two events carry special architectural weight:
| Event | What it means architecturally |
|---|---|
| PAUSE_SURFACED | The system has reached a boundary. Something earns your attention. |
| HUMAN_DECIDED | The interrupt was handled. Execution resumes. |
The other ten events — ARM_START, ARM_COMPLETE, ARTIFACT_WRITTEN, CHAIN_TRIGGERED, and the rest — represent everything the habitat handles without you. Those ten events are the operational layer. The two paired events are the executive layer. The vocabulary itself encodes the separation between what runs and what surfaces.
Most agentic frameworks treat the human as a bottleneck to eventually route around. REEF treats attention as the scarcest resource in the system — and builds an architecture specifically designed to protect it.
The Flat File Bet
Everything the organism does is recorded in a single append-only NDJSON file: reach-trace.ndjson. One line per event. No database. No message queue. No always-on process. No schema migration. The file accumulates.
This is a bet. The bet is that a flat, typed, append-only log is sufficient substrate for meaningful longitudinal intelligence. That the complexity needed to reason about what ran — what succeeded, what failed, what chained, what the human decided — does not require infrastructure. It requires a format Claude can read.
The bet is already paying off. MORNING-BRIEF — the first arm written for the reef — reads the trace file as part of its brief. Today that means six events: three ARM_STARTs, two ARM_COMPLETEs, from three test runs earlier in the day. In ninety days, the same arm reading the same file will see six hundred events — a longitudinal record of what ran, what surfaced, what was decided, how long things took. Not a log. A corpus.
The append-only constraint is what makes this distributable without infrastructure. Two nodes writing to the same file cannot produce a merge conflict in an append-only log. The lockfile pattern handles concurrency at the write boundary. The habitat can grow across machines — a work laptop, a trading VM, a remote server — and the TRACE file remains the single, coherent record of what the organism did, wherever it ran.
Running
This is not a design document. It is a working system.
reef-mcp v0.2.0 is a TypeScript MCP server running in Claude Desktop, wired to reach-trace.ndjson on disk. It exposes five tools: write_trace and read_trace for file I/O, run_arm for executing C# arms via dotnet-script on .NET 10, and stubs for write_arm and write_octo — the authoring tools that complete the loop when the DSL is ready for them.
MORNING-BRIEF.cs is the first real arm. It runs in under 220ms. It reads today's git commits from the declared repository and counts TRACE events by type since midnight. It requires no arguments — the habitat configuration flows through environment variables the MCP server inherits. One call from Claude Desktop. Everything resolves automatically from the declared reef.
reach-trace.ndjson — this morning
That pair of events — ARM_START followed by ARM_COMPLETE with a 203ms duration — is the whole claim made concrete. The habitat ran. The arm returned. The record is on disk. The human saw a brief. Nothing else was required.
The Habitat Grows
The architecture described here is a starting point, not a destination. The habitat is currently one machine. It will not stay that way.
The .reef file will declare nodes, not just sources. A work laptop with SQL and Outlook. A trading VM running NinjaTrader. A local server with a long-running process. Each node has its own arms, its own sources, its own execution environment. All of them write to the same append-only TRACE log — or to synchronized copies of it. The file is the integration point. The organism does not care which machine an arm ran on. It cares what the arm found and whether it completed.
CHAIN_TRIGGERED — one of the twelve TRACE events — was quietly built for exactly this moment. An arm on one node surfaces a signal. The chain fires. The next arm runs on a different node. The TRACE file records the handoff. The habitat knows what happened and where.
The personal laptop stops being a workbench and becomes a headquarters. Not a machine you sit at and operate. A machine that tends to the territory and briefs you on what earned your attention.
Go deeper
TRACE — GitHub
The 12-event vocabulary, spec, and arm examples. DOI: 10.5281/zenodo.20739404.
REACH + OCTO Docs
The DSL that reaches into the reef. The orchestrator that reads the combined signal.
The Compiler Is Claude
How REACH and OCTO implement Intent-as-Infrastructure — the paradigm the reef sits inside.