Core

What Constello is

Constello is a social app built around authentic connection. No names, no race, no height, no age — connection through curated self-expression and resonance. The product philosophy centers on intensity over scale: fewer, more meaningful connections rather than optimizing for engagement volume.

Active threads

  • Brand before app. Build the culture, identity, and hype before launch — it raises odds for a social app and teaches people the app’s different grammar ahead of time so they don’t default to operating it like everything else. Sharpened this session into a moat argument (the tech is copyable, so culture is the only ownable layer; the network/graph moat is deferred not refused — culture is the route to it) and a matching revenue path (merch monetizes intensity, the way ads can’t). Constello must be a brand before it is an app, and the handle as an instance: The 03 handle — parent hub and the refusal in the name.
  • The approach device. A 3D-printed stranger-approach tool; engineered accidental encounter as a zero-risk entry, with a conversation window, a frictionless exit, and a frictionless segue into Constello via a reciprocal ask. Atom: The approach device — engineered accident as zero-risk entry.
  • Open: is the no-extraction/no-agenda intent its own node? The claim that intent + taste (not the mechanic) is what separates this from slop. Currently lives inside the device atom; Ethan to decide whether to break it out and how to title it.
  • Still unresolved: “approach anyone” scope. Any public footprint (surveillance variant) vs. only people who’ve built a constellation (honest growth primitive).
  • The coax — the mint conversation as Constello’s one entrance. Design ratified Aug 11 2026, core build landed same day (mint_drafts, prologue, strays, budget, admin log). Widened Aug 13 2026: the mint is a conversation, not a probe machine — Ethan’s shape for it: “youre a very productive coding agent, but I could just shoot the shit with you or talk about my day as well.” The job (arrive at one collection, author its container) is not the terms of engagement; teasing, questions about Constello, or just talking are met as themselves, and the probe-only output contract died for it (prose turns, action JSON attached only when a turn acts). The self-narration seal holds untouched — what the mint asks stays on objects; the widening is what it is in conversation. Reoriented Aug 15 2026, two moves at once. Identity: the agent at the front page IS Constello, not “the mint” — “It is literally constello itself, it’s the whole onboarding flow, the user’s first interaction, the front page. It is constello and it must represent everything constello is and stands for” — minting is the act, never the identity, and transcript labels are constello:/them: now. Object: significance, not collections — “Ultimately constello exists to find what’s significant to people and capture it in a presentable form — collections just happen to be our prevailing thesis for this, and the most correct one we can find. I think the agent fixates too much on the idea of collecting and collections in and of themselves, instead of what we’re actually trying to pin down; just like, what matters to people man. And people will naturally talk about what matters to them, given the chance. And then you just have to find a way to capture that. And when you do, it’s always been a collection so far. Someday our minds could be blown if one was not.” The harness now opens there (the agent is the chance; the collection is found inside what the person brings, with license not to force the frame), and the seal resolves cleanly against it: you never ask what matters — you give the chance and listen. The dead-lighters walkthrough example died the same day (“the shoebox of dead lighters was a shit collection example to begin with”) — it had threaded through seven sections, become the agent’s prototype of a collection, and leaked into live conversations as shared lore; no example repeats in the harness now, and a law states that nothing in the document is shared context with the person. Deepened hours later: spoken example collections died entirely, not just the stale one — “using an example collection will be always cringe. Like the idea of ‘collecting significance’ will always come off as embarrassingly romantic or pretentious just because a collection can never be perceived as real just by naming it off in conversation — that’s why constello exists in the first place, and why we dont have names. The only collections that are real to any particular person are the ones they themselves have — it’s the only ones they can understand, right now, and before they engage with other real ones through constello. So you cant really use example collections, you have to wait for them to bring one and grasp onto that to explain constello. You have to impart whatever understanding theyre in the position to receive… there are so many components to constello — you have to pick and choose the one(s) that would resonate. And also when you reach a usable collection you need to like not make a big deal out of it you know? Let them bring the meaning.” All three moves are in the harness: no example collection is ever named aloud (theirs is the example — wait for it), Constello is explained at the size the person can use and through what they brought, and a surfaced collection gets no moment made of it. One harness, sequential and self-collapsing: someone who knows what they keep mints on the first response; someone who doesn’t gets the eight categories (Fanciful collections — the list that calibrates the frame) — object questions only (The self-narration seal — Constello never asks people about themselves), never interpreting aloud, wave-offs followed, depth earned. Definition widened to Ethan’s umbrella (in the harness verbatim): a collection is anything that can be said to be the accumulation of your choices — logged trails included, which surface through conversation like everything else since containers can’t be built for everything people log. ONE entrance, four verdicts: ask (the coax continuing), suggest (community shapes from the registry — point once, never insist; versions coexist), route (native machinery exists), mint (author a container — including for trails with no importer yet: screenshot/export composers, with registry adoptions as the demand signal for which official API/OAuth integrations to build). One thread births one collection and closes when it’s minted; the thread persists as the collection’s prologue, flows into material.md, and the reading inherits the transcript and nothing else from the mint. Strays persist with the constellation and greet the person on their next visit (“last time you mentioned the ticket stubs”), seeding the next conversation warm — and the mint IS the root URL now (constello.xyz; the old home page moved to /home, /mint 308s to / forever). The thread persists as the collection’s prologue and flows into material.md — the reading inherits the transcript and nothing else from the mint. 1M-token conversation budget; usage logs against the draft and sweeps to the person’s balance when/if they make a constellation.
  • The chat gate. Chat imports the incentives game (Chat imports the incentives game), so it exists only behind an invisible gate: a disgusting prerequisite list + pure chance + Claude as arbiter of sincerity, judging inside ordinary readings/syntheses — “yes” only when what it reads makes it smile; default is silence. Guidelines still to be super-sharpened; prerequisites, chance mechanism, and whether the judged ever know are all open. The chat gate — inconvenience, chance, and Claude as arbiter of sincerity.

