一键导入
Objects clone from prototypes, not instances from classes
npx skills add https://github.com/DnfJeff/Expand-YOYR-MIND --skill prototype复制此命令并粘贴到 Claude Code 中以安装该技能
Objects clone from prototypes, not instances from classes
npx skills add https://github.com/DnfJeff/Expand-YOYR-MIND --skill prototype复制此命令并粘贴到 Claude Code 中以安装该技能
| name | prototype |
| description | Objects clone from prototypes, not instances from classes |
| license | MIT |
| tier | 0 |
| allowed-tools | [] |
| related | ["skill","room","container","character","card","simulation","constructionism","return-stack","debugging"] |
| tags | ["moollm","inheritance","self","javascript","clone","deoptimization"] |
| protocol | PROTOTYPE |
| credits | ["David Ungar — Self language creator","Randall Smith — Self language co-creator","Brendan Eich — JavaScript (Self-influenced)"] |
"Objects all the way down."
The philosophy of prototype-based inheritance: no classes, just concrete examples that you clone and modify.
Classical inheritance says:
But this creates problems:
Prototype-based inheritance says:
Everything is concrete. Everything exists.
Objects are collections of slots:
cat: (|
name <- "Terpie".
color <- "orange".
meow = (| | "Meow!" |).
parent* = catPrototype.
|)
name, color — data slotsmeow — method slotparent* — parent slot (for delegation)When you send a message to an object:
To create a new cat:
newCat := cat clone.
newCat name: "Stroopwafel".
newCat color: "tabby".
The new cat:
name and color slotsmeow to the prototypeMOOLLM implements prototype inheritance via the Delegation Object Protocol (DOP):
# In an instance directory
prototypes:
- path: "skills/room"
- path: "skills/adventure"
resolution:
strategy: "first-match-wins"
examples/adventure-4/pub/
├── ROOM.yml # Local override (shadows prototype)
├── PROTOTYPES.yml # Points to skills/room
├── state/ # Local-only state
│ └── visitors.yml
└── (missing files delegate to skills/room/)
LLMs don't compute inheritance algorithms. They navigate files.
Prototype-based inheritance is LLM-friendly because:
"The best message is no message."
Self taught us that simplicity wins:
MOOLLM applies this: directories are objects, files are slots, resolution is delegation.
| Year | Event |
|---|---|
| 1986 | Ungar & Smith begin Self at Xerox PARC |
| 1987 | Self paper published |
| 1991 | Self 2.0 with compilation |
| 1995 | JavaScript created (heavily Self-influenced) |
| 2024 | MOOLLM applies Self to LLM filesystems |
"Self is a network, not a node."
Educational philosophy — learn by building inspectable things
Protocol names ARE K-lines.
Be conservative in what you send, liberal in what you accept.
Rules persuade. Structure IS argument. Design consciously.
Survive first. Be correct later.
Survive first. Be correct later.