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:
2026-08-16 11:07:39 +02:00
co-authored by Claude Opus 5
parent e25cc494d2
commit 4192fc366e
9 changed files with 405 additions and 2 deletions
@@ -0,0 +1,48 @@
---
name: ttg-audit-forge
description: Audit the TTG estate for drift between the forge, the clone list, the wiki, the catalog and CI — repos missing from the clone list, stale git URLs, repos with build config but no pipeline, catalog entries whose repo name differs, duplicate checkouts and leftover remotes. Reports findings; fixes only what the user approves. Use for a health check ("nézd át", "audit", "mi van elcsúszva", "konzisztencia").
allowed-tools: Bash, Read, Grep, Glob
---
# ttg-audit-forge
Konzisztencia-ellenőrzés a forge, a klónlista, a wiki, a katalógus és a CI között. **Először jelents, ne javíts** — a találatok egy része szándékos, és a felhasználónak kell eldöntenie.
## Adatforrások
| Mi | Honnan |
|---|---|
| repók | `tea api --login ttg "/user/repos?limit=50&page=N"` (lapozz) |
| orgok, csapatok | `tea api --login ttg /user/orgs`, `/orgs/<org>/teams` |
| csomagok | `tea api --login ttg "/packages/<org>?limit=50"` |
| klónlista | `devarea/scripts/repos.list` + `check-repos.sh` |
| wiki-leképezés | `devarea/WIKI_CONNECTION.md` |
| katalógus | `https://teletypegames.org/api/software` |
| CI | `https://teletypegames.org/api/ci/pipelines` |
## Ellenőrzések
**1. Klónlista ↔ szerver.** `devarea/scripts/check-repos.sh`. MISSING = a szerveren van, a listán nincs; STALE = fordítva. A `repos.ignore`-ban lévők szándékosan kimaradnak.
**2. Elavult git URL-ek.** A workspace-ben, a wikiben és a publikus oldalon:
```sh
grep -rn "git\.teletype\.hu" --exclude-dir=.git # legacy hoszt, sosem helyes
grep -rnoE "git\.teletypegames\.org(:[0-9]+)?/[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+"
```
Az orgot vesd össze a repo *mai* tulajdonosával. **Ne jelentsd hibának:** az `internal/<név>-builder` és `internal/tic80pro` (csomagnévtér, nem költözik), az `api/packages/...` (registry-út), és a szándékos placeholderek (`games/example`).
**3. Go modulnevek.** Minden `go.mod` első sora egyezzen a repo mai `<org>/<repo>` útjával. A Gitea átirányítása **nem fedi** a modulneveket, tehát az eltérés valódi törés. Nézd a fogyasztók `require`/`replace` sorait is: a `replace ... => ../<repo>` CI-ben mindig bukik.
**4. Gem- és csomaghivatkozások.** `Gemfile`, `Gemfile.lock`, `*.gemspec` — hoszt és org. A gemspec `allowed_push_host`-ja egyezzen a publikáló pipeline `--host` értékével.
**5. CI-lefedettség.** Vesd össze háromfelé: van-e `.woodpecker.yaml` **vagy** `.woodpecker.yml`, szerepel-e a repo a `/api/ci/pipelines`-ban, és van-e katalógus-bejegyzése. A tipikus hiba: konfig megvan, regisztráció nincs — ilyenkor a build csendben nem fut. Nézd a `last_pipeline_status` mezőt is.
**6. Katalógus ↔ repo.** A katalógus szoftverneve és a repo neve eltérhet (`bevydemo` vs `bevy-demo`). Ez önmagában nem hiba, de a wikiben és az oldalon linkként **elszáll**, ha a szoftvernevet használják repo-útként.
**7. Org-higiénia.** Minden orgnak legyen megjelenítendő neve és `Teletypers` csapata a `games` mintájára (azonos `units_map`, `includes_all_repositories`, tagok). Üres orgnál nézd meg a csomagjait, mielőtt bárki törölné.
**8. Workspace-higiénia.** Duplikált checkout (ugyanaz a repo két mappában, eltérő állapotban), `origin`-on kívüli elfekvő remote, és olyan branch, aminek az upstreamje nem `origin/...` — ebből egy sima `git push` rossz helyre megy.
## Jelentés
Csoportosítsd a találatokat aszerint, hogy **valódi törés**, **elcsúszás** vagy **szándékos**. Minden találathoz add meg a fájlt és a sort. A javításra kérj jóváhagyást; ha a felhasználó kéri, a repo-mozgatáshoz a `ttg-move-repo`, a dokumentációhoz a `ttg-update-docs` skill való.