canvas-sync — скилл для Claude Code: общая канва команды через git
Скилл тянет и коммитит состояние канвы через git, чтобы у всех в команде была одна версия продуктовых знаний. Ставится на старте и в конце сессии.
npx skills add haabe/mycelium --skill canvas-sync -a claude-codeЧто делает canvas-sync
Скилл закрывает четыре момента: старт новой сессии, конец сессии, разговор, который поменял направление продукта, и конфликты из-за параллельной работы. В начале сессии делается git pull origin main, после чего /mycelium:diamond-assess показывает, что изменилось. В конце — git add по каталогам .claude/canvas/, .claude/diamonds/, .claude/harness/decision-log.md и .claude/memory/, потом коммит с коротким описанием.
С конфликтами всё не так гладко, как хотелось бы. Разные файлы канвы сливаются сами, разные секции одного файла обычно тоже. А вот если сталкивается одно и то же поле, правило простое: побеждает тот, у кого больше доказательств. Это ручная договорённость для команды, не автомерж — веса доказательств не считает никакой инструмент. Процедура /canvas-merge (прочитать обе версии, сравнить глубину происхождения пересекающихся записей, дать рекомендацию) описана, но ещё не собрана. Не уверены — обсуждайте и записывайте решение.
Скилл рассчитан на работу внутри фреймворка Mycelium: отдельно он пропускает состояние канвы, проверки теории и поведение обвязки, на которые опирается. Устанавливается через /plugin install mycelium@haabe-mycelium. Логика тут — GitOps для продуктовых знаний: git как единственный источник правды, декларативные YAML-изменения, обновления через контроль версий с ревью.
Какие задачи решает
- подтянуть актуальную канву в начале сессии
- закоммитить изменения канвы с описанием
- разобраться, что поменялось в продукте после обсуждения
- понять, как разрулить конфликт канвы при параллельной работе
- свести продуктовые знания команды в один репозиторий
Примеры запросов агенту
- Синхронизируй канву: сделай
git pull origin mainи покажи, что изменилось - Закоммить канву в конце сессии с описанием правок
- Мы с коллегой правили одно поле в канве — помоги разрешить конфликт
Как установить canvas-sync
1Через Skills CLI (Vercel)
npx skills add haabe/mycelium --skill canvas-sync -a claude-code2Вручную: положить файлы
~/.claude/skills/canvas-sync/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/canvas-sync/
1Через Skills CLI (Vercel)
npx skills add haabe/mycelium --skill canvas-sync -a codex2Вручную: положить файлы
.agents/skills/canvas-sync/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add haabe/mycelium --skill canvas-sync -a cursor2Вручную: положить файлы
.cursor/skills/canvas-sync/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install haabe/mycelium canvas-sync2Вручную: положить файлы
.github/skills/canvas-sync/SKILL.md1Через Skills CLI (Vercel)
npx skills add haabe/mycelium --skill canvas-sync -a gemini-cli2Командой платформы
gemini skills install https://github.com/haabe/mycelium --path plugins/mycelium/skills/canvas-syncВручную: положить файлы
.devin/skills/canvas-sync/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add haabe/mycelium --skill canvas-sync -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о canvas-sync
Как установить canvas-sync в Claude Code?
Одной командой: npx skills add haabe/mycelium --skill canvas-sync -a claude-code. Файл скилла окажется в ~/.claude/skills/canvas-sync/SKILL.md.
Что делает canvas-sync?
Синхронизирует состояние канвы между сессиями и участниками команды через git: подтягивает свежую версию и коммитит изменения после работы.
Можно ли пользоваться скиллом без Mycelium?
Нет, он рассчитан на работу внутри фреймворка. Отдельно пропускаются состояние канвы, проверки теории и поведение обвязки, на которые он опирается. Mycelium ставится через /plugin install mycelium@haabe-mycelium.
Исходный текст
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