dev / README.md
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# 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.

static mirror of HEAD · about · clone: git clone https://git.ardegazu.ro/dev.git