Add the ttg-ops plugin: six skills for the forge estate
The marketplace held only MCP servers so far. These are skills for the work that keeps costing manual effort and quietly breaking: - ttg-publish-module — releasing a library, and verifying from a clean external project that the release is actually fetchable. Encodes the trap that cost the most: Gitea redirects old repo paths, but not Go module paths, so a repo can be reachable while `go get` fails. - ttg-move-repo — moving a repo and following it through every place that names it, including the ones redirects do not cover. - ttg-new-repo — creating one in the right org and registering it, so it cannot end up absent from the clone list the way batocera-store did. - ttg-ci-enroll — wiring a repo into the build, and the usual failure where the config exists but the repo was never registered. - ttg-audit-forge — the drift check between forge, clone list, wiki, catalog and CI. - ttg-update-docs — README, wiki page and the public site (Vue page plus both locale files) after a change. The rules stay in REPO_REFACT.md, WIKI_CONNECTION.md and ECOSYSTEM_PLAN.md; the skills read them instead of carrying a second copy that drifts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
---
|
||||
name: ttg-new-repo
|
||||
description: Create a repo on the TTG forge in the right org and register it everywhere it has to appear — clone list, wiki page, WIKI_CONNECTION table, and CI if it builds something. Use when the user wants a new repository, project or tool ("új repo", "create repo", "kezdjünk egy új projektet").
|
||||
allowed-tools: Bash, Read, Edit, Write, Grep, Glob
|
||||
---
|
||||
|
||||
# ttg-new-repo
|
||||
|
||||
Új repo létrehozása úgy, hogy ne maradjon árván. A tapasztalat szerint a repo elkészül, a nyilvántartásból meg kimarad — ez a skill ezt előzi meg.
|
||||
|
||||
## 1. Melyik org
|
||||
|
||||
Az org a repo **rendeltetését** jelöli; a titkosságot a repo `private` kapcsolója adja, nem az org. A mai kiosztás és az egymondatos definíciók a workspace gyökér `REPO_REFACT.md`-jében vannak. Röviden:
|
||||
|
||||
| Org | Mi kerül bele |
|
||||
|---|---|
|
||||
| `games` | katalógus-termék, amivel valaki játszik |
|
||||
| `demos` | platformbemutató (katalógus-státusz `demo`) |
|
||||
| `engines` | újrafelhasználható motor/könyvtár, amitől más repók függnek |
|
||||
| `bbs` | BBS szerverek és showcase-ek |
|
||||
| `build` | CI toolchain és builder image |
|
||||
| `services` | ami a mi szerverünkön fut |
|
||||
| `tools` | amit egy ember telepít és futtat magának |
|
||||
| `infra` | maga a kiszolgáló-környezet |
|
||||
|
||||
Ha a besorolás vitatható, **kérdezd meg a felhasználót** — a rossz org később org-váltást és utókövetést jelent.
|
||||
|
||||
## 2. Létrehozás
|
||||
|
||||
```sh
|
||||
tea api --login ttg -X POST -d '{"name":"<repo>","private":false,"auto_init":false}' /orgs/<org>/repos
|
||||
```
|
||||
|
||||
A `private` a tartalom érzékenységéről szóljon, ne az orgról.
|
||||
|
||||
## 3. Nyilvántartásba vétel
|
||||
|
||||
- **`devarea/scripts/repos.list`** — új sor `<workspace-útvonal>|ssh://git@git.teletypegames.org:2222/<org>/<repo>` alakban, ábécérendben a blokkján belül. A workspace-mappa és az org **szándékosan nem azonos**: a mappák aszerint csoportosítanak, hogyan dolgozol rajtuk, az orgok aszerint, mi a repo.
|
||||
- **`devarea/scripts/check-repos.sh`** — futtasd. Ha zöld, a lista fedi a szervert. Ez a lépés fogja el a „elkészült, de sehol nincs nyilvántartva" hibát.
|
||||
- **`devarea/WIKI_CONNECTION.md`** — ha lesz wiki-oldala, új sor a táblázatba (`Folder`, `Org`, `Title`, `Wiki file`, `URL`). Ha nem lesz, vedd fel a „Folders without a wiki page" felsorolásba.
|
||||
|
||||
## 4. Wiki-oldal
|
||||
|
||||
Ha a repo dokumentálást érdemel, hozz létre `wiki-pages/pages/<szekció>/<repo>/default.md`-t. Szekció-választás a rendeltetés szerint: `development/` platformok, `infrastructure/` kiszolgáló, `others/` eszközök, `projects/` termékek.
|
||||
|
||||
A frontmatter kötelező mezői: `title`, `visible`, `id`, `description`, `date`, `locale`, `repo`, `taxonomy.tag`. **Az `id` legyen egyedi** — ellenőrizd (`grep -rh "^id:" pages/ | sort | uniq -d`), a legnagyobb használt fölött adj újat. A `config/sitenav.yaml`-ba is kerüljön bejegyzés, ha a menüben a helye.
|
||||
|
||||
## 5. CI
|
||||
|
||||
Ha a repo buildel valamit, futtasd a `ttg-ci-enroll` skillt.
|
||||
|
||||
## 6. Kezdő tartalom
|
||||
|
||||
Legyen `README.md` az első committól. Ha a repo egy meglévő minta rokona (pl. új `*-tools` vagy új store), nézd meg a testvért, és kövesd a szerkezetét — ne találj ki újat.
|
||||
|
||||
## Ha új orgot kell létrehozni
|
||||
|
||||
Nem elég a puszta org: adj neki **megjelenítendő nevet és `Teletypers` csapatot** a `games` mintájára, különben kilóg a sorból.
|
||||
|
||||
```sh
|
||||
tea api --login ttg -X POST -d '{"username":"<org>","visibility":"public"}' /orgs
|
||||
tea api --login ttg -X PATCH -d '{"full_name":"Teletype Games <Név>","description":"<egy mondat>"}' /orgs/<org>
|
||||
```
|
||||
|
||||
A csapat konfigurációját **ne gépeld be** — olvasd ki a mintából és másold:
|
||||
```sh
|
||||
tea api --login ttg /orgs/games/teams # a Teletypers csapat units_map-je és beállításai
|
||||
tea api --login ttg /teams/<id>/members # a tagok
|
||||
tea api --login ttg -X POST -d '<spec>' /orgs/<org>/teams
|
||||
tea api --login ttg -X PUT /teams/<új-id>/members/<login>
|
||||
```
|
||||
Reference in New Issue
Block a user