From c76d4816d8a9a6d6e300d14978e512d6cc0f8b54 Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Sun, 16 Aug 2026 11:19:33 +0200 Subject: [PATCH] Take REPO_REFACT.md and ECOSYSTEM_PLAN.md under version control MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- ECOSYSTEM_PLAN.md | 148 +++++++++++++++++++++++++++++++++++++++++++++ README.md | 16 ++++- REPO_REFACT.md | 102 +++++++++++++++++++++++++++++++ WIKI_CONNECTION.md | 4 +- 4 files changed, 266 insertions(+), 4 deletions(-) create mode 100644 ECOSYSTEM_PLAN.md create mode 100644 REPO_REFACT.md diff --git a/ECOSYSTEM_PLAN.md b/ECOSYSTEM_PLAN.md new file mode 100644 index 0000000..85772e5 --- /dev/null +++ b/ECOSYSTEM_PLAN.md @@ -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. diff --git a/README.md b/README.md index db59e40..642740f 100644 --- a/README.md +++ b/README.md @@ -69,5 +69,17 @@ TTG/ └── tools_libs/ # own libraries (inkwell, rubbs, gorpg) ``` -The mapping between repos and wiki pages is described in -[WIKI_CONNECTION.md](WIKI_CONNECTION.md). +## Estate documentation + +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. diff --git a/REPO_REFACT.md b/REPO_REFACT.md new file mode 100644 index 0000000..ffcaaee --- /dev/null +++ b/REPO_REFACT.md @@ -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. diff --git a/WIKI_CONNECTION.md b/WIKI_CONNECTION.md index 81672af..9c49e02 100644 --- a/WIKI_CONNECTION.md +++ b/WIKI_CONNECTION.md @@ -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//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`). @@ -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). - 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 `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 `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.