WeChat Channel plugin for Claude Code — bridge WeChat messages via official ilink API
Four tools with Chinese descriptions and basic schemas. All tools have input schemas with required parameters and descriptions, but descriptions are minimal (10-80 chars, well below the 194-char baseline). Tool names follow verb_noun pattern (wechat_*) but lack clarity on distinctions. No output schemas documented. No error handling guidance. Parameters lack format constraints, ranges, or validation hints. No idempotency markers or confirmation patterns for destructive operations (send_*, reload_*). Schemas present but sparse, missing examples, constraints, and chaining IDs.
重新加载 heartbeat 配置并重新生成今日时间表。用于手动触发配置更新。
发送文本回复到微信用户
发送文件、图片或视频到微信。支持本地路径和 HTTPS URL(URL 会自动下载后发送,不需要先手动下载)。
通过 TTS 合成语音并以 mp3 文件发送到微信。需要自备 TTS 脚本。
Minimal descriptions (10 - 80 chars vs. 194-char baseline). LLMs cannot determine when to select wechat_send_voice vs wechat_send_file, or why wechat_reload_heartbeat exists.
No output schemas documented. Callers cannot plan downstream tool calls or extract required fields (e.g., does wechat_reply return a message_id for later reference?).
No error handling guidance. If sender_id is invalid or file_path_or_url is unreachable, what should the LLM do? Retry? Ask user? No recovery path documented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Destructive operations (send_*, reload_*) lack confirmation or dry-run patterns. Agents can accidentally spam users or corrupt state without safeguards.
sender_id parameter lacks format validation hint. Description says '[email protected] format' but no regex, enum, or constraint in schema. LLMs may pass invalid IDs.