用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Tzeusy/butlers --skill butler-notifications命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | butler-notifications |
| description | Usage patterns for the notify() tool — required parameters, intents, and examples |
| version | 1.1.0 |
Call notify() to send responses back to the user via the channel they messaged you from.
REQUIRED PARAMETERS — the tool call WILL FAIL without these:
message (REQUIRED for reply/send intents): Your response text. This is the most important parameter — never omit it.channel (REQUIRED): Extract from request_context.source_channel (e.g., "telegram_bot")request_context (REQUIRED): Pass through the exact REQUEST CONTEXT object from your context above. Do NOT rename this to trace_context or anything else. Must be a dict/object value, not a JSON string and not a quoted placeholder.
request_context MUST include: request_id, source_channel, source_endpoint_identity, source_sender_identity.request_context.source_thread_identity is also required.DO NOT REPLY to telegram_user_client ingestions.
If request_context.source_channel is "telegram_user_client", you MUST NOT call notify() with intent "reply" or "send". These are passively captured messages — the user did not message a butler, so replying would be unexpected and incorrect. You may still process/store the content, but do not send any response back. Only telegram_bot (and other direct-message channels) should trigger replies.
Optional parameters:
intent: One of "send", "reply", "react"
emoji: Required when intent is "react" (e.g., "✅", "👍", "❤️")If an outbound tool is advertised with _why, _blast_radius, _reversibility,
and _evidence, it is approval-gated. For a target that is not the verified
owner (or cannot be resolved as the owner), include an honest decision dossier:
_why: a concrete, human-readable reason for this delivery._blast_radius: none, self, contact, or external when known._reversibility: reversible, compensable, or irreversible when known._evidence: zero or more exact objects with type (fact, entity, url,
or text), ref, and note. Never pass free-form strings as evidence.The owner-role path is exempt. Do not add these kwargs to a tool whose advertised schema does not include them. If a gated call returns a retryable dossier error, correct the named field and retry; do not retry without the required rationale.
email_send_message(
to="friend@example.com",
subject="Requested update",
body="Here is the update you asked for.",
_why="The recipient explicitly requested this update in the linked thread.",
_blast_radius="contact",
_reversibility="compensable",
_evidence=[{
"type": "url",
"ref": "https://example.test/conversation/42",
"note": "The recipient's request",
}],
)
Examples:
ctx = {
"request_id": "018f6f4e-5b3b-7b2d-9c2f-7b7b6b6b6b6b",
"source_channel": "telegram_bot",
"source_endpoint_identity": "switchboard",
"source_sender_identity": "general",
"source_thread_identity": "12345",
}
# React only
notify(
channel="telegram",
intent="react",
emoji="✅",
request_context=ctx
)
# Reply with message
notify(
channel="telegram",
message="Done! Here's what I found...",
intent="reply",
request_context=ctx
)
# React + reply (call notify twice)
# First react
notify(
channel="telegram",
intent="react",
emoji="✅",
request_context=ctx
)
# Then reply
notify(
channel="telegram",
message="Saved. You now have 12 entries this month.",
intent="reply",
request_context=ctx
)
Guide for discovering, analyzing, and pruning the Butlers test suite. Use when working on test condensation beads (Phase 1 epic bu-rhztl and Phase 2 epic bu-hg8rl both CLOSED; Phase 3 maintenance cycle underway 2026-06-21), assessing test bloat, identifying pruning targets, or rewriting tests to be contract-driven. Triggers on test reduction, test pruning, test consolidation, or condensation tasks for this project. Also use when a fresh session needs to assess test health, create new condensation beads, or resume in-progress condensation work.
Generate a weekly home energy digest with trends, top consumers, and recommendations.
Orchestrate a UX redesign of a Butlers dashboard page (or sub-page set) using /project-direction as the spec+beads engine, with redesign-specific upfront phases for vision capture, asset ingestion, impact analysis, backend-contract derivation, LLM-cost feasibility, manifesto/identity preservation, and a th-design design-bar audit. The binding design language is the Dispatch spec (openspec/specs/dashboard-design-language/spec.md); bundles live under pr/overview/ and resolve via references/bundle-registry.md. Use when asked to redesign a dashboard page, with or without a Claude Design bundle. Triggers on "redesign the X page", "plan the Y redesign", "integrate the redesign bundle", "what would it take to ship the SLUG redesign", "design language integration for AREA".
基于 SOC 职业分类