Files
PolyTraderSharp/docs/PROJEKTSTAND.md
T
RichardandClaude Opus 5 6218a04fe4 Eine Roadmap statt fuenfzehn Plandokumente; Altbestand ins Archiv
Der Status des Projekts stand verstreut in elf Umsetzungsplaenen, drei
Konzepten, der Linux-Analyse und dem Projektstand - teils widersprechend, teils
wochenlang veraltet. Ab jetzt gibt es genau eine Statusquelle.

docs/ROADMAP.md (neu):
- Alle Vorhaben in vier Stufen A bis D, plus technische Schuld und Verlauf.
  Die Stufen sind eine Reihenfolge, keine Termine: jede schafft die
  Voraussetzung fuer die naechste.
- Statuszeichen: erledigt / offen / blockiert (mit Ursache) / bewusst
  zurueckgestellt / Idee, nicht beschlossen. Damit ist das, was wir NICHT bauen
  wollen, sichtbar vorgehalten statt unauffindbar in einem Plan zu schlummern.
- Inhaltlich getragen, nicht nur verlinkt: je Vorhaben Ziel, Phasen,
  Akzeptanzkriterien, offene Entscheidungen und Leitplanken aus den Quelldokumenten.
- Sichtbar gemacht, was vorher zwischen den Dokumenten verborgen lag:
  CopyTrading Phase 1 ist der Engpass der gesamten Roadmap (MarketMaking und
  BundleArbitrage haben harte Voraussetzungen darauf), und die Sniper-Metriken
  aus Phase 3.2 sind ein Spezialfall des StrategieDrift-Fingerprints - zusammen
  bauen statt doppelt.

Archiv (docs/archiv/):
- 15 Dokumente verschoben (11 Umsetzungsplaene, 3 Konzepte, ANALYSE-Linux-Portierung).
  Sie bleiben die Bauanleitungen mit Code-Bezuegen, Risikotabellen und
  Begruendungen - eingefroren ist nur ihr Status.
- archiv/README.md ordnet jedes Dokument seinem Roadmap-Punkt zu.

Verweise nachgezogen - der eigentliche Aufwand:
- 25 Markdown-Links repariert. 15 davon verschiebungsbedingt (eine Ebene
  tiefer), der Rest war schon vorher falsch: die Ideensammlung verlinkte
  Quellcode relativ zum Repo-Wurzelverzeichnis statt zu docs/.
- 12 Dateien ausserhalb von docs/ verwiesen in Kommentaren auf die Plaene
  (csproj, props, setup.json, sechs Quelldateien) - alle auf archiv/ umgebogen.
- Verweise auf Dateien, die der Fruehjahrsputz geloescht hat (Ui/,
  Program.cs, WindowMenuBar), zu Klartext entschaerft statt tote Links zu lassen.
- Gegenprobe: 85 Links geprueft, 0 kaputt. Build gruen, 476 Tests gruen.

PROJEKTSTAND.md entdoppelt: Abschnitt "Offen" verweist jetzt auf die Roadmap.
Arbeitsteilung ist damit klar - Projektstand sagt was IST, Roadmap was KOMMT.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 18:56:50 +02:00

