Contribuire
Struttura del progetto
packages/
core/ @open-pencil/core — Engine
cli/ @open-pencil/cli — Headless CLI
mcp/ @open-pencil/mcp — MCP server
docs/ @open-pencil/docs — VitePress
src/
components/ Vue SFCs
composables/ Canvas input, shortcuts, rendering
stores/ Editor state
desktop/ Tauri v2
tests/
e2e/ Playwright
engine/ bun:test
openspec/ Specs + changes
Ambiente di sviluppo
bun install
bun run dev # Editor: localhost:1420
bun run docs:dev # Docs: localhost:5173
Stile del codice
Strumenti
| Tool |
Command |
Purpose |
| oxlint |
bun run lint |
Linting |
| oxfmt |
bun run format |
Formatting |
| tsgo |
bun run typecheck |
Type checking |
bun run check
Convenzioni
- kebab-case (files), PascalCase (components/types), camelCase (functions), SCREAMING_SNAKE_CASE (constants)
- AGENTS.md — GitHub
Apportare modifiche
- OpenSpec specs
openspec new change "name"
bun run check && bun run test
- Pull request
File principali
| File |
Purpose |
packages/core/src/scene-graph.ts |
Scene graph |
packages/core/src/renderer.ts |
CanvasKit rendering |
packages/core/src/layout.ts |
Yoga layout |
packages/core/src/kiwi/codec.ts |
Kiwi codec |
packages/cli/src/commands/ |
CLI commands |
src/stores/editor.ts |
Editor state |