In development · 2026

Nacre

A judgment layer built on Claude. The system takes positions instead of just remembering things.

Most AI products today are chat boxes bolted onto a model. The memory features that have been added store preferences and facts — what the user likes and what they've told the system, not how they think. The frame goes unexamined. That's the irritant.

I wanted to test something different. A layer underneath that accumulates what the user chooses and what they avoid, and uses that to take positions instead of just remembering things. Nacre, named after what oysters layer over an irritant to make a pearl.

The system holds the friction long enough to produce something better than the original ask.

A product that takes positions can help a user see their own work in ways memory alone cannot, because the system isn't trying to be agreeable. It's trying to be right.

The Nacre interface. A discussions panel on the left lists prior conversations. A row of six brain icons sits at the top of the chat area: analytical, generative, reflective, directive, challenger, investigative. The chat shows a user prompt and a colored response box. A to-do panel on the right captures items the system has flagged.

Before answering, Nacre picks one of six brains based on what the prompt seems to need. That choice determines the response's register.

Close-up of the six brain icons in a row: analytical, generative, reflective, directive, challenger, investigative.

The cold account marriage prompt got directive. The same marriage prompt in a lived account got reflective.

If the user wants a specific kind of response, they can pin a brain. Here, the user pinned challenger on a prompt that auto-select would have routed to reflective:

A user prompt about leaving a job to start a company, with stated runway, idea, and a co-founder lined up. The challenger-pinned response refuses to push back on the plan until it has checked the framing first, then names three things the user didn't say that it would expect to hear in a real evaluation.

Challenger refuses to push back until the user clarifies what's actually being asked. Then it pushes on each piece of evidence the user offered, and names the constraint the user didn't mention.

The auto-select isn't always right. Sometimes it picks reflective when challenger would have served the user better, and the user has to pin to get there. This is one of the places I'm still calibrating.

The first response is from a new account. The second is from an account with months of conversation history. Watch what changes.

A · New account
A prompt asking how to prioritize Mon-Thu given Q2 planning offsites and a Friday night conversation about whether the marriage continues. The response opens with 'Stop.' and reframes the question as one of three forced choices.
B · Existing account
The same prompt, this time from an account with months of history. The response is quieter and claims a pattern: 'I've seen this shape from you before.'

The first response compensates for missing context with structure — three numbered options, a forced choice, "Stop." The second can afford to be quieter; it claims a pattern instead — "I've seen this shape from you before." The system is making a choice about how to respond before it answers.

The user doesn't get better answers. They get their own framing reflected back to them with the unexamined parts named.

"You're asking me how to clear Friday so the marriage conversation doesn't run into a backlog." That sentence isn't a clever response, it's the user's own request, held up so they can see what they actually asked.

The models are already fantastic brains. Nacre is trying to answer what the spine can look like.


There's still more to refine. The auto-select gets the brain wrong sometimes. The substrate doesn't yet distinguish between a user asking a hypothetical and a user asking about their actual life — both get treated as real, which is sometimes the right call and sometimes not. And there's a calibration question I haven't solved: a system that takes positions can hold them too tightly when new information should update them.

In closed beta. If you want to talk about it: get in touch →
Built with Building.