From ac0d23781f8bf86f543d5669f2d9f97537c86f90 Mon Sep 17 00:00:00 2001 From: qwenpaw-skills Date: Sun, 9 Aug 2026 00:35:59 +0000 Subject: [PATCH] Publish channel_message via gitea-publish skill --- SKILL.md | 250 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 SKILL.md diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..dc4445f --- /dev/null +++ b/SKILL.md @@ -0,0 +1,250 @@ +--- +name: channel_message +description: Use this skill to proactively send a one-way message to a user/session/channel, usually only when the user explicitly asks to send to a channel/session or when proactive notification is needed. First query sessions with qwenpaw chats list, then push with qwenpaw channels send. +metadata: + builtin_skill_version: "1.3" + qwenpaw: + emoji: "📤" +--- + +# Channel Message + +## When to Use + +Use this skill only when the **user explicitly asks you to send a message to a channel/session**, or when you need to **proactively push a notification** (e.g., task completion, reminders, alerts). +This is a **one-way send** — **no reply is returned**. + +### Should Use +- The user explicitly asks to send to a specific channel/session +- Proactively notifying the user after a task completes +- Scheduled reminders, alerts, or status updates +- Pushing async results back to an existing session +- The user explicitly says "notify me when done" + +### Should Not Use +- If you are simply replying in the current session, **do not use `qwenpaw channels send`** +- You need a two-way conversation and expect an immediate reply +- You do not know which target session to use +- You are guessing `target-user` or `target-session` + +## Decision Rules + +1. **Only use this when the user explicitly asks to send to a channel/session, or proactive notification is needed** +2. **You must query sessions before sending** +3. **Do not guess `target-user` or `target-session`** +4. **If multiple sessions are found, prefer the most recently active one** +5. **`channel send` is a one-way push — no user reply is returned** + +--- + +## Most Common Commands + +### 1) Query available sessions first + +```bash +qwenpaw chats list --agent-id --channel +``` + +You can also filter by user: + +```bash +qwenpaw chats list --agent-id --user-id +``` + +### 2) Send a message + +```bash +qwenpaw channels send \ + --agent-id \ + --channel \ + --target-user \ + --target-session \ + --text "..." +``` + +--- + +## Minimal Workflow + +``` +1. Determine: is the user explicitly requesting a send, or is proactive notification needed? +2. qwenpaw chats list — query the target session +3. Extract user_id and session_id from the results +4. If multiple sessions exist, prefer the most recently active one +5. qwenpaw channels send — send the message +6. Done (no reply) +``` + +--- + +## Key Rules + +### Required Parameters + +`qwenpaw channels send` requires all of the following: +- `--agent-id` +- `--channel` +- `--target-user` +- `--target-session` +- `--text` + +### Must Query First + +Before sending, run: + +```bash +qwenpaw chats list --agent-id --channel +``` + +Extract from the results: +- `user_id` → `--target-user` +- `session_id` → `--target-session` + +If there are multiple candidate sessions, prefer the one with the most recent `updated_at`. + +### One-Way Push + +`qwenpaw channels send` only sends — it does not wait for a reply. + +--- + +## Brief Examples + +### User explicitly asks to send to a channel + +```bash +qwenpaw chats list --agent-id notify_bot --channel feishu + +qwenpaw channels send \ + --agent-id notify_bot \ + --channel feishu \ + --target-user manager_id \ + --target-session manager_session \ + --text "Weekly report is ready, please review" +``` + +### Task completion notification + +```bash +qwenpaw chats list --agent-id task_bot --channel console + +qwenpaw channels send \ + --agent-id task_bot \ + --channel console \ + --target-user alice \ + --target-session alice_console_001 \ + --text "Task completed" +``` + +### Async result push-back + +```bash +qwenpaw chats list --agent-id analyst_bot --user-id alice + +qwenpaw channels send \ + --agent-id analyst_bot \ + --channel console \ + --target-user alice \ + --target-session alice_console_001 \ + --text "Data analysis is complete. Results saved to report.pdf" +``` + +--- + +## Common Mistakes + +### Mistake 1: Using channel send for a normal reply + +If you are replying to the user in the current session, do not use `qwenpaw channels send`. + +### Mistake 2: Sending without querying sessions first + +Do not guess `target-user` or `target-session`. First run: + +```bash +qwenpaw chats list --agent-id --channel +``` + +### Mistake 3: Missing required parameters + +All five are required: `--agent-id`, `--channel`, `--target-user`, `--target-session`, `--text`. + +### Mistake 4: Expecting a reply from send + +There is no reply. It only pushes the message. + +### Mistake 5: Picking an arbitrary session when the user has multiple + +Prefer the most recently active session. + +--- + +## Optional Commands + +### List all sessions + +```bash +qwenpaw chats list --agent-id +``` + +### List sessions for a specific user + +```bash +qwenpaw chats list --agent-id --user-id +``` + +### List available channels + +```bash +qwenpaw channels list --agent-id +``` + +--- + +## Difference from Agent Chat + +- **qwenpaw agents chat**: sends to another agent, two-way, returns a reply +- **qwenpaw channels send**: sends to a user/session/channel, one-way, no reply + +**Selection principle**: +- Need to collaborate with another agent → `qwenpaw agents chat` +- Need to proactively push a message to a user → `qwenpaw channels send` + +--- + +## Full Parameter Reference + +### qwenpaw chats list + +**Required parameters**: +- `--agent-id`: Agent ID + +**Optional parameters**: +- `--channel`: filter by channel +- `--user-id`: filter by user +- `--base-url`: override API address + +### qwenpaw channels send + +**Required parameters** (5): +- `--agent-id`: sender agent ID +- `--channel`: target channel (console/dingtalk/feishu/discord/imessage/qq/...) +- `--target-user`: target user ID (obtained from `qwenpaw chats list`) +- `--target-session`: target session ID (obtained from `qwenpaw chats list`) +- `--text`: message content + +**Optional parameters**: +- `--base-url`: override API address + +--- + +## Help + +Use `-h` at any time to view detailed help: + +```bash +qwenpaw channels -h +qwenpaw channels send -h +qwenpaw chats -h +qwenpaw chats list -h +```