.cognet
axonl prepare writes everything it derives from the source here: types for the editor, the
compiled mind. Nothing in it is edited by hand or committed. Deleting it is always safe — the
next prepare writes it again.
A cognet inside an agent has no .cognet/ of its own; the same files go in the agent's
.agent/cognet/.
.agent/cognet/
├── schema/ # types for every component, in all three languages
│ └── room/
│ ├── room.ts # handles — #schema/room/room
│ ├── room.types.ts # plain types — #schema/room/room.types
│ ├── room.rs # crate::schema::room::room
│ └── room.py # schema.room.room
├── native/ # with Rust: the generated crate and the built module
├── python/ # with Python: the environment
├── cognet.mjs # the compiled mind
└── manifest.json # what was built: name, version, ABI
The editor's view
Source uses globals it never imports — defineSystem, ecs, kernel. The generated
declarations type them against this mind's own components and model roles, so a misspelt
component or an undeclared role is an error in the editor, not at the first tick.
When to prepare
After changing a component, adding a system, or changing the config.