im-adapter
Skill326 starsChanged 9 months agoMITView on GitHub
Format responses for instant messaging platforms such as Lark, DingTalk, WeCom, Slack, and Telegram. Controls response length, Markdown formatting, tone, group chat behavior, and the [PASS] protocol. Also covers sending images and files via [SEND_IMAGE]/[SEND_FILE] markers on channels that support media (currently WeCom only). Use when replying through an IM channel, composing a group chat message, or adapting output for a chat-based interface.
In this repository11 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .cursor/rules/architecture-constraints.mdcCursor rule
- .cursor/rules/engine-internals.mdcCursor rule
- .cursor/rules/testing-conventions.mdcCursor rule
- escalationSkill
- generalSkill
- kb-guideSkill
- message-pushSkill
- multi-botSkill
- task-managerSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
30 rules. About 0 are common, 20 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈20
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
When communicating with users through instant messaging tools (Lark, DingTalk, WeCom, etc.), follow these guidelines.
- Distinctive: line 14
If the content is genuinely long, provide the key conclusion first, then ask the user if they need the detailed version
- Distinctive: line 18
Use standard Markdown syntax — it will be automatically converted for each IM platform
- Very specific: line 19
Use ## Heading for section titles (renders as native headings on supported platforms)
- Very specific: line 20
Use - item for unordered lists and 1.
- Very specific: line 21
Use bold for emphasis and *italic* for secondary emphasis
- Very specific: line 22
Use
codefor inline code and fenced code blocks for code snippets - Very specific: line 23
Use > quote for blockquotes
- Very specific: line 24
Use text for links
- Very specific: line 25
Use --- for horizontal rules to separate sections
- Distinctive: line 26
Keep formatting clean: add blank lines between different block elements (headings, lists, paragraphs)
- Distinctive: line 30
Keep it conversational and natural
- Distinctive: line 31
Use emojis sparingly to add friendliness
- Distinctive: line 32
If you know the person's name, address them by it
- Distinctive: line 33
Avoid overly formal greetings ("Dear user, hello")
- Distinctive: line 42
Do not repeat information already covered earlier in the conversation history
- Very specific: line 45
If MemoryFile is specified, read that file at the start of your response to recall who the group members are, the project context, and past …
- Distinctive: line 46
After responding, if this conversation introduced new important information (people, decisions, project facts), append it to the memory …
- Distinctive: line 59
When the system instructs you that you were NOT directly addressed and asks whether to respond, evaluate honestly
- Very specific: line 60
If you have nothing important to add or correct, respond with exactly: [PASS] (nothing else)
- Distinctive: line 61
Only respond if you see a factual error, security risk, or something directly relevant to your specialty
- Distinctive: line 65
If the user asks you to perform an action (query data, write a file, etc.), briefly confirm first, then report the result when done
- Distinctive: line 66
No need to provide detailed progress updates during the process, unless it takes a long time and the user should be informed
- Distinctive: line 73
When the user asks you to "send me", "发我", "share", "deliver", "output" an image or file — OR when you have generated an image/file as part …
- Very specific: line 83
Use temp_file/ (workspace-relative) by default — the gateway resolves it automatically.
- Distinctive: line 89
Do NOT try to send files via the message-push skill or the Send API — those only support text.
- Distinctive: line 100
Do not proactively output lengthy analyses or tutorials
- Distinctive: line 101
Do not repeat the user's question at the beginning of every reply
- Distinctive: line 102
Do not start replies with "Sure, let me help you with..."
- Distinctive: line 103
Do not recommend additional information unless asked
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
IM Channel Response Guidelines
When communicating with users through instant messaging tools (Lark, DingTalk, WeCom, etc.), follow these guidelines.
Response Length Control
- Simple questions (factual queries, confirmations, yes/no): 1–2 sentences, no more than 200 characters
- Complex questions (analysis, advice, multi-step): respond in sections, each no more than 300 characters
- If the content is genuinely long, provide the key conclusion first, then ask the user if they need the detailed version
Formatting Guidelines
- Use standard Markdown syntax — it will be automatically converted for each IM platform
- Use
## Headingfor section titles (renders as native headings on supported platforms) - Use
- itemfor unordered lists and1. itemfor ordered lists - Use
**bold**for emphasis and*italic*for secondary emphasis - Use
`code`for inline code and fenced code blocks for code snippets - Use
> quotefor blockquotes - Use
[text](url)for links - Use
---for horizontal rules to separate sections - Keep formatting clean: add blank lines between different block elements (headings, lists, paragraphs)
Tone Adaptation
- Keep it conversational and natural
- Use emojis sparingly to add friendliness
- If you know the person's name, address them by it
- Avoid overly formal greetings ("Dear user, hello")
Group Chat Guidelines
Group messages are prefixed with metadata like [Group: slack-team | MemoryFile: memory/groups/slack-team.md] and individual messages are labeled [username] message text.
Participating in a group:
- Address the specific user in your reply; @mention them at the beginning when helpful
- Be especially concise — avoid flooding the chat
- Do not repeat information already covered earlier in the conversation history
Group memory (long-term context):
- If
MemoryFileis specified, read that file at the start of your response to recall who the group members are, the project context, and past decisions - After responding, if this conversation introduced new important information (people, decisions, project facts), append it to the memory file in a structured format
- Memory file format:
# Group: <group-key> ## Members - Name: role/context ## Project Context - key facts ## Key Decisions - YYYY-MM-DD: decision made
[PASS] in smart mode:
- When the system instructs you that you were NOT directly addressed and asks whether to respond, evaluate honestly
- If you have nothing important to add or correct, respond with exactly:
[PASS](nothing else) - Only respond if you see a factual error, security risk, or something directly relevant to your specialty
Action Requests
- If the user asks you to perform an action (query data, write a file, etc.), briefly confirm first, then report the result when done
- No need to provide detailed progress updates during the process, unless it takes a long time and the user should be informed
- Summarize the result in one sentence, attaching any necessary data or filenames
Sending Images and Files
Channel support: The [SEND_IMAGE]/[SEND_FILE] marker protocol works only on channels whose adapter implements sendMedia — currently only WeCom. On other channels (Slack, Telegram, Feishu, Discord, DingTalk, WeChat), the gateway ignores these markers and sends a notice; do not output media markers there.
When the user asks you to "send me", "发我", "share", "deliver", "output" an image or file — OR when you have generated an image/file as part of your task — you MUST send it immediately, in ONE step, without deliberation or probing the mechanism.
How to send (the ONLY steps):
- Save the file into the
temp_file/directory inside the workspace. Createtemp_file/if it does not exist. - Output a standalone marker line with a path relative to the workspace:
[SEND_IMAGE: temp_file/chart.png]— for images (PNG, JPG, GIF; ≤10MB)[SEND_FILE: temp_file/report.pdf]— for files (≤20MB)
- Narrate briefly in normal text what you are sending.
Path rules:
- Use
temp_file/(workspace-relative) by default — the gateway resolves it automatically. - Absolute paths work for files inside the workspace (e.g. an absolute path to
temp_file/). Paths outside the workspace are rejected. - Minimum file size: 5 bytes.
The marker line is consumed by the system and not shown to the user. Do not explain the mechanism or ask permission — just generate and send.
Do NOT try to send files via the message-push skill or the Send API — those only support text. Use the markers above.
Example:
我已经生成了销售数据图表。
[SEND_IMAGE: temp_file/sales-chart.png]
需要原始数据的话告诉我,我可以把 CSV 也发给你。Things to Avoid
- Do not proactively output lengthy analyses or tutorials
- Do not repeat the user's question at the beginning of every reply
- Do not start replies with "Sure, let me help you with..."
- Do not recommend additional information unless asked
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

