Schichten

Status: Entwurf

Vorschläge von Claude – nicht verbindlich, bis Daniel sie freigibt.

Schichten des Cores: cli und server oben, engine in der Mitte, adapters und store darunter, model ganz unten cliclick-Befehle, --json serverdeciwa serve, JSON API sphinxmarkiert gerendertes HTML engine Selektoren auflösen · Fingerprints · Zustände · todo store.deciwa/ finden, lesen, schreiben adaptersmd · rst (+ Sphinx-Needs) · Text → Elemente model – Annotation, Selector, Element, State (einfache Dataclasses, kein I/O)
Pfeile zeigen auf das, was eine Schicht nutzen darf. Nichts zeigt nach oben.
Vorschlag: Der Core ist in Schichten mit strenger Abhängigkeitsrichtung aufgeteilt PROP_LAYERS
status: draft

Innerhalb von deciwa.core:

Module

Contains

May use

deciwa.core.model

annotations, ids, fingerprints, schema version

–

deciwa.core.adapters (0.1)

one module per format; text in, elements out

model

deciwa.core.store

finding .deciwa/, reading and writing annotation files, config

model

deciwa.core.engine

resolving selectors, states, review rules, todo lists, export/import

model, adapters, store

Jedes andere Paket ist ein Frontend und nutzt nur deciwa.core.Project (nie den Store oder die Dateien direkt), damit der gehostete Dienst später store ersetzen kann, ohne sie zu ändern.

Die Pakete selbst: Technischer Überblick.