167 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Projektstand PolyTrader
**Stand: 22.08.2026** · erstellt beim Frühjahrsputz, alle Angaben am Code nachgeprüft
(nicht aus Plandokumenten übernommen — mehrere davon waren veraltet).
> **Arbeitsteilung:** Dieses Dokument beschreibt, was **ist** — Architektur, Kennzahlen,
> Modul-Stand. Was **kommt**, steht in der [ROADMAP.md](./ROADMAP.md). Die Detailpläne im
> [Archiv](./archiv/) bleiben maßgeblich für das *Wie*.
---
## 1. Kurzfassung
PolyTrader ist eine modulare Trading- und Analyse-Suite für Polymarket: ein schlanker
**Core** und vier eigenständige **Module**, dazu eine plattformneutrale
**Avalonia-Oberfläche**.
| | |
|---|---|
| Projekte | 7 (Core, 4 Module, Avalonia-App, Tests) — **alle auf `net10.0`** |
| Plattform | **Windows und Linux.** Seit dem 22.08.2026 kein `net10.0-windows` mehr im Repo; Linux-Publish verifiziert |
| Produktivcode | ~27.100 LOC, davon Core ~8.000, CopyTrading ~7.700, UI ~4.900 |
| Tests | **476**, alle grün (~5.700 LOC) |
| Build | 0 Fehler, 15 Warnungen (alle im Avalonia-Projekt, siehe §5.3) |
| Sicherheit | 0 anfällige Pakete über alle 7 Projekte, inkl. transitiver |
| Datenbank | MySQL über EF Core / Pomelo. Mongo und SQLite vollständig entfernt |
**Der große Bogen ist geschlossen.** Aus dem monolithischen WinForms-Copytrader ist ein
modulares, plattformneutrales System geworden. Was noch offen ist, teilt sich sauber in
zwei Gruppen: Dinge, die **nur im Zielland mit echtem Geld** abgenommen werden können, und
**bewusst zurückgestellte Neuentwicklung**.
---
## 2. Architektur
```
PolyTrader.Core Host, Persistenz (EF/MySQL), Settings, Jobs, Logging,
CLOB-Client, Streaming, Security, Deploymentcenter-Anbindung
├── Modules.CopyTrading Master-Trader spiegeln
├── Modules.ResolutionFarming Favoriten nahe Auflösung
├── Modules.Supervisor KI-gestützte Handelsanalyse (OpenRouter)
└── Modules.Accounting Unabhängige Buchhaltung aller Live-Accounts
PolyTrader.App.Avalonia Einfenster-Shell mit Seitenleiste
```
**Leitprinzip, das gehalten hat:** Der Core kennt keine Module. Module registrieren sich
über `IPolyTraderModule` und liefern ihre Ansichten über einen toolkit-neutralen
UI-Contract — deshalb war der Wechsel von WinForms nach Avalonia überhaupt möglich, ohne
die Fachlogik anzufassen.
---
## 3. Modul-Stand
| Modul | Stand | Offen |
|---|---|---|
| **CopyTrading** | Produktiv nutzbar. Rentabilitätsplan und alle Review-Fixes umgesetzt | CLOB-User-/Market-WSS-Kanal + Orderbuch-Check, Partial-Fill-Verdrahtung, echte `fee_rate_bps` — alles live-gebunden |
| **ResolutionFarming** | Slices 05 fertig: Logik, Persistenz, Scanner, UI, Demo-Execution, Monitor | Live-Anbindung und On-Chain-Redeem |
| **Supervisor** | S-0 bis S-4 komplett: Journal, Dossiers, OpenRouter-Agent, Profile, Berichte, Counterfactual | Predictalytics-Werkzeuge (API existiert noch nicht), Live-Key-Test |
| **Accounting** | A-1 Ingest, A-2 Abrechnung/BWA/FX und A-4 Export (CSV + PDF) sind gebaut | **A-3 US-Steuerschicht fehlt vollständig** — kein `UsTaxEngine`, kein Form-8949/Schedule-D |
---
## 4. Abgeschlossen
- **Modularisierung** (Phasen 06) — Core + vier Module, kein Monolith mehr
- **MySQL-Migration** — Mongo restlos raus, `core_`/`mod_`-Schema, Migration über
`--migrate-json` / `--verify-mysql` gelaufen
- **Linux-Portierung, UI-Teil** — WinForms vollständig nach Avalonia portiert (A1A4),
LiveCharts2 statt ScottPlot, kategorisierter `SettingsEditor` statt `PropertyGrid`
- **Einfenster-Shell** — Mehrfenster-Launcher durch eine Shell mit Seitenleiste ersetzt
- **Deploymentcenter-Integration** (D-0 bis D-5) — Lizenz, Watchdog, Fehler-Reporting,
Auslieferung und Erstinstallation, **code-seitig**
- **Sicherheit F1F6** — AES-GCM at-rest für Keys über `POLYTRADER_MASTER_KEY`, keine
Secrets in Argumenten oder Logs
- **WinForms-Ausbau** (P11/L5) und **LicenseLabrador-Ablösung** (D-6) — 22.08.2026
---
## 5. Offen
**Steht vollständig in der [ROADMAP.md](./ROADMAP.md).** Dort sind alle Vorhaben nach Stufen
geordnet, mit Blockern und Begründungen — dieses Dokument beschreibt den *Ist*-Zustand, die
Roadmap den Weg nach vorn. Kurz zusammengefasst:
- **Stufe A — Abnahme & Fundament:** A5-Abnahme der Oberfläche, CI-Runner, Deploymentcenter
live, systemd/Feldtest, Master-Key im Zielland
- **Stufe B — Module scharf schalten:** CopyTrading Phase 1 (Marktdaten-Fundament, der
wichtigste Einzelposten), ResolutionFarming live, AutoRedeem, Accounting A-3/A-5
- **Stufe C — Neue Strategiemodule:** MarketMaking, BundleArbitrage (beide hängen an
CopyTrading Phase 1), StrategieDrift und AI-Auflösequalität (zurückgestellt)
- **Stufe D — Nicht beschlossen:** DataDriven, Predictalytics-Anbindung
- **Technische Schuld:** 15 Build-Warnungen, TerminalLogger/Zeitzone, God-Methoden
---
## 6. Der Frühjahrsputz vom 22.08.2026
Zwei Commits: `dd8da3f` sicherte den unversionierten Arbeitsstand (58 Dateien: die
Deploymentcenter-Integration und die Einfenster-Shell lagen uncommittet im Arbeitsbaum),
`bf8048b` räumte auf.
**Entfernt** — 124 Dateien, 10.619 Zeilen weniger:
- Das **WinForms-Projekt** samt `Ui/`, `Models/`, `Licensing/`, `services/`, `Properties/`,
`Resources/icons/`, `Program.cs`, `favicon.ico` und `PolyTrader.App.csproj`
- **`LicenseLabrador.Client`** aus `lib/nuget` und dem Quellen-Mapping
- **`agentspace/`** (30 Dateien: WinForms-Designer-Patcher, `fix_mongo.py`, Wegwerfskripte)
- `Ideen-fuer-Mittwoch.txt`, das Root-`appsettings.json` (Duplikat), lokal `MongoDB/`,
`data.db` und eine `.bak`-Datei
**Beim Aufräumen aufgefallen und mitbehoben:**
- Der Rückfall-Tag **`winforms-final` lag nur lokal** und war nicht auf dem Server — genau
die Sicherung, auf die sich die Doku als Fallback beruft. Jetzt gepusht.
- Die Avalonia-App band ihre **PNG-Symbole aus dem Repo-Root** ein (`..\..\Resources\*.png`)
und hätte sie beim Ausbau verloren. Sie liegen jetzt in
`src/PolyTrader.App.Avalonia/Assets/`; der `avares://`-Pfad blieb gleich.
**Bewusst *nicht* entfernt**, obwohl Pläne es nahelegten:
- **`Newtonsoft.Json` im Core** ist kein toter Ballast, sondern ein Sicherheits-Pin:
Nethereum 6.1.0 würde sonst transitiv auf 11.0.2 auflösen (GHSA-5crp-9r3c-p9vr).
- **Die `Watchdog*`-Felder in `ServerSettings`.** Schnitt D-6 verlangte ihre Entfernung,
aber D-1 hatte sie zuvor auf die Deploymentcenter-API *umgewidmet*. Sie sind in Gebrauch;
ein Entfernen wäre ein Rückschritt gewesen.
- **`Resources/*.png`** — siehe oben.
**Gesucht und nicht gefunden:** toter Code. Eine Prüfung aller 285 Typen in `src/` gegen
ihre Verwendung ergab keinen einzigen verwaisten Typ. Die scheinbaren Treffer waren
EF-Design-Time-Factories und Migrationen (per Reflection genutzt) sowie Null-Stubs, die
über DI registriert sind. Auch leere `catch {}`-Blöcke: keine.
**Doku nachgezogen:** Der Modularisierungsplan führte die Phasen 36 als „IN ARBEIT"
beziehungsweise offen, obwohl sie seit Wochen erledigt waren — die Häkchen sind jetzt am
Code nachgeprüft gesetzt. Der Watchdog/LicenseLabrador-Plan ist als **abgelöst**
gekennzeichnet, `ANALYSE-Linux-Portierung.md` steht auf Revision 6.
---
## 7. Doku-Landkarte
| Dokument | Rolle |
|---|---|
| `ROADMAP.md` | **Das Steuerungsdokument** — alle Vorhaben, Status, Reihenfolge |
| `PROJEKTSTAND.md` | **Dieses Dokument** — der Ist-Zustand: Architektur, Kennzahlen, Modul-Stand |
| `archiv/` | Die Detailpläne, aus denen die Roadmap entstand. Weiterhin die Bauanleitungen |
| `LEITFADEN-Avalonia-Portierung.md` | Arbeitsregeln für die Oberfläche. **Vor jeder UI-Arbeit lesen** |
| `LEITFADEN-CI.md` | Was die CI prüft und wie der Gitea-Runner eingerichtet wird |
| `UI-SPEZIFIKATION-WinForms.md` | Beschreibung der alten Oberfläche — Vergleichsvorlage für A5 |
| `sicherheit/SICHERHEITSKONZEPT.md` | Konzept + **wiederkehrende Audit-Checkliste**. Die offenen Kästchen dort sind eine Vorlage, keine Rückstände |
| `IDEENSAMMLUNG-Feldtest-2026-08.md` | Beobachtungen aus dem laufenden Einsatz. Nur sammeln |
| `.agents/rules/clob.md` | Regeln für alles, was Geld bewegt |
**Abgelöst, nur noch Verlauf:** `UMSETZUNGSPLAN-Watchdog-LicenseLabrador-Integration.md`
---
## 8. Wie es weitergeht
Die Reihenfolge steht in der **[ROADMAP.md](./ROADMAP.md)**. Die kürzeste Fassung: erst die
Abnahmen aus Stufe A abschließen (dort steckt fertige Arbeit, die nur noch bestätigt werden
muss), dann CopyTrading Phase 1 — daran hängen beide geplanten Strategiemodule.