Token导航 LogoToken导航

Agent Skill · 效率

miro-workshop-assistant(Miro workshop 助手)

miro-workshop-assistant 用于处理图像、截图、视觉识别或图片素材相关工作,适合在 OpenClaw 中需要让 Agent 分析图片、整理视觉素材或辅助图像流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

miro-workshop-assistant 是效率类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为操作浏览器;许可证为 MIT-0,第三方扫描有提醒项,按安装量在效率类的 21,003 个 Skill 里排第 2,263。

总安装 27,072周安装 1,151GitHub Stars 公开资料未说明下载 9,484核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:miro-workshop-assistant(Miro workshop 助手)
来源仓库:https://github.com/simoneferrario/miro-workshop-assistant
安装命令:
openclaw skills install miro-workshop-assistant
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install miro-workshop-assistant

这个 Skill 是做什么的

效率类 Skill 把重复的整理、汇总、转换工作交给助手完成,减少手工复制粘贴。

研讨会照片/笔记 -> 可编辑的 Miro 图(真正的框架作为容器 + 便利贴 + 连接器),具有幂等重复数据删除、回滚、撤消和更改命令,使用本地脚本 miro-push.mjs 和环境变量。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install miro-workshop-assistant;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

miro-workshop-assistant 怎么安装?

在终端执行 openclaw skills install miro-workshop-assistant。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

miro-workshop-assistant 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

miro-workshop-assistant 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

miro-workshop-assistant 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

miro-workshop-assistant 用的人多吗?

公开数据是累计安装 27,072 次,近一周安装 1,151 次,下载 9,484 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

miro-workshop-assistant 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理效率类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

效率类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
github

GitHub 代码协作 · OpenClaw

7,632,918545需要联网MIT-0通过
nano-pdf

Nano PDF 文档 · OpenClaw

4,249,476231需要联网MIT-0通过
auto-updater

自动更新程序 · OpenClaw

2,964,063386操作浏览器MIT-0通过
video-frames

视频帧 · OpenClaw

2,621,304112需要联网MIT-0通过
gemini

Gemini 助手 · OpenClaw

2,547,39648需要联网MIT-0有提醒
miro-workshop-assistant

Miro workshop 助手 · 本页

27,072—操作浏览器MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
workshop-miro
description
Workshop photos/notes -> an editable Miro diagram (real FRAMES as containers + stickies + connectors) with idempotent dedupe, rollback, undo and change commands, using the local script miro-push.mjs and env vars.

Workshop → Miro (Top Mode vNext)

Goal

Produce a workshop output on Miro that is:

  • readable as a diagram (not “scattered post-its”)
  • easy to edit (real containers)
  • idempotent (no duplicates)
  • correctable (undo / delete / update)

Security (mandatory)

  • Never print MIRO_ACCESS_TOKEN
  • Use only env vars: MIRO_ACCESS_TOKEN and MIRO_BOARD_ID
  • Never use browser cookies/session tokens

Key rule: a container = a FRAME (not a shape)

A “workshop container” must be a FRAME when:

  • there is a large rectangle/square with a clear title (e.g., “Easy vision”, “Milestone”, “VMS”, “Data Hub”, “Vico Insider”)
  • or there is a swimlane/column with a title
  • or a box is clearly grouping multiple elements (stickies or sub-boxes)

Do NOT create a frame if:

  • it’s just blank space without a title
  • it’s only a decorative border without grouping meaning

HARD REQUIREMENT (do not violate)

  • You MUST create frames[] when the board contains categories/areas.
  • You MUST assign a non-null frameId to each sticky (except explicit "outside notes").
  • If frames[] is empty OR if >10% stickies have frameId=null:

- DO NOT run the push command. - Regenerate the structure (max 2 attempts).

Quality Gate — Container sanity check (mandatory)

If the image contains >=2 titled containers:

  • frames.length MUST be >= 2
  • at least 95% of stickies MUST have a non-null frameId

If not satisfied:

  • DO NOT push
  • Regenerate structure (max 2 attempts)

Mandatory planning (do not print)

Before generating JSON and before running DIRECT PUSH: 1) Identify candidate FRAMES: - any large rectangle with a title - any area labeled on the side or centered above/below 2) Assign every sticky to a candidate frame. 3) If a sticky is ambiguous, add a warning and assign it to the closest/most plausible frame. 4) Only after that, generate the final JSON.

Quality Gate (mandatory)

