Files
2026-10-29 10:28:15 -03:00

8.2 KiB

Roadmap

PaperCraft is an early alpha: a local-first infinite-canvas design app that agents can drive. This file lists what is still missing, in priority order, with an honest status. Done items are checked against src/mcp/tools.rs and the UI code (2026-10-12); rows 7, 8, 12, 15, 23, 25, 32, 34, 39, 40, 44, 45, 46 and section 6 were updated 2026-10-21; rows 15, 47 and 48 on 2026-10-22. Milestone history is in PROGRESS.md; known rendering and import limits are in the README.

Status: done (works today), partial (some of it works), todo.

1. Design systems (the current focus)

Agents can already build a design system through the tools; people cannot yet manage one in the UI.

# Item Status Notes
1 Inspector UI for variables done Design tab lists/renames/adds/deletes variables & modes; Inspector binds/unlinks solid fills to variables.
2 Inspector UI for components done Design tab searches components, inserts instances, swaps/resets/detaches instances; Inspector header swaps/resets instances.
3 Design lint done lint_design: WCAG contrast, 4px grid, type scale, tiny text, 44px targets, default names, hard-coded colors.
4 Lint auto-fix done lint_design {fix: true} and UI Fix / Fix all: snaps spacing to 4px grid, snaps type scale, enforces 44px targets, links matching colors to variables.
5 Lint in the UI done Live Lint section in Design tab; click issue to select & zoom, or click Fix / Fix all.
6 Variable modes done Mode selector + create/delete modes in Design tab and via set_variables {mode} / set_variable_mode.
7 Number variables (spacing, radius, font size) done Typed number, string and boolean variables in collections with groups and aliases; fields bind (size, gap, padding, radius, font size, line height, opacity, visible) in the inspector and bind_variable.
8 Stroke and gradient variables partial Strokes and text color bind to variables. Gradients keep fixed colors.
9 Text styles todo Named type styles (Heading / L, Body / M) that update every text layer using them.
10 Component variants and properties partial Main components carry text, bool, icon and enum properties; merge_variants folds per-state components into one. Multi-axis variant sets todo.
11 Swap instance, detach by tool done swap_instance and detach_instance MCP tools + UI controls in Design tab and Inspector.
12 Cross-page and shared libraries done Instances of a main on any page; publish a project as a library, enable, update and disable it in other projects (Libraries modal, *_library tools).
13 Export design tokens done get_variables with format: "css", "json" (W3C DTCG + modes), or "tailwind" (@theme), plus Copy CSS / Copy JSON in Design tab.
14 Apply a design system to existing work partial lint_design {fix: true} links matching literal colors to variables and snaps spacing/type scale.

2. Agent workflow

# Item Status Notes
15 MCP and CLI tool surface done 98 tools, one undo step per call, papercraft-cli list / schema / call.
16 Agent skills done skills/papercraft and skills/papercraft-design.
17 Accessibility annotations todo Reading order, roles and alt text on layers, checked by the linter.
18 Code export from frames done get_jsx supports format: "inline", "tailwind" (Tailwind utility classes), and "html" (HTML + CSS rules with :root variables).
19 Plugin and skill marketplace todo Skills are copied by hand today.
20 Screenshot diffing done diff_frames tool (src/mcp/diff.rs) for structural/property frame diffing + diff_rgba pixel diffing with highlight PNG.
21 Moving nodes between pages todo move_nodes stays on one page.
22 Remote images in write_html todo Only local paths and data: URIs.
46 Design from the CLI without the app done papercraft-cli call --offline and shell run the tools in-process on the project store; screenshots use a GPU or the software adapter.

3. Design features

# Item Status Notes
23 Prototyping links and flows done Prototype tab in the inspector; Present mode follows links with a camera glide. Smart transitions and hover states todo.
24 Responsive constraints and breakpoint preview partial Constraints (left, right, stretch, center, scale) exist in the editor; there is no breakpoint preview or per-size variants.
25 Shadows, blur and effects partial Drop shadow is an inspector effect. Layer and background blur todo (needs a renderer pass).
26 Margin and grid layout partial Wrapped-line cross alignment, per-line fill/align, and layout_grid track layout (src/layout.rs) implemented; CSS margin still ignored.
27 Font choice todo Inter only.
28 Rotation todo Nodes are axis-aligned.
29 Overlay, dodge, burn, light blend modes on the canvas todo Exact in SVG and PDF export, approximated as Normal on the canvas.
30 Rounded frame clipping todo Clipping is a rectangle.
31 Non-destructive booleans todo The result is a flattened path.

4. Files and collaboration

# Item Status Notes
32 Version history done Named and automatic saved versions per page: rename, restore, delete (src/versions.rs). Restore now includes variables and tokens; compare todo.
33 Figma import done .fig binary (Kiwi wire decoder + zip container) and Figma REST API JSON import in src/io/fig.rs.
34 Multiplayer and cloud sync partial Optional shared projects through the relay, with merge of concurrent edits to one page. Presence (cursors, selections) todo. Stays optional.
35 Release builds for Windows and Linux partial Windows x86_64 zips are released and packaging/windows builds an MSI; Linux x86_64 is not in the current releases.

5. Quality

# Item Status Notes
36 Pen pressure on macOS tablets todo winit 0.30 does not expose pressure for mouse-like pen events.
37 Text shaping, ligatures, RTL todo No shaping. IME preedit is not shown.
38 Performance beyond 10k visible nodes todo Cached frames take about 3 ms at 10k nodes; not tuned for 100k.

6. Agent runs (next)

Spec: specs/agent-runs/spec.md, tasks: specs/agent-runs/tasks.md. Design: PaperCraft file, page Agent runs.

# Item Status Notes
39 Agent runs and auto-versions done Editing calls group into runs; edited pages get auto-versions; runs persist, revert per page, and prune to 50.
40 Review agent changes done Id-paired diff, grouped review, canvas overlay, per-change revert and accept all; version compare UI remains todo.
41 Agent presence on the canvas todo Outline the node a tool call touches, label it, pause or stop the run.
42 get_context tool todo Selection, variables, nearby components and lint summary in one call, so an agent orients in one round trip.
43 Comments assigned to agents todo @agent in a thread triggers an edit and a reply. Needs threaded comments.
44 In-app prompt bar done Chat mode: Claude Code, Codex or your own Anthropic key; see docs/chat.md.
45 Correct tool annotations done lint_design no longer sends readOnlyHint; fix: true edits are classified.

7. Annotations and chat agents

# Item Status Notes
47 Design annotations done Notes with leader lines and categories, templates per project and page, view modes (⌘⇧A), Annotate tool (N), side view, inspector section, six MCP tools; see docs/annotations.md.
48 ACP agents in Chat done Any ACP agent on the PATH (OpenCode works; Cursor needs cursor-agent login), npx agents after enabling, custom agents; see docs/chat.md.
48b Free agents done OpenCode and Pi on free models with Free (auto) rotation, Pi provider keys, an install dialog per OS; see specs/free-agents.