Files
audi-app/.claude/commands/stand.md
T
tobias 056d4b02a4 Arbeitskopie liegt jetzt unter Projekte\audi-app - die alte ist stillgelegt
Vollstaendige Kopie, kein frischer Klon: companion-app/.env.local, die echten
Belege unter tests/belegparser/belege/ und beide node_modules sind mitgekommen,
es ist also nichts nachzuinstallieren. 10.924 Dateien, fsck ohne Beanstandung.

Die alte Kopie unter .claude\sessions\Audi_app_TG bleibt vorerst liegen, darf
aber nicht mehr pushen: ein pre-push-Hook lehnt jeden Push ab und nennt den
neuen Ort. Zwei Arbeitskopien, die beide pushen duerfen, laufen auseinander -
bei DM180 einmal geschehen. Der Hook liegt in .git/hooks und ist bewusst nicht
versioniert; er gehoert zu jenem einen Verzeichnis, nicht zum Projekt.

Nebenwirkung zum Guten: /stand und die uebrigen Projektbefehle greifen jetzt
ohne den unversionierten Zeiger, weil das Repository direkt geoeffnet wird.
stand.md und die Dateikarte in SPECIFICATION.md entsprechend nachgezogen.

AGENTS.md Abschnitt DK.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 01:03:42 +02:00

3.7 KiB

description
description
Zeigt den aktuellen Stand von DM360 - was zu tun ist, und ob Repo, Versionen und ausgelieferte App zusammenpassen.

Wo dieser Befehl greift. Claude Code sucht Projektbefehle ausschliesslich in <Arbeitsverzeichnis>/.claude/commands/. Seit dem Umzug der Arbeitskopie nach C:\Users\tobia\Projekte\audi-app (10.09.2026) wird das Repository direkt geoeffnet - /stand steht damit ohne Zutun zur Verfuegung. Der frueher noetige Zeiger unter .claude\sessions\.claude\commands\stand.md entfaellt; er war unversioniert und ging mit jeder verlorenen Arbeitsumgebung mit. Wird doch einmal eine Ebene darueber gearbeitet, greift dieselbe Regel wie zuvor: dort findet Claude Code diese Datei nicht.

Zeige den aktuellen Stand dieses Projekts. Zwei Teile: den gemessenen (unten selbst nachrechnen, nie aus dem Gedächtnis) und den gepflegten (aus OFFEN.md).

1. Messen

Führe genau diesen Block aus:

R=$(git rev-parse --show-toplevel) && cd "$R"
echo "== Repository =="
echo "  Zweig $(git branch --show-current) | HEAD $(git rev-parse --short HEAD) | origin $(git rev-parse --short @{u} 2>/dev/null || echo '?')"
printf "  Arbeitsbaum: "; [ -z "$(git status --porcelain)" ] && echo sauber || git status --short
echo "== Versionen =="
python - <<'PY'
import json, hashlib, pathlib, zipfile, plistlib, re
b = "custom_components/audi_dashboard/"
m = json.load(open(b + "manifest.json"))["version"]
print(f"  Integration   {m}")
try:
    j = json.load(open(b + "frontend/app/bundle.json"))
    z = pathlib.Path(b + "frontend/app/bundle.zip").read_bytes()
    ok = j["version"] == m and hashlib.sha256(z).hexdigest() == j["sha256"] and len(z) == j["bytes"]
    print(f"  OTA-Buendel   {j['version']}   {'passt' if ok else 'PASST NICHT - npm run ota faellig'}")
except Exception as e:
    print("  OTA-Buendel   nicht lesbar:", e)
try:
    zf = zipfile.ZipFile("companion-app/auslieferung/App.ipa")
    n = zf.namelist()
    p = plistlib.loads(zf.read([x for x in n if re.match(r"Payload/[^/]+\.app/Info\.plist$", x)][0]))
    print(f"  .ipa auf dem Telefon  {p.get('CFBundleShortVersionString')}")
    c = [x for x in n if re.match(r"Payload/[^/]+\.app/capacitor\.config\.json$", x)]
    if c:
        L = json.loads(zf.read(c[0])).get("packageClassList", [])
        fehlt = [k for k in ("BelegZwischenablagePlugin", "KalenderTerminPlugin") if k not in L]
        print("  eigene Plugins registriert:", "ja" if not fehlt else "NEIN - " + ", ".join(fehlt))
except Exception as e:
    print("  .ipa nicht lesbar:", e)
PY
echo "== Wartet auf einen Xcode-Lauf =="
B=$(git log --format=%H -1 -- companion-app/auslieferung/App.ipa)
N=$(git log --oneline "$B..HEAD" -- companion-app/native/ companion-app/scripts/ios-*.sh companion-app/scripts/ios-*.mjs companion-app/capacitor.config.ts)
[ -z "$N" ] && echo "  keine nativen Aenderungen seit der ausgelieferten .ipa" || echo "$N" | sed 's/^/  /'

2. Lesen

Lies danach OFFEN.md. Steht dort etwas unter „Wartet auf einen Xcode-Lauf", oder meldet die Messung nicht registrierte Plugins, lies zusaetzlich APPLE_DEV_BACKLOG.md.

3. Berichten

Kurz und in dieser Reihenfolge:

  1. Stimmt der mechanische Stand? Nur melden, was nicht passt - Repo nicht synchron, Buendel-Version abweichend, Pluginliste unvollstaendig, native Aenderungen aufgelaufen. Passt alles, genuegt ein Satz.
  2. Was wartet auf den Eigentuemer (Abschnitt 1 und 2 von OFFEN.md).
  3. Was eine Sitzung bauen koennte (Abschnitt 3), mit einer Empfehlung.

Nenne die Punkte aus OFFEN.md, statt sie neu herzuleiten - und wenn dir beim Messen etwas auffaellt, das dort fehlt, sag es und trage es nach.

Starte nichts von selbst. Ein Xcode-Lauf ist immer die Handlung des Eigentuemers (Apple-Regel in AGENTS.md).