Skip to main content
skill CX Codex

canvas-sync — Claude Code skill: keep the team canvas in git

Pulls and commits canvas state through git so every teammate works from the same product knowledge. Meant for the first and last minutes of a session.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add haabe/mycelium --skill canvas-sync -a claude-code
Open on GitHub

What canvas-sync does

Four triggers are covered: session start, session end, a team talk that shifted product direction, and conflicts from parallel edits. At the start you run git pull origin main, then /mycelium:diamond-assess reports what moved. At the end you stage .claude/canvas/, .claude/diamonds/, .claude/harness/decision-log.md and .claude/memory/, then commit with a short note on what changed and why.

Conflicts are handled only partly by tooling. Different canvas files merge cleanly. Different sections of one file usually do too. When the same field collides, the skill tells the team to let whoever has more evidence win — a manual habit, not an automated merge. Nothing weighs that evidence for you. A /canvas-merge procedure would read both versions, compare provenance depth on overlapping entries and recommend a resolution; it is not built yet. If you cannot agree, talk it through and log the call.

This one assumes the Mycelium framework. Run it standalone and you skip the canvas state, theory gates and harness behaviour it relies on. The framework installs with /plugin install mycelium@haabe-mycelium. The thinking behind the skill is GitOps applied to product knowledge: git is the source of truth, changes are declarative YAML, everything moves through version control and review.

What it helps with

  • pull the current canvas at session start
  • commit canvas edits with a written reason
  • see what changed in the product after a team talk
  • settle a canvas conflict from parallel work
  • keep the team's product knowledge in one repo

Example prompts for the agent

  • Sync the canvas: run git pull origin main and tell me what changed
  • Commit my canvas edits before I close the session
  • My colleague and I both edited the same canvas field — help me resolve it

How to install canvas-sync

1Skills CLI (Vercel)

npx skills add haabe/mycelium --skill canvas-sync -a claude-code

2Manually: put the files in place

~/.claude/skills/canvas-sync/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/canvas-sync/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about canvas-sync

How do I install canvas-sync in Claude Code?

Run npx skills add haabe/mycelium --skill canvas-sync -a claude-code. The skill lands at ~/.claude/skills/canvas-sync/SKILL.md.

What does canvas-sync do?

It keeps the canvas in sync across sessions and teammates via git: it pulls the latest state and commits your changes when the work is done.

Does canvas-sync work without Mycelium?

No, it is built to run inside the framework. On its own it loses the canvas state, theory gates and harness behaviour it depends on. Install Mycelium with /plugin install mycelium@haabe-mycelium.

Source text

SKILL.md · MIT
---
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.

© haabe · MIT · haabe/mycelium

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set14

mocked-persona-interview For solo and hobby projects where real user interviews are off the table: the skill runs interviews with invented personas and keeps them from becoming a rubber stamp for your own assumptions. CX Codex +1 ★ 47repo stars metrics-detect Scans the repo and sets up adapters for the metric sources your product actually uses, from GitHub to Stripe. Handy when the project predates this setup. CX Codex +1 ★ 47repo stars jtbd-map Splits customer work into functional, emotional and social jobs, then saves the map to a canvas file. CX Codex +1 ★ 47repo stars friction-log Drafts an honest write-up of where working with Mycelium felt confusing or slow. You edit it and decide whether it goes anywhere. CX Codex +1 ★ 47repo stars fan-out Spawns several subagents on one problem, then folds their findings into a single pick. Useful when two or more solutions compete and you need evidence, not a guess. CX Codex +1 ★ 47repo stars diamond-render Turns .claude/diamonds/active.yml into a picture of the decisions recorded so far, in order, plus the ones still ahead. Useful at the end of an assessment. CX Codex +1 ★ 47repo stars define-done Sets a measurable Definition of Done for a diamond: a change in behaviour that creates value, not a build list. Useful when work gets signed off on shipping alone. CX Codex +1 ★ 47repo stars count Reads your repository and prints one line: when the first source file landed, how many decisions came before it, how many sessions there were. Sends nothing anywhere. CX Codex +1 ★ 47repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor