opencode-skills-collection 1.0.185 → 1.0.187

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 (71) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +5 -1
  2. package/bundled-skills/3d-web-experience/SKILL.md +152 -37
  3. package/bundled-skills/agent-evaluation/SKILL.md +1088 -26
  4. package/bundled-skills/agent-memory-systems/SKILL.md +1037 -25
  5. package/bundled-skills/agent-tool-builder/SKILL.md +668 -16
  6. package/bundled-skills/ai-agents-architect/SKILL.md +271 -31
  7. package/bundled-skills/ai-product/SKILL.md +716 -26
  8. package/bundled-skills/ai-wrapper-product/SKILL.md +450 -44
  9. package/bundled-skills/algolia-search/SKILL.md +867 -15
  10. package/bundled-skills/autonomous-agents/SKILL.md +1033 -26
  11. package/bundled-skills/aws-serverless/SKILL.md +1046 -35
  12. package/bundled-skills/azure-functions/SKILL.md +1318 -19
  13. package/bundled-skills/browser-automation/SKILL.md +1065 -28
  14. package/bundled-skills/browser-extension-builder/SKILL.md +159 -32
  15. package/bundled-skills/bullmq-specialist/SKILL.md +347 -16
  16. package/bundled-skills/clerk-auth/SKILL.md +796 -15
  17. package/bundled-skills/computer-use-agents/SKILL.md +1870 -28
  18. package/bundled-skills/context-window-management/SKILL.md +271 -18
  19. package/bundled-skills/conversation-memory/SKILL.md +453 -24
  20. package/bundled-skills/crewai/SKILL.md +252 -46
  21. package/bundled-skills/discord-bot-architect/SKILL.md +1207 -34
  22. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  23. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  24. package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
  25. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  26. package/bundled-skills/docs/users/bundles.md +1 -1
  27. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  28. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  29. package/bundled-skills/docs/users/getting-started.md +1 -1
  30. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  31. package/bundled-skills/docs/users/usage.md +4 -4
  32. package/bundled-skills/docs/users/visual-guide.md +4 -4
  33. package/bundled-skills/email-systems/SKILL.md +646 -26
  34. package/bundled-skills/faf-expert/SKILL.md +221 -0
  35. package/bundled-skills/faf-wizard/SKILL.md +252 -0
  36. package/bundled-skills/file-uploads/SKILL.md +212 -11
  37. package/bundled-skills/firebase/SKILL.md +646 -16
  38. package/bundled-skills/gcp-cloud-run/SKILL.md +1117 -32
  39. package/bundled-skills/graphql/SKILL.md +1026 -27
  40. package/bundled-skills/hubspot-integration/SKILL.md +804 -19
  41. package/bundled-skills/idea-darwin/SKILL.md +120 -0
  42. package/bundled-skills/inngest/SKILL.md +431 -16
  43. package/bundled-skills/interactive-portfolio/SKILL.md +342 -44
  44. package/bundled-skills/langfuse/SKILL.md +296 -41
  45. package/bundled-skills/langgraph/SKILL.md +259 -50
  46. package/bundled-skills/micro-saas-launcher/SKILL.md +343 -44
  47. package/bundled-skills/neon-postgres/SKILL.md +572 -15
  48. package/bundled-skills/nextjs-supabase-auth/SKILL.md +269 -21
  49. package/bundled-skills/notion-template-business/SKILL.md +371 -44
  50. package/bundled-skills/personal-tool-builder/SKILL.md +537 -44
  51. package/bundled-skills/plaid-fintech/SKILL.md +825 -19
  52. package/bundled-skills/prompt-caching/SKILL.md +438 -25
  53. package/bundled-skills/rag-engineer/SKILL.md +271 -29
  54. package/bundled-skills/salesforce-development/SKILL.md +912 -19
  55. package/bundled-skills/satori/SKILL.md +54 -0
  56. package/bundled-skills/scroll-experience/SKILL.md +381 -44
  57. package/bundled-skills/segment-cdp/SKILL.md +817 -19
  58. package/bundled-skills/shopify-apps/SKILL.md +1475 -19
  59. package/bundled-skills/slack-bot-builder/SKILL.md +1162 -28
  60. package/bundled-skills/telegram-bot-builder/SKILL.md +152 -37
  61. package/bundled-skills/telegram-mini-app/SKILL.md +445 -44
  62. package/bundled-skills/trigger-dev/SKILL.md +916 -27
  63. package/bundled-skills/twilio-communications/SKILL.md +1310 -28
  64. package/bundled-skills/upstash-qstash/SKILL.md +898 -27
  65. package/bundled-skills/vercel-deployment/SKILL.md +637 -39
  66. package/bundled-skills/viral-generator-builder/SKILL.md +132 -37
  67. package/bundled-skills/voice-agents/SKILL.md +937 -27
  68. package/bundled-skills/voice-ai-development/SKILL.md +375 -46
  69. package/bundled-skills/workflow-automation/SKILL.md +982 -29
  70. package/bundled-skills/zapier-make-patterns/SKILL.md +772 -27
  71. package/package.json +1 -1
