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.
Files changed (121) hide show
  1. package/LICENSE +663 -0
  2. package/README.md +69 -19
  3. package/SOUL.md +25 -24
  4. package/daemora-ui/README.md +11 -0
  5. package/package.json +12 -2
  6. package/skills/api-development.md +35 -0
  7. package/skills/artifacts-builder/SKILL.md +74 -0
  8. package/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  9. package/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
  10. package/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  11. package/skills/brand-guidelines.md +73 -0
  12. package/skills/browser.md +77 -0
  13. package/skills/changelog-generator.md +104 -0
  14. package/skills/coding.md +26 -10
  15. package/skills/content-research-writer.md +538 -0
  16. package/skills/data-analysis.md +27 -0
  17. package/skills/debugging.md +33 -0
  18. package/skills/devops.md +37 -0
  19. package/skills/document-docx.md +197 -0
  20. package/skills/document-pdf.md +294 -0
  21. package/skills/document-pptx.md +484 -0
  22. package/skills/document-xlsx.md +289 -0
  23. package/skills/domain-name-brainstormer.md +212 -0
  24. package/skills/file-organizer.md +433 -0
  25. package/skills/frontend-design.md +42 -0
  26. package/skills/image-enhancer.md +99 -0
  27. package/skills/invoice-organizer.md +446 -0
  28. package/skills/lead-research-assistant.md +199 -0
  29. package/skills/mcp-builder/SKILL.md +328 -0
  30. package/skills/mcp-builder/reference/evaluation.md +602 -0
  31. package/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
  32. package/skills/mcp-builder/reference/node_mcp_server.md +916 -0
  33. package/skills/mcp-builder/reference/python_mcp_server.md +752 -0
  34. package/skills/mcp-builder/scripts/connections.py +151 -0
  35. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  36. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  37. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  38. package/skills/meeting-insights-analyzer.md +327 -0
  39. package/skills/orchestration.md +93 -0
  40. package/skills/raffle-winner-picker.md +159 -0
  41. package/skills/slack-gif-creator/SKILL.md +646 -0
  42. package/skills/slack-gif-creator/core/color_palettes.py +302 -0
  43. package/skills/slack-gif-creator/core/easing.py +230 -0
  44. package/skills/slack-gif-creator/core/frame_composer.py +469 -0
  45. package/skills/slack-gif-creator/core/gif_builder.py +246 -0
  46. package/skills/slack-gif-creator/core/typography.py +357 -0
  47. package/skills/slack-gif-creator/core/validators.py +264 -0
  48. package/skills/slack-gif-creator/core/visual_effects.py +494 -0
  49. package/skills/slack-gif-creator/requirements.txt +4 -0
  50. package/skills/slack-gif-creator/templates/bounce.py +106 -0
  51. package/skills/slack-gif-creator/templates/explode.py +331 -0
  52. package/skills/slack-gif-creator/templates/fade.py +329 -0
  53. package/skills/slack-gif-creator/templates/flip.py +291 -0
  54. package/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
  55. package/skills/slack-gif-creator/templates/morph.py +329 -0
  56. package/skills/slack-gif-creator/templates/move.py +293 -0
  57. package/skills/slack-gif-creator/templates/pulse.py +268 -0
  58. package/skills/slack-gif-creator/templates/shake.py +127 -0
  59. package/skills/slack-gif-creator/templates/slide.py +291 -0
  60. package/skills/slack-gif-creator/templates/spin.py +269 -0
  61. package/skills/slack-gif-creator/templates/wiggle.py +300 -0
  62. package/skills/slack-gif-creator/templates/zoom.py +312 -0
  63. package/skills/system-admin.md +44 -0
  64. package/skills/tailored-resume-generator.md +345 -0
  65. package/skills/theme-factory/SKILL.md +59 -0
  66. package/skills/theme-factory/theme-showcase.pdf +0 -0
  67. package/skills/theme-factory/themes/arctic-frost.md +19 -0
  68. package/skills/theme-factory/themes/botanical-garden.md +19 -0
  69. package/skills/theme-factory/themes/desert-rose.md +19 -0
  70. package/skills/theme-factory/themes/forest-canopy.md +19 -0
  71. package/skills/theme-factory/themes/golden-hour.md +19 -0
  72. package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  73. package/skills/theme-factory/themes/modern-minimalist.md +19 -0
  74. package/skills/theme-factory/themes/ocean-depths.md +19 -0
  75. package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  76. package/skills/theme-factory/themes/tech-innovation.md +19 -0
  77. package/skills/video-downloader.md +99 -0
  78. package/skills/web-development.md +32 -0
  79. package/skills/webapp-testing/SKILL.md +96 -0
  80. package/skills/webapp-testing/examples/console_logging.py +35 -0
  81. package/skills/webapp-testing/examples/element_discovery.py +40 -0
  82. package/skills/webapp-testing/examples/static_html_automation.py +33 -0
  83. package/skills/webapp-testing/scripts/with_server.py +106 -0
  84. package/src/agents/SubAgentManager.js +57 -12
  85. package/src/api/openai-compat.js +212 -0
  86. package/src/channels/TelegramChannel.js +5 -2
  87. package/src/channels/index.js +7 -10
  88. package/src/cli.js +129 -50
  89. package/src/config/agentProfiles.js +1 -0
  90. package/src/config/default.js +10 -0
  91. package/src/config/models.js +317 -71
  92. package/src/config/permissions.js +12 -0
  93. package/src/core/AgentLoop.js +70 -50
  94. package/src/core/Compaction.js +84 -2
  95. package/src/core/MessageQueue.js +90 -0
  96. package/src/core/Task.js +13 -0
  97. package/src/core/TaskQueue.js +1 -1
  98. package/src/core/TaskRunner.js +80 -5
  99. package/src/index.js +328 -48
  100. package/src/mcp/MCPAgentRunner.js +48 -11
  101. package/src/mcp/MCPManager.js +40 -2
  102. package/src/models/ModelRouter.js +67 -1
  103. package/src/safety/DockerSandbox.js +212 -0
  104. package/src/safety/ExecApproval.js +118 -0
  105. package/src/scheduler/Heartbeat.js +56 -21
  106. package/src/services/cleanup.js +106 -0
  107. package/src/services/sessions.js +39 -1
  108. package/src/setup/wizard.js +75 -4
  109. package/src/skills/SkillLoader.js +104 -17
  110. package/src/storage/TaskStore.js +19 -1
  111. package/src/systemPrompt.js +171 -328
  112. package/src/tools/browserAutomation.js +615 -104
  113. package/src/tools/executeCommand.js +19 -1
  114. package/src/tools/index.js +6 -0
  115. package/src/tools/manageAgents.js +55 -4
  116. package/src/tools/replyWithFile.js +62 -0
  117. package/src/tools/screenCapture.js +12 -1
  118. package/src/tools/taskManager.js +164 -0
  119. package/src/tools/useMCP.js +3 -1
  120. package/src/utils/Embeddings.js +157 -10
  121. 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
+