Skip to content

docs: name the compose-from-blocks family (Hex, Hexicon, Prisma Compose, Prisma Data) - #4

Merged
wmadden merged 6 commits into
mainfrom
claude/jolly-mcnulty-000ab5
Jul 2, 2026
Merged

docs: name the compose-from-blocks family (Hex, Hexicon, Prisma Compose, Prisma Data)#4
wmadden merged 6 commits into
mainfrom
claude/jolly-mcnulty-000ab5

Conversation

@wmadden-electric

@wmadden-electric wmadden-electric commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Here's the whole proposal in one breath — how a developer builds an app in this vocabulary:

You build an App by snapping together Hexes — reusable building blocks you install from Hexicon — wired together by Prisma Compose. Your data lives in Prisma Data.

npx hexicon add auth
# → installs an auth Hex from the registry, and Prisma Compose wires it
#   into your app's topology; Prisma Data owns its schema

What we're deciding

This PR adds product documentation (agent-os/product/naming.md) that settles how we name the compose-from-blocks product family, under a single rule: name every piece for the value the user gets from it, not the machinery that delivers it.

That rule picks the words above — "App" and "Data" (what the user says) over "Topology" and "Contract" (how it works underneath).

The product family

The primitives a developer composes into an app, each named for its role:

Primitive Role The value to the user
Prisma Postgres persist my data has a home
Prisma Compute execute my code runs
Prisma Data (← Prisma Next) data I model, access, and manage my data
Prisma Compose (← MakerKit) compose my app comes together from parts
Durable Streams stream my events flow and survive
Connection connect my services reach each other

How Prisma Compose fits

The other primitives each deliver one capability. Compose is the one that assembles the others into a running app — and it introduces its own small vocabulary: App (what you build), Hex (a building block), Hexicon (the registry at hexicon.dev), and Topology (the machinery it produces, which the user never has to say).

How Hexes are distributed

Hosting and discovery are split: npm hosts the Hexes (ordinary TypeScript libraries — semver and tooling for free), and Hexicon is a thin named directory on top (search, ranking, trust, one-command install). This is the skills.sh shape, with one difference — Hexicon's install composes the Hex into your topology; it doesn't just copy files.

Status

Hex and Hexicon are settled. The Prisma renames — Prisma Data (← Prisma Next) and Prisma Compose (← MakerKit) — are proposed.

Alternatives considered

  • Filing this as an ADR — it describes current product truth, not a point-in-time decision with a status, so it lives in agent-os/product/ rather than docs/design/90-decisions/.
  • Bare "Hex" for the registry — collides with hex.pm (the Elixir/Erlang package manager — a same-category clash) and hex.tech.
  • "Hexal" as a public brand — its domains are camped or guarded by Hexal AG (pharma; owns hexal.com).
  • "Model" or "Contract" for the data layer — each names the authoring step or the machinery, not the user's actual value (data access), and each is more useful kept as a sub-concept: model is the PSL construct, a Contract is what models compile to.

🤖 Generated with Claude Code

wmadden-electric and others added 6 commits July 2, 2026 07:57
…ibution model

Record the naming architecture: the building block is a Hex, the registry
is Hexicon (hexicon.dev), the tools are Prisma Compose / Prisma Model, and
'app' stays the user-facing hero noun. Hexes are npm-hosted TS libs;
Hexicon is a first-party directory on top whose install also composes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Document the naming architecture and the compose-from-blocks distribution
model as product documentation under agent-os/product/, not as an ADR:
the building block is a Hex (npm-hosted TS lib), the registry is Hexicon
(hexicon.dev, install composes not copies), tools are Prisma Compose /
Prisma Model, and 'app' stays the user-facing hero noun.

Replaces the mistakenly-filed ADR-0003.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Rename the data layer from Prisma Model to Prisma Data — name for the
user's value (data access), not the authoring step (model) or the
machinery (contract). 'Data' frees 'model' (the PSL construct) and
'Contract' (what models compile to) to keep their jobs.

Add a 'How we choose names' section (four tests: would the user say
'my __'; predict the tooling; name the goal not the tax; keep the
family legible) and a per-layer value breakdown.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
…e spine

Open with a one-paragraph takeaway and a single complete map of the
pieces, instead of leading with the four naming tests and a two-row
table that read as the full product list. Move the value/machinery
layering table into the principle section where it's an illustration,
not a fake inventory. Reframe the family table as 'the primitives you
compose from' so its overlap with the top table is explained. Cut the
repeated value-not-machinery restatements.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Make the Prisma product family (Postgres, Compute, Data, Compose,
Streams, Connection) the first table, so the core primitives are front
and center. Follow it with 'How Prisma Compose fits' — Compose is the
primitive that assembles the others — which introduces the App/Hex/
Hexicon/Topology vocabulary. The old top table listed only the
composition vocabulary and dropped Postgres/Compute.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
…ta contract')

Replace the misleading 'my contract, no' example with 'my topology'.
Users do say 'my data contract' — it's central to Prisma Next — so it
was a bad counter-example. Data beats Contract on the predict-the-tooling
and name-the-goal tests, not on the 'my' test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@wmadden-electric wmadden-electric changed the title docs: product naming & distribution (Hex, Hexicon, Prisma Compose/Model) docs: name the compose-from-blocks family (Hex, Hexicon, Prisma Compose, Prisma Data) Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants