Skip to content

Commit dab0cde

Browse files
committed
docs: retire 'ObjectOS' as the control-layer name — the layer is now 'Kernel'
ObjectOS now exclusively names the commercial runtime environment, so using it as the open spec's control-layer brand was a permanent naming collision (papered over by a disambiguation note until now). - Layer naming: ObjectQL (data) / Kernel (control) / ObjectUI (view). ObjectQL and ObjectUI stay — they name real open technologies; only the layer-brand use of ObjectOS is retired. - README: layer list + layers alt-text; drop the now-unneeded naming note. ARCHITECTURE.md: layer diagram/table. - concepts/architecture.mdx, protocol/index card, protocol/diagram, glossary (with an explicit migration note), implementation-status, permissions/automation/plugins/getting-started prose: layer actor renamed to Kernel / ObjectStack runtime as fits. - protocol/objectos/ pages: landing page retitled 'Kernel: The System Protocol'; behavior narratives now use ObjectStack as the actor. Directory/URL rename to protocol/kernel deferred (needs redirects). - skills/objectstack-platform + spec prompts aligned. Follow-ups (not in this PR): regenerate docs/screenshots/layers.png; sweep the ~43 ObjectOS mentions in packages/spec source TSDoc/strings (feeds the auto-generated references/ docs); move content/docs/protocol/objectos/ → protocol/kernel/ with redirects. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0162o68e5w3bpUBEVRQboUGG
1 parent 71b2099 commit dab0cde

24 files changed

Lines changed: 143 additions & 145 deletions

ARCHITECTURE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ ObjectStack is organized as a **monorepo** with distinct package layers:
121121
**Location**: `packages/spec/`
122122
**Role**: Protocol Definitions (The "Constitution")
123123

124-
- Zod schemas for all protocols (ObjectQL, ObjectOS, ObjectUI)
124+
- Zod schemas for all protocols (ObjectQL, Kernel/System, ObjectUI)
125125
- TypeScript type definitions
126126
- JSON Schema generation
127127
- Constants and enums
@@ -131,7 +131,7 @@ ObjectStack is organized as a **monorepo** with distinct package layers:
131131
// packages/spec/src/
132132
├── data/ # ObjectQL schemas (Object, Field, Query, etc.)
133133
├── ui/ # ObjectUI schemas (App, View, Dashboard, etc.)
134-
├── system/ # ObjectOS schemas (Manifest, Driver, Plugin, etc.)
134+
├── system/ # System schemas (Manifest, Driver, Plugin, etc.)
135135
├── automation/ # Workflow, Flow, Trigger schemas
136136
├── ai/ # Agent, RAG, Model schemas
137137
├── api/ # API contract schemas
@@ -306,7 +306,7 @@ ObjectStack follows a **Three-Layer Protocol Stack**:
306306
└────────────────┬─────────────────────────────────┘
307307
│ REST API / GraphQL
308308
┌────────────────▼─────────────────────────────────┐
309-
│ Layer 2: ObjectOS (Control) │
309+
│ Layer 2: Kernel (Control)
310310
│ ┌────────────────────────────────────────────┐ │
311311
│ │ Auth, Permissions, Workflows, Events │ │
312312
│ │ "Who can do what, when?" │ │
@@ -338,7 +338,7 @@ Foundation:
338338
| Layer | Knows About | Doesn't Know About |
339339
|-------|-------------|-------------------|
340340
| **ObjectQL** | Schema, fields, queries, drivers | Users, permissions, UI |
341-
| **ObjectOS** | Auth, workflows, events | Data structure, UI layout |
341+
| **Kernel** | Auth, workflows, events | Data structure, UI layout |
342342
| **ObjectUI** | Layout, navigation, actions | Business logic, storage |
343343

344344
---

README.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,12 @@ Instead of hiding business logic inside ad-hoc SQL queries, UI state, or JavaScr
3232

3333
The goal is not to be another low-code UI builder. ObjectStack is the structured *definition* layer for AI-native business software — agent-ready, versioned, and analyzable; permissions and audit are enforced by the runtime.
3434

35-
ObjectStack is built around three protocol layers:
35+
ObjectStack is built around three layers:
3636

