/canvas-sync
Synchronize canvas state across team sessions via git. Ensures all team members see the same product knowledge.
Claude Code
$ npx -y skills add haabe/mycelium --skill canvas-sync --agent claude-code
Codex
$ npx skills add haabe/mycelium --skill canvas-sync -a codex -y
Cursor
$ npx skills add haabe/mycelium --skill canvas-sync -a cursor -y
Gemini CLI
$ npx skills add haabe/mycelium --skill canvas-sync -a gemini-cli -y
GitHub Copilot
$ npx skills add haabe/mycelium --skill canvas-sync -a github-copilot -y
OpenCode
$ npx skills add haabe/mycelium --skill canvas-sync -a opencode -y
Windsurf
$ npx skills add haabe/mycelium --skill canvas-sync -a windsurf -y
SKILL.md
canvas-sync.SKILL.mdname: canvas-sync
description: "Synchronize canvas state across team sessions via git. Ensures all team members see the same product knowledge."
metadata:
instruction_budget: "8"
framework_dependency: "mycelium"
framework_dependency_note: "This skill is designed to run within the Mycelium framework (https://github.com/haabe/mycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: /plugin install mycelium@haabe-mycelium."
Canvas Sync
When to Use
- Starting a new session (pull latest canvas)
- Ending a session (commit canvas changes)
- After team discussion that changes product direction
- When canvas conflicts arise from parallel work
Workflow
Pull Latest
git pull origin main
Then run `/mycelium:diamond-assess` to see what changed.
Commit Changes
git add .claude/canvas/ .claude/diamonds/ .claude/harness/decision-log.md .claude/memory/
git commit -m "canvas: [brief description of what changed and why]"
Conflict Resolution
- Different canvas files: auto-merges (no conflict)
- Same file, different sections: usually auto-merges
- Same field conflicting: the person with more evidence wins — a *manual* resolution heuristic for the team, not an automated merge. No tooling evaluates evidence weight; `Gated by:` a `/canvas-merge` procedure (read both versions, compare provenance depth on overlapping entries, recommend) — not yet built.
- When uncertain: discuss as team, log decision
GitOps Principle
The canvas system IS GitOps for product knowledge — git is the single source of truth, changes are declarative (YAML), and updates flow through version control with review. For infrastructure GitOps (ArgoCD, Flux), see JiT tooling detection for Kubernetes/infrastructure-as-code projects.
Read more
name: canvas-sync description: "Synchronize canvas state across team sessions via git. Ensures all team members see the same product knowledge." metadata: instruction_budget: "8" framework_dependency: "mycelium" framework_dependency_note: "This skill is designed to run within the Mycelium framework (https://github.com/haabe/mycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: /plugin install mycelium@haabe-mycelium."
Canvas Sync
When to Use
- Starting a new session (pull latest canvas)
- Ending a session (commit canvas changes)
- After team discussion that changes product direction
- When canvas conflicts arise from parallel work
Workflow
Pull Latest
git pull origin main
Then run `/mycelium:diamond-assess` to see what changed.
Commit Changes
git add .claude/canvas/ .claude/diamonds/ .claude/harness/decision-log.md .claude/memory/ git commit -m "canvas: [brief description of what changed and why]"
Conflict Resolution
- Different canvas files: auto-merges (no conflict)
- Same file, different sections: usually auto-merges
- Same field conflicting: the person with more evidence wins — a *manual* resolution heuristic for the team, not an automated merge. No tooling evaluates evidence weight; `Gated by:` a `/canvas-merge` procedure (read both versions, compare provenance depth on overlapping entries, recommend) — not yet built.
- When uncertain: discuss as team, log decision
GitOps Principle
The canvas system IS GitOps for product knowledge — git is the single source of truth, changes are declarative (YAML), and updates flow through version control with review. For infrastructure GitOps (ArgoCD, Flux), see JiT tooling detection for Kubernetes/infrastructure-as-code projects.
Mycelium won't make your idea good. It keeps you and your agent honest about whether it is, from first idea to market. Built on Claude Code, where the gates are structural. The files and skills port to opencode, Codex and Cursor. Outcome over output.
Other skills on mycelium.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about canvas-sync.
- Which coding agents can use canvas-sync?
- canvas-sync installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

