This repository is a collection of Genesis applets. It is public. It is used from a Genesis checkout: the Genesis root's genesis.workspace.json names this directory as its applets directory, and the Genesis root installs the dependencies, SDK and tools for every applet here. Follow the Genesis root AGENTS.md and the Genesis applet builder instructions in factory/AGENTS.md for every change; this file adds the collection rules.
- Each subdirectory that contains
applet.jsonis one applet. Read its.specs/current.mdandREADME.mdbefore changing it.build.pageinapplet.jsonnames an applet's page module, and its routes are in code; the applets here usesrc/page.tsandsrc/routes.ts. - Name an applet's directory after its applet id, the
idinapplet.json: a short product name such ashn-bookmarks, never a website domain, because one applet can span several websites. Choose the id when creating the applet (genesis-applet create <name>derives it from the directory name). Never change an existing id to match a directory; the id keys the applet's stored data and services, so rename the directory instead.start-applet-servers.sh --checkrefuses a directory whose name differs from its id. - Applet records are flat: specs, plans and reviews in
<applet>/.specs/, development records in<applet>/.changelog/, as the Genesis applet records guide describes. No phase or date folders. - Install dependencies with
npm installfrom the Genesis root, never in this repository or an applet: the root holds the onenode_modules, so every applet resolves the same SDK, tools and UI framework copies, such as React. - Backend ports are reserved in
ports.json.start-applet-servers.shandscripts/serve the whole collection; they are operator commands that coding agents do not run unless asked. - Preserve each applet's id, service ids, stored data and backend.