Files
claude-plugins/plugins/mediawiki/skills/mediawiki/SKILL.md
T
skoandClaude Opus 4.8 7b44ceafdc plugins/mediawiki: wiki.py als Skill (fetch/update/render, wiki & devwiki)
Neues Plugin, das MediaWiki-Seiten/Templates ueber die gevendorte, self-
contained wiki.py (uv run --script; mwclient+python-dotenv) liest, rendert und
schreibt. Instanzen wiki (Prod) und devwiki via -w. Zugangsdaten bleiben lokal
(Umgebungsvariablen bzw. dotenv-Datei) - Beispiel-Vorlage beiliegend. SKILL.md
dokumentiert Nutzung + Regel "Wiki nur via wiki.py/MCP, nicht Maintenance-Skript".
Marketplace-Eintrag ergaenzt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 09:50:43 +02:00

64 lines
2.6 KiB
Markdown

---
name: mediawiki
description: MediaWiki-Seiten und -Templates lesen, rendern und schreiben. Use when editing/fetching wiki pages (wiki.inmedias.it, devwiki.inmedias.it) or when the user mentions "wiki", "Vorlage/Template", "Kundenseite".
version: 0.1.0
---
# MediaWiki (wiki.py)
Liest, rendert und schreibt MediaWiki-Seiten/Templates über die mitgelieferte
CLI `wiki.py` (mwclient + Login). Unterstützt mehrere Instanzen.
## Grundregel
Wiki-Seiten/Templates werden **ausschließlich** über `wiki.py` (oder ein
MediaWiki-MCP) bearbeitet — **niemals** per `ssh <host> php .../maintenance/edit.php`
oder anderen direkten Server-Eingriffen. Reine Lese-/Render-Checks
(`curl ...?action=render`) sind ok; nur das **Schreiben** läuft über `wiki.py`.
## Ausführen
`wiki.py` ist ein eigenständiges `uv run --script` (Inline-Deps: `mwclient`,
`python-dotenv`). Aus dem Skill-Verzeichnis ausführen:
```bash
./wiki.py -w <instanz> <befehl> ...
```
`-w` / `--wiki` wählt die Instanz (Default: `wiki`):
- `wiki` → https://wiki.inmedias.it (Prod)
- `devwiki` → https://devwiki.inmedias.it (Test)
### Befehle
```bash
./wiki.py -w devwiki fetch "Kunde:Beispiel GmbH" # Wikitext -> stdout
./wiki.py -w devwiki render "Kunde:Beispiel GmbH" # gerendertes HTML -> stdout
./wiki.py -w devwiki search "Suchbegriff" [-n <namespace>] # Titelsuche
./wiki.py -w devwiki update "Kunde:Beispiel GmbH" datei.wiki --summary "..." # speichern
./wiki.py -w wiki update "Titel" - --summary "..." # Inhalt von stdin
```
Tipp: Beim Schreiben den Inhalt aus einer Datei (`datei.wiki`) oder `-` (stdin)
übergeben — nicht als langes Shell-Argument (Sonderzeichen/Backticks!).
## Zugangsdaten
`wiki.py` bringt **keine** Zugangsdaten mit. Jede/r hinterlegt eigene Creds als
Umgebungsvariablen oder in einer `.env` (Reihenfolge: `~/.config/dokumentierer/.env`,
dann `.env` im aktuellen Verzeichnis, dann bereits gesetzte Env-Variablen). Siehe
`.env.example`:
- `MEDIAWIKI_USER`, `MEDIAWIKI_PASSWORD` — für die Prod-Instanz (`wiki`)
- `DEVMEDIAWIKI_USER`, `DEVMEDIAWIKI_PASSWORD` — für `devwiki` (fällt auf die
`MEDIAWIKI_*`-Werte zurück, wenn nicht gesetzt)
- optional `MEDIAWIKI_URL` / `DEVMEDIAWIKI_URL` — nur nötig, wenn die
Default-URLs abweichen
Es empfiehlt sich ein eigener Bot-/Service-Account mit den nötigen Schreibrechten.
## Hinweise
- `search` liefert Titel; `render` ist nützlich, um vor/nach dem Schreiben das
Ergebnis zu prüfen, ohne die Seite im Browser zu öffnen.
- Für neue Instanzen: `WIKI_ALIASES` oben in `wiki.py` erweitern.