daemora 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +663 -0
- package/README.md +69 -19
- package/SOUL.md +25 -24
- package/daemora-ui/README.md +11 -0
- package/package.json +12 -2
- package/skills/api-development.md +35 -0
- package/skills/artifacts-builder/SKILL.md +74 -0
- package/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/brand-guidelines.md +73 -0
- package/skills/browser.md +77 -0
- package/skills/changelog-generator.md +104 -0
- package/skills/coding.md +26 -10
- package/skills/content-research-writer.md +538 -0
- package/skills/data-analysis.md +27 -0
- package/skills/debugging.md +33 -0
- package/skills/devops.md +37 -0
- package/skills/document-docx.md +197 -0
- package/skills/document-pdf.md +294 -0
- package/skills/document-pptx.md +484 -0
- package/skills/document-xlsx.md +289 -0
- package/skills/domain-name-brainstormer.md +212 -0
- package/skills/file-organizer.md +433 -0
- package/skills/frontend-design.md +42 -0
- package/skills/image-enhancer.md +99 -0
- package/skills/invoice-organizer.md +446 -0
- package/skills/lead-research-assistant.md +199 -0
- package/skills/mcp-builder/SKILL.md +328 -0
- package/skills/mcp-builder/reference/evaluation.md +602 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/meeting-insights-analyzer.md +327 -0
- package/skills/orchestration.md +93 -0
- package/skills/raffle-winner-picker.md +159 -0
- package/skills/slack-gif-creator/SKILL.md +646 -0
- package/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/skills/slack-gif-creator/core/easing.py +230 -0
- package/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/skills/slack-gif-creator/core/typography.py +357 -0
- package/skills/slack-gif-creator/core/validators.py +264 -0
- package/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/skills/slack-gif-creator/requirements.txt +4 -0
- package/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/skills/slack-gif-creator/templates/explode.py +331 -0
- package/skills/slack-gif-creator/templates/fade.py +329 -0
- package/skills/slack-gif-creator/templates/flip.py +291 -0
- package/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/skills/slack-gif-creator/templates/morph.py +329 -0
- package/skills/slack-gif-creator/templates/move.py +293 -0
- package/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/skills/slack-gif-creator/templates/shake.py +127 -0
- package/skills/slack-gif-creator/templates/slide.py +291 -0
- package/skills/slack-gif-creator/templates/spin.py +269 -0
- package/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/skills/system-admin.md +44 -0
- package/skills/tailored-resume-generator.md +345 -0
- package/skills/theme-factory/SKILL.md +59 -0
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/theme-factory/themes/desert-rose.md +19 -0
- package/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/theme-factory/themes/golden-hour.md +19 -0
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/video-downloader.md +99 -0
- package/skills/web-development.md +32 -0
- package/skills/webapp-testing/SKILL.md +96 -0
- package/skills/webapp-testing/examples/console_logging.py +35 -0
- package/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/webapp-testing/scripts/with_server.py +106 -0
- package/src/agents/SubAgentManager.js +57 -12
- package/src/api/openai-compat.js +212 -0
- package/src/channels/TelegramChannel.js +5 -2
- package/src/channels/index.js +7 -10
- package/src/cli.js +129 -50
- package/src/config/agentProfiles.js +1 -0
- package/src/config/default.js +10 -0
- package/src/config/models.js +317 -71
- package/src/config/permissions.js +12 -0
- package/src/core/AgentLoop.js +70 -50
- package/src/core/Compaction.js +84 -2
- package/src/core/MessageQueue.js +90 -0
- package/src/core/Task.js +13 -0
- package/src/core/TaskQueue.js +1 -1
- package/src/core/TaskRunner.js +80 -5
- package/src/index.js +328 -48
- package/src/mcp/MCPAgentRunner.js +48 -11
- package/src/mcp/MCPManager.js +40 -2
- package/src/models/ModelRouter.js +67 -1
- package/src/safety/DockerSandbox.js +212 -0
- package/src/safety/ExecApproval.js +118 -0
- package/src/scheduler/Heartbeat.js +56 -21
- package/src/services/cleanup.js +106 -0
- package/src/services/sessions.js +39 -1
- package/src/setup/wizard.js +75 -4
- package/src/skills/SkillLoader.js +104 -17
- package/src/storage/TaskStore.js +19 -1
- package/src/systemPrompt.js +171 -328
- package/src/tools/browserAutomation.js +615 -104
- package/src/tools/executeCommand.js +19 -1
- package/src/tools/index.js +6 -0
- package/src/tools/manageAgents.js +55 -4
- package/src/tools/replyWithFile.js +62 -0
- package/src/tools/screenCapture.js +12 -1
- package/src/tools/taskManager.js +164 -0
- package/src/tools/useMCP.js +3 -1
- package/src/utils/Embeddings.js +157 -10
- package/src/webhooks/WebhookHandler.js +107 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meeting-insights-analyzer
|
|
3
|
+
description: Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Meeting Insights Analyzer
|
|
7
|
+
|
|
8
|
+
This skill transforms your meeting transcripts into actionable insights about your communication patterns, helping you become a more effective communicator and leader.
|
|
9
|
+
|
|
10
|
+
## When to Use This Skill
|
|
11
|
+
|
|
12
|
+
- Analyzing your communication patterns across multiple meetings
|
|
13
|
+
- Getting feedback on your leadership and facilitation style
|
|
14
|
+
- Identifying when you avoid difficult conversations
|
|
15
|
+
- Understanding your speaking habits and filler words
|
|
16
|
+
- Tracking improvement in communication skills over time
|
|
17
|
+
- Preparing for performance reviews with concrete examples
|
|
18
|
+
- Coaching team members on their communication style
|
|
19
|
+
|
|
20
|
+
## What This Skill Does
|
|
21
|
+
|
|
22
|
+
1. **Pattern Recognition**: Identifies recurring behaviors across meetings like:
|
|
23
|
+
- Conflict avoidance or indirect communication
|
|
24
|
+
- Speaking ratios and turn-taking
|
|
25
|
+
- Question-asking vs. statement-making patterns
|
|
26
|
+
- Active listening indicators
|
|
27
|
+
- Decision-making approaches
|
|
28
|
+
|
|
29
|
+
2. **Communication Analysis**: Evaluates communication effectiveness:
|
|
30
|
+
- Clarity and directness
|
|
31
|
+
- Use of filler words and hedging language
|
|
32
|
+
- Tone and sentiment patterns
|
|
33
|
+
- Meeting control and facilitation
|
|
34
|
+
|
|
35
|
+
3. **Actionable Feedback**: Provides specific, timestamped examples with:
|
|
36
|
+
- What happened
|
|
37
|
+
- Why it matters
|
|
38
|
+
- How to improve
|
|
39
|
+
|
|
40
|
+
4. **Trend Tracking**: Compares patterns over time when analyzing multiple meetings
|
|
41
|
+
|
|
42
|
+
## How to Use
|
|
43
|
+
|
|
44
|
+
### Basic Setup
|
|
45
|
+
|
|
46
|
+
1. Download your meeting transcripts to a folder (e.g., `~/meetings/`)
|
|
47
|
+
2. Navigate to that folder in Claude Code
|
|
48
|
+
3. Ask for the analysis you want
|
|
49
|
+
|
|
50
|
+
### Quick Start Examples
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Analyze all meetings in this folder and tell me when I avoided conflict.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Look at my meetings from the past month and identify my communication patterns.
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
Compare my facilitation style between these two meeting folders.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Advanced Analysis
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Analyze all transcripts in this folder and:
|
|
68
|
+
1. Identify when I interrupted others
|
|
69
|
+
2. Calculate my speaking ratio
|
|
70
|
+
3. Find moments I avoided giving direct feedback
|
|
71
|
+
4. Track my use of filler words
|
|
72
|
+
5. Show examples of good active listening
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Instructions
|
|
76
|
+
|
|
77
|
+
When a user requests meeting analysis:
|
|
78
|
+
|
|
79
|
+
1. **Discover Available Data**
|
|
80
|
+
- Scan the folder for transcript files (.txt, .md, .vtt, .srt, .docx)
|
|
81
|
+
- Check if files contain speaker labels and timestamps
|
|
82
|
+
- Confirm the date range of meetings
|
|
83
|
+
- Identify the user's name/identifier in transcripts
|
|
84
|
+
|
|
85
|
+
2. **Clarify Analysis Goals**
|
|
86
|
+
|
|
87
|
+
If not specified, ask what they want to learn:
|
|
88
|
+
- Specific behaviors (conflict avoidance, interruptions, filler words)
|
|
89
|
+
- Communication effectiveness (clarity, directness, listening)
|
|
90
|
+
- Meeting facilitation skills
|
|
91
|
+
- Speaking patterns and ratios
|
|
92
|
+
- Growth areas for improvement
|
|
93
|
+
|
|
94
|
+
3. **Analyze Patterns**
|
|
95
|
+
|
|
96
|
+
For each requested insight:
|
|
97
|
+
|
|
98
|
+
**Conflict Avoidance**:
|
|
99
|
+
- Look for hedging language ("maybe", "kind of", "I think")
|
|
100
|
+
- Indirect phrasing instead of direct requests
|
|
101
|
+
- Changing subject when tension arises
|
|
102
|
+
- Agreeing without commitment ("yeah, but...")
|
|
103
|
+
- Not addressing obvious problems
|
|
104
|
+
|
|
105
|
+
**Speaking Ratios**:
|
|
106
|
+
- Calculate percentage of meeting spent speaking
|
|
107
|
+
- Count interruptions (by and of the user)
|
|
108
|
+
- Measure average speaking turn length
|
|
109
|
+
- Track question vs. statement ratios
|
|
110
|
+
|
|
111
|
+
**Filler Words**:
|
|
112
|
+
- Count "um", "uh", "like", "you know", "actually", etc.
|
|
113
|
+
- Note frequency per minute or per speaking turn
|
|
114
|
+
- Identify situations where they increase (nervous, uncertain)
|
|
115
|
+
|
|
116
|
+
**Active Listening**:
|
|
117
|
+
- Questions that reference others' previous points
|
|
118
|
+
- Paraphrasing or summarizing others' ideas
|
|
119
|
+
- Building on others' contributions
|
|
120
|
+
- Asking clarifying questions
|
|
121
|
+
|
|
122
|
+
**Leadership & Facilitation**:
|
|
123
|
+
- Decision-making approach (directive vs. collaborative)
|
|
124
|
+
- How disagreements are handled
|
|
125
|
+
- Inclusion of quieter participants
|
|
126
|
+
- Time management and agenda control
|
|
127
|
+
- Follow-up and action item clarity
|
|
128
|
+
|
|
129
|
+
4. **Provide Specific Examples**
|
|
130
|
+
|
|
131
|
+
For each pattern found, include:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
### [Pattern Name]
|
|
135
|
+
|
|
136
|
+
**Finding**: [One-sentence summary of the pattern]
|
|
137
|
+
|
|
138
|
+
**Frequency**: [X times across Y meetings]
|
|
139
|
+
|
|
140
|
+
**Examples**:
|
|
141
|
+
|
|
142
|
+
1. **[Meeting Name/Date]** - [Timestamp]
|
|
143
|
+
|
|
144
|
+
**What Happened**:
|
|
145
|
+
> [Actual quote from transcript]
|
|
146
|
+
|
|
147
|
+
**Why This Matters**:
|
|
148
|
+
[Explanation of the impact or missed opportunity]
|
|
149
|
+
|
|
150
|
+
**Better Approach**:
|
|
151
|
+
[Specific alternative phrasing or behavior]
|
|
152
|
+
|
|
153
|
+
[Repeat for 2-3 strongest examples]
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
5. **Synthesize Insights**
|
|
157
|
+
|
|
158
|
+
After analyzing all patterns, provide:
|
|
159
|
+
|
|
160
|
+
```markdown
|
|
161
|
+
# Meeting Insights Summary
|
|
162
|
+
|
|
163
|
+
**Analysis Period**: [Date range]
|
|
164
|
+
**Meetings Analyzed**: [X meetings]
|
|
165
|
+
**Total Duration**: [X hours]
|
|
166
|
+
|
|
167
|
+
## Key Patterns Identified
|
|
168
|
+
|
|
169
|
+
### 1. [Primary Pattern]
|
|
170
|
+
- **Observed**: [What you saw]
|
|
171
|
+
- **Impact**: [Why it matters]
|
|
172
|
+
- **Recommendation**: [How to improve]
|
|
173
|
+
|
|
174
|
+
### 2. [Second Pattern]
|
|
175
|
+
[Same structure]
|
|
176
|
+
|
|
177
|
+
## Communication Strengths
|
|
178
|
+
|
|
179
|
+
1. [Strength 1 with example]
|
|
180
|
+
2. [Strength 2 with example]
|
|
181
|
+
3. [Strength 3 with example]
|
|
182
|
+
|
|
183
|
+
## Growth Opportunities
|
|
184
|
+
|
|
185
|
+
1. **[Area 1]**: [Specific, actionable advice]
|
|
186
|
+
2. **[Area 2]**: [Specific, actionable advice]
|
|
187
|
+
3. **[Area 3]**: [Specific, actionable advice]
|
|
188
|
+
|
|
189
|
+
## Speaking Statistics
|
|
190
|
+
|
|
191
|
+
- Average speaking time: [X% of meeting]
|
|
192
|
+
- Questions asked: [X per meeting average]
|
|
193
|
+
- Filler words: [X per minute]
|
|
194
|
+
- Interruptions: [X given / Y received per meeting]
|
|
195
|
+
|
|
196
|
+
## Next Steps
|
|
197
|
+
|
|
198
|
+
[3-5 concrete actions to improve communication]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
6. **Offer Follow-Up Options**
|
|
202
|
+
- Track these same metrics in future meetings
|
|
203
|
+
- Deep dive into specific meetings or patterns
|
|
204
|
+
- Compare to industry benchmarks
|
|
205
|
+
- Create a personal communication development plan
|
|
206
|
+
- Generate a summary for performance reviews
|
|
207
|
+
|
|
208
|
+
## Examples
|
|
209
|
+
|
|
210
|
+
### Example 1: Conflict Avoidance Analysis (Inspired by Dan Shipper)
|
|
211
|
+
|
|
212
|
+
**User**: "I download all of my meeting recordings and put them in a folder. Tell me all the times I've subtly avoided conflict."
|
|
213
|
+
|
|
214
|
+
**Output**:
|
|
215
|
+
```markdown
|
|
216
|
+
# Conflict Avoidance Patterns
|
|
217
|
+
|
|
218
|
+
Found 23 instances across 15 meetings where you used indirect
|
|
219
|
+
communication or avoided addressing tensions directly.
|
|
220
|
+
|
|
221
|
+
## Pattern: Hedging on Critical Feedback
|
|
222
|
+
|
|
223
|
+
**Frequency**: 8 times across 7 meetings
|
|
224
|
+
|
|
225
|
+
**Example 1: 1:1 with Sarah** - 00:14:32
|
|
226
|
+
|
|
227
|
+
**What Happened**:
|
|
228
|
+
> "So, I was thinking... maybe we could, like, potentially
|
|
229
|
+
> consider looking at the timeline again? I mean, if you
|
|
230
|
+
> think that makes sense. But whatever you think is best!"
|
|
231
|
+
|
|
232
|
+
**Why This Matters**:
|
|
233
|
+
You needed to address that Sarah's project was behind schedule,
|
|
234
|
+
but the hedging language ("maybe", "potentially", "if you think")
|
|
235
|
+
and the deflection at the end ("whatever you think") made it easy
|
|
236
|
+
for her to miss the urgency.
|
|
237
|
+
|
|
238
|
+
**Better Approach**:
|
|
239
|
+
"Sarah, the project is two weeks behind schedule. We need to
|
|
240
|
+
discuss what's blocking progress and create a new timeline
|
|
241
|
+
today."
|
|
242
|
+
|
|
243
|
+
[Additional examples...]
|
|
244
|
+
|
|
245
|
+
## Recommendations
|
|
246
|
+
|
|
247
|
+
1. **Name the issue directly** in the first sentence
|
|
248
|
+
2. **Remove hedging words** like "maybe," "kind of," "sort of"
|
|
249
|
+
3. **Ask specific questions** instead of hinting
|
|
250
|
+
4. **Schedule difficult conversations** instead of raising them casually
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Example 2: Leadership Facilitation
|
|
254
|
+
|
|
255
|
+
**User**: "Analyze my team meetings and tell me about my facilitation style."
|
|
256
|
+
|
|
257
|
+
**Output**: Provides insights on:
|
|
258
|
+
- How much you speak vs. team members (60% vs. 40%)
|
|
259
|
+
- Whether you ask questions or make statements (3:1 ratio)
|
|
260
|
+
- How you handle disagreements (tendency to resolve too quickly)
|
|
261
|
+
- Who speaks least and whether you draw them in
|
|
262
|
+
- Examples of good and missed facilitation moments
|
|
263
|
+
|
|
264
|
+
### Example 3: Personal Development Tracking
|
|
265
|
+
|
|
266
|
+
**User**: "Compare my meetings from Q1 vs. Q2 to see if I've improved my listening skills."
|
|
267
|
+
|
|
268
|
+
**Output**: Creates a comparative analysis showing:
|
|
269
|
+
- Decrease in interruptions (8 per meeting → 3 per meeting)
|
|
270
|
+
- Increase in clarifying questions (2 → 7 per meeting)
|
|
271
|
+
- Improvement in building on others' ideas
|
|
272
|
+
- Specific examples showing the difference
|
|
273
|
+
- Remaining areas for growth
|
|
274
|
+
|
|
275
|
+
## Setup Tips
|
|
276
|
+
|
|
277
|
+
### Getting Meeting Transcripts
|
|
278
|
+
|
|
279
|
+
**From Granola** (free with Lenny's newsletter subscription):
|
|
280
|
+
- Granola auto-transcribes your meetings
|
|
281
|
+
- Export transcripts to a folder: [Instructions on how]
|
|
282
|
+
- Point Claude Code to that folder
|
|
283
|
+
|
|
284
|
+
**From Zoom**:
|
|
285
|
+
- Enable cloud recording with transcription
|
|
286
|
+
- Download VTT or SRT files after meetings
|
|
287
|
+
- Store in a dedicated folder
|
|
288
|
+
|
|
289
|
+
**From Google Meet**:
|
|
290
|
+
- Use Google Docs auto-transcription
|
|
291
|
+
- Save transcript docs to a folder
|
|
292
|
+
- Download as .txt files or give Claude Code access
|
|
293
|
+
|
|
294
|
+
**From Fireflies.ai, Otter.ai, etc.**:
|
|
295
|
+
- Export transcripts in bulk
|
|
296
|
+
- Store in a local folder
|
|
297
|
+
- Run analysis on the folder
|
|
298
|
+
|
|
299
|
+
### Best Practices
|
|
300
|
+
|
|
301
|
+
1. **Consistent naming**: Use `YYYY-MM-DD - Meeting Name.txt` format
|
|
302
|
+
2. **Regular analysis**: Review monthly or quarterly for trends
|
|
303
|
+
3. **Specific queries**: Ask about one behavior at a time for depth
|
|
304
|
+
4. **Privacy**: Keep sensitive meeting data local
|
|
305
|
+
5. **Action-oriented**: Focus on one improvement area at a time
|
|
306
|
+
|
|
307
|
+
## Common Analysis Requests
|
|
308
|
+
|
|
309
|
+
- "When do I avoid difficult conversations?"
|
|
310
|
+
- "How often do I interrupt others?"
|
|
311
|
+
- "What's my speaking vs. listening ratio?"
|
|
312
|
+
- "Do I ask good questions?"
|
|
313
|
+
- "How do I handle disagreement?"
|
|
314
|
+
- "Am I inclusive of all voices?"
|
|
315
|
+
- "Do I use too many filler words?"
|
|
316
|
+
- "How clear are my action items?"
|
|
317
|
+
- "Do I stay on agenda or get sidetracked?"
|
|
318
|
+
- "How has my communication changed over time?"
|
|
319
|
+
|
|
320
|
+
## Related Use Cases
|
|
321
|
+
|
|
322
|
+
- Creating a personal development plan from insights
|
|
323
|
+
- Preparing performance review materials with examples
|
|
324
|
+
- Coaching direct reports on their communication
|
|
325
|
+
- Analyzing customer calls for sales or support patterns
|
|
326
|
+
- Studying negotiation tactics and outcomes
|
|
327
|
+
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orchestration
|
|
3
|
+
description: Multi-agent orchestration, parallel execution, contract-based planning for complex multi-file tasks
|
|
4
|
+
triggers: parallel, orchestrate, sub-agent, project, plan, multiple tasks, frontend backend, coordinate, spawn, workspace, contract, full-stack, todo app, multi-step
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Orchestration & Multi-Agent Planning
|
|
8
|
+
|
|
9
|
+
## When to Plan vs Just Do It
|
|
10
|
+
- Simple task (1-2 files, single clear action) → do it directly, no planning overhead.
|
|
11
|
+
- Heavy task (3+ files, multi-agent, research-then-build, unclear scope) → plan first with projectTracker, then execute.
|
|
12
|
+
|
|
13
|
+
## Planning Workflow
|
|
14
|
+
1. `projectTracker("createProject")` — breaks work into tasks, creates shared workspace directory.
|
|
15
|
+
2. Pass returned workspace path in `sharedContext` so all sub-agents write artifacts there.
|
|
16
|
+
3. Define the **shared contract** (API schema, DOM structure, naming conventions) BEFORE spawning agents.
|
|
17
|
+
4. Mark each task `in_progress` before starting, `done` with notes when finished.
|
|
18
|
+
5. If interrupted → `projectTracker("listProjects")` to find and resume.
|
|
19
|
+
|
|
20
|
+
## Contract-Based Pattern
|
|
21
|
+
Before spawning parallel agents, define the shared contract explicitly:
|
|
22
|
+
- API routes, request/response shapes, status codes
|
|
23
|
+
- Data models, field names, types
|
|
24
|
+
- File paths, component names, CSS class conventions
|
|
25
|
+
- Paste the ACTUAL contract text into `sharedContext` — don't reference it, include it.
|
|
26
|
+
|
|
27
|
+
## Always Pass Correct Working Directory
|
|
28
|
+
- Include the exact workspace path and project root in `sharedContext`.
|
|
29
|
+
- Never let agents guess where to create files — specify exact paths.
|
|
30
|
+
|
|
31
|
+
## Parallel vs Sequential Decision
|
|
32
|
+
- Does task B need output from task A? **Yes → sequential.** No → parallel.
|
|
33
|
+
- Parallel agents communicate through workspace files, NOT through messages or return values.
|
|
34
|
+
- Never run agents in parallel when they have data dependencies.
|
|
35
|
+
|
|
36
|
+
## Profile Guide
|
|
37
|
+
- **researcher**: gather info, browse web, write findings — no shell execution
|
|
38
|
+
- **coder**: read/write/run full loop — building, fixing, testing
|
|
39
|
+
- **writer**: produce documents and reports — no shell, no browser
|
|
40
|
+
- **analyst**: data processing with shell + web + vision
|
|
41
|
+
- No profile: default 27-tool set (safe general-purpose)
|
|
42
|
+
- Add `extraTools` when a profile is almost right but needs one more tool
|
|
43
|
+
|
|
44
|
+
## Workspace as Artifact Store
|
|
45
|
+
- `projectTracker` returns workspace path (`data/workspaces/{id}/`)
|
|
46
|
+
- Sub-agents write output files to workspace (code, reports, schemas)
|
|
47
|
+
- Parent reads from workspace to build context for next phase
|
|
48
|
+
- Artifacts survive crashes — work is never lost
|
|
49
|
+
- Do NOT pass full file contents as return values — write to workspace, return summary
|
|
50
|
+
|
|
51
|
+
## Structured Return Convention
|
|
52
|
+
End every sub-agent response with:
|
|
53
|
+
```
|
|
54
|
+
DONE: One sentence describing what was accomplished
|
|
55
|
+
FILES: workspace/path/file1.js, workspace/path/file2.md
|
|
56
|
+
CONTRACT: Key interfaces, exports, API endpoints produced
|
|
57
|
+
ERRORS: Any failures or caveats
|
|
58
|
+
```
|
|
59
|
+
Omit sections that don't apply.
|
|
60
|
+
|
|
61
|
+
## Writing Sub-Agent Task Descriptions
|
|
62
|
+
A sub-agent has NO context except what you give it. Write as if handing off to a developer with zero knowledge.
|
|
63
|
+
|
|
64
|
+
Include:
|
|
65
|
+
- Exact file path(s) to create or modify
|
|
66
|
+
- Full spec/schema/contract (paste actual names, endpoints, fields — don't summarize)
|
|
67
|
+
- Expected behavior and output
|
|
68
|
+
- Constraints (no external libraries, match existing patterns, specific format)
|
|
69
|
+
|
|
70
|
+
**Bad:** "Write the CSS file"
|
|
71
|
+
**Good:** "Create /project/style.css. Style these DOM elements: ul#todo-list, li.todo-item, button.delete-btn, input#new-todo. Requirements: CSS Grid layout, dark mode via prefers-color-scheme, smooth opacity transition on add/remove, mobile-first responsive (600px breakpoint). No frameworks."
|
|
72
|
+
|
|
73
|
+
## Sequential vs Parallel Agents
|
|
74
|
+
- **Sequential**: `spawnAgent` multiple times when each step needs previous output (research → write → test).
|
|
75
|
+
- **Parallel**: `parallelAgents` when steps can run simultaneously — always provide `sharedContext` with the shared contract.
|
|
76
|
+
|
|
77
|
+
## Model Routing for Cost
|
|
78
|
+
- Cheap tasks (research, summarization, boilerplate) → `"model":"openai:gpt-4.1-mini"` or `"model":"anthropic:claude-sonnet-4-20250514"`
|
|
79
|
+
- Expensive tasks (complex code, architecture, debugging) → default model or `"model":"anthropic:claude-opus-4-6"`
|
|
80
|
+
- Pass `"model"` in spawnAgent/parallelAgents options to override per-agent
|
|
81
|
+
|
|
82
|
+
## Steering Running Agents
|
|
83
|
+
- `manageAgents("steer")` with `{"agentId":"...", "message":"..."}` to redirect a running agent mid-task
|
|
84
|
+
- Use when you realize a sub-agent is going down the wrong path — cheaper than killing and respawning
|
|
85
|
+
- `manageAgents("list")` to see active agents and their status
|
|
86
|
+
- `manageAgents("kill")` with `{"agentId":"..."}` to stop a stuck agent
|
|
87
|
+
|
|
88
|
+
## Error Recovery
|
|
89
|
+
- Sub-agent fails → read its error from the return, diagnose root cause
|
|
90
|
+
- Transient failure (network, timeout) → respawn with same task description
|
|
91
|
+
- Logic failure (wrong approach) → respawn with corrected instructions + add what went wrong
|
|
92
|
+
- Never blindly retry — always adjust the task description based on the failure
|
|
93
|
+
- If multiple agents fail on the same issue → fix the shared contract/workspace, then respawn all
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: raffle-winner-picker
|
|
3
|
+
description: Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Raffle Winner Picker
|
|
7
|
+
|
|
8
|
+
This skill randomly selects winners from lists, spreadsheets, or Google Sheets for giveaways and contests.
|
|
9
|
+
|
|
10
|
+
## When to Use This Skill
|
|
11
|
+
|
|
12
|
+
- Running social media giveaways
|
|
13
|
+
- Picking raffle winners at events
|
|
14
|
+
- Randomly selecting participants for surveys or tests
|
|
15
|
+
- Choosing winners from contest submissions
|
|
16
|
+
- Fair distribution of limited spots or resources
|
|
17
|
+
- Random team assignments
|
|
18
|
+
|
|
19
|
+
## What This Skill Does
|
|
20
|
+
|
|
21
|
+
1. **Random Selection**: Uses cryptographically random selection
|
|
22
|
+
2. **Multiple Sources**: Works with CSV, Excel, Google Sheets, or plain lists
|
|
23
|
+
3. **Multiple Winners**: Can pick one or multiple winners
|
|
24
|
+
4. **Duplicate Prevention**: Ensures the same person can't win twice
|
|
25
|
+
5. **Transparent Results**: Shows the selection process clearly
|
|
26
|
+
6. **Winner Details**: Displays all relevant information about winners
|
|
27
|
+
|
|
28
|
+
## How to Use
|
|
29
|
+
|
|
30
|
+
### From Google Sheets
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Pick a random row from this Google Sheet to select a winner
|
|
34
|
+
for a giveaway: [Sheet URL]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### From Local File
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Pick 3 random winners from entries.csv
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### From List
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Pick a random winner from this list:
|
|
47
|
+
- Alice (alice@email.com)
|
|
48
|
+
- Bob (bob@email.com)
|
|
49
|
+
- Carol (carol@email.com)
|
|
50
|
+
...
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Multiple Winners
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Pick 5 random winners from contest-entries.xlsx,
|
|
57
|
+
make sure no duplicates
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Example
|
|
61
|
+
|
|
62
|
+
**User**: "Pick a random row from this Google Sheet to select a winner for a giveaway."
|
|
63
|
+
|
|
64
|
+
**Output**:
|
|
65
|
+
```
|
|
66
|
+
Accessing Google Sheet...
|
|
67
|
+
Total entries found: 247
|
|
68
|
+
|
|
69
|
+
Randomly selecting winner...
|
|
70
|
+
|
|
71
|
+
🎉 WINNER SELECTED! 🎉
|
|
72
|
+
|
|
73
|
+
Row #142
|
|
74
|
+
Name: Sarah Johnson
|
|
75
|
+
Email: sarah.j@email.com
|
|
76
|
+
Entry Date: March 10, 2024
|
|
77
|
+
Comment: "Love your newsletter!"
|
|
78
|
+
|
|
79
|
+
Selection method: Cryptographically random
|
|
80
|
+
Timestamp: 2024-03-15 14:32:18 UTC
|
|
81
|
+
|
|
82
|
+
Would you like to:
|
|
83
|
+
- Pick another winner (excluding Sarah)?
|
|
84
|
+
- Export winner details?
|
|
85
|
+
- Pick runner-ups?
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Inspired by:** Lenny's use case - picking a Sora 2 giveaway winner from his subscriber Slack community
|
|
89
|
+
|
|
90
|
+
## Features
|
|
91
|
+
|
|
92
|
+
### Fair Selection
|
|
93
|
+
- Uses secure random number generation
|
|
94
|
+
- No bias or patterns
|
|
95
|
+
- Transparent process
|
|
96
|
+
- Repeatable with seed (for verification)
|
|
97
|
+
|
|
98
|
+
### Exclusions
|
|
99
|
+
```
|
|
100
|
+
Pick a random winner excluding previous winners:
|
|
101
|
+
Alice, Bob, Carol
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Weighted Selection
|
|
105
|
+
```
|
|
106
|
+
Pick a winner with weighted probability based on
|
|
107
|
+
the "entries" column (1 entry = 1 ticket)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Runner-ups
|
|
111
|
+
```
|
|
112
|
+
Pick 1 winner and 3 runner-ups from the list
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Example Workflows
|
|
116
|
+
|
|
117
|
+
### Social Media Giveaway
|
|
118
|
+
1. Export entries from Google Form to Sheets
|
|
119
|
+
2. "Pick a random winner from [Sheet URL]"
|
|
120
|
+
3. Verify winner details
|
|
121
|
+
4. Announce publicly with timestamp
|
|
122
|
+
|
|
123
|
+
### Event Raffle
|
|
124
|
+
1. Create CSV of attendee names and emails
|
|
125
|
+
2. "Pick 10 random winners from attendees.csv"
|
|
126
|
+
3. Export winner list
|
|
127
|
+
4. Email winners directly
|
|
128
|
+
|
|
129
|
+
### Team Assignment
|
|
130
|
+
1. Have list of participants
|
|
131
|
+
2. "Randomly split this list into 4 equal teams"
|
|
132
|
+
3. Review assignments
|
|
133
|
+
4. Share team rosters
|
|
134
|
+
|
|
135
|
+
## Tips
|
|
136
|
+
|
|
137
|
+
- **Document the process**: Save the timestamp and method
|
|
138
|
+
- **Public announcement**: Share selection details for transparency
|
|
139
|
+
- **Check eligibility**: Verify winner meets contest rules
|
|
140
|
+
- **Have backups**: Pick runner-ups in case winner is ineligible
|
|
141
|
+
- **Export results**: Save winner list for records
|
|
142
|
+
|
|
143
|
+
## Privacy & Fairness
|
|
144
|
+
|
|
145
|
+
✓ Uses cryptographically secure randomness
|
|
146
|
+
✓ No manipulation possible
|
|
147
|
+
✓ Timestamp recorded for verification
|
|
148
|
+
✓ Can provide seed for third-party verification
|
|
149
|
+
✓ Respects data privacy
|
|
150
|
+
|
|
151
|
+
## Common Use Cases
|
|
152
|
+
|
|
153
|
+
- Newsletter subscriber giveaways
|
|
154
|
+
- Product launch raffles
|
|
155
|
+
- Conference ticket drawings
|
|
156
|
+
- Beta tester selection
|
|
157
|
+
- Focus group participant selection
|
|
158
|
+
- Random prize distribution at events
|
|
159
|
+
|