docs(editor): name CkEditor as the present scaffold; reframe Smalltalk borrow as observability #18

Manually merged
hkowalski merged 1 commit from feat/018-docs-editor-name-ckeditor-as-the-present-scaff into master 2026-01-21 08:00:00 +01:00
Owner

docs(editor): name CkEditor as the present scaffold; reframe Smalltalk borrow as observability

Touches 2 files: docs/editor.md, docs/principles.md.

docs(editor): name CkEditor as the present scaffold; reframe Smalltalk borrow as observability Touches 2 files: `docs/editor.md`, `docs/principles.md`.
hkowalski approved these changes 2026-01-21 07:55:00 +01:00
hkowalski left a comment

Good. Small enough to read in one sitting, and docs/editor.md is easier to follow than it was.

Good. Small enough to read in one sitting, and `docs/editor.md` is easier to follow than it was.
@ -5,3 +5,3 @@
CkLang ships with its editor. There is one canonical editor, maintained alongside the compiler and the runtime, distributed in the same toolchain as `ck edit`.
The editor is itself a CkLang program — a set of actors that produce UI as data. egui is the renderer: the smallest possible host shell that paints whatever those actors emit and routes user input back as messages. The renderer is dumb. The editor's behavior, layout, refactor logic, replay UI, supervision visualizer, AI-patch review pane — all of it is actors. **Turtles all the way down.**
The editor exists because CkLang's primary author is an AI agent (see [principles.md](principles.md#designed-for-ai-not-for-human-comfort)). The AI generates the code; the AI consumes the meta substrate; the AI proposes patches. The human needs a window into all of that. The editor is that window: source editor, diagnostics, actor tree, endpoint inspector, replay scrubber, supervision-tree visualizer. One artifact, one process, one place the human goes — and crucially, an artifact built from the same primitives as the program it is inspecting. The load-bearing reason for that last constraint is **observability**: an editor built from the same actors, effects, and meta-stream as the program lets you inspect the editor with the same tools you inspect any program. The Smalltalk inspiration is observability, not image-based persistence; "everything is an actor, including the editor" is how we get there on the file-based side of the axis. The corollary that the editor is therefore a CkLang program — same actors, same effects, same supervision — is downstream of that.
Owner

I had to read agent twice. Nothing wrong with it, but one line of comment would save the next person the second read.

I had to read `agent` twice. Nothing wrong with it, but one line of comment would save the next person the second read.
Author
Owner

Comment added on agent in docs/editor.md. It was obvious when I wrote it and it will not be in a month.

Comment added on `agent` in `docs/editor.md`. It was obvious when I wrote it and it will not be in a month.
editor.md's opener used to put "Turtles all the way down" in load-bearing
position and described the destination architecture (CkLang actors +
UI-as-data + egui renderer) as though it were the present scaffold.
Neither is right. The load-bearing reason for an editor built from the
same primitives as the program is **observability** — you can inspect
the editor with the same tools you inspect any program. Editor-IS-a-
CkLang-program is the corollary, not the load-bearing point. And the
present scaffold is `~/Projects/CkEditor`, not a hypothetical future
artifact — a Rust+egui binary today, the same shape as the v0 compiler
being in Rust today.

editor.md changes:
- "What it is" leads with observability; Smalltalk-as-observability is
  named explicitly; editor-IS-a-CkLang-program is downstream.
- New "Present and destination" section names CkEditor as **the editor**,
  the base from which work proceeds. Don't build parallel egui demos /
  ad-hoc `scripts/run.sh` UIs / fresh CkLang-host harnesses — every
  such artifact is one more thing to retire later.
- Lineage table: Smalltalk moves from "fifth tradition, rejected" to
  borrowed-for-observability; image-based persistence + direct mutation
  rejected as a separate axis. Five borrows + one within-Smalltalk
  rejection.
- "The editor is a CkLang program" section retitled "(destination)" and
  reframed as the corollary of the observability decision.

principles.md "editor as a peer artifact" lineage paragraph updated to
match — five traditions including Smalltalk-for-observability.

Narrower "turtles" mentions (principles.md's "Turtles all the way down"
sub-heading naming the no-privileged-carve-out property, the
runtime.md / meta-substrate.md / runtime-inspection.md / impl-runtime
README mentions using the phrase in their specific contextually-correct
sense) are left intact; the drift was the bare assertion in editor.md's
opener, not the phrase itself.
hkowalski manually merged commit d3dc6e760f into master 2026-01-21 08:00:00 +01:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
northgale/cklang-bootstrap!18
No description provided.