Inbox-to-Action Closer
Purpose
Process raw pending-work data from multiple sources, deduplicate and score the items, and present one unified action board. This skill does not fetch data from external APIs. It expects raw source data to be supplied by the caller, by other OpenClaw skills, or by tools that have already retrieved it. All output is draft-only until the user explicitly confirms a write action.
Data Acquisition
This skill does not include API connectors or manage credentials. To use it:
- - Supply raw JSON data from each source (Slack messages, GitHub PRs, calendar events, etc.)
- Use existing OpenClaw tools or installed skills that already connect to these services
- Or pipe output from CLI tools (gh, himalaya, slack-cli, etc.) into the normalisation pipeline
The skill handles everything after data retrieval: normalisation, deduplication, scoring, and rendering.
Supported Source Formats
- 1. Slack — message and thread JSON (sender, channel, timestamp, participants, permalink)
- GitHub — PR, issue, and review request JSON (assignee, title, state, URL)
- Calendar — event JSON (summary, start/end times, attendees, location)
- Notion — page or task JSON (title, status, assignee, due date, URL)
- Trello — card JSON (name, list, members, due date, URL)
- Email — message JSON (from, subject, date, flags, thread references)
Execution Steps
- 1. Receive raw source data from the caller or upstream tools.
- For each source, call the corresponding adapter via
normalize (src/normalize.ts) to convert raw items into the normalised action-item schema defined in src/types.ts. If a source is missing, skip it cleanly. - Pass all normalised items through
dedupe (src/dedupe.ts) to merge cross-source duplicates using conservative confidence-based matching. - Score every item using
score (src/score.ts) to compute transparent urgency rankings. - Generate the final action board using
render (src/render.ts) in both markdown and structured JSON formats. - The orchestration entrypoint is
index (src/index.ts), which coordinates steps 1-5.
Safety Rules
- 1. All output MUST be draft-only by default. NEVER auto-send messages, post comments, close issues, or perform any write action without explicit user confirmation.
- NEVER auto-post to any source system. Generated reply drafts and suggested actions are proposals, not executions.
- NEVER perform destructive actions such as deleting items, archiving threads, or dismissing notifications.
- ALWAYS ask the user for explicit confirmation before executing any write action, including sending replies, posting comments, updating task statuses, or creating new items. This confirmation gate is mandatory and separate from the draft-only default.
- If a source is unavailable, misconfigured, or returns an error, skip it cleanly and continue processing remaining sources. NEVER fail the entire run because one source is unreachable.
- MUST NOT fabricate or hallucinate action items. Only surface items that exist in the source data.
- MUST preserve the original source URL for every action item so the user can verify and act in context.
收件箱到行动清单
目的
处理来自多个来源的原始待处理工作数据,对项目进行去重和评分,并呈现一个统一的操作面板。此技能不从外部API获取数据。它期望原始源数据由调用方、其他OpenClaw技能或已检索数据的工具提供。所有输出默认为草稿,直到用户明确确认写入操作。
数据获取
此技能不包含API连接器或管理凭证。使用方法:
- - 从每个来源提供原始JSON数据(Slack消息、GitHub PR、日历事件等)
- 使用已连接这些服务的现有OpenClaw工具或已安装技能
- 或将CLI工具(gh、himalaya、slack-cli等)的输出导入标准化管道
该技能处理数据检索后的所有环节:标准化、去重、评分和呈现。
支持的源格式
- 1. Slack — 消息和线程JSON(发送者、频道、时间戳、参与者、永久链接)
- GitHub — PR、问题和审查请求JSON(负责人、标题、状态、URL)
- 日历 — 事件JSON(摘要、开始/结束时间、参与者、地点)
- Notion — 页面或任务JSON(标题、状态、负责人、截止日期、URL)
- Trello — 卡片JSON(名称、列表、成员、截止日期、URL)
- 电子邮件 — 消息JSON(发件人、主题、日期、标记、线程引用)
执行步骤
- 1. 从调用方或上游工具接收原始源数据。
- 对每个来源,通过normalize(src/normalize.ts)调用相应的适配器,将原始项目转换为src/types.ts中定义的标准化操作项架构。如果某个来源缺失,则干净地跳过。
- 将所有标准化项目通过dedupe(src/dedupe.ts)进行去重,使用基于置信度的保守匹配合并跨来源重复项。
- 使用score(src/score.ts)对每个项目进行评分,计算透明的紧急程度排名。
- 使用render(src/render.ts)生成最终操作面板,包括Markdown和结构化JSON两种格式。
- 编排入口点为index(src/index.ts),协调步骤1-5。
安全规则
- 1. 默认情况下,所有输出必须仅为草稿。未经用户明确确认,绝不自动发送消息、发表评论、关闭问题或执行任何写入操作。
- 绝不自动发布到任何源系统。生成的回复草稿和建议操作仅为提案,而非执行。
- 绝不执行破坏性操作,如删除项目、归档线程或关闭通知。
- 在执行任何写入操作(包括发送回复、发表评论、更新任务状态或创建新项目)之前,始终要求用户明确确认。此确认关卡是强制性的,且独立于默认的草稿模式。
- 如果某个来源不可用、配置错误或返回错误,则干净地跳过并继续处理其余来源。绝不因一个来源不可达而导致整个运行失败。
- 不得编造或虚构操作项。仅呈现源数据中存在的项目。
- 必须为每个操作项保留原始来源URL,以便用户验证并在上下文中操作。