Take REPO_REFACT.md and ECOSYSTEM_PLAN.md under version control

Both were written into the workspace root, which is not a git repo, so
they were versioned nowhere: one `rm` and they were gone, and nobody
else on the team could see them. They belong next to WIKI_CONNECTION.md
— all three describe the estate rather than any single repo.

The references in the ttg-ops skills follow in the marketplace repo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-16 11:19:33 +02:00
co-authored by Claude Opus 5
parent c2b5a82a25
commit c76d4816d8
4 changed files with 266 additions and 4 deletions
+148
View File
@@ -0,0 +1,148 @@
# TTG ökoszisztéma — mink van, mi kell még
Készült 2026-08-15-én, a 2026-08-15-i org-átszervezés utáni állapotra (lásd `REPO_REFACT.md`).
**A cél:** a TTG megoldásai együtt egy teljes játékfejlesztési ciklust fedjenek le — ötlettől a kiadáson át a kiadás utáni életig —, és minden fázisban kézzelfogható eszközt adjanak, ne csak dokumentációt.
A mérce a saját folyamatunk, a wiki [PDLC](https://wiki.teletypegames.org/team/pdlc) oldala: **Preparation → Development → Release → Post-launch**. Az alábbi táblázat ezt veti össze azzal, hogy melyik fázisban van tényleg futtatható eszközünk.
| PDLC fázis | Fedő org | Eszköz? |
|---|---|---|
| Preparation / Concept | — | ✗ csak wiki-oldalak |
| Preparation / Admin | `tools` (devarea) | ~ részben, Redmine külső |
| Development / Infrastructure | `build`, `internal` | ✓ erős |
| Development / Implementation | `engines`, `demos` | ✓ erős |
| Release / Distribution | `services`, `tools` | ✓ web + Batocera |
| Release / Release party | `services` (botok), `bbs` | ✓ |
| Post-launch | — | ✗ letöltésszámláláson túl semmi |
**A két véglet:** a fejlesztés és a build fázis kiválóan ellátott, a ciklus **két vége** — a koncepció-fázis és a kiadás utáni visszacsatolás — viszont eszköz nélkül áll.
---
## `engines` — a fejlesztés alapjai
**Van:** `warp_engine` (Rails engine: katalógus, publikáló API, ActiveAdmin), `rubbs` (Telnet BBS keretrendszer), `inkwell` (Go point'n'click DSL), `gorpg` (Ebitengine RPG motor).
**Erősség:** a `warp_engine` valódi termék — mountolható, konfigurálható, saját tárolóadapterrel és CI-hívható publikáló felülettel. A `warp-engine-batocera-store` szétválasztása megmutatta, hogy a köré épülő eszközök is általánosíthatók.
**Kiadva (2026-08-16):**
- **`inkwell` v0.1.0** — modulnév `git.teletypegames.org/engines/inkwell`, `go get`-tel lehívható. A `demos/inkwell-demo` már a kiadott verziót használja, `replace` direktíva nélkül; ez javította a demó CI-jét is, ami a testvérkönyvtárat váró `replace` miatt bukott.
- **`gorpg` v0.1.0** — a modulneve `module game` volt, vagyis semmilyen néven nem lehetett rá hivatkozni; most `git.teletypegames.org/engines/gorpg`.
- **`warp_engine` 0.2.0 gem** — fent van az `engines` rubygems registryben (`https://git.teletypegames.org/api/packages/engines/rubygems`), Bundlerrel feloldható. A publikáló pipeline megvolt a monorepóban, csak sosem futott le; három elavult org-hivatkozást és egy hitelesítési hibát kellett javítani benne.
**Hiányzik:**
- **Nincs audio- és bemenetkezelő könyvtár.** A grafikai/narratív oldal le van fedve, a hang és a gamepad-absztrakció minden játékban újraíródik.
---
## `build` — a CI gerinc
**Van:** hét toolchain repo (`bevy-`, `c64-`, `ebitengine-`, `godot-`, `love-`, `phaser-`, `tic80-tools`), mind közös Makefile-mintára; hozzájuk hét builder image az `internal` registryben; a pipeline-t a `warp_engine` config-extension szolgáltatása szolgálja ki központilag, tehát egy image-bump egy sor a `services/teletypegames` inicializálójában.
**Erősség:** ez a legérettebb részünk. Hét platform, egységes minta, központi konfiguráció — egy új játék `.woodpecker.yaml`-ja egyetlen sor (`platform: ebitengine`).
**Hiányzik:**
- **A `bevy` és a `love` platformon nincs egyetlen aktív pipeline sem.** Mindkettőnek van toolchainje, builder image-e, demója és katalógus-bejegyzése — de a `demos/bevy-demo` és a `demos/love-demo` nincs regisztrálva a Woodpeckerben, tehát ezt a két platformot ma kézzel buildeljük.
- **A `demos/ebitengine-demo` és a `demos/phaser-demo` sincs regisztrálva**, noha `.woodpecker.yaml`-juk van és a katalógusban szerepelnek.
- **A pipelines tábla elavult tulajdonost tárol** a `demos/pong` és `demos/inkwell-demo` sorában (`games/…`), mert a szinkron az org-költözés óta nem futott.
- **Kétféle fájlnév él egymás mellett:** `.woodpecker.yaml` és `.woodpecker.yml` (`impostor`, `mranderson`). Apróság, de a keresést és a sablonozást megnehezíti.
- **Nincs kiadás-előtti ellenőrzés.** A pipeline buildel és publikál, de nem futtat tesztet, lintet vagy méretkorlát-ellenőrzést.
---
## `games` és `demos` — a tartalom
**Van:** 11 játék és 6 platformdemó. A katalógusban 15 bejegyzés: 5 `released`, 2 `archived`, 2 `development`, 6 `demo`.
**Platform-lefedettség:**
| Platform | Toolchain | Builder image | Demó | Kiadott játék | Aktív CI |
|---|---|---|---|---|---|
| c64 | ✓ | ✓ | ✓ (c64-demo) | 3 | ✓ |
| tic80 | ✓ | ✓ | — | 2 (+2 archivált) | ✓ |
| ebitengine | ✓ | ✓ | ✓✓ | 1 | ✓ |
| godot | ✓ | ✓ | ✓ (pong) | — | ✓ |
| phaser | ✓ | ✓ | ✓ | — (1 fejlesztés alatt) | ✓ |
| bevy | ✓ | ✓ | ✓ | — | ✗ |
| love | ✓ | ✓ | ✓ | — | ✗ |
**Hiányzik:**
- **Négy platformon nincs kiadott játék** (godot, phaser, bevy, love). A teljes eszközlánc kiépült alattuk, de nem bizonyítja semmi.
- **A demók nem sablonok.** Mindegyik önálló repo, de nincs belőlük `create-from-template` mintarepo, se scaffolding parancs. Új játék indítása ma másolás-beillesztés.
- **`nyuller`, `realworld`, `c64-demo-cpp`: se CI, se katalógus, se wiki-oldal.** Elakadt vagy félbehagyott munkák — érdemes eldönteni, hogy élnek-e.
- **Névütközés:** a katalógus szoftvernevei és a repo-nevek eltérnek (`bevydemo`/`bevy-demo`, `love2ddemo`/`love-demo`), és két külön c64 demó fut hasonló néven (`c64demo` és `c64-demo`).
---
## `services` — ami a szervereinken fut
**Van:** `teletypegames` (a publikus oldal monorepója: Rails katalógus-API + Vue SPA), `statusbot` és `updater` (Discord), `social-updater` (YouTube → Facebook/LinkedIn), `blog-writer` (wiki → Gemini → blog), `redmine-tree`.
**Erősség:** a kiadás utáni kommunikáció automatizált — új build, közösségi poszt, blogbejegyzés mind gépi úton megy.
**Hiányzik:**
- **Nincs visszacsatolás a játékostól.** A `warp_engine` letöltést számol, de nincs értékelés, komment, hibabejelentő vagy telemetria. A PDLC „Post-launch" fázisa gyakorlatilag eszköztelen.
- **Nincs hírlevél vagy követés.** Aki egyszer letöltött egy játékot, nem értesül a következő kiadásról.
- **A `statusbot` Pascalban, a többi Go/Python/Ruby** — négy nyelv négy bothoz, közös keretrendszer nélkül.
---
## `tools` — amit az ember magának telepít
**Van:** `warp-engine-batocera-store` (általános engine bármely WarpEngine-es oldalhoz) + `ttg-batocera-store` (a mi store-unk), `ttg-marketplace` (Claude plugin marketplace), `devarea` (workspace-kezelés).
**Erősség:** a Batocera store a mintapélda arra, hogyan válik egy belső eszközből általánosan használható termék — bárki felhúzhat saját store-t a saját katalógusára.
**Hiányzik:**
- **Nincs asztali/webes launcher.** A Batocera-doboz le van fedve, a hétköznapi PC nincs.
- **Nincs projekt-scaffolder.** A `devarea` a workspace-t kezeli, de nincs `ttg new game --platform godot` jellegű parancs, ami a demót, a Makefile-t, a `.woodpecker.yaml`-t és a Redmine-projektet együtt felhúzza. Ez az egyetlen eszköz, ami a `build` és a `games` közti szakadékot áthidalná.
- **Nincs helyi fejlesztői környezet dobozolva.** A builder image-ek CI-re valók; lokálisan mindenki maga rakja össze a toolchaint.
---
## `bbs` — a közösségi felület
**Van:** `bbs-server` (a rubbs-ra épülő Telnet BBS), `sermo-bbs` (SERMO-DOS showcase), `impostor-bbs` (a Neumatronic Universe 1.5-ös „játéka").
**Erősség:** ez a márkánk egyedi arca — retró csatorna, ami egyben a `rubbs` referenciamegvalósítása és NU-tartalom is.
**Hiányzik:**
- **A BBS nincs összekötve a katalógussal.** Nem lehet rajta böngészni vagy letölteni a játékainkat, pedig a `warp_engine` API pont ezt adná — a `warp-engine-batocera-store` mintájára egy „BBS store" modul kézenfekvő lenne.
---
## `infra` — az üzemeltetés
**Van:** `nginx-conf`, `backup-scripts`, `wiki-pages` (Grav wiki + fetcher + BBS front-end).
**Hiányzik:**
- **Nincs verziózott deploy.** A `nginx-conf` és a backup szkriptek megvannak, de nincs infrastruktúra-leíró (Ansible/Terraform/Compose-gyűjtemény), amiből a teljes kiszolgáló újraépíthető.
- **Nincs a repóban monitorozás.** Az Uptime Kuma külső szolgáltatás, a konfigurációja nincs verziózva.
- **Az `internal` org megmaradt** a builder image-ek névtereként; a csomagok nem költöztek a repókkal. Amíg nincsenek újrapublikálva a `build` alá, ez a névtér nem szűnhet meg.
---
## Ami a ciklusból teljesen hiányzik
Ez a három nem illeszthető egyetlen meglévő orgba sem — új org vagy új repo kellene hozzájuk.
**1. Asset-készítés (`assets`).** A wiki dokumentálja a LibreSprite-ot és a Pixeloramát, a `tic80-draw-image` vendorolt harmadik féltől — de **saját asset-eszközünk nincs**. Nincs paletta-készlet, sprite-konverter, tilemap-exportáló, hangkonverter. Minden platformnak más a formátuma, és ezt ma kézzel hidalja át mindenki. Ez a legnagyobb egybefüggő hiány a láncban.
**2. Koncepció-fázis (`design`).** A PDLC szerint itt dől el a sztori, a műfaj és a technológia. Van hozzá wiki (Neumatronic Universe, paper-sketch), de **nulla eszköz**: nincs game design dokumentum-sablon, nincs a technológiaválasztást segítő döntési segédlet (pedig hét platformunk van, és a választás következményeit a `/builds` mátrix már ismeri).
**3. Post-launch.** Nincs analitika, visszajelzés-gyűjtés, patch-folyamat vagy játékos-kommunikáció. A `warp_engine` letöltés-statisztikája az egyetlen adatunk arról, mi történik a kiadás után.
---
## Javasolt sorrend
Hatás szerint, nem nehézség szerint.
1. **A négy nem regisztrált demó bekötése a Woodpeckerbe**, és a pipeline-szinkron lefuttatása. Ez pár kattintás, és ettől lesz mind a hét platform ténylegesen automatizált — ma kettő nem az.
2. **Projekt-scaffolder** a `tools` orgba. A `build` és a `games` közti kézi lépéseket szünteti meg, és a demókat sablonná lépteti elő.
3. **`assets` org** és az első konverter. A leghosszabb út, de a legnagyobb napi megtakarítás.
4. ~~**Csomagpublikálás**~~**kész** (2026-08-16): `inkwell` v0.1.0, `gorpg` v0.1.0 és a `warp_engine` 0.2.0 gem kiadva, mindhárom külső projektből ellenőrizve.
5. **Kiadott játék a godot / phaser / bevy / love platformra.** Négy kiépített lánc várja, hogy bizonyítson.
6. **Post-launch visszacsatolás** — értékelés vagy hibabejelentés a katalógusban, `warp_engine` bővítésként, hogy minden WarpEngine-es oldal megkapja.
+14 -2
View File
@@ -69,5 +69,17 @@ TTG/
└── tools_libs/ # own libraries (inkwell, rubbs, gorpg) └── tools_libs/ # own libraries (inkwell, rubbs, gorpg)
``` ```
The mapping between repos and wiki pages is described in ## Estate documentation
[WIKI_CONNECTION.md](WIKI_CONNECTION.md).
These describe the estate as a whole, which is why they live here rather than in
any single repo:
- **[WIKI_CONNECTION.md](WIKI_CONNECTION.md)** — which repo is documented by
which wiki page, and which Gitea org each repo belongs to.
- **[REPO_REFACT.md](REPO_REFACT.md)** — the Gitea org structure: what each org
is for and what it contains.
- **[ECOSYSTEM_PLAN.md](ECOSYSTEM_PLAN.md)** — what we have per org towards a
complete game development lifecycle, and what is still missing.
The `ttg-ops` plugin in `ttg-marketplace` reads these rather than carrying its
own copy of the rules.
+102
View File
@@ -0,0 +1,102 @@
# Gitea org-struktúra
**Végrehajtva 2026-08-15-én.** 6 új org, 30 repo áthelyezve, 44 repo a helyén.
Előtte a `tools` org 19 repót tartott hét különböző célra, az `internal`-t pedig csak az fogta össze, hogy privát. A bontásban **az org a rendeltetést jelöli, a titkosságot a repo `private` kapcsolója.** Nyolc org, 44 repo.
A régi útvonalak átirányítanak (Gitea `repo_redirect`), tehát a meglévő klónok, CI-hivatkozások és wiki-linkek nem törtek el.
```
git.teletypegames.org/
├── games/ Katalógus-termék: valaki játszik vele.
│ │ Szabály: a katalógus status mezője nem "demo".
│ ├── blessingofra
│ ├── impostor
│ ├── realworld (még nincs a katalógusban)
│ ├── rabbitroller
│ ├── rabbitc64
│ ├── bombexpert
│ ├── trickster-tiles
│ ├── nyuller (még nincs a katalógusban)
│ ├── mranderson (archivált)
│ ├── c64-demo ← ma a workspace demos/ mappájában
│ └── c64-demo-cpp
├── demos/ Egy platformot mutat be, nem önálló termék.
│ │ Szabály: a katalógus status mezője "demo". A wikiben
│ │ nincs saját projektoldaluk, a motor oldalán szerepelnek.
│ ├── bevy-demo
│ ├── ebitengine-demo
│ ├── love-demo
│ ├── phaser-demo
│ ├── inkwell-demo
│ └── pong ← ma games/, de a katalógusban "demo"
├── engines/ Saját motor és könyvtár, amitől más repók függnek.
│ │ A wiki sidebar "Engines" fejléce már ma ezeket sorolja.
│ ├── warp_engine Rails engine: katalógus + API ← ma tools/
│ ├── rubbs Ruby gem: Telnet BBS keretrendszer ← ma tools/
│ ├── inkwell Go: Point'n'Click DSL ← ma games/
│ └── gorpg Go: Ebitengine RPG motor ← ma games/
├── bbs/ BBS szerverek és showcase-ek. A keretrendszerük
│ │ (rubbs) az engines/ alatt van.
│ ├── bbs-server
│ ├── sermo-bbs ← ma internal/
│ └── impostor-bbs ← ma games/
├── build/ CI toolchain és builder image.
│ │ Ide tartoznak a ma internal/ névtérben publikált
│ │ *-builder image-ek és a tic80pro is.
│ ├── bevy-tools
│ ├── c64-tools
│ ├── ebitengine-tools
│ ├── godot-tools
│ ├── love-tools
│ ├── phaser-tools
│ └── tic80-tools
├── services/ A mi szerverünkön fut.
│ ├── teletypegames a publikus oldal monorepója
│ ├── statusbot Discord bot
│ ├── updater Discord bot
│ ├── social-updater YouTube → Facebook/LinkedIn
│ ├── blog-writer wiki → Gemini → blog pipeline
│ └── redmine-tree Redmine fa nézet
├── tools/ Egy ember telepíti és futtatja magának.
│ │ A név marad, de kap definíciót és 19 helyett 5 repót.
│ ├── warp-engine-batocera-store
│ ├── ttg-batocera-store
│ ├── ttg-marketplace ← ma internal/
│ ├── devarea
│ └── tic80-draw-image (vendorolt, GitHub)
└── infra/ Maga a kiszolgáló-környezet.
├── nginx-conf ← ma internal/
├── backup-scripts ← ma internal/
└── wiki-pages ← ma internal/
```
## Elvégezve
- 6 org létrehozva (`demos`, `engines`, `bbs`, `build`, `services`, `infra`), 30 repo áthelyezve.
- Mind a 6 új org megkapta a `games` mintájára a megjelenítendő nevet és a `Teletypers` csapatot — azonos jogosultságokkal (`includes_all_repositories`, `can_create_org_repo`, private láthatóság, ugyanaz a `units_map`) és ugyanazzal a négy taggal.
- `devarea/scripts/repos.list` — 30 klón-URL átírva; a `check-repos.sh` zölden fut (45 repo, 1 kizárva).
- 33 lokális checkout `origin`-ja átállítva, köztük a `warp_engine` régi `git.teletype.hu` hosztja.
- `WIKI_CONNECTION.md` — új `Org` oszlop.
## Nyitott pontok
- **Az `internal` org megmarad**, mert 8 konténer-csomagot tart: a `*-builder` image-eket és a `tic80pro`-t. A csomagnévtér nem költözik a repókkal és nem kap átirányítást, tehát az org törlése minden buildet megölne. Ahhoz, hogy megszűnjön, az image-eket újra kell publikálni a `build` org alá, és a `services/teletypegames` repóban a `apps/api/config/initializers/warp_engine.rb:15-21` sorokat átírni.
- **Go modulnevek** — a `demos/inkwell-demo` és az `engines/inkwell` `go.mod`-ja még a régi `games/…` útvonalat viszi (az `inkwell`-é ráadásul a még régebbi `pncdsl` nevet). A `go get` nem támaszkodhat a Gitea átirányítására.
- **Gem git-források** — `bbs/bbs-server` és `bbs/sermo-bbs` `Gemfile:3`, ezek ráadásul még a régi `git.teletype.hu` hosztot használják.
- **Woodpecker** — összesen 10 repót követ, mind `games`-ben volt; ezek közül kettő mozdult (`demos/inkwell-demo`, `demos/pong`). A `pipelines` tábla magától frissül a következő szinkronnál (`woodpecker_repo_id`-ra kulcsol), de a Woodpecker oldali repo-kötést érdemes ellenőrizni.
- **A wiki taxonómiája** — a négy motor három szekcióban lakik (`infrastructure/warp-engine`, `others/rubbs`, `development/ebitengine/inkwell`). Az `engines` org mellé egy `engines/` wiki-szekció illene.
- **Workspace mappák** — szándékosan nem lettek átnevezve. A `tools_bbs/`, `tools_build/`, `tools_libs/` mappák tartalma most a `bbs`, `build`, `engines` orgokban van; a `games/pong` a `demos` orgban, a `demos/c64-demo` a `games`-ben.
## Ami magától rendben van
- **A `/code` oldal** `owner/name` alakban írja ki a repókat, tehát az új org-nevek külön munka nélkül megjelennek rajta.
- **A `check-repos.sh`** org-agnosztikus (`tea repo list`-ből olvas), nem kellett hozzányúlni.
+2 -2
View File
@@ -2,7 +2,7 @@
Folders (repos) in this workspace that **already have** a wiki page in the `wiki-pages` mirror. The wiki runs on **Grav CMS**; the content schema is `wiki-pages/pages/<path>/default.md`. Wiki base URL: `https://wiki.teletypegames.org/` (without the `/en/` prefix, based on the pages' internal links). Folders (repos) in this workspace that **already have** a wiki page in the `wiki-pages` mirror. The wiki runs on **Grav CMS**; the content schema is `wiki-pages/pages/<path>/default.md`. Wiki base URL: `https://wiki.teletypegames.org/` (without the `/en/` prefix, based on the pages' internal links).
The workspace was reorganized into category folders on 2026-08-01: `demos/`, `games/`, `media/`, `tools/`, `tools_bbs/`, `tools_build/`, `tools_libs/`, `archive/`; `teletypegames`, `wiki-pages` and `devarea` live in the root. The first column of the table is the workspace-relative path; the second is the Gitea org the repo lives in after the 2026-08-15 reorganization (see `REPO_REFACT.md` in the workspace root). The two are deliberately not identical: the folders group by how you work on them, the orgs by what the repo is. The workspace was reorganized into category folders on 2026-08-01: `demos/`, `games/`, `media/`, `tools/`, `tools_bbs/`, `tools_build/`, `tools_libs/`, `archive/`; `teletypegames`, `wiki-pages` and `devarea` live in the root. The first column of the table is the workspace-relative path; the second is the Gitea org the repo lives in after the 2026-08-15 reorganization (see `REPO_REFACT.md` next to this file). The two are deliberately not identical: the folders group by how you work on them, the orgs by what the repo is.
This file lives in the `devarea` repo (`tools/devarea`). The repo's `scripts/` folder holds the workspace management scripts (`clone-repos.sh` — clones the whole workspace in this structure based on `repos.list`; `check-repos.sh` — compares the list against the Gitea server; `install-tea.sh` — tea CLI installation), tied together by the `Makefile` in the root (`make help`). Paths in the table are relative to the workspace root (the parent directory of `devarea`). This file lives in the `devarea` repo (`tools/devarea`). The repo's `scripts/` folder holds the workspace management scripts (`clone-repos.sh` — clones the whole workspace in this structure based on `repos.list`; `check-repos.sh` — compares the list against the Gitea server; `install-tea.sh` — tea CLI installation), tied together by the `Makefile` in the root (`make help`). Paths in the table are relative to the workspace root (the parent directory of `devarea`).
@@ -46,7 +46,7 @@ This file lives in the `devarea` repo (`tools/devarea`). The repo's `scripts/` f
- **pncdsl → inkwell rename**: the former `pncdsl` repo lives on as `inkwell` (`tools_libs/inkwell`), and `pncdsl-demo` as `inkwell-demo` (`demos/inkwell-demo`). The wiki page moved too: `development/ebitengine/pncdsl``development/ebitengine/inkwell` (both repos are documented by the same page: framework intro + companion demo). - **pncdsl → inkwell rename**: the former `pncdsl` repo lives on as `inkwell` (`tools_libs/inkwell`), and `pncdsl-demo` as `inkwell-demo` (`demos/inkwell-demo`). The wiki page moved too: `development/ebitengine/pncdsl``development/ebitengine/inkwell` (both repos are documented by the same page: framework intro + companion demo).
- For `games/realworld`, the `projects/realworld` page (tree) is the developer/project doc (login-protected, subpages: catalog, entities, story); there is also a NU lore page: `projects/neumatronic-universe/arcs/norman-arc/games/02-realworld`. - For `games/realworld`, the `projects/realworld` page (tree) is the developer/project doc (login-protected, subpages: catalog, entities, story); there is also a NU lore page: `projects/neumatronic-universe/arcs/norman-arc/games/02-realworld`.
- The former separate `pipeline.md` + `makefile.md` pages of the `*-tools` repos were **merged** into the engine-wide pages (`development/ebitengine`, `development/love`, `development/tic80`): a single page holds the engine intro, the Makefile docs and the CI pipeline. - The former separate `pipeline.md` + `makefile.md` pages of the `*-tools` repos were **merged** into the engine-wide pages (`development/ebitengine`, `development/love`, `development/tic80`): a single page holds the engine intro, the Makefile docs and the CI pipeline.
- The `tic80pro-dockerfile` repo no longer has a standalone `builder-image` page; the TIC-80 Pro builder image (`git.teletype.hu/internal/tic80pro`) is documented in the pipeline/export section of the TIC-80 page. - The `tic80pro-dockerfile` repo no longer has a standalone `builder-image` page; the TIC-80 Pro builder image (`git.teletypegames.org/internal/tic80pro`) is documented in the pipeline/export section of the TIC-80 page.
- For the `impostor` repo, the developer doc is the `projects/impostor` page (tree) (fact sheet: git repo, Redmine, Woodpecker + subordinate howto/design pages); there is also a Neumatronic Universe **lore page**: `projects/neumatronic-universe/arcs/norman-arc/games/01-definitely-not-an-impostor`. - For the `impostor` repo, the developer doc is the `projects/impostor` page (tree) (fact sheet: git repo, Redmine, Woodpecker + subordinate howto/design pages); there is also a Neumatronic Universe **lore page**: `projects/neumatronic-universe/arcs/norman-arc/games/01-definitely-not-an-impostor`.
- For `impostor-bbs`, the wiki page is still the NU lore page (Game 1.5), not classic repo documentation. - For `impostor-bbs`, the wiki page is still the NU lore page (Game 1.5), not classic repo documentation.
- For the `sermo-bbs` repo (rubbs-based SERMO-DOS telnet simulator), the related page is the Sermo OS Showcase design/lore doc (its sibling page is `scratchpad/sermo-os2`), not classic repo documentation. - For the `sermo-bbs` repo (rubbs-based SERMO-DOS telnet simulator), the related page is the Sermo OS Showcase design/lore doc (its sibling page is `scratchpad/sermo-os2`), not classic repo documentation.