# ardegazu-dev
The dev-management suite of the [ardegazu.ro](https://ardegazu.ro) ecosystem:
one manifest, one CLI, and the house rules encoded so they never have to be
relearned.
```sh
git clone https://git.ardegazu.ro/dev.git ardegazu-dev
ardegazu-dev/bin/ardz workspace # clone every repo into place, set
# anonymous identities, install deps
ardegazu-dev/bin/ardz doctor # verify the machine + policies
ardegazu-dev/bin/ardz home # drop the AI-session home doc into
# the workspace roots
```
Add `bin/` to PATH (or alias `ardz`) and the whole ecosystem is:
```
ardz status repo table: branch, dirty, versions
ardz dev <name> / ardz relay dev server with the right env / dev relay
ardz build <names…|all> npm run build per repo (shadow-cljs
release + workbox for apps; check for kits)
ardz release <names…|all> version bump (versioned=y apps) + build +
deploy: ipfs add → site:<host> pin →
ipns publish → unpin previous
ardz publish-src <names…|all> anonymity-gated source mirrors →
git.ardegazu.ro (delegates to assemble.sh)
ardz kit-release <kit> tag + publish a package mirror, wait for
the gateway, sha-bump every consumer with
the explicit npm form, rebuild, commit
the two dependency files only
ardz new <name> <host> scaffold a new p2p game from neon-grid:
tree copy, salts/protocol/idents set,
anonymous git identity FIRST, manifest row
ardz new-app <name> <host> <live|rooms>
scaffold a p2p app, ClojureScript both
ways: live = the games' stack minus the
game (ephemeral, libp2p v3); rooms = the
chat stack (durable encrypted log,
mailbox, versioned PWA). Skeleton from
dev/templates/app-cljs-{live,rooms}/,
vendored files copied from the canon repos
(game1/chat) at scaffold time
ardz new-bot <name> scaffold a resident bot from
dev/templates/bot/ (ClojureScript, four
isolated shadow-cljs builds): peer-kit +
rooms-kit worker shape, RL hooks as
fill-ins, systemd fleet deploy
```
## apps.tsv
The single source of truth: `name · dir · host · kind · ident · versioned`.
`assemble.sh` (the mirror assembler) reads it too — adding an app is one row
here plus the three manual catalog cards (home page, git index, README
table); the scaffold commands print the checklist. Prompt docs:
`docs/NEW-APP-PROMPT.md` (apps), `templates/bot/docs/NEW-BOT-PROMPT.md`
(bots), `game1/docs/NEW-GAME-PROMPT.md` (games).
## The rules this suite encodes
- Anonymous per-repo git identities; publish gates decompress every mirror
object and abort on identity strings (newer gates read private patterns
from `~/.config/cod-sursa/idpat`). No `git add -A` in policy repos.
- Kits are CLJS shipping committed deterministic ESM `dist/` + hand-authored
`types/*.d.ts`, consumed as npm git deps pinned **by sha** — npm reuses stale
lockfile resolutions for git deps when only the committish changes, so
bumps use the explicit `npm install pkg@git+…#<sha>` form.
- `site:<host>` pin naming on deploys; only same-named previous pins are
unpinned. versioned=y apps (home, chat, board, banca, bursa) bump
`client/version.json` so installed PWAs prompt.
- The apex service worker precaches the shell ONLY — `/id/` (the identity
bridge, which must never go stale) is excluded three redundant ways in
`home/client/scripts/build.mjs`, gate-asserted against the emitted sw.js;
node ≥ 22 for the dev relay; dev ports 4173/5173 only.
MIT.