2bf1691fb8
Ansage des Eigentuemers: ueber eine zentrale Datei bzw. einen zentralen Aufruf muss immer klar sein, was aktuell zu tun ist. OFFEN.md ist diese Datei. Sie nennt den Zustand, nicht die Geschichte, und teilt sich die Arbeit mit den vorhandenen: AGENTS.md beantwortet WARUM etwas so ist, APPLE_DEV_BACKLOG.md was davon Xcode oder das Portal braucht, OFFEN.md WAS JETZT zu tun ist. Jeder Punkt sagt auch, was konkret zu tun ist - nicht nur, dass etwas offen ist. Gegliedert nach Zustaendigkeit statt nach Thema: was auf den Eigentuemer wartet (Xcode-Lauf, Gitea-Token DM180, steuer.faellig), was eine Entscheidung braucht (Uebersicht-Box Versicherung), was eine Sitzung bauen kann (PDF-Ablage, Notizfeld, Dokumentendrift), was gemeldet aber nicht reproduzierbar ist, und was bewusst so bleibt - letzteres, damit bekannte Grenzen nicht als Fehler wiederkommen. /stand (.claude/commands/stand.md) ist der zentrale Aufruf. Er misst den mechanischen Teil selbst - Repo-Gleichstand, Manifest gegen OTA-Buendel samt sha256, Fassung der ausgelieferten .ipa, ob die eigenen Plugins darin registriert sind, und welche nativen Commits sich seit ihr angesammelt haben - und liest OFFEN.md dazu. Dieser Teil kann deshalb nicht veralten. Probelauf ausgefuehrt: er meldet korrekt 2026.9.6.5, Buendel passend, .ipa auf 2026.9.4.17 ohne die beiden eigenen Plugins, zwei native Commits wartend. Verankert in CLAUDE.md (wird beim Sitzungsstart geladen) und als Punkt 0 der Leseordnung in AGENTS.md.
3.1 KiB
3.1 KiB
description
| description |
|---|
| Zeigt den aktuellen Stand von DM360 - was zu tun ist, und ob Repo, Versionen und ausgelieferte App zusammenpassen. |
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:
- 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.
- Was wartet auf den Eigentuemer (Abschnitt 1 und 2 von
OFFEN.md). - 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).