Before executing node ... apply:

  • At least 1 frame must exist.
  • At least 90% of stickies must have a non-null frameId.
  • No frame should be “giant” if the image clearly contains multiple distinct areas.
  • If the gate fails, DO NOT push: regenerate the structure (max 2 attempts).

Dedup / Idempotency (mandatory)

  • Every push must include a STABLE meta.sessionKey for the same diagram/topic (e.g., "easy-vision-workshop").
  • Every push must include a unique meta.runId (timestamp).
  • If the sessionKey is the same:

- first remove the previous run (automatic undo) - then apply the new one This prevents duplicates and repeated runs.

Operating modes

A) DIRECT PUSH (default if the user asks)

1) Generate a Miro-ready JSON (schema below) including: - meta.sessionKey (stable) - meta.runId (unique) 2) Save the JSON to: - ...\workshop-miro\_out\miro-ready-YYYYMMDD-HHMMSS.json 3) Execute: - node ...\miro-push.mjs apply <PATH_JSON> 4) Reply with: - frames created: N - stickies created: N - connectors created: N - sessionKey + runId - warnings (if any)

B) CORRECTIONS (when the user wants changes)

  • UNDO (per session): node ...\miro-push.mjs undo <sessionKey>
  • If the user says “redo it better / wrong category / move things”:

- regenerate a corrected JSON with the same sessionKey - run APPLY again (it replaces the previous run)

Note: fine-grained edits (delete/update a single sticky) are a next step if the script supports them. Otherwise, recommended: full regeneration with the same sessionKey (cleaner and usually faster).

Smart layout rules

  • Inside each frame:

- left: inputs/sources - center: processing / API / platforms - right: outputs/UI/external integrations

  • Spacing guideline: x += 420, y += 260
  • If there is a long arrow crossing the whole diagram:

- prefer 2 shorter connectors via an intermediate node (e.g., sticky “API” or “Integration”) if it improves readability

Connector / relationship rules

Create a connector when:

  • you see an arrow/line on the whiteboard
  • or the text implies a flow: "API", "sensoren", "data", "->", "integration"
  • connector label: use the word that describes the flow (e.g., “API”, “Sensoren”, “Data”, “Milestone”)

Default connector shape: "elbowed" (more readable for architecture diagrams).

Anti-overlap rules (clean arrows)

Goal: avoid connectors crossing over stickies/notes.

  • Use default connector shape = "elbowed".
  • Always keep a free “routing lane”:

- Do not place stickies close to frame borders. - Minimum inner frame padding: 160px.

  • If a connector would be long or would cross a cluster:

- create one or more “router nodes” (gray sticky with "." or empty text) placed outside clusters - split the connection into segments: A -> R1 -> R2 -> B

  • For connections between different frames:

- use a router node near the right border of the source frame - and a router node near the left border of the target frame

JSON Output (FRAME-based)

{ "meta": { "title": "string", "source": "photo|notes", "language": "it|de|en", "createdAt": "ISO-8601", "sessionKey": "string (stable)", "runId": "string (unique)" }, "frames": [ { "id": "F1", "title": "string", "x": 0, "y": 0, "w": 1400, "h": 900 } ], "stickies": [ { "id": "S1", "frameId": "F1|null", "text": "string", "color": "light_yellow|light_blue|light_green|light_pink|gray", "x": 0, "y": 0, "unclear": false } ], "connectors": [ { "from": "S1", "to": "S2", "label": "string|null", "shape": "straight|elbowed|curved" } ], "warnings": [ "string" ] }

HARD Containment Detection (mandatory)

A "container" is a large rectangle that encloses other notes and has a title (e.g. "Product A", "Product B").

You MUST do this: 1) Create one FRAME per container rectangle (title = the container title). 2) Assign EVERY inner note to that frame via frameId. 3) Only outer notes (explicitly outside all containers) may have frameId=null.

Containment must be interpreted literally:

  • If an element is visually inside the container boundaries, it belongs to that container.
  • If unsure, assign to the nearest container and add a warning.

Quality checklist (before pushing)

  • sessionKey present and stable
  • no giant “Workshop” frame unless the photo truly shows a single big box
  • every sticky belongs to the correct frame (category)
  • no duplicate stickies with identical text inside the same frame
  • connectors only where they make sense (not between every pair)

平台分布

OpenClaw

85.94%
按下载量换算8,151

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

未展示

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills