Automatischer Push: 8 Datei(en) geändert

- .vault-tools/trading-plattform-pruefung/LIESMICH.md
- .vault-tools/trading-plattform-pruefung/angriffe.py
- .vault-tools/trading-plattform-pruefung/browserlauf_zugang.py
- .vault-tools/trading-plattform-pruefung/handabruf_kerzen.py
- .vault-tools/trading-plattform-pruefung/lies_paper_protokoll.py
- .vault-tools/trading-plattform-pruefung/pruef_beobachtung_echt.py
- .vault-tools/trading-plattform-pruefung/start_probe_backend.py
- .vault-tools/trading-plattform-pruefung/start_probe_zugang.py

Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
Pascal MichelandClaude Opus 5 committed 2026-09-18 04:00:01 +02:00
1 parent 3bb28e4b3c
commit 371a1f5d2a
8 files changed
+890 -3

No files matched your search

@@ -0,0 +1,41 @@
"""Liest ein Paper- oder Probe-Protokoll mit eigenem Code und fasst zusammen, was darin steht.
Koordinator-Werkzeug zu Teil 10, nicht fuers Repo. Es tut etwas und beurteilt wenig: Die Zahlen liest
der Koordinator selbst. Binaer gelesen, nur an b"\\n" getrennt.
Aufruf: python lies_paper_protokoll.py <protokoll.jsonl>
"""
import json
import sys
from collections import Counter
from pathlib import Path
zeilen = [json.loads(z) for z in Path(sys.argv[1]).read_bytes().split(b"\n") if z.strip()]
arten = Counter(z.get("art") for z in zeilen)
print("zeilen:", len(zeilen), dict(arten))
kopf = next(z for z in zeilen if z.get("art") == "kopf")
print("kopf:", {k: kopf.get(k) for k in ("modus", "agent", "instrument", "fenster", "basis_menge", "feed", "glatt_vor_schluss_min")})
takte = [z for z in zeilen if z.get("art") == "takt"]
print("takte:", len(takte), "phasen:", dict(Counter(t.get("phase") for t in takte)))
print("killswitch in takten:", dict(Counter(t.get("killswitch") for t in takte)))
print("frische kerze:", dict(Counter(t.get("frische_kerze") for t in takte)))
erste_entscheidung = next((t for t in takte if t.get("aktion") is not None), None)
if erste_entscheidung:
print("erste entscheidung: schritt", erste_entscheidung["schritt"], "kerzen", erste_entscheidung["kerzen"], "letzte_kerze", erste_entscheidung["letzte_kerze"], "aktion", erste_entscheidung["aktion"], "ziel", erste_entscheidung["zielposition"])
print("aktionen:", dict(Counter(t.get("aktion") for t in takte)))
print("positionen:", dict(Counter(t.get("position") for t in takte)))
schliesst = [t for t in takte if t.get("phase") == "schliesst"]
if schliesst:
print("schlussphase: von", schliesst[0]["letzte_kerze"], "bis", schliesst[-1]["letzte_kerze"], "positionen", [t["position"] for t in schliesst])
for order in (z for z in zeilen if z.get("art") == "order"):
print("order:", {k: order.get(k) for k in ("seite", "menge", "gefuellt", "status", "position_danach")})
for ereignis in (z for z in zeilen if z.get("art") == "ereignis"):
print("ereignis:", ereignis.get("was"), "|", str(ereignis.get("text"))[:140])
ende = [z for z in zeilen if z.get("art") == "ende"]
print("ende:", ende)
hinweise = Counter(t.get("hinweis") for t in takte if t.get("hinweis"))
print("hinweise in takten:", dict(hinweise))