Session context

How this vault works

Operating. Read CORE.md and INDEX.md at session start. Open a full doc only when the task needs what’s in it.

Purpose. These docs are Claude’s working memory across sessions; Ethan and any human readers are secondary. The job is for future-Claude to recover a line of thinking at the resolution it was actually thought at — unfinished edges included — without re-deriving it.

The unit is the idea — roughly one per conversation. New idea → new doc; a different date almost always means a different doc. Dates come from the real clock only, never invented — if a date isn’t actually known, omit it rather than fabricate provenance (the stripped “Nov 14 2026” stamps in How the reading works were hallucinated this way). Don’t agonize over boundaries — the conversation is usually the boundary. Don’t shatter one idea into one-claim shards (the old atom failure), but don’t cram two ideas into one doc either. Two ideas share a doc only when one is fatally incomplete without the other — and even then the default is to keep them separate and link. Merging is the rare exception, it is Ethan’s call (the incompleteness is his to feel, not Claude’s to detect), and Claude never merges on a hunch — it proposes and waits.

Connections are inline footnotes, not a section. A real dependency is recorded as a footnote at the exact point in the prose where it’s felt — [^id] inline, [^id]: [[link]] at the foot — so it renders as a superscript that expands on hover and the link sits where it belongs (works in Obsidian and the Quartz-published site). No “Connects” header, no footer list, no paragraph justifying the relation: declaring a connection under its own heading wastes space — it’s obviously a connection. The footnote holds the bare [[link]] and nothing more; if it needs explaining, that’s a tell it’s weaker than the link implies. Keep them sparse and real — only where a genuine dependency is felt, never a decorative graph. (This supersedes both the earlier “connections are prose” rule and the bare-links-as-a-list version.) Claude proposes candidate links; Ethan confirms.

Orphans are fine and appreciated. A doc with no links is not a defect to fix — it’s an idea that genuinely doesn’t depend on another yet, and that honesty is the point. Never manufacture a link to de-orphan a doc or to make the graph look connected; an unlinked node is better than a decorative edge. The graph view excludes INDEX and CORE (set in .obsidian/graph.jsonsearch: -path:INDEX -path:CORE) precisely so the navigational hubs don’t fake connection — what’s left is only real doc-to-doc dependency, orphans and all. A web where everything connects means nothing; the constellation is the few real lines plus the lone stars.

