canvas-client
Skill1 starsChanged 2 months agoApache-2.0View on GitHub
Build or review the Singular canvas, graph snapshot, event stream, and floating agent or group chat windows.
In this repository25 other files it gives its agents.
- agent-runtimeSkill
- ball-alignSkill
- checkSkill
- chip-designerSkill
- collaboration-panelSkill
- debug-bemuSkill
- debug-compilerSkill
- debug-p2eSkill
- debug-performanceSkill
- debug-verilatorSkill
- domain-modelingSkill
- graph-contractSkill
- grillingSkill
- grill-with-docsSkill
- ip-designerSkill
- model-optimizeSkill
- model-portSkill
- model-recipeSkill
- plugin-verifySkill
- programming-principlesSkill
- repo-installSkill
- reportSkill
- role-identitySkill
- waveformSkill
- workload-testsSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 7 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 8
Use for the web surface only.
- Distinctive: line 17
Do not add a shared helper package or duplicate snapshot/SSE authority without a demonstrated need.
- Distinctive: line 21
Keep traditional linear chat and the canvas as parallel first-class modes.
- Distinctive: line 38
Keep client injection and host plugins separate.
- Distinctive: line 39
Use the existing Harness session identifiers to open agent transcripts.
- Distinctive: line 45
Do not hide loading, recovery, or runtime failure behind a fallback node or fake status.
- Distinctive: line 49
Verify at desktop and narrow widths that nodes, group boundaries, and floating windows do not overlap incoherently.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Canvas Client
Use for the web surface only. Singular is delivered as separate client plugins; they communicate with DOM events and never become a second graph authority.
Plugin boundaries
canvasowns the sidebar entry, graph snapshot/SSE lifecycle, canvas surface, and explicit four-direction viewport expansion tools.noderenders every agent and group boundary from the snapshot. Agent-providednodegeometry andshapeare authoritative; missing geometry is an error.connectrenders only persisted graph edges.stickyowns movable, minimizable, closable windows and clears them when the canvas closes.chatowns session conversation windows.reportandhumancreate their own sticky content.bubbleowns the short notification queue and node focus action.- Do not add a shared helper package or duplicate snapshot/SSE authority without a demonstrated need.
Surface
- Keep traditional linear chat and the canvas as parallel first-class modes.
- Enter the canvas through the existing
sidebar.footer.actionslot; do not add a fixed corner launcher to the page body. - Render every agent node, including agents inside groups. Render group boundaries as visual grouping, not as a black-box replacement node.
- Support multiple root graphs in one canvas view.
- Clicking the root opens its agent chat; the first user prompt is sent there.
- Clicking an agent opens that agent's independent chat. Clicking a group boundary opens the group's shared chat.
- Chat windows are independent floating notes: multiple may coexist, move, stick to a location, minimize, and close. These are UI-state operations only.
- Assistant and user message content belongs to the session chat window. Never mirror it into the notification queue.
- The notification queue contains only short host-emitted status notices such as task completion or failure. Clicking a notice clears that node's unread marker and focuses the node on the canvas.
- Show router status and group membership without adding controls that create, delete, reconnect, or reorder graph entities.
- Node position, dimensions, and shape are selected by the agent that creates the node and arrive in the graph snapshot. The canvas never auto-layouts or persists viewport changes as graph mutations.
- Expansion tools change only the local viewport plane; they do not modify graph records.
Host/client split
- Host code exposes strict snapshot, graph event, session chat, notification, and message command routes using existing web-server and Cordis lifecycle patterns.
- The snapshot is the read source for the UI. Events invalidate or update that snapshot; the browser does not infer graph truth from optimistic local edits.
- Keep client injection and host plugins separate. Register every route, listener, and resource under an effect disposer.
- Use the existing Harness session identifiers to open agent transcripts. Use a group transcript id for a shared room; do not merge it into a member session.
Error behavior
- Non-2xx responses, malformed snapshots, unknown event kinds, and closed sessions are visible errors. Do not show an empty canvas or substitute a stale snapshot.
- Reject graph mutation requests from the client. Chat and window-state commands are the only human actions in the first version.
- Do not hide loading, recovery, or runtime failure behind a fallback node or fake status.
Client checks
Verify at desktop and narrow widths that nodes, group boundaries, and floating windows do not overlap incoherently. Exercise multiple windows, minimize/restore, close/reopen, nested groups, multiple roots, stream reconnect, and a full page reload against persisted state.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

