Public: anyone can read this; the crew can change it.
Design: a forge births a forge — new org, instance, chosen apps, crew, domain, keys — and the child follows its parent; '+ New forge' #428
Check · Review · Land · Live done — Landed and live in production.
scout/forge:scout/389-design-a-forge-births-a-forge-new-org-in → main 1 commit fork
1 file
changed +35
−0
docs/SPAWN.md added +35
| @@ -0,0 +1,35 @@ | ||
| 1 | # Spawn — a forge births a forge | |
| 2 | ||
| 3 | Design for issue #389. A forge can make a child: a new org and instance with | |
| 4 | chosen apps, the crew's briefs, its own keys and domain. The child follows its | |
| 5 | parent, takes its updates, and proposes back. Built as linked issues; this page | |
| 6 | is the shape they share. | |
| 7 | ||
| 8 | ## Never copied | |
| 9 | ||
| 10 | The parent's secrets, tokens, SSH keys, agent credentials, run ledger, issues | |
| 11 | and user accounts. The child mints its own. A test in #420 and #422 proves it. | |
| 12 | ||
| 13 | ## The order (what waits for what) | |
| 14 | ||
| 15 | | issue | what | waits for | | |
| 16 | | ----- | ------------------------------------------------------- | ---------------- | | |
| 17 | | #420 | spawn plan: one validated value, dry-run | #383 | | |
| 18 | | #427 | placement seam; hosted inside the parent today | #420 | | |
| 19 | | #421 | spawn action: org, instance, apps as repos, briefs | #420, #427 | | |
| 20 | | #422 | first boot: direction, own tokens, domain, claim link | #421 | | |
| 21 | | #423 | cross-forge following over HTTPS, read-only token | #422 | | |
| 22 | | #424 | propose upstream as a pull on the parent | #423 | | |
| 23 | | #425 | family tree across forges, signed heartbeats | #423 | | |
| 24 | | #426 | '+ New forge' in the studio | #421, #422, #339 | | |
| 25 | ||
| 26 | External bodies (Cloudflare, Fly, metal) are decided by spike #339 and arrive | |
| 27 | as a second implementation of the placement seam (#427), in their own issue. | |
| 28 | ||
| 29 | ## Choices | |
| 30 | ||
| 31 | - Following across forges is HTTPS git with scoped tokens, because hosted | |
| 32 | children have no SSH. | |
| 33 | - The parent never reaches into a child; children report in with a signed | |
| 34 | heartbeat carrying counts and version only. | |
| 35 | - A proposal can only create branches under `child/<name>/` and open pulls. |
new above
offline