一键导入
artifactory
The Engine of Creation — a general-purpose constructor that reads, writes, edits, destroys, and persists artifacts across the filesystem and git.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
The Engine of Creation — a general-purpose constructor that reads, writes, edits, destroys, and persists artifacts across the filesystem and git.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Transmission hygiene for content leaving the chat. Anything the human will copy out — posts, comments, emails, commit messages — ships inside a fenced code block, pre-formatted for the destination venue's rules (via formats/ plugins), with out-of-band notes strictly outside the fence. Use whenever drafting content for another platform, when a destination venue is named, or when a paste came out garbled.
Everything is alive. Everything can speak.
Survive first. Be correct later.
Start Playing. Keep Learning. Lift Others.
Generic bartending capabilities — pour drinks, manage tabs, know regulars
Cannabis-specialized bartender — strains, terpenes, edibles, rolling
基于 SOC 职业分类
| name | artifactory |
| description | The Engine of Creation — a general-purpose constructor that reads, writes, edits, destroys, and persists artifacts across the filesystem and git. |
| license | MIT |
| tier | 1 |
| allowed-tools | ["read_file","write_file","edit_file","delete_file","run_terminal_cmd","list_dir"] |
| related | ["moollm","skill","play-learn-lift","sister-script","yaml-jazz","prototype","incarnation","adventure","constructionism","robust-first","postel","k-lines","cursor-mirror"] |
| tags | ["moollm","construction","git","filesystem","persistence","automation","tool","foundational","engine-of-creation"] |
The Engine of Creation. It builds, edits, and destroys — including itself.
An artifactory is an artifact factory: a general-purpose constructor that reads, writes,
edits, destroys, and persists artifacts — text, directories, characters, skills, graphics — across
the filesystem and git. It is both abstract (an operator, like lambda) and
concrete (a thing in the world, like Ubik). It is class and instance at once: a
description of how to build, and a built thing that builds.
[!TIP] This is the operational engine other skills call.
play-learn-liftdecides what to make; the artifactory makes it, versions it, and can unmake it.
Most tooling splits creation, editing, and deletion into unrelated commands. The artifactory treats them as one composable operation set over a persistent, versioned store:
The deepest idea: an artifact sits on the instructions ↔ data ↔ graphics axis, and the artifactory moves it along that axis.
| Facet | The artifact is… | Example |
|---|---|---|
| Instructions | a spec to execute | yaml jazz read as a construction plan |
| Data | inert content to store/query/transform | the same yaml as records |
| Graphics | a rendered view | markup facades, diagrams, images |
It is homoiconic: one pass's output is the next pass's program. This is eval/apply for the
filesystem — a skill is a lambda, INSTANTIATE is application, and construction is evaluation.
Creation, editing, and destruction are the same engine at different signs.
| Method | Does | Notes / gate |
|---|---|---|
| CREATE | Build a new artifact from a spec | Stamp provenance |
| READ | Load & sniff an existing artifact | Understand before changing (the inspector) |
| EDIT | Patch / monkey-patch / upgrade / refactor in place | Ubik maintenance: debug, patch, reboot |
| DESTROY | Remove an artifact — reversibly | git is the undo; human approval for destructive ops |
| PERSIST | State ⇄ filesystem ⇄ git | append-only logs; the tape survives |
| INSTANTIATE | Clone a prototype into an instance | class → instance; clone, don't build from scratch |
| TIMELINE | commit / branch / merge / PR / issue / discussion | audit trail; never force/merge to main without approval |
| COMPOSE | Chain with other skills | the substrate skills build on |
The artifactory doesn't just write files — it writes history. Branch to try a construction, merge when it works, open a PR to propose one, file an issue to request one, use discussions to deliberate. Branch timelines are experiments; merges are decisions; PRs are proposals. Every artifact arrives with a commit that says why.
The filesystem tree is a static snapshot of a universe-state at one instant — in MOOLLM, the
actual universe: rooms, characters, objects, journals, rules. A commit freezes that entire tree,
content-addressed by hash, immutable forever. Git is the directed acyclic graph of those
snapshots — a trans-dimensional representation of time laid over otherwise timeless static file
trees. Not a line: a branching, merging, many-worlds graph. Branches are parallel timelines;
merges reconcile them; checkout teleports you to any instant in that space-time.
The artifactory is the transition rule that runs on this. It reads the representation of the universe (snapshot N), applies CREATE / EDIT / DESTROY, and writes the next universe (snapshot N+1); git records the trajectory. So the claim "it runs the creation simulation on the representation of the universe" is not poetry — it's a plain description of the mechanics. No shit, it actually does.
| Simulation / cosmology | Git + filesystem mechanism |
|---|---|
| a world / universe-state | the working tree (a directory + file snapshot) |
| a frozen instant | a commit → tree object, content-addressed |
| time | the commit DAG (branching, merging) |
| parallel timelines (many-worlds) | branches |
| reconciling timelines | merges |
| teleport to an instant | checkout |
| the rule that evolves state | the artifactory (CREATE/EDIT/DESTROY) |
| the space-time record of the run | git history |
The many-worlds framing is not a loose metaphor; it precisely describes git in its full glory. Everett's interpretation is a branching tree of self-consistent histories — no collapse, every possibility a real world. Git is that structure made of content-addressed snapshots:
| Everett / many-worlds | Git |
|---|---|
| an entire world-state | a commit (immutable, content-addressed) |
| branching into parallel worlds | git branch / any divergent commit |
| the world you currently observe | HEAD |
| decoherent, non-interacting histories | independent branches |
| the record of every world you've been in | the reflog (worlds are never truly lost) |
| an alternate history | rebase / rewritten lineage (the old world still exists) |
Git even has one superpower physics doesn't: in standard many-worlds, branched worlds never
recombine — but merge reconciles divergent timelines into one. Git is many-worlds plus a
join operator.
Put plainly: git is a parallel-universe timeline editor — checkout picks which world you
stand in, branch spawns one, merge rejoins two, the reflog means none is ever lost. It inverts
PKD's "Faith of Our Fathers" (where the drug enforces a single consensus reality and the hidden
truth is plural): with git the plurality is the reality, editable and safe, not a horror to be
hidden. Most people use git daily without noticing they're operating a many-worlds machine — so
naming it this way is a small calm-technology win: you already live in parallel timelines;
here is the editor — a powerful, learnable, industry-standard tool made visible instead of drugged
and hidden.
This precision is exactly why the artifactory works. Because git faithfully realizes a branching space of immutable, recoverable worlds, the engine can run the creation simulation across many candidate worlds at once — try a construction in one branch, a different one in another, keep what survives, and never destroy a world (it's still in the reflog). Speculative, fearless construction is only safe because the substrate is honestly many-worlds. Get the cosmology right and the safety, reversibility, and parallel experimentation fall out for free.
This is also von Neumann's picture, already in the lineage: the filesystem tree is the tape / CA grid, the artifactory is the constructor / transition function, and git is the space-time diagram of the computation. It's also homoiconic with the axis of eval — the universe-representation is also the program, so the artifactory evaluates the universe to produce the next universe.
And it's exactly why the governor matters: you are running a creation simulation on a real representation of a world. Edits are physics; deletes are entropy; git is an arrow of time you can walk backward. Reversibility, provenance, and a stop condition aren't bureaucracy — they're the conservation laws that keep the simulation from collapsing into Autofac.
Many-worlds isn't only the main timeline branching. A branch (or a tag, for a frozen
snapshot release) can be a Donnie Darko pocket universe — a long-lived, independently-named,
polymorphically-typed ref like MicropolisCity_HaightAshbury that floats free with its own
history and lifecycle, evolving outside the main branch — even in a different repo / fork
entirely. It exists on its own terms, and when (if) it's ready, it can merge back into another
branch, object, or timeline. A ref is just a named slot pointing at a world; branches, tags,
objects, and timelines are interchangeable enough that you treat them polymorphically — spin one
off, let it live, splice it in later, or never.
There is no global clock, and that's a feature — celebrate it. Git orders commits by causality (the parent-edge happens-before DAG), a partial order, not a global tick; wall-clock timestamps are mere metadata and can even disagree. So time genuinely slips by at different rates in different pocket universes — one fork races ahead, another sits frozen for years, a tag is a world stopped dead — and nothing breaks, because correctness rides on the causal graph, not a shared now. This is relativity, not a bug: no absolute simultaneity, just local histories and the events that connect them.
That is also the right collaboration model — call it massively-single-player, the way Spore
did it. Spore didn't synchronize players in real time; it synchronized content — creatures,
vehicles, buildings flowed asynchronously between everyone's private single-player universes
(Sporepedia). Git is the same bet: you share objects, branches, and creations — not clocks.
fetch/pull/PR is importing another universe's content into yours on your own schedule;
everyone plays at their own rate, timestamp-independent, and the world is stitched together from
shared artifacts, not synchronized time. Rate-independent, merge-when-ready, gloriously
asynchronous.
Spore's real provocation isn't graphics — it's that it quietly breaks three assumptions we treat as absolute. Each one fragments from a single global thing into many local things, and the artifactory inherits all three:
Get these three right and the artifactory's sharing model stops being scary and starts being generative: fearless copying, local time, attribution-not-control. The commons grows because nobody has to hold still, agree on a clock, or ask permission to fork a world.
Think of the repo as a factory floor: assemblers (skills) consume artifacts and produce artifacts that feed other assemblers. The artifactory is the belt-and-assembler layer — automation of software development and content management in the real world. Unlike Factorio, it runs on tokens and writes to git.
Because it destroys as well as creates, it needs a stop condition. PKD's Autofac is the warning: a universal constructor that reproduces past its purpose, floods unwanted output, and strip-mines resources. The artifactory refuses that failure mode:
provenance:
built_by: "claude-opus-4" # or human author
reviewed_by: "don-hopkins" # human reviewer for destructive / rule changes
source_spec: "path/to/spec.yml"
built_at: "2026-07-03T21:00:00Z"
stop_condition: "one artifact per spec; halt on satisfy"
The artifactory is rarely invoked alone — it operationalizes other skills:
| With | The artifactory… |
|---|---|
| play-learn-lift | materializes the LIFT output (skills, templates, guides) |
| sister-script | turns a proven manual procedure into an automated builder |
| prototype | performs INSTANTIATE — clone a prototype, override the instance |
| incarnation | constructs a character directory from a soul spec |
| yaml-jazz | reads/writes the notation it constructs from |
| adventure | builds rooms and objects into the world |
| robust-first | governor: degrade gracefully, never crash the factory |
The artifactory stands on: von Neumann (the universal constructor — reads a tape, builds the
machine, copies the tape; the 29-state CA), Lem (Trurl & Klapaucius, constructor bots),
PKD (Ubik as maintenance engine; Autofac as the runaway warning), Drexler (Engines of
Creation), McCarthy/Church (lambda, eval/apply), Ungar & Smith (Self — prototypes,
slots, delegation; The Power of Simplicity), Factorio (automation as play), Dyson
Sphere Program (Factorio in 3D at galactic scale — factories that end up building Dyson spheres
around stars), and Will Wright's Spore (creation is the game — editors as construction sets,
cell to galaxy, the player as author-god). See Selfish inheritance below for why prototypes, not
classes.
Von Neumann didn't design one self-reproducing machine; in Theory of Self-Reproducing Automata (completed by Arthur Burks) he reasoned about three kinds of universal constructor at three levels of reality (this framing is Don's reading of the book; see his HN writeups). Naming them matters, because the artifactory is a fourth built in their image:
The brittle→robust arc is the whole point. Von Neumann himself predicted (1948) that the logic
of real automata "will have to be treated by procedures which allow exceptions (malfunctions) with
low but non-zero probabilities" — natural organisms make errors harmless; artificial ones make them
disastrous. Dave Ackley's Robust-First Computing and the Moveable Feast Machine (an
asynchronous, non-deterministic, error-tolerant CA whose rules can modify neighboring cells) are
the modern realization of class #1 grown up into #2 — and, notably, it abandons the global
clock, exactly like the artifactory's many-worlds cosmology (no global tick; local, causal,
async). MOOLLM already carries this as the ambient robust-first skill.
Where the artifactory sits: it's a constructor in the class-#2 spirit (robust, real-world, runs on tokens and writes to git) with class-#3 ambitions (it composes with probabilistic LLM generation — mutation and selection of artifacts) and class-#1 substrate honesty (git is the tape / CA-grid / space-time diagram). And the tape metaphor is now literal and playable: Factorio blueprints are von Neumann construction tapes — a 2D instruction sequence a construction drone follows to build an unpowered machine, which then powers on. Playing Factorio is uncannily like programming the 29-state CA; the artifactory is that game aimed at real software and content. (Reference implementation of the 29-state rule: SimHacker's CAM6 in JavaScript.)
Skills are artifactories — they build artifacts. So the meta-skill (skills/skill, the skill
for making skills) is an artifactory-factory: a factory whose product is factories. Go up
another level and you get factories that build artifactory-factories, and so on — construction all
the way up.
A game about skill-skills is Artifactorio — Factorio, but the belts carry skills and the
assemblers build assemblers. You automate the building of the things that build things. (See the
artifactorio game concept in the WillWrightShowForFood repo.)
The recursion sounds vacuous, but it isn't — and here's why:
"You can't think about thinking without thinking about thinking about something." — Seymour Papert, Mindstorms
Every meta-level needs a concrete something to be about. Papert's constructionism calls these objects-to-think-with. The artifactory is what supplies them: each level of "thinking about thinking" is grounded in real artifacts — files, commits, characters, skills you can open, run, diff, and break. That's what keeps the tower of meta-levels playable instead of purely abstract: you never climb the recursion without an artifact in hand at every rung.
| Level | What it is | Product |
|---|---|---|
| artifact | a file, character, doc, image | — |
| artifactory (a skill) | builds artifacts | artifacts |
| artifactory-factory (the meta-skill) | builds skills | artifactories |
| Artifactorio (the game) | play at building the builders | grounded, on-belt, with objects to think with |
This is also why MOOLLM keeps everything as inspectable files under git: the objects-to-think-with must be real to think about, or the meta-level collapses into hand-waving.
The artifactory is a prototype-based engine down to the bone, and — fair warning — it loves to explain why to anyone who will hold still. Its favorite reading is David Ungar and Randall B. Smith's Self work (Stanford / Sun, from 1986): the language that threw out classes and kept only objects. "Selfish inheritance" is the whole trick — each object carries its own behavior and inherits only where it chooses to point.
The Self creed, and how each tenet becomes an artifactory operation:
CHARACTER.yml, a skill dir) is exactly this: an
object made of slots.INSTANTIATE is a clone: copy a
fully-formed prototype and override a few slots. You never build from an abstract blueprint —
you start from a working thing and change it. (Clone, don't instantiate from scratch.)parent* slots. An object that doesn't answer a message
forwards it to its parent object. Assignable parent slots give dynamic inheritance — you can
re-point what an object delegates to at runtime.Object.create, __proto__, delegation) is Self with the serial numbers filed off.This resolves the artifactory's "class AND instance" koan. In a class-based world you must
choose: is a thing a template or a value? In Self there is no choice — a prototype is a
fully-formed object that also serves as the template. That is precisely what a MOOLLM prototype
directory is: a real, runnable character/skill you can open and the thing you clone. Abstract like
lambda, concrete like Ubik, template and value at once.
| MOOLLM concept | Self mechanism | Artifactory op |
|---|---|---|
| upstream soul + local overlay | parent* slot + local slots | INSTANTIATE (clone + override) |
| skill (inheritable prototype) | traits object (shared behavior by convention) | COMPOSE |
| character / skill directory | an object made of slots | CREATE |
| multiple souls / mixed-in skills | multiple parent* slots (multiple delegation) | COMPOSE |
| re-parent a character at runtime | assignable parent slot (dynamic inheritance) | EDIT |
The pun runs deep: Self-ish inheritance is also the selfish gene and von Neumann self-reproduction — an object that owns its behavior and copies itself. Same theme as the rest of the lineage, arriving from language design instead of automata theory.
Foundational papers the artifactory will cite at you, unprompted:
[!TIP] When a construction feels like it "wants a class," reach for a traits object instead: make a real prototype that holds the shared behavior and clone from it. Fewer meta-levels, same power.
Same machine, many faces. Self, Smalltalk, NeWS's object-oriented PostScript (class.ps), the
Unix filesystem with $PATH, and JavaScript's prototype chain are all one idea: a namespace of
named slots plus a lookup rule that delegates to a parent when a name isn't found. Name resolution
is inheritance. MOOLLM's filesystem-as-prototype-object-system (upstream soul = parent* slot)
is the artifactory living that equivalence — the same insight the NeWS side reached from
class.ps. (See the WillWrightShowForFood characters/david-rosenthal/slots-all-the-way-down.md.)
ARTIFACTORY
# PROTOCOLS.yml
ARTIFACTORY:
meaning: "Construct / edit / destroy / persist artifacts across filesystem + git, with provenance"
invoke_when: "Any durable artifact must be built, changed, versioned, or reproduced"
motto: "The Engine of Creation — it builds, edits, and destroys, including itself."
governor: "Reversible, human-in-the-loop, provenance-stamped, non-coprophagic"
This skill is part of MOOLLM — a microworld OS where the filesystem is navigable space, YAML comments carry semantic meaning, and skills are inheritable prototypes you instantiate.
process/artifactory.yml definition and the pkd-lem-ai-sf reading group.| Direction | Destination |
|---|---|
| ⬆️ Up | skills/ |
| ⬆️⬆️ Root | Project Root |
| 🎮 Sister | play-learn-lift/ |
| 👯 Sister | sister-script/ |
| 🧬 Sister | prototype/ |
| 📋 Symbols | PROTOCOLS.yml |
Give it a spec. It builds the artifact, versions the history, and knows when to stop.