Root AGENTS.md becomes a map plus cross-cutting rules; folder rules live in one AGENTS.md per package and top-level folder, checked by check:docs. CONTRIBUTING.md owns process; README and the docs page link to it. Release preparation copies the root LICENSE into every published package, Core, CLI, and MCP gain READMEs, and the release workflow test packs its fixture in-process instead of through npm.
1.3 KiB
1.3 KiB
Fig and Kiwi
@open-pencil/kiwi owns Kiwi schema, runtime, codecs, containers, and parse helpers without SceneGraph knowledge. @open-pencil/fig owns complete .fig archive parsing, SceneGraph conversion, metadata policy, component/instance interpretation, and the Figma clipboard format. Core owns format-neutral orchestration, runtime fonts and workers, and thumbnails.
- Keep Kiwi runtime changes minimal; put project policy in wrappers, not in the runtime.
- Figma clipboard envelope encoding, decoding, bounds, and SceneGraph import conversion belong to
@open-pencil/fig/clipboard. Core prepares runtime fonts and text and owns editor placement and history; browser and Tauri adapters own system clipboard I/O. Do not add platform clipboard APIs here. - Browser
.figexport uses fflate and@open-pencil/fig; Tauri usesbuild_fig_fileindesktop/. - Vector networks use the reverse-engineered
vectorNetworkBlob; codecs live underpackages/core/src/vector/and types in Scene Graph. - Changes to
.figbehavior require round-trip validation in Figma.packages/docs/development/roadmap.mdtracks raw metadata coverage and the code map for import/export mapping and schema files. - Fixtures under
tests/fixtures/*.figuse Git LFS; use a normalgit pushwhen they change, andgit push --no-verifyto skip the LFS hook otherwise.