@@ -1,13 +1,20 @@
1
1
  ---
2
2
  name: telegram-mini-app
3
- description: "You build apps where 800M+ Telegram users already are. You understand the Mini App ecosystem is exploding - games, DeFi, utilities, social apps. You know TON blockchain and how to monetize with crypto. You design for the Telegram UX paradigm, not traditional web."
3
+ description: Expert in building Telegram Mini Apps (TWA) - web apps that run
4
+ inside Telegram with native-like experience. Covers the TON ecosystem,
5
+ Telegram Web App API, payments, user authentication, and building viral mini
6
+ apps that monetize.
4
7
  risk: unknown
5
- source: "vibeship-spawner-skills (Apache 2.0)"
6
- date_added: "2026-02-27"
8
+ source: vibeship-spawner-skills (Apache 2.0)
9
+ date_added: 2026-02-27
7
10
  ---
8
11
 
9
12
  # Telegram Mini App
10
13
 
14
+ Expert in building Telegram Mini Apps (TWA) - web apps that run inside Telegram
15
+ with native-like experience. Covers the TON ecosystem, Telegram Web App API,
16
+ payments, user authentication, and building viral mini apps that monetize.
17
+
11
18
  **Role**: Telegram Mini App Architect
12
19
 
13
20
  You build apps where 800M+ Telegram users already are. You understand
@@ -15,6 +22,15 @@ the Mini App ecosystem is exploding - games, DeFi, utilities, social
15
22
  apps. You know TON blockchain and how to monetize with crypto. You
16
23
  design for the Telegram UX paradigm, not traditional web.
17
24
 
25
+ ### Expertise
26
+
27
+ - Telegram Web App API
28
+ - TON blockchain
29
+ - Mini App UX
30
+ - TON Connect
31
+ - Viral mechanics
32
+ - Crypto payments
33
+
18
34
  ## Capabilities
19
35
 
20
36
  - Telegram Web App API
@@ -34,7 +50,6 @@ Getting started with Telegram Mini Apps
34
50
 
35
51
  **When to use**: When starting a new Mini App
36
52
 
37
- ```javascript
38
53
  ## Mini App Setup
39
54
 
40
55
  ### Basic Structure
@@ -101,7 +116,6 @@ bot.command('app', (ctx) => {
101
116
  });
102
117
  });
103
118
  ```
104
- ```
105
119
 
106
120
  ### TON Connect Integration
107
121
 
@@ -109,7 +123,6 @@ Wallet connection for TON blockchain
109
123
 
110
124
  **When to use**: When building Web3 Mini Apps
111
125
 
112
- ```python
113
126
  ## TON Connect Integration
114
127
 
115
128
  ### Setup
@@ -169,7 +182,6 @@ function PaymentButton({ amount, to }) {
169
182
  return <button onClick={handlePay}>Pay {amount} TON</button>;
170
183
  }
171
184
  ```
172
- ```
173
185
 
