openpencil/packages/docs/de/development/contributing.md
Danila Poyarkov 8ceda4d12f docs: close Fig package boundary track
- Describe complete Fig archive, conversion, instance, and metadata ownership\n- Refresh contributor paths across localized development guides\n- Mark Track D complete in the local master plan
2026-07-18 03:41:17 +03:00

3.7 KiB

Mitwirken

Projektstruktur

packages/
  core/              @open-pencil/core — Engine (keine DOM-Abhängigkeiten)
    src/             Szenengraph, Renderer, Layout, Codec, Kiwi, Typen
  cli/               @open-pencil/cli — Headless-CLI für .fig-Operationen
    src/commands/    info, tree, find, export, eval, analyze
  mcp/               @open-pencil/mcp — MCP-Server für KI-Werkzeuge
    src/             stdio + HTTP (Hono) Transporte, 87 Werkzeuge
src/
  components/        Vue SFCs (Canvas, Panels, Werkzeugleiste, Farbauswahl)
    properties/      Eigenschaftspanel-Abschnitte
  composables/       Canvas-Input, Tastenkürzel, Rendering-Hooks
  stores/            Editor-Zustand (Vue-Reaktivität)
  engine/            Re-Export-Shims von @open-pencil/core
desktop/             Tauri v2 (Rust + Konfiguration)
tests/
  e2e/               Playwright visuelle Regression
  engine/            Unit-Tests (bun:test)
packages/docs/       VitePress-Dokumentationsseite
  specs/             Fähigkeitsspezifikationen (Wahrheitsquelle)
  changes/           Aktive und archivierte Änderungen

Entwicklungsumgebung

bun install
bun run dev          # Editor auf localhost:1420
bun run docs:dev     # Dokumentation auf localhost:5173

Code-Stil

Werkzeuge

Werkzeug Befehl Zweck
oxlint bun run lint Linting (Rust-basiert, schnell)
oxfmt bun run format Code-Formatierung
tsgo bun run typecheck Typprüfung (Go-basierter TypeScript-Prüfer)

Alle Prüfungen ausführen:

bun run check

Konventionen

  • Dateinamen — kebab-case (scene-graph.ts, use-canvas-input.ts)
  • Komponenten — PascalCase Vue SFCs (EditorCanvas.vue, NumberField.vue)
  • Konstanten — SCREAMING_SNAKE_CASE
  • Funktionen/Variablen — camelCase
  • Typen/Interfaces — PascalCase

KI-Agent-Konventionen

Entwickler und KI-Agenten sollten AGENTS.md im Repo-Root lesen (auf GitHub ansehen). Behandelt Rendering, Szenengraph, Komponenten & Instanzen, Layout, UI, Dateiformat, Tauri-Konventionen und bekannte Probleme.

Änderungen vornehmen

  1. Änderung implementieren
  2. bun run check und bun run test ausführen
  3. Pull Request einreichen

Schlüsseldateien

Der Core-Engine-Quellcode lebt in packages/core/src/. App-spezifischer Editor-, Dokument-, KI-, Kollaborations-, Shell-, Demo- und Automatisierungscode liegt unter src/app/*; das Vue SDK verwaltet wiederverwendbaren Canvas- und Composable-Code unter packages/vue/src/.

Datei Zweck
packages/scene-graph/src/ Szenengraph: Knoten, Variablen, Instanzen, Hit-Testing und Undo
packages/core/src/canvas/renderer.ts CanvasKit-Rendering-Pipeline
packages/core/src/layout/ Yoga-Layout-Adapter
packages/core/src/clipboard.ts Figma-kompatible Zwischenablage
packages/core/src/vector/ Vektornetzwerk-Modell
packages/kiwi/src/schema-runtime/ Kiwi-Schema-Runtime und Binär-Codec
packages/fig/src/node-change/ SceneGraph- und Figma-NodeChange-Konvertierung
packages/core/src/io/formats/fig/ App-seitige .fig-Lese-/Schreiborchestrierung
packages/core/src/tools/ Vereinheitlichte Werkzeugdefinitionen (KI, MCP, CLI)
packages/core/src/figma-api/ Figma Plugin API-Implementierung
packages/mcp/src/server.ts MCP-Server-Factory
packages/cli/src/index.ts CLI-Einstiegspunkt
src/app/editor/session/create.ts Editor session assembly
packages/vue/src/canvas/CanvasRoot.vue Canvas-Rendering-Composable
src/app/shell/keyboard/use.ts Tastenkürzel-Behandlung