dingtalk
DingTalk channel skill. When $dingtalk appears in message context, return your response as text and the framework will deliver it. For programmatic sends (e.g. progress updates), use dingtalk_send.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-11
- Stars
- ★ 19
- Forks
- 23
01 前言 Front Matter
- name
- dingtalk
- metadata
- { "channel": "dingtalk" }
- description
- DingTalk channel skill. When $dingtalk appears in message context, return your response as text and the framework will deliver it. For programmatic sends (e.g. progress updates), use dingtalk_send.
02 资源文件 13
- 脚本__init__.py38 B
- 参考文档references/artifact-contracts.md8.8 KB
- 脚本scripts/__init__.py30 B
- 脚本scripts/animation_style.cjs1.7 KB
- 脚本scripts/dingtalk_send.py3.5 KB
- 脚本scripts/export_final_video.cjs7.1 KB
- 脚本scripts/serve_range_preview.cjs3.6 KB
- 脚本scripts/user_config.cjs2.3 KB
- 脚本scripts/write_render_mode.cjs3.9 KB
- 参考文档templates/storyboard-audit.html12.6 KB
- 参考文档templates/timeline-preview.html40.0 KB
- 参考文档动画/styles.json343 B
- 参考文档用户配置/default.json58 B
03 SKILL.md 正文
DingTalk Skill
When the message context contains $dingtalk and chat_id, you are in a DingTalk conversation.
Primary: Return Your Response Directly
To reply to a DingTalk user, simply return your response as text. The framework will automatically deliver it to the correct conversation. No script call is required.
- The
chat_idfrom the message context is used automatically. - Just write your answer and end the turn. The user will receive it.
Example: User asks "What is 2+2?" → You return "4" → The framework sends "4" to DingTalk.
When to Use the Script
Use dingtalk_send only when you need to send from within a tool (e.g. a progress update during a long-running task, or a status message triggered by another tool).
uv run ./scripts/dingtalk_send.py --chat-id <CHAT_ID> --content "<TEXT>"
Get chat_id from the message context JSON (the chat_id field). For group chats it is group:<openConversationId>, for 1:1 it is the user's staff_id.
Context Fields
When $dingtalk is in scope, the message context typically includes:
channel:$dingtalk— identifies this as a DingTalk conversationchat_id: target for sending (e.g.204818006723348842for 1:1, orgroup:xxxfor groups)
Response Policy
- Direct answers: Return your response. The framework delivers it.
- Long-running tasks: Return a short acknowledgment first (e.g. "Working on it..."), then continue. When done, return the final result.
- Errors: Return an error message so the user sees it immediately.
Script Reference (for programmatic use)
uv run ./scripts/dingtalk_send.py \
--chat-id <CHAT_ID> \
--content "<TEXT>" \
[--title "<TITLE>"]
--chat-id,-c: required--content,-m: required--title,-t: optional, default "Bub Reply"
04 同仓库更多 Skills
tape-dataset-share-review
Export, filter, scan, and review shareable tape datasets produced by `tape-dataset-opendal`. Use when Codex needs to prepare Bub-generated tape data for public sharing, Hugging Face upload, external research handoff, or any review-sensitive export that must run CEL filtering, TruffleHog secret scanning on the staged artifact, and a final conservative LLM audit.
wecom
WeCom channel skill. Return normal replies directly. For proactive sends such as scheduled jobs, use the packaged wecom_send.py script.
slack
Slack skill for proactive outbound Slack communication: posting a message to a channel or thread, editing an existing bot message, or adding an emoji reaction. Use when the bot needs to: (1) post a message somewhere OTHER than the current reply (e.g. a different channel, or a side note in the same thread), (2) edit a previously-sent bot message (e.g. a progress placeholder), or (3) acknowledge a message with a non-verbal emoji reaction. NOTE: normal replies to the current message are posted AUTOMATICALLY by the runtime — just answer as text. Reach for this skill only for proactive / out-of-band sends and message edits.
QQ C2C and group channel skill. Use when Bub is handling a QQ conversation. In the default tool reply mode, reply by calling qq.send (text or media) and stay silent by not calling it. In direct reply mode, return the reply text; output exactly <no_reply/> to stay silent.
feishu
Use this skill to respond to messages from feishu channel.
discord
Discord Bot integration for sending messages, managing channels, and responding to events. Use when Bub needs to: (1) Send messages to Discord channels, (2) Create Discord bot with discord.py, (3) Handle Discord events (on_message, on_member_join, etc.), (4) Work with Discord webhooks, or (5) Any Discord-related functionality.