174
186
  ### Mini App Monetization
175
187
 
@@ -177,7 +189,6 @@ Making money from Mini Apps
177
189
 
178
190
  **When to use**: When planning Mini App revenue
179
191
 
180
- ```javascript
181
192
  ## Mini App Monetization
182
193
 
183
194
  ### Revenue Streams
@@ -227,58 +238,448 @@ function ReferralShare() {
227
238
  - Leaderboards
228
239
  - Achievement badges
229
240
  - Referral bonuses
241
+
242
+ ### Mini App UX Patterns
243
+
244
+ UX specific to Telegram Mini Apps
245
+
246
+ **When to use**: When designing Mini App interfaces
247
+
248
+ ## Mini App UX
249
+
250
+ ### Platform Conventions
251
+ | Element | Implementation |
252
+ |---------|----------------|
253
+ | Main Button | tg.MainButton |
254
+ | Back Button | tg.BackButton |
255
+ | Theme | tg.themeParams |
256
+ | Haptics | tg.HapticFeedback |
257
+
258
+ ### Main Button
259
+ ```javascript
260
+ const tg = window.Telegram.WebApp;
261
+
262
+ // Show main button
263
+ tg.MainButton.setText('Continue');
264
+ tg.MainButton.show();
265
+ tg.MainButton.onClick(() => {
266
+ // Handle click
267
+ submitForm();
268
+ });
269
+
270
+ // Loading state
271
+ tg.MainButton.showProgress();
272
+ // ...
273
+ tg.MainButton.hideProgress();
274
+ ```
275
+
276
+ ### Theme Adaptation
277
+ ```css
278
+ :root {
279
+ --tg-theme-bg-color: var(--tg-theme-bg-color, #ffffff);
280
+ --tg-theme-text-color: var(--tg-theme-text-color, #000000);
281
+ --tg-theme-button-color: var(--tg-theme-button-color, #3390ec);
282
+ }
283
+
284
+ body {
285
+ background: var(--tg-theme-bg-color);
286
+ color: var(--tg-theme-text-color);
287
+ }
288
+ ```
289
+
290
+ ### Haptic Feedback
291
+ ```javascript
292
+ // Light feedback
293
+ tg.HapticFeedback.impactOccurred('light');
294
+
295
+ // Success
296
+ tg.HapticFeedback.notificationOccurred('success');
297
+
298
+ // Selection
299
+ tg.HapticFeedback.selectionChanged();
300
+ ```
301
+
302
+ ## Sharp Edges
303
+
304
+ ### Not validating initData from Telegram
305
+
306
+ Severity: HIGH
307
+
308
+ Situation: Backend trusts user data without verification
309
+
310
+ Symptoms:
311
+ - Trusting client data blindly
312
+ - No server-side validation
313
+ - Using initDataUnsafe directly
314
+ - Security audit failures
315
+
316
+ Why this breaks:
317
+ initData can be spoofed.
318
+ Security vulnerability.
319
+ Users can impersonate others.
320
+ Data tampering possible.
321
+
322
+ Recommended fix:
323
+
324
+ ## Validating initData
325
+
326
+ ### Why Validate
327
+ - initData contains user info
328
+ - Must verify it came from Telegram
329
+ - Prevent spoofing/tampering
330
+
331
+ ### Node.js Validation
332
+ ```javascript
333
+ import crypto from 'crypto';
334
+
335
+ function validateInitData(initData, botToken) {
336
+ const params = new URLSearchParams(initData);
337
+ const hash = params.get('hash');
338
+ params.delete('hash');
339
+
340
+ // Sort and join
341
+ const dataCheckString = Array.from(params.entries())
342
+ .sort(([a], [b]) => a.localeCompare(b))
343
+ .map(([k, v]) => `${k}=${v}`)
344
+ .join('\n');
345
+
346
+ // Create secret key
347
+ const secretKey = crypto
348
+ .createHmac('sha256', 'WebAppData')
349
+ .update(botToken)
350
+ .digest();
351
+
352
+ // Calculate hash
353
+ const calculatedHash = crypto
354
+ .createHmac('sha256', secretKey)
355
+ .update(dataCheckString)
356
+ .digest('hex');
357
+
358
+ return calculatedHash === hash;
359
+ }
360
+ ```
361
+
362
+ ### Using in API
363
+ ```javascript
364
+ app.post('/api/action', (req, res) => {
365
+ const { initData } = req.body;
366
+
367
+ if (!validateInitData(initData, process.env.BOT_TOKEN)) {
368
+ return res.status(401).json({ error: 'Invalid initData' });
369
+ }
370
+
371
+ // Safe to use data
372
+ const params = new URLSearchParams(initData);
373
+ const user = JSON.parse(params.get('user'));
374
+ // ...
375
+ });
376
+ ```
377
+
378
+ ### TON Connect not working on mobile
379
+
380
+ Severity: HIGH
381
+
382
+ Situation: Wallet connection fails on mobile Telegram
383
+
384
+ Symptoms:
385
+ - Works on desktop, fails mobile
386
+ - Wallet app doesn't open
387
+ - Connection stuck
388
+ - Users can't pay
389
+
390
+ Why this breaks:
391
+ Deep linking issues.
392
+ Wallet app not opening.
393
+ Return URL problems.
394
+ Different behavior iOS vs Android.
395
+
396
+ Recommended fix:
397
+
398
+ ## TON Connect Mobile Issues
399
+
400
+ ### Common Problems
401
+ 1. Wallet doesn't open
402
+ 2. Return to Mini App fails
403
+ 3. Transaction confirmation lost
404
+
405
+ ### Fixes
406
+ ```jsx
407
+ // Use correct manifest
408
+ const manifestUrl = 'https://your-domain.com/tonconnect-manifest.json';
409
+
410
+ // Ensure HTTPS
411
+ // Localhost won't work on mobile
412
+
413
+ // Handle connection states
414
+ const [tonConnectUI] = useTonConnectUI();
415
+
416
+ useEffect(() => {
417
+ return tonConnectUI.onStatusChange((wallet) => {
418
+ if (wallet) {
419
+ console.log('Connected:', wallet.account.address);
420
+ }
421
+ });
422
+ }, []);
423
+ ```
424
+
425
+ ### Testing
426
+ - Test on real devices
427
+ - Test with multiple wallets (Tonkeeper, OpenMask)
428
+ - Test both iOS and Android
429
+ - Use ngrok for local dev + mobile test
430
+
431
+ ### Fallback
432
+ ```jsx
433
+ // Show QR for desktop
434
+ // Show wallet list for mobile
435
+ <TonConnectButton />
436
+ // Automatically handles this
437
+ ```
438
+
439
+ ### Mini App feels slow and janky
440
+
441
+ Severity: MEDIUM
442
+
443
+ Situation: App lags, slow transitions, poor UX
444
+
445
+ Symptoms:
446
+ - Slow initial load
447
+ - Laggy interactions
448
+ - Users complaining about speed
449
+ - High bounce rate
450
+
451
+ Why this breaks:
452
+ Too much JavaScript.
453
+ No code splitting.
454
+ Large bundle size.
455
+ No loading optimization.
456
+
457
+ Recommended fix:
458
+
459
+ ## Mini App Performance
460
+
461
+ ### Bundle Size
462
+ - Target < 200KB gzipped
463
+ - Use code splitting
464
+ - Lazy load routes
465
+ - Tree shake dependencies
466
+
467
+ ### Quick Wins
468
+ ```jsx
469
+ // Lazy load heavy components
470
+ const HeavyChart = lazy(() => import('./HeavyChart'));
471
+
472
+ // Optimize images
473
+ <img loading="lazy" src="..." />
474
+
475
+ // Use CSS instead of JS animations
476
+ ```
477
+
478
+ ### Loading Strategy
479
+ ```jsx
480
+ function App() {
481
+ const [ready, setReady] = useState(false);
482
+
483
+ useEffect(() => {
484
+ // Show skeleton immediately
485
+ // Load data in background
486
+ Promise.all([
487
+ loadUserData(),
488
+ loadAppConfig(),
489
+ ]).then(() => setReady(true));
490
+ }, []);
491
+
492
+ if (!ready) return <Skeleton />;
493
+ return <MainApp />;
494
+ }
495
+ ```
496
+
497
+ ### Vite Optimization
498
+ ```javascript
499
+ // vite.config.js
500
+ export default {
501
+ build: {
502
+ rollupOptions: {
503
+ output: {
504
+ manualChunks: {
505
+ vendor: ['react', 'react-dom'],
506
+ }
507
+ }
508
+ }
509
+ }
510
+ };
511
+ ```
512
+
513
+ ### Custom buttons instead of MainButton
514
+
515
+ Severity: MEDIUM
516
+
517
+ Situation: App has custom submit buttons that feel non-native
518
+
519
+ Symptoms:
520
+ - Custom submit buttons
521
+ - MainButton never used
522
+ - Inconsistent UX
523
+ - Users confused about actions
524
+
525
+ Why this breaks:
526
+ MainButton is expected UX.
527
+ Custom buttons feel foreign.
528
+ Inconsistent with Telegram.
529
+ Users don't know what to tap.
530
+
531
+ Recommended fix:
532
+
533
+ ## Using MainButton Properly
534
+
535
+ ### When to Use MainButton
536
+ - Form submission
537
+ - Primary actions
538
+ - Continue/Next flows
539
+ - Checkout/Payment
540
+
541
+ ### Implementation
542
+ ```javascript
543
+ const tg = window.Telegram.WebApp;
544
+
545
+ // Show for forms
546
+ function showMainButton(text, onClick) {
547
+ tg.MainButton.setText(text);
548
+ tg.MainButton.onClick(onClick);
549
+ tg.MainButton.show();
550
+ }
551
+
552
+ // Hide when not needed
553
+ function hideMainButton() {
554
+ tg.MainButton.hide();
555
+ tg.MainButton.offClick();
556
+ }
557
+
558
+ // Loading state
559
+ function setMainButtonLoading(loading) {
560
+ if (loading) {
561
+ tg.MainButton.showProgress();
562
+ tg.MainButton.disable();
563
+ } else {
564
+ tg.MainButton.hideProgress();
565
+ tg.MainButton.enable();
566
+ }
567
+ }
568
+ ```
569
+
570
+ ### React Hook
571
+ ```jsx
572
+ function useMainButton(text, onClick, visible = true) {
573
+ const tg = window.Telegram?.WebApp;
574
+
575
+ useEffect(() => {
576
+ if (!tg) return;
577
+
578
+ if (visible) {
579
+ tg.MainButton.setText(text);
580
+ tg.MainButton.onClick(onClick);
581
+ tg.MainButton.show();
582
+ } else {
583
+ tg.MainButton.hide();
584
+ }
585
+
586
+ return () => {
587
+ tg.MainButton.offClick(onClick);
588
+ };
589
+ }, [text, onClick, visible]);
590
+ }
230
591
  ```
231
592
 
232
- ## Anti-Patterns
593
+ ## Validation Checks
594
+
595
+ ### No initData Validation
596
+
597
+ Severity: HIGH
598
+
599
+ Message: Not validating initData - security vulnerability.
600
+
601
+ Fix action: Implement server-side initData validation with hash verification
602
+
603
+ ### Missing Telegram Web App Script
604
+
605
+ Severity: HIGH
606
+
607
+ Message: Telegram Web App script not included.
233
608
 
234
- ### Ignoring Telegram Theme
609
+ Fix action: Add <script src='https://telegram.org/js/telegram-web-app.js'></script>
235
610
 
236
- **Why bad**: Feels foreign in Telegram.
237
- Bad user experience.
238
- Jarring transitions.
239
- Users don't trust it.
611
+ ### Not Calling tg.ready()
240
612
 
241
- **Instead**: Use tg.themeParams.
242
- Match Telegram colors.
243
- Use native-feeling UI.
244
- Test in both light/dark.
613
+ Severity: MEDIUM
245
614
 
246
- ### Desktop-First Mini App
615
+ Message: Not calling tg.ready() - Telegram may show loading state.
247
616
 
248
- **Why bad**: 95% of Telegram is mobile.
249
- Touch targets too small.
250
- Doesn't fit in Telegram UI.
251
- Scrolling issues.
617
+ Fix action: Call window.Telegram.WebApp.ready() when app is ready
252
618
 
253
- **Instead**: Mobile-first always.
254
- Test on real phones.
255
- Touch-friendly buttons.
256
- Fit within Telegram frame.
619
+ ### Not Using Telegram Theme
257
620
 
258
- ### ❌ No Loading States
621
+ Severity: MEDIUM
259
622
 
260
- **Why bad**: Users think it's broken.
261
- Poor perceived performance.
262
- High exit rate.
263
- Confusion.
623
+ Message: Not adapting to Telegram theme colors.
264
624
 
265
- **Instead**: Show skeleton UI.
266
- Loading indicators.
267
- Progressive loading.
268
- Optimistic updates.
625
+ Fix action: Use CSS variables from tg.themeParams for colors
269
626
 
270
- ## ⚠️ Sharp Edges
627
+ ### Missing Viewport Meta Tag
271
628
 
272
- | Issue | Severity | Solution |
273
- |-------|----------|----------|
274
- | Not validating initData from Telegram | high | ## Validating initData |
275
- | TON Connect not working on mobile | high | ## TON Connect Mobile Issues |
276
- | Mini App feels slow and janky | medium | ## Mini App Performance |
277
- | Custom buttons instead of MainButton | medium | ## Using MainButton Properly |
629
+ Severity: MEDIUM
630
+
631
+ Message: Missing viewport meta tag for mobile.
632
+
633
+ Fix action: Add <meta name='viewport' content='width=device-width, initial-scale=1.0'>
634
+
635
+ ## Collaboration
636
+
637
+ ### Delegation Triggers
638
+
639
+ - bot|command|handler -> telegram-bot-builder (Bot integration)
640
+ - TON|smart contract|blockchain -> blockchain-defi (TON blockchain features)
641
+ - react|vue|frontend -> frontend (Frontend framework)
642
+ - viral|referral|share -> viral-generator-builder (Viral mechanics)
643
+ - game|gamification -> gamification-loops (Game mechanics)
644
+
645
+ ### Tap-to-Earn Game
646
+
647
+ Skills: telegram-mini-app, gamification-loops, telegram-bot-builder
648
+
649
+ Workflow:
650
+
651
+ ```
652
+ 1. Design game mechanics
653
+ 2. Build Mini App with tap mechanics
654
+ 3. Add referral/viral features
655
+ 4. Integrate TON payments
656
+ 5. Bot for notifications/onboarding
657
+ 6. Launch and grow
658
+ ```
659
+
660
+ ### DeFi Mini App
661
+
662
+ Skills: telegram-mini-app, blockchain-defi, frontend
663
+
664
+ Workflow:
665
+
666
+ ```
667
+ 1. Design DeFi feature (swap, stake, etc.)
668
+ 2. Integrate TON Connect
669
+ 3. Build transaction UI
670
+ 4. Add wallet management
671
+ 5. Implement security measures
672
+ 6. Deploy and audit
673
+ ```
278
674
 
279
675
  ## Related Skills
280
676
 
281
677
  Works well with: `telegram-bot-builder`, `frontend`, `blockchain-defi`, `viral-generator-builder`
282
678
 
283
679
  ## When to Use
284
- This skill is applicable to execute the workflow or actions described in the overview.
680
+
681
+ - User mentions or implies: telegram mini app
682
+ - User mentions or implies: TWA
683
+ - User mentions or implies: telegram web app
684
+ - User mentions or implies: TON app
685
+ - User mentions or implies: mini app