Dieses Repository ist eine Sammlung von Shared Tools, um KI-gestützte Entwicklung (mit Cursor, Windsurf, Copilot, etc.) in Shopware 6 Projekten zu standardisieren.
Es löst das Hauptproblem lokaler KI-Agenten: Der Agent läuft auf dem Host (Windows/Mac), aber der Code läuft im Docker Container.
- Zero Dependencies: Benötigt nur Docker. Kein PHP, kein Make, kein Node auf dem Host nötig.
- Version Match: Ermittelt die Shopware-Version aus dem Container und lädt die passenden Coding-Guidelines (PHP Architektur, DAL, etc.) direkt von GitHub.
- Docker Bridge: Generiert Befehle für den Agenten, die automatisch
docker execmit der korrekten Container-ID nutzen. - Cross-Platform: Funktioniert identisch auf Windows (PowerShell/CMD), macOS und Linux.
- Umfassender Kontext: Lädt 14 Guideline-Dateien inkl. Decorator Pattern, Unit Tests, Static Analysis, Database Migrations uvm.
Füge dieses Repository als Git Submodule in dein Shopware-Plugin hinzu. Wir nennen den Ordner .devtools, damit er "unsichtbar" bleibt.
# Im Root deines Plugins ausführen:
git submodule add git@github.com:DEIN-USER/shopware-ai-devtools.git .devtoolsFüge folgende Zeilen zu deiner .gitignore im Plugin hinzu:
# .gitignore
.devtools/
AGENT_INSTRUCTIONS.mdSobald das Submodule installiert ist, kannst du die Agent Instructions generieren lassen.
Stelle sicher, dass dein Shopware-Container läuft (z.B. via Dockware).
Windows:
Doppelklick auf .devtools\bin\ai-setup.bat oder im Terminal:
.\.devtools\bin\ai-setup.batMac / Linux:
./.devtools/bin/ai-setup.shEine Datei AGENT_INSTRUCTIONS.md wird im Root deines Plugins erstellt.
- Dein KI-Editor (Cursor/Copilot) liest diese Datei automatisch (wenn du sie als Kontext gibst oder via
.cursorrules). - Der Agent weiß nun: "Ich darf kein
phplokal ausführen, ich mussdocker exec -t ... phpunitnutzen."
Standardmäßig sucht das Skript nach einem Container, der shopware im Namen hat. Wenn dein Container anders heißt (z.B. my-project-web), übergib den Namen beim Start:
# Windows
.\.devtools\bin\ai-setup.bat my-project-web
# Mac/Linux
./.devtools\bin\ai-setup.sh my-project-webWenn du dem Agenten spezifische Infos zu diesem Plugin geben willst (z.B. "Dies ist ein B2B-Plugin für Kunde X"), erstelle eine Datei PLUGIN_CONTEXT.md im Plugin-Root.
Das Skript hängt den Inhalt dieser Datei automatisch an die generierten Instruktionen an.
Damit du den Befehl nicht immer tippen musst, lege dir einen Task in VS Code an. Erstelle oder bearbeite .vscode/tasks.json in deinem Plugin:
{
"version": "2.0.0",
"tasks": [
{
"label": "🤖 AI: Update Instructions",
"type": "shell",
"command": "${workspaceFolder}/.devtools/bin/ai-setup.sh",
"windows": {
"command": ".\\.devtools\\bin\\ai-setup.bat"
},
"presentation": {
"reveal": "silent",
"panel": "shared"
},
"problemMatcher": []
}
]
}Jetzt kannst du einfach Strg+Shift+P -> Run Task -> 🤖 AI: Update Instructions drücken.
- Das Start-Skript (
ai-setup) startet einen winzigen, temporären Docker-Container (docker:cli). - Dieser Container bekommt Zugriff auf den Docker-Socket des Hosts.
- Das interne Skript (
src/generate.sh) sucht den laufenden Shopware-Container. - Es ermittelt die Shopware-Version aus der
composer.lockim Container. - Es lädt alle relevanten
AGENTS.mdund Coding-Guideline Dateien von GitHub (passend zur Version oder fallback auftrunk). - Es kombiniert diese mit den Infrastruktur-Regeln (
src/infrastructure.md) und schreibt die finale Datei zurück auf deinen Host.