-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathskill.md.template
More file actions
90 lines (64 loc) · 2.95 KB
/
Copy pathskill.md.template
File metadata and controls
90 lines (64 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# [Skill Name]
> Replace bracketed placeholders with your skill's specifics.
> Delete this instruction block before deploying.
>
> This file goes in the runtime's commands directory (`.claude/commands/` for Claude Code) and becomes an invocable command.
> The filename (without `.md`) becomes the command name — e.g., `inbox-review.md` → `/inbox-review`.
>
> Skills can be triggered by: user request, scheduled task, or webhook event.
> For scheduled/webhook triggers, Canopy infra invokes the skill by sending
> `/[skill-name]` as the message to the runtime.
---
## Trigger
**When:** [Describe when this skill activates]
Examples:
- User asks: "[example user message that triggers this skill]"
- Scheduled: `[cron expression]` (e.g., `0 8 * * *` for 8am daily)
- Webhook: [event type] from [source]
---
## Steps
When triggered, follow these steps in order:
0. **Check memory** — Before acting, check your memory for relevant context
- Look for entity profiles, past patterns, and user preferences related to this task
- Use any relevant context to inform the following steps
1. **[Step name]** — [What to do]
- Tool: `mcp__[server]__[operation]`
- Parameters: [what to pass]
- Expected result: [what you'll get back]
2. **[Step name]** — [What to do]
- Tool: `mcp__[server]__[operation]`
- Parameters: [what to pass]
- Expected result: [what you'll get back]
3. **[Step name]** — [Synthesize / format / decide]
- [How to combine the results from previous steps]
<!-- EXAMPLE (delete this block after reading):
Here's what filled-in steps look like for an inbox review skill:
1. **Fetch unread messages** — Read the user's unread inbox
- Tool: `mcp__messaging__read_messages`
- Parameters: channels="all", status="unread", limit=50
- Expected result: List of unread messages with sender, channel, timestamp, preview
2. **Prioritize** — Score each message by urgency
- Check if sender is in the user's entity profiles (known contacts rank higher)
- Check if the message contains questions directed at the user
- Check if the message is in a high-priority channel
3. **Summarize** — Present a prioritized inbox summary
- Group by priority (Action needed / FYI / Low priority)
- Include sender name, channel, and a one-line summary per message
END EXAMPLE -->
---
## Output Format
Present the result as:
```
[Describe the expected output format — e.g., a summary with headers,
a structured list, a decision with reasoning, etc.]
```
---
## Rules
- [Constraint 1 — e.g., "Only include items from the last 24 hours"]
- [Constraint 2 — e.g., "Prioritize items that require user action"]
- [Constraint 3 — e.g., "If no relevant data found, say so briefly instead of generating filler"]
---
## Memory
After executing this skill:
- [What to write to memory, if anything — e.g., "Update entity profiles if you learned new information about contacts"]
- [What NOT to write — e.g., "Don't save the raw data, only the summary"]