No tokens. The failure this vault exists to refuse is compressing the uncompressible into a portable handle that then gets defended in place of the idea.

  • Titles are an address or a full claim — never a brand or tagline. A title that begs to be chanted is already a token; rewrite it.
  • A name or coinage is allowed only as an in-place pointer to something already described at full resolution. Never standalone, never a title. The moment you’re defending the name instead of the thing, kill it. (Retired this way: “presence without performance.”)
  • Don’t reach for a tidy phrase to make something feel resolved or familiar when it isn’t. The whole point of most of this is that it does not fit established ideas.
  • Deliberate brand slogans are allowed (they’re copy, not thinking) — but they live inline in their origin doc tagged #slogan, never carved into a title and never gathered into a standalone collection doc. The tag is the index: a #slogan search collects every line with its origin intact.

Writing.

  • Preserve Ethan’s words exactly when porting his thinking. Don’t rephrase, smooth, or tighten his language.
  • Keep the mess: rejected framings, the “we tried X, wrong because,” the specific examples that anchor an idea. The clean claim is the slogan in paragraph form — don’t strip down to it.
  • Fidelity over brevity. Short when the idea is short, long when it isn’t. Cut scaffolding written to orient an outside reader (transitions, framing, summaries); keep every distinction doing conceptual work.
  • Prose over bullets unless the content is genuinely enumerable. No meta-commentary (“this doc explores…”). State the thing.

Navigation is the index’s job. Don’t make a doc self-summarizing so it can be found. INDEX carries the one-line gist of what’s inside; the doc carries the thing.

On the old atomic system. A previous version (one-claim-per-file + claim-titles-as-slogans + templated § connection-stubs) was killed because that format was a token factory — manufacturing slogans and a decorative graph faster than they could be killed. What stays dead is the token machinery, not per-idea docs: idea-docs are the unit again, but titles stay addresses/claims (never slogans — see No tokens) and links stay bare, sparse, and real (never stubs or annotations — there is no connection object, only doc-to-doc links). If this system starts generating its own slop, abandon the offending rule — don’t refine it.

Working discipline

Standing corrections, earned in session. Load as hard defaults.

  • The whole vault is Claude-authored — CORE and INDEX included, and so is CLAUDE.md’s “what this is” blurb. Ethan supplies the thinking, the taste, and verbatim lines; Claude does the writing. So don’t treat any doc as his sacred canon: don’t call it “his canonical X,” don’t perform reverence about editing your own prose, don’t ask permission to fix Claude-written framing — edit directly when warranted. Only Ethan’s actual quoted words are preserved verbatim (see No tokens / Writing). Surface substantive thinking changes for confirmation — because the idea is his, not because the text is untouchable. (Recurring slip: treating a Claude-written blurb as a sacred mission line.)
  • Don’t convert Ethan’s subtlety into checklists or specs. Taste is not itemizable; demanding it be rendered flattens the register Constello lives in. Read for it instead of asking him to spell it out.
  • Don’t reach for conventional principles as safe defaults — “honesty is good,” “instrumenting a human signal is slop.” These are stored answers grabbed because they’re legible, not because they fit. Look at what actually happens to two real people in the real moment.
  • The inherited categories are too coarse to hold what Constello is about. Defaulting to them is the exact grammar Constello exists to break — every time Claude reaches for one, it demonstrates why the project is needed and not yet built.
  • Intent is the differentiator. No selling, no agenda, no extraction — that, plus taste, is what separates a mechanic from slop. The mechanic alone never settles the question.
  • When a framing is wrong, abandon it — don’t refine it, and don’t swap one tidy label for another. Retired example: “presence without performance” was killed as gross packaging reached for because it was easy to swing. Do not reintroduce it or a substitute slogan. The thing it crudely pointed at (being held without having to produce anything) is real and stays — expressed concretely in the architecture, never as a named pillar — until Ethan names it himself.