agentleFS
0xranx0xranx/golembot/skills/im-adapter/SKILL.md

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.

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
  1. Distinctive:

    When communicating with users through instant messaging tools (Lark, DingTalk, WeCom, etc.), follow these guidelines.

    line 8
  2. Distinctive:

    If the content is genuinely long, provide the key conclusion first, then ask the user if they need the detailed version

    line 14
  3. Distinctive:

    Use standard Markdown syntax — it will be automatically converted for each IM platform

    line 18
  4. Very specific:

    Use ## Heading for section titles (renders as native headings on supported platforms)

    line 19
  5. Very specific:

    Use - item for unordered lists and 1.

    line 20
  6. Very specific:

    Use bold for emphasis and *italic* for secondary emphasis

    line 21
  7. Very specific:

    Use code for inline code and fenced code blocks for code snippets

    line 22
  8. Very specific:

    Use > quote for blockquotes

    line 23
  9. Very specific:

    Use text for links

    line 24
  10. Very specific:

    Use --- for horizontal rules to separate sections

    line 25
  11. Distinctive:

    Keep formatting clean: add blank lines between different block elements (headings, lists, paragraphs)

    line 26
  12. Distinctive:

    Keep it conversational and natural

    line 30
  13. Distinctive:

    Use emojis sparingly to add friendliness

    line 31
  14. Distinctive:

    If you know the person's name, address them by it

    line 32
  15. Distinctive:

    Avoid overly formal greetings ("Dear user, hello")

    line 33
  16. Distinctive:

    Do not repeat information already covered earlier in the conversation history

    line 42
  17. Very specific:

    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 …

    line 45
  18. Distinctive:

    After responding, if this conversation introduced new important information (people, decisions, project facts), append it to the memory …

    line 46
  19. Distinctive:

    When the system instructs you that you were NOT directly addressed and asks whether to respond, evaluate honestly

    line 59
  20. Very specific:

    If you have nothing important to add or correct, respond with exactly: [PASS] (nothing else)

    line 60
  21. Distinctive:

    Only respond if you see a factual error, security risk, or something directly relevant to your specialty

    line 61
  22. Distinctive:

    If the user asks you to perform an action (query data, write a file, etc.), briefly confirm first, then report the result when done

    line 65
  23. Distinctive:

    No need to provide detailed progress updates during the process, unless it takes a long time and the user should be informed

    line 66
  24. Distinctive:

    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 …

    line 73
  25. Very specific:

    Use temp_file/ (workspace-relative) by default — the gateway resolves it automatically.

    line 83
  26. Distinctive:

    Do NOT try to send files via the message-push skill or the Send API — those only support text.

    line 89
  27. Distinctive:

    Do not proactively output lengthy analyses or tutorials

    line 100
  28. Distinctive:

    Do not repeat the user's question at the beginning of every reply

    line 101
  29. Distinctive:

    Do not start replies with "Sure, let me help you with..."

    line 102
  30. Distinctive:

    Do not recommend additional information unless asked

    line 103

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 ## Heading for section titles (renders as native headings on supported platforms)
  • Use - item for unordered lists and 1. item for ordered lists
  • Use **bold** for emphasis and *italic* for secondary emphasis
  • Use `code` for inline code and fenced code blocks for code snippets
  • Use > quote for 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 MemoryFile is 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):

  1. Save the file into the temp_file/ directory inside the workspace. Create temp_file/ if it does not exist.
  2. 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)
  3. 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

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.