3737
- **ObjectQL** (Data Layer) — Objects, fields, queries, relations, validation, and data access.
38-
- **ObjectOS** (Control Layer) — Runtime, permissions, automation, plugins, environments, and artifact loading.
38+
- **Kernel** (Control Layer) — Runtime, permissions, automation, plugins, environments, and artifact loading.
3939
- **ObjectUI** (View Layer) — Apps, views, dashboards, actions, and presentation metadata.
4040

41-
> Naming note: **ObjectOS** above names the control-layer *protocol*. The commercial [ObjectOS](https://docs.objectos.ai) runtime environment is the official product built on that layer.
42-
4341
All core definitions start with **Zod schemas** (1,600+ exported schemas across 200 schema files). TypeScript types, JSON Schemas, REST routes, UI metadata, and agent tools are derived from the same source of truth.
4442

4543
See [ARCHITECTURE.md](./ARCHITECTURE.md) for the full microkernel and layer architecture documentation, and [content/docs/concepts/north-star.mdx](./content/docs/concepts/north-star.mdx) for the product north star (metadata protocols · environment-aware runtime · compiled app artifacts).
@@ -290,10 +288,10 @@ For the browser, the typed client SDK and React hooks (`useQuery` / `useMutation
290288

291289
## Architecture
292290

293-
ObjectStack uses a **microkernel architecture** where the kernel provides only the essential infrastructure (DI, EventBus, lifecycle), and all capabilities are delivered as plugins. The three protocol layers sit above the kernel:
291+
ObjectStack uses a **microkernel architecture** where the kernel provides only the essential infrastructure (DI, EventBus, lifecycle), and all capabilities are delivered as plugins. The three layers sit above the microkernel:
294292

295293
<p align="center">
296-
<img src="docs/screenshots/layers.png" width="900" alt="ObjectStack layered architecture: the ObjectQL data layer, ObjectOS control layer, and ObjectUI view layer sit on a microkernel (plugin lifecycle, service registry / DI, event bus); every capability — drivers, server, auth, security, automation, AI — is a plugin">
294+
<img src="docs/screenshots/layers.png" width="900" alt="ObjectStack layered architecture: the ObjectQL data layer, the kernel control layer, and the ObjectUI view layer sit on a microkernel (plugin lifecycle, service registry / DI, event bus); every capability — drivers, server, auth, security, automation, AI — is a plugin">
297295
</p>
298296

299297
See [ARCHITECTURE.md](./ARCHITECTURE.md) for the complete design documentation including the plugin lifecycle state machine, dependency graph, and design decisions.

content/docs/automation/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: Hooks, flows, workflows, approvals, scheduled jobs, and durable web
55

66
# Automation
77

8-
Automation is ObjectStack's process engine: you attach business logic to the data model **declaratively** — as metadata — instead of scattering it through application code. It is a cross-protocol capability: automations are declared in the Automation Protocol namespace and executed by the ObjectOS runtime against ObjectQL data.
8+
Automation is ObjectStack's process engine: you attach business logic to the data model **declaratively** — as metadata — instead of scattering it through application code. It is a cross-protocol capability: automations are declared in the Automation Protocol namespace and executed by the ObjectStack runtime against ObjectQL data.
99

1010
The smallest useful automation is a hook (from the CRM example app):
1111

content/docs/concepts/architecture.mdx

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ The architecture is built on foundational protocols that work together as a unif
1313
**This is the engine-level view.** When you *build*, you work by area — data,
1414
automation, interface, access, AI (see [What you build](/docs/getting-started/quick-start#what-you-build)).
1515
This page zooms one level down, into the runtime engines that implement those areas:
16-
**ObjectQL** (data), **ObjectOS** (control — automation, access, governance), and
16+
**ObjectQL** (data), **Kernel** (control — automation, access, governance), and
1717
**ObjectUI** (interface). You rarely think in these three while building; they're the
1818
machinery underneath.
1919
</Callout>
@@ -32,7 +32,7 @@ machinery underneath.
3232
<Card
3333
icon={<Cpu />}
3434
title="System Protocol"
35-
description="ObjectOS: Control, runtime, and governance."
35+
description="Kernel: Control, runtime, and governance."
3636
/>
3737
<Card
3838
icon={<Workflow />}
@@ -133,7 +133,7 @@ This definition is **pure metadata**. It doesn't know:
133133

134134
That's the job of the other layers.
135135

136-
## Layer 2: ObjectOS (Control Protocol)
136+
## Layer 2: Kernel (Control Protocol)
137137

138138
**Role:** Manage the **Lifecycle** and **Governance** of requests.
139139

@@ -144,7 +144,7 @@ That's the job of the other layers.
144144
- Event processing (audit logs, notifications)
145145
- Multi-tenancy and data isolation
146146

147-
**Key Principle:** ObjectOS acts as the **Gateway**. No layer can directly access the database; all requests must pass through the OS Kernel.
147+
**Key Principle:** Kernel acts as the **Gateway**. No layer can directly access the database; all requests must pass through the Kernel.
148148

149149
### Example: Permission Rules
150150

@@ -204,7 +204,7 @@ export const HighValueCustomerFlow = defineFlow({
204204

205205
See the [Flow Metadata reference](/docs/automation/flows) for the full Flow node and edge reference.
206206

207-
ObjectOS **orchestrates** these rules at runtime, independent of the data structure or UI.
207+
Kernel **orchestrates** these rules at runtime, independent of the data structure or UI.
208208

209209
## Layer 3: ObjectUI (View Protocol)
210210

@@ -301,7 +301,7 @@ User clicks "Save"
301301
### Step 2: UI Layer Sends Request
302302

303303
```typescript
304-
// ObjectUI dispatches an action to ObjectOS
304+
// ObjectUI dispatches an action to Kernel
305305
const request = {
306306
action: 'create',
307307
object: 'customer',
@@ -314,7 +314,7 @@ const request = {
314314
};
315315
```
316316

317-
### Step 3: ObjectOS Validates Permissions
317+
### Step 3: Kernel Validates Permissions
318318

319319
```typescript
320320
// Kernel checks: Does this user have permission?
@@ -330,7 +330,7 @@ if (!canCreate) {
330330
}
331331
```
332332

333-
### Step 4: ObjectOS Validates Data
333+
### Step 4: Kernel Validates Data
334334

335335
```typescript
336336
// Kernel asks ObjectQL: Is this data valid?
@@ -355,7 +355,7 @@ const result = await driver.insert('customer', {
355355
});
356356
```
357357

358-
### Step 6: ObjectOS Triggers Workflows
358+
### Step 6: Kernel Triggers Workflows
359359

360360
```typescript
361361
// Kernel checks: Are there any workflows for this event?
@@ -424,7 +424,7 @@ export const Opportunity = ObjectSchema.create({
424424
});
425425
```
426426

427-
### 2. ObjectOS: Define Business Rules
427+
### 2. Kernel: Define Business Rules
428428

429429
```typescript
430430
import { defineFlow } from '@objectstack/spec';
@@ -478,10 +478,10 @@ export const OpportunityKanbanView = defineView({
478478
When a user **drags an opportunity card** from "Proposal" to "Closed Won":
479479

480480
1. **ObjectUI** captures the drag-drop event
481-
2. **ObjectOS** checks if the user has permission to update the `stage` field
481+
2. **Kernel** checks if the user has permission to update the `stage` field
482482
3. **ObjectQL** validates that `"closed_won"` is a valid option
483483
4. **ObjectQL** writes the update to the database
484-
5. **ObjectOS** triggers the workflow (create invoice, send notification)
484+
5. **Kernel** triggers the workflow (create invoice, send notification)
485485
6. **ObjectUI** updates the kanban board to reflect the new state
486486

487487
**All from metadata. Zero hardcoded logic.**
@@ -499,7 +499,7 @@ Same Metadata Definitions
499499
ObjectQL: │ │
500500
Postgres │ MongoDB
501501
502-
ObjectOS:
502+
Kernel:
503503
Node.js │ Python
504504
505505
ObjectUI: │
@@ -511,7 +511,7 @@ React │ Flutter
511511
Teams can work independently on each layer:
512512

513513
- **Data Team:** Define objects in ObjectQL
514-
- **Backend Team:** Build workflows in ObjectOS
514+
- **Backend Team:** Build workflows in Kernel
515515
- **Frontend Team:** Create views in ObjectUI
516516

517517
All communicate through **protocol contracts**, not code dependencies.
@@ -521,7 +521,7 @@ All communicate through **protocol contracts**, not code dependencies.
521521
Adopt ObjectStack gradually:
522522

523523
- **Phase 1:** Use ObjectQL as an ORM replacement
524-
- **Phase 2:** Add ObjectOS for permissions and workflows
524+
- **Phase 2:** Add Kernel for permissions and workflows
525525
- **Phase 3:** Build ObjectUI views to replace custom forms
526526

527527
Each layer is independently useful.
@@ -531,14 +531,14 @@ Each layer is independently useful.
531531
Mock any layer for testing:
532532

533533
```typescript
534-
// Test ObjectOS workflows without a real database
534+
// Test Kernel workflows without a real database
535535
const mockObjectQL = {
536536
getSchema: () => CustomerSchema,
537537
insert: jest.fn(),
538538
};
539539

540540
// Test ObjectUI rendering without a real backend
541-
const mockObjectOS = {
541+
const mockKernel = {
542542
checkPermission: () => true,
543543
executeQuery: () => mockData,
544544
};
@@ -549,7 +549,7 @@ const mockObjectOS = {
549549
| Layer | Role | Knows About | Doesn't Know About |
550550
| :--- | :--- | :--- | :--- |
551551
| **ObjectQL** | Data structure & queries | Schema, fields, drivers | Users, permissions, UI |
552-
| **ObjectOS** | Runtime & governance | Auth, workflows, events | Data structure, UI layout |
552+
| **Kernel** | Runtime & governance | Auth, workflows, events | Data structure, UI layout |
553553
| **ObjectUI** | Presentation & interaction | Layout, navigation, actions | Business logic, data storage |
554554

555555
The three protocols are **loosely coupled** but **tightly integrated**:
@@ -561,7 +561,7 @@ The three protocols are **loosely coupled** but **tightly integrated**:
561561

562562
- [ObjectQL: Data Protocol](/docs/protocol/objectql) - Full data protocol specification
563563
- [ObjectUI: UI Protocol](/docs/protocol/objectui) - Full view protocol specification
564-
- [ObjectOS: System Protocol](/docs/protocol/objectos) - Full control protocol specification
564+
- [Kernel: System Protocol](/docs/protocol/objectos) - Full control protocol specification
565565
- [Developer Guide](/docs/getting-started/quick-start) - Build your first ObjectStack application
566566

567567
---
@@ -599,7 +599,7 @@ View Protocol (uses Object, Query)
599599
└→ Action Protocol (UI interactions)
600600
```
601601

602-
### System Layer (ObjectOS)
602+
### System Layer (Kernel)
603603

604604
```
605605
Data Driver Contracts (Database Abstraction)

content/docs/concepts/metadata-driven.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ const taskForm = { type: 'form', object: 'task' }
124124
**Traditional:** Write REST endpoints by hand
125125
**ObjectStack:** APIs are *generated* from the schema
126126

127-
You don't write controllers or routes. ObjectOS *generates* the entire API graph based on your Object definitions and permission rules.
127+
You don't write controllers or routes. ObjectStack *generates* the entire API graph based on your Object definitions and permission rules.
128128

129129
```bash
130130
# Automatically available after defining the object:

content/docs/getting-started/glossary.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ A logical grouping of related schemas and types defined with Zod. ObjectStack ha
1717

1818
## The Three Architectural Layers
1919

20-
The 15 namespaces collapse into three top-level layers that match the public product vocabulary:
20+
The 15 namespaces collapse into three top-level layers:
2121

2222
| Layer | Also called | Namespaces it includes | Purpose |
2323
| :--- | :--- | :--- | :--- |
2424
| **ObjectQL** | Data Layer | Data | Objects, fields, queries, relations, validation, data access |
25-
| **ObjectOS** | Control Layer / System Layer | Kernel, System, Automation, AI, API, Identity, Security, Cloud, Integration, Studio, QA, Contracts, Shared | Runtime, permissions, automation, plugins, tenants, agent tools, artifact loading |
25+
| **Kernel** | Control Layer / System Layer (formerly named "ObjectOS") | Kernel, System, Automation, AI, API, Identity, Security, Cloud, Integration, Studio, QA, Contracts, Shared | Runtime, permissions, automation, plugins, tenants, agent tools, artifact loading |
2626
| **ObjectUI** | View Layer | UI | Apps, views, dashboards, actions, presentation metadata |
2727

28-
When external docs or talks refer to ObjectOS as the "Control Layer", they mean the same runtime described by the System/Kernel/AI/API protocol namespaces below.
28+
Older docs and talks used **ObjectOS** as the name of this control layer. That name now refers exclusively to the commercial ObjectOS runtime environment ([docs.objectos.ai](https://docs.objectos.ai)); the open control layer is called the **Kernel**, described by the System/Kernel/AI/API protocol namespaces below.
2929

3030
---
3131

@@ -41,7 +41,7 @@ Server-Driven UI specification for building user interfaces. Includes App struct
4141
Infrastructure services including Event Bus, Job Scheduling, Translation (i18n), and Audit Logging. Manages system-level concerns.
4242

4343
### Kernel Protocol
44-
Plugin system and runtime management. Includes Plugin lifecycle, Manifest definition, Logger configuration, and Runtime Context. The core of ObjectOS.
44+
Plugin system and runtime management. Includes Plugin lifecycle, Manifest definition, Logger configuration, and Runtime Context. The core of the control layer.
4545

4646
### AI Protocol
4747
Artificial intelligence capabilities including AI Agents, RAG pipelines, Natural Language Query (NLQ), Predictive models, Cost tracking, and Orchestration.

content/docs/getting-started/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Think of ObjectStack as:
106106
**The UI is a Projection. The API is a Consequence.**
107107

108108
- ObjectUI does not "build" a form; it *projects* the ObjectQL schema into a visual representation
109-
- You do not write endpoints or hand-author every agent tool; ObjectOS *generates* the secure graph based on the access control protocol
109+
- You do not write endpoints or hand-author every agent tool; ObjectStack *generates* the secure graph based on the access control protocol
110110

111111
### 2. Agent-Ready Boundaries
112112

content/docs/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ Each module documents one capability in depth — overview first, then guides, w
4545
<Card href="/docs/api" title="API & SDK" description="Generated REST, realtime, and client SDK surfaces" />
4646
<Card href="/docs/ai" title="AI" description="Agents, actions as tools, RAG, and natural-language queries" />
4747
<Card href="/docs/plugins" title="Plugins & Packages" description="Extend the runtime and package your extensions" />
48-
<Card href="/docs/kernel" title="Kernel & Services" description="The ObjectOS runtime, service registry, and services.* APIs" />
48+
<Card href="/docs/kernel" title="Kernel & Services" description="The ObjectStack runtime, service registry, and services.* APIs" />
4949
<Card href="/docs/deployment" title="Deployment & Operations" description="Deployment modes, environments, publishing, and troubleshooting" />
5050
</Cards>
5151

5252
## Protocol & reference
5353

54-
- [Protocol Spec](/docs/protocol) — the normative ObjectQL / ObjectOS / ObjectUI specifications for implementers
54+
- [Protocol Spec](/docs/protocol) — the normative ObjectQL / Kernel / ObjectUI specifications for implementers
5555
- [Schema Reference](/docs/references) — generated Zod schema reference for every metadata type
5656
- [Quick Reference](/docs/getting-started/quick-reference) — fast lookup tables across all protocols
5757
- [Glossary](/docs/getting-started/glossary) — the shared vocabulary used across these docs

content/docs/permissions/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
title: "Permissions & Identity"
3-
description: "Authentication, authorization, and record- and field-level access control in ObjectStack — a cross-protocol capability enforced by the ObjectOS runtime and declared as ObjectQL security metadata."
3+
description: "Authentication, authorization, and record- and field-level access control in ObjectStack — a cross-protocol capability enforced by the ObjectStack runtime and declared as ObjectQL security metadata."
44
---
55

66
# Permissions & Identity
77

88
This module covers authentication, authorization, and record- and field-level
9-
access control. It is a cross-protocol capability: enforced by the ObjectOS
9+
access control. It is a cross-protocol capability: enforced by the ObjectStack
1010
runtime, declared as ObjectQL security metadata.
1111

1212
The model has **five concepts, one reading each** (ADR-0090): additive

content/docs/plugins/packages.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ const kernel = new ObjectKernel();
9797

9898
### @objectstack/platform-objects
9999

100-
**Platform Objects Library** — The canonical set of `sys_*` objects shipped with every ObjectOS runtime (users, sessions, approvals, sharing, audit, …).
100+
**Platform Objects Library** — The canonical set of `sys_*` objects shipped with every ObjectStack runtime (users, sessions, approvals, sharing, audit, …).
101101

102102
- **Purpose**: Standard system tables and their metadata, so apps don't redefine identity, audit, or approvals
103103
- **When to use**: Always — bundled into the runtime

0 commit comments

Comments
 (0)