Skip to content

Commit cc645f2

Browse files
docs: adopt the 'ontology is the software' positioning (README, landing page, glossary, concepts) (#21579)
Fixes #21574 Clause-②: no Adopts the three-line positioning ruled on the card. Docs and copy only; nothing under `packages/**`, `content/docs/references/**`, `content/docs/releases/**`, any CHANGELOG, or the dated blog post is touched. No new page, no `meta.json` change. ## What changed - Slogan: 本体即软件。 / The ontology is the software. - Descriptor: 一份可执行的业务本体。AI 写,运行时跑,Agent 用,归你所有。 / One executable business ontology. AI writes it, the runtime runs it, agents operate it, you own it. - Proof line, kept and demoted: 装得下,才管得住。 / Apps small enough for AI to hold whole. Surfaces: - `README.md`: headline blockquote leads with slogan plus descriptor (Chinese line included; the repo has no README.zh file), the "business ontology" paragraph now names the core and the no-inheritance/axioms/reasoner limit, "The other half is size" is kept as the proof, and the closing callout carries the four guardrail facts. - `apps/docs/app/[lang]/page.tsx`: hero heading, `HOME_DESCRIPTION` (which feeds the meta, Open Graph, Twitter and JSON-LD descriptions, so they stay in sync), the "what that metadata is" paragraph, and the closing card. `apps/docs/lib/site.ts` carries no description or tagline and is unchanged. The docs app is English-only (`languages: ['en']`), so there are no localized hero strings. - `content/docs/getting-started/glossary.mdx`: "Business Ontology" is now a two-way contrast (knowledge ontology vs. executable ontology; hosted ontology via the two existing bullets, kept) plus the core-versus-projections split. - `content/docs/concepts/index.mdx` and `content/docs/concepts/metadata-driven.mdx`: one bridge sentence each, naming the split once. ## Guardrail facts, with evidence on main - No object inheritance, axioms or reasoner: `packages/spec/src/data/object.zod.ts:1538-1541` (the retired-key message for `abstract`, ADR-0049: "object inheritance/abstraction is not implemented"). No axiom or reasoner feature exists in the docs corpus. - Not a semantic layer over existing systems; federation is early and read-only by default: `content/docs/data-modeling/external-datasources.mdx:248`. "Early" is the card's wording. - Views, dashboards, apps and i18n are projections: stated in the card; the existing "UI is a Projection" at `content/docs/concepts/index.mdx:93`. - Code moves into the runtime: lifecycle hooks (`content/docs/concepts/metadata-driven.mdx:150`), action `body` (`packages/spec/src/ui/action.zod.ts:1101`), CEL (`README.md` validation row), constrained JSX (`README.md` sdui-parser row). The 150k/100k figures appear in none of the retained copy, so the number discipline has nothing to violate. ## Acceptance notes - Re-ran the grep for "hold whole", "small enough" and "business ontology" over `README.md`, `content/docs` and `apps/docs` (excluding references, releases and the dated blog post). Remaining hits are the intentional proof-line uses and the `metadata-driven.mdx` "Small Enough to Fit" section, which is a measurement section and stays. - `apps/docs/lib/site.ts` `HERO_COVER.alt` still reads "the metadata framework for AI-written apps"; the card does not list it and it describes an image, so it is left as is. `HOME_TITLE` is likewise unchanged. ## Verification - `pnpm --filter @objectstack/docs build`: exit 0. - Docs and README gates (frontmatter, route-spelling, nav-label, section-name, section-landing-index, doc-anchors, doc-authoring, single-h1, spec-enumerations, transcript-drift, locale-catch-all, redirects, nul-bytes, published-readme-links, corpus-claim-drift, role-word, vendor-version-stamps, org-identifier, docs-audit-scope, published-files, lint doc-formula-expressions and doc-security-posture): all exit 0. - Changeset: none owed. `packages/**` is untouched; the PM applies `skip-changeset`. ## Reminder for the maintainer The GitHub repository description lives outside git. Please paste the slogan and descriptor into it by hand: - The ontology is the software. One executable business ontology. AI writes it, the runtime runs it, agents operate it, you own it. - 本体即软件。一份可执行的业务本体。AI 写,运行时跑,Agent 用,归你所有。 --- _Generated by [Claude Code](https://claude.ai/code/session_01VDtqoecgES7ScQYGbFVDRv)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 0bddffd commit cc645f2

5 files changed

Lines changed: 76 additions & 23 deletions

File tree

‎README.md‎

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,25 @@
44
![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg)
55
[![Docs](https://img.shields.io/badge/docs-objectstack.ai-0a0a0a.svg)](https://objectstack.ai/docs)
66

7-
> ## Apps small enough for AI to hold whole.
7+
> ## The ontology is the software.
8+
>
9+
> **One executable business ontology.** AI writes it, the runtime runs it, agents
10+
> operate it, you own it.
11+
>
12+
> 本体即软件。一份可执行的业务本体。AI 写,运行时跑,Agent 用,归你所有。
813
>
914
> ObjectStack turns the whole app — data model, UI, workflows, permissions —
10-
> into typed metadata that fits in a single context window. Agents read it
11-
> whole, reason it whole, refactor it whole.
15+
> into typed metadata that fits in a single context window: apps small enough
16+
> for AI to hold whole. Agents read it whole, reason it whole, refactor it whole.
1217
>
1318
> That metadata is your **business ontology** — an open, versioned definition of
14-
> your objects, permissions, and flows that you own, not code scattered across a
15-
> framework. Strict TypeScript, Zod schemas, and a validation gate catch the
16-
> agent's mistakes at authoring time; the runtime derives the database, REST API,
17-
> UI, and MCP server, and enforces permissions and audit on every call.
19+
> your objects, relations, actions, permissions, flows, and agent and tool
20+
> definitions that you own, not code scattered across a framework. It is
21+
> executable, not a knowledge-representation ontology: no inheritance, no
22+
> axioms, no reasoner. Strict TypeScript, Zod schemas, and a validation gate
23+
> catch the agent's mistakes at authoring time; the runtime derives the
24+
> database, REST API, UI, and MCP server, and enforces permissions and audit on
25+
> every call.
1826
1927
`Fits in an agent's context` · `Typed, validated, governed` · `Self-host anywhere` · Apache-2.0
2028

@@ -152,7 +160,7 @@ The reason this works is the same reason TypeScript was the right host language:
152160
**an agent's errors become located, corrective text it can read and fix itself**,
153161
in seconds — instead of a silent runtime failure nobody traces back.
154162

155-
The other half is size. The bundled example CRM — [`examples/app-crm`](./examples/app-crm):
163+
The other half is size: apps small enough for AI to hold whole. The bundled example CRM — [`examples/app-crm`](./examples/app-crm):
156164
objects, views, a dashboard, a lead-conversion flow, permission sets, actions,
157165
translations — is small enough for an agent to load end-to-end, reason about
158166
every dependency, and refactor across data, API, UI, and permissions in one
@@ -163,9 +171,18 @@ hoping. Measure it yourself:
163171
find examples/app-crm/src -name '*.ts' -not -name '*.test.ts' | xargs cat | wc -l
164172
```
165173

166-
> Your objects, permissions, and flows are your business ontology — and the
174+
> The ontology is the software. Your objects, relations, actions, permissions,
175+
> flows, and agent and tool definitions are your business ontology — and the
167176
> definition layer of the AI era should be an open protocol you own.
168177
> [Read why](https://www.objectos.ai/en/blog/ai-ontology-open-protocol/).
178+
>
179+
> What that does and does not mean: the ontology is *executable*, so it is
180+
> validated rather than reasoned over — there is no object inheritance, no
181+
> axioms and no reasoner. It is not a semantic layer over your existing systems
182+
> (federating an external datasource is read-only by default and early). Views,
183+
> dashboards, apps, and translations are projections of the ontology, not part
184+
> of it. And code does not disappear: it moves into the runtime — hooks, action
185+
> bodies, CEL, and constrained JSX.
169186
170187
## Your app is AI-operable, for free
171188

‎apps/docs/app/[lang]/page.tsx‎

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const mono = IBM_Plex_Mono({
3333

3434
const HOME_TITLE = 'Metadata framework for AI-written apps';
3535
const HOME_DESCRIPTION =
36-
'ObjectStack turns the whole app — data model, UI, workflows, permissions — into typed metadata that fits in a single context window.';
36+
'One executable business ontology. AI writes it, the runtime runs it, agents operate it, you own it. The whole app — data model, UI, workflows, permissions — is typed metadata small enough for AI to hold whole.';
3737

3838
/**
3939
* The homepage's metadata. Its social card is the shared hero cover,
@@ -212,15 +212,16 @@ export default function HomePage() {
212212
className="mx-auto mt-5 max-w-3xl text-[2.6rem]/[1.06] font-bold tracking-tight text-balance md:text-6xl/[1.04]"
213213
style={{ fontFamily: 'var(--l-display)' }}
214214
>
215-
Apps small enough{' '}
215+
The ontology{' '}
216216
<span className="block bg-gradient-to-r from-indigo-500 to-purple-500 bg-clip-text text-transparent dark:from-indigo-400 dark:to-purple-400">
217-
for AI to hold whole.
217+
is the software.
218218
</span>
219219
</h1>
220220
<p className="mx-auto mt-6 max-w-2xl text-lg text-fd-muted-foreground text-pretty">
221-
ObjectStack turns the whole app — data model, UI, workflows, permissions — into
222-
typed metadata that fits in a single context window. Agents read it whole, reason
223-
it whole, refactor it whole.
221+
One executable business ontology. AI writes it, the runtime runs it, agents operate
222+
it, you own it. The whole app — data model, UI, workflows, permissions — is typed
223+
metadata small enough for AI to hold whole: agents read it whole, reason it whole,
224+
refactor it whole.
224225
</p>
225226
<div className="mt-8 flex flex-wrap items-center justify-center gap-3">
226227
<Link
@@ -294,10 +295,12 @@ export default function HomePage() {
294295
{/* ── what that metadata is, in prose ──────────────────── */}
295296
<section className="relative mx-auto w-full max-w-5xl px-6 pt-12 md:pt-14">
296297
<p className="text-base text-fd-muted-foreground text-pretty">
297-
That metadata is your business ontology — an open, versioned definition you own.
298-
Strict TypeScript, Zod schemas, and a validation gate catch the agent&apos;s mistakes
299-
at authoring time, and the runtime derives the database, REST API, UI, and MCP
300-
server — permissions and audit enforced on every call.
298+
That metadata is your business ontology — an open, versioned definition of your
299+
objects, relations, actions, permissions, flows, and agent and tool definitions that
300+
you own. It is executable, not a knowledge-representation ontology: no inheritance,
301+
no axioms, no reasoner. Strict TypeScript, Zod schemas, and a validation gate catch
302+
the agent&apos;s mistakes at authoring time, and the runtime derives the database,
303+
REST API, UI, and MCP server — permissions and audit enforced on every call.
301304
</p>
302305
</section>
303306

@@ -447,8 +450,10 @@ export default function HomePage() {
447450
<section className="relative mx-auto w-full max-w-6xl px-6 pt-8 pb-20 md:pb-28">
448451
<div className="rounded-xl border border-fd-border bg-fd-card/60 px-6 py-8 text-center md:px-10">
449452
<p className="mx-auto max-w-2xl text-sm text-fd-muted-foreground text-pretty">
450-
Your objects, permissions, and flows are your business ontology — the definition
451-
layer of the AI era should be an open protocol you own.{' '}
453+
The ontology is the software. Your objects, relations, actions, permissions, and
454+
flows are your business ontology — views, dashboards, apps, and translations are
455+
projections of it, and the definition layer of the AI era should be an open
456+
protocol you own.{' '}
452457
<a
453458
href="https://www.objectos.ai/en/blog/ai-ontology-open-protocol/"
454459
className="inline-flex items-center gap-1 font-medium text-fd-foreground underline underline-offset-4 transition-colors hover:text-fd-primary"

‎content/docs/concepts/index.mdx‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ From this single definition, ObjectStack automatically:
9494
2. **The API is a Consequence** — REST endpoints appear automatically from object definitions
9595
3. **The Schema is the Application** — Your entire business logic lives in metadata files
9696

97+
In the enterprise-AI vocabulary, the ontology is the software: the core (objects,
98+
relations, actions, permissions, flows, agent and tool definitions) is what the runtime
99+
executes, and views, dashboards, apps, and translations are projections of it. See
100+
[Business Ontology](/docs/getting-started/glossary#business-ontology).
101+
97102
### When to Use Metadata-Driven
98103

99104
✅ **Great for:** CRUD apps, SaaS platforms, admin panels, rapid prototyping, multi-tenant systems

‎content/docs/concepts/metadata-driven.mdx‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,14 @@ Your entire business logic lives in:
151151

152152
The Kernel simply **interprets** these definitions.
153153

154+
In the enterprise-AI vocabulary, the ontology is the software. The ontology core is
155+
objects, relations, actions, permissions, flows, and agent and tool definitions; views,
156+
dashboards, apps, and translations are projections of it, not ontology. The ontology is
157+
executable, so it is validated rather than reasoned over — there is no inheritance, no
158+
axioms and no reasoner — and code does not disappear, it moves into the runtime (hooks,
159+
action bodies, CEL, constrained JSX). See
160+
[Business Ontology](/docs/getting-started/glossary#business-ontology).
161+
154162
### 4. The Tool Surface is Generated
155163

156164
**Traditional:** Every AI tool is manually described and wired to custom queries

‎content/docs/getting-started/glossary.mdx‎

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,20 @@ arrived from that vocabulary, this is the term's referent here: the **Source** y
9191
which the runtime derives the database schema, REST API, UI, and MCP server. See
9292
[Metadata-Driven Development](/docs/concepts/metadata-driven).
9393

94-
The word is worth stating explicitly because ObjectStack's differs from the hosted
95-
ontologies the category otherwise means by it, on two points:
94+
The slogan this reduces to is **the ontology is the software**, and the word is worth
95+
stating explicitly because ObjectStack's differs from what the term otherwise means, in
96+
two directions.
97+
98+
**Against a knowledge ontology** (OWL, RDF, a knowledge graph): a knowledge ontology
99+
*describes* a domain, is read-only to the systems that consult it, and is *reasoned over*
100+
by an inference engine. An executable ontology *defines* the app, is *run* by the
101+
runtime, and is *validated* rather than reasoned. ObjectStack has no object inheritance,
102+
no axioms and no reasoner (the `abstract` key was removed from the spec for exactly that
103+
reason, ADR-0049), and it is not a semantic layer over your existing systems —
104+
federating an external datasource is read-only by default and early (see
105+
[External Datasources](/docs/data-modeling/external-datasources)).
106+
107+
**Against a hosted ontology** (a graph held inside a vendor's system), on two points:
96108

97109
* **You own the definition.** It lives in your repository as ordinary TypeScript,
98110
versioned in your VCS and reviewable as a diff, in a format specified and licensed
@@ -104,6 +116,12 @@ ontologies the category otherwise means by it, on two points:
104116
of behaviour implemented somewhere else, so it cannot drift from the system it
105117
describes.
106118

119+
**Core and projections.** The ontology core is objects, relations, actions,
120+
permissions, flows, and agent and tool definitions. Views, dashboards, apps, and
121+
translations are *projections* of that core — authored in metadata too, but not
122+
ontology. And code does not disappear: it moves into the runtime, as hooks, action
123+
bodies, CEL expressions, and constrained JSX.
124+
107125
Distinct from **semantic layer**, which in these docs means the narrower analytics
108126
`dataset` layer (ADR-0021) that reports and dashboards bind to — see
109127
[Analytics & Datasets](/docs/data-modeling/analytics).

0 commit comments

Comments
 (0)