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,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ó.
|
||||
Reference in New Issue
Block a user