everything-gemini 1.2.0 → 1.9.0

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 (73) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +29 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +27 -0
  3. package/.github/ISSUE_TEMPLATE/subagent_proposal.md +29 -0
  4. package/.github/workflows/ci.yml +72 -1
  5. package/.github/workflows/release.yml +17 -2
  6. package/CHANGELOG.md +178 -0
  7. package/CONTRIBUTING.md +90 -4
  8. package/README.md +147 -23
  9. package/action.yml +35 -0
  10. package/agents/browser-qa.md +1 -1
  11. package/agents/database-migrator.md +26 -0
  12. package/agents/documentation-writer.md +27 -0
  13. package/agents/incident-responder.md +34 -0
  14. package/agents/performance-tuner.md +27 -0
  15. package/agents/platform-engineer.md +33 -0
  16. package/agents/release-engineer.md +34 -0
  17. package/bin/everything-gemini +1791 -142
  18. package/docs/COMMUNITY_SUBMISSIONS.md +88 -0
  19. package/docs/LAUNCH_KIT.md +138 -13
  20. package/docs/architecture/progressive-disclosure.md +3 -3
  21. package/docs/index.html +410 -40
  22. package/docs/launch-kit.md +163 -0
  23. package/examples/cli-workflows/demo_workflow.sh +15 -7
  24. package/examples/python-sdk/README.md +32 -5
  25. package/examples/python-sdk/documentation_audit_pipeline.py +83 -0
  26. package/examples/python-sdk/incident_triage_pipeline.py +170 -0
  27. package/examples/python-sdk/multi_agent_pipeline.py +95 -0
  28. package/examples/python-sdk/platform_provisioning_pipeline.py +193 -0
  29. package/examples/python-sdk/release_readiness_audit.py +144 -0
  30. package/hooks/secret-scrubber/hooks.json +16 -0
  31. package/hooks/secret-scrubber/scripts/scrub-secrets.sh +62 -0
  32. package/mcp/README.md +21 -0
  33. package/mcp/mcp_config.example.json +39 -0
  34. package/package.json +3 -1
  35. package/plugins/core/rules/core-practices.md +63 -4
  36. package/plugins/python-ai/rules/ai-agent-patterns.md +67 -4
  37. package/plugins/security-shield/rules/zero-trust.md +60 -4
  38. package/plugins/web-fullstack/rules/frontend-standards.md +74 -4
  39. package/rules/paradigms/security-hardened.md +53 -10
  40. package/rules/paradigms/tdd.md +65 -8
  41. package/scripts/install.ps1 +14 -0
  42. package/scripts/install.sh +15 -1
  43. package/scripts/validate.sh +103 -12
  44. package/skills/apache-kafka-streams/SKILL.md +152 -0
  45. package/skills/argo-workflows/SKILL.md +151 -0
  46. package/skills/axum-web-service/SKILL.md +159 -0
  47. package/skills/cilium-ebpf-networking/SKILL.md +145 -0
  48. package/skills/clickhouse-analytics/SKILL.md +128 -0
  49. package/skills/cloudflare-r2-object-storage/SKILL.md +143 -0
  50. package/skills/dbt-transformation/SKILL.md +179 -0
  51. package/skills/debezium-cdc/SKILL.md +166 -0
  52. package/skills/distributed-rate-limiting/SKILL.md +138 -0
  53. package/skills/duckdb-local-olap/SKILL.md +134 -0
  54. package/skills/fastapi-production/SKILL.md +157 -0
  55. package/skills/grpc-connect-rpc/SKILL.md +176 -0
  56. package/skills/langgraph-orchestrator/SKILL.md +144 -0
  57. package/skills/litellm-proxy-gateway/SKILL.md +154 -0
  58. package/skills/milvus-vector-clustering/SKILL.md +134 -0
  59. package/skills/nats-jetstream/SKILL.md +122 -0
  60. package/skills/open-telemetry-tracing/SKILL.md +151 -0
  61. package/skills/playwright-visual-regression/SKILL.md +124 -0
  62. package/skills/redis-cache-patterns/SKILL.md +159 -0
  63. package/skills/svelte-kit-architect/SKILL.md +190 -0
  64. package/skills/temporal-workflows/SKILL.md +158 -0
  65. package/skills/trpc-react-query/SKILL.md +169 -0
  66. package/skills/turborepo-monorepo/SKILL.md +199 -0
  67. package/skills/vault-secrets-management/SKILL.md +129 -0
  68. package/skills/vllm-inference/SKILL.md +144 -0
  69. package/skills/wasm-rust-optimizer/SKILL.md +130 -0
  70. package/templates/full-power/hooks.json +14 -0
  71. package/templates/full-power/mcp_config.json +47 -0
  72. package/templates/recommended/hooks.json +14 -0
  73. package/tests/cli.test.js +447 -0
package/docs/index.html CHANGED
@@ -10,14 +10,14 @@
10
10
  <meta property="og:type" content="website">
11
11
  <meta property="og:url" content="https://salmandev.github.io/everything-gemini/">
12
12
  <meta property="og:title" content="Everything Gemini — Agent Harness for Google Antigravity">
13
- <meta property="og:description" content="30 Progressive Disclosure Skills, 6 Scoped Subagents, and Deterministic Safety Gates for Gemini 3.8 & Google Antigravity.">
13
+ <meta property="og:description" content="44 Progressive Disclosure Skills, 9 Scoped Subagents, and 7 Lifecycle Safety Gates for Gemini 3.8 & Google Antigravity.">
14
14
  <meta property="og:image" content="https://raw.githubusercontent.com/salmandev/everything-gemini/main/assets/banner.jpg">
15
15
 
16
16
  <!-- Twitter Card -->
17
17
  <meta name="twitter:card" content="summary_large_image">
18
18
  <meta name="twitter:url" content="https://salmandev.github.io/everything-gemini/">
19
19
  <meta name="twitter:title" content="Everything Gemini — Agent Harness for Google Antigravity">
20
- <meta name="twitter:description" content="30 Progressive Disclosure Skills, 6 Scoped Subagents, and Deterministic Safety Gates for Gemini 3.8 & Google Antigravity.">
20
+ <meta name="twitter:description" content="48 Progressive Disclosure Skills, 10 Scoped Subagents, and 7 Lifecycle Safety Gates for Gemini 3.8 & Google Antigravity.">
21
21
  <meta name="twitter:image" content="https://raw.githubusercontent.com/salmandev/everything-gemini/main/assets/banner.jpg">
22
22
 
23
23
  <link rel="preconnect" href="https://fonts.googleapis.com">
@@ -294,6 +294,7 @@
294
294
  display: flex;
295
295
  flex-direction: column;
296
296
  justify-content: space-between;
297
+ cursor: pointer;
297
298
  }
298
299
  .card:hover {
299
300
  background: var(--bg-card-hover);
@@ -315,6 +316,7 @@
315
316
  .tag-agent { background: rgba(156, 39, 176, 0.2); color: #d05ce3; }
316
317
  .tag-backend { background: rgba(66, 133, 244, 0.18); color: #8ab4f8; }
317
318
  .tag-devops { background: rgba(0, 230, 118, 0.15); color: var(--accent-emerald); }
319
+ .tag-hook { background: rgba(255, 171, 0, 0.18); color: #ffab00; }
318
320
 
319
321
  .card h3 {
320
322
  font-size: 1.15rem;
@@ -328,14 +330,46 @@
328
330
  line-height: 1.5;
329
331
  margin-bottom: 16px;
330
332
  }
331
- .card-footer {
333
+ .card-actions {
332
334
  display: flex;
333
- justify-content: space-between;
334
335
  align-items: center;
336
+ justify-content: space-between;
337
+ gap: 10px;
338
+ margin-top: 14px;
335
339
  padding-top: 14px;
336
- border-top: 1px solid rgba(255, 255, 255, 0.05);
337
- font-size: 0.8rem;
340
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
341
+ flex-wrap: wrap;
342
+ }
343
+ .card-btn-view {
344
+ font-size: 0.78rem;
345
+ font-weight: 600;
346
+ color: var(--accent-cyan);
347
+ text-decoration: none;
348
+ display: inline-flex;
349
+ align-items: center;
350
+ gap: 4px;
351
+ transition: color 0.2s ease;
352
+ }
353
+ .card-btn-view:hover {
354
+ color: #fff;
355
+ text-decoration: underline;
356
+ }
357
+ .card-btn-copy {
358
+ background: rgba(255, 255, 255, 0.06);
359
+ border: 1px solid rgba(255, 255, 255, 0.12);
338
360
  color: var(--text-muted);
361
+ font-size: 0.75rem;
362
+ font-weight: 600;
363
+ padding: 5px 12px;
364
+ border-radius: 6px;
365
+ cursor: pointer;
366
+ margin-left: auto;
367
+ transition: all 0.2s ease;
368
+ }
369
+ .card-btn-copy:hover {
370
+ background: rgba(255, 255, 255, 0.15);
371
+ color: var(--text-main);
372
+ border-color: rgba(255, 255, 255, 0.3);
339
373
  }
340
374
 
341
375
  /* Footer */
@@ -351,9 +385,149 @@
351
385
  text-decoration: none;
352
386
  }
353
387
 
388
+ /* Profile Tabs */
389
+ .profile-tabs {
390
+ display: inline-flex;
391
+ background: rgba(16, 20, 31, 0.9);
392
+ border: 1px solid var(--border-color);
393
+ border-radius: 999px;
394
+ padding: 4px;
395
+ margin-bottom: 20px;
396
+ gap: 4px;
397
+ flex-wrap: wrap;
398
+ justify-content: center;
399
+ }
400
+ .profile-tab {
401
+ background: transparent;
402
+ border: none;
403
+ color: var(--text-muted);
404
+ padding: 6px 16px;
405
+ border-radius: 999px;
406
+ font-size: 0.82rem;
407
+ font-weight: 600;
408
+ cursor: pointer;
409
+ transition: all 0.2s ease;
410
+ }
411
+ .profile-tab:hover {
412
+ color: var(--text-main);
413
+ }
414
+ .profile-tab.active {
415
+ background: var(--accent-cyan);
416
+ color: #080a10;
417
+ box-shadow: 0 0 14px rgba(0, 229, 255, 0.4);
418
+ }
419
+
420
+ /* Modal Backdrop & Dialog */
421
+ .modal-backdrop {
422
+ position: fixed;
423
+ inset: 0;
424
+ background: rgba(4, 7, 13, 0.82);
425
+ backdrop-filter: blur(8px);
426
+ -webkit-backdrop-filter: blur(8px);
427
+ display: none;
428
+ align-items: center;
429
+ justify-content: center;
430
+ z-index: 1000;
431
+ padding: 20px;
432
+ }
433
+ .modal-backdrop.open {
434
+ display: flex;
435
+ }
436
+ .modal-dialog {
437
+ background: #0f1423;
438
+ border: 1px solid var(--border-glow);
439
+ border-radius: 18px;
440
+ max-width: 600px;
441
+ width: 100%;
442
+ padding: 32px;
443
+ box-shadow: 0 24px 60px rgba(0, 0, 0, 0.8), 0 0 35px rgba(0, 229, 255, 0.15);
444
+ position: relative;
445
+ animation: modalFadeIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
446
+ }
447
+ @keyframes modalFadeIn {
448
+ from { opacity: 0; transform: scale(0.95) translateY(10px); }
449
+ to { opacity: 1; transform: scale(1) translateY(0); }
450
+ }
451
+ .modal-close {
452
+ position: absolute;
453
+ top: 20px;
454
+ right: 20px;
455
+ background: rgba(255, 255, 255, 0.08);
456
+ border: 1px solid rgba(255, 255, 255, 0.12);
457
+ color: var(--text-muted);
458
+ width: 32px;
459
+ height: 32px;
460
+ border-radius: 50%;
461
+ cursor: pointer;
462
+ display: flex;
463
+ align-items: center;
464
+ justify-content: center;
465
+ font-size: 1.1rem;
466
+ transition: all 0.2s ease;
467
+ }
468
+ .modal-close:hover {
469
+ background: rgba(255, 255, 255, 0.2);
470
+ color: #fff;
471
+ }
472
+ .modal-header {
473
+ margin-bottom: 16px;
474
+ }
475
+ .modal-header h2 {
476
+ font-size: 1.4rem;
477
+ font-weight: 700;
478
+ font-family: var(--font-mono);
479
+ margin-top: 10px;
480
+ }
481
+ .modal-desc {
482
+ font-size: 0.96rem;
483
+ line-height: 1.6;
484
+ color: var(--text-muted);
485
+ margin-bottom: 24px;
486
+ }
487
+ .modal-cmd-box {
488
+ background: rgba(0, 0, 0, 0.45);
489
+ border: 1px solid rgba(255, 255, 255, 0.1);
490
+ border-radius: 10px;
491
+ padding: 12px 16px;
492
+ font-family: var(--font-mono);
493
+ font-size: 0.88rem;
494
+ display: flex;
495
+ align-items: center;
496
+ justify-content: space-between;
497
+ gap: 12px;
498
+ margin-bottom: 24px;
499
+ }
500
+ .modal-cmd-text {
501
+ color: var(--accent-cyan);
502
+ overflow-x: auto;
503
+ white-space: nowrap;
504
+ }
505
+ .modal-actions {
506
+ display: flex;
507
+ align-items: center;
508
+ justify-content: space-between;
509
+ gap: 14px;
510
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
511
+ padding-top: 20px;
512
+ flex-wrap: wrap;
513
+ }
514
+ .modal-btn-view {
515
+ color: var(--accent-cyan);
516
+ font-weight: 600;
517
+ text-decoration: none;
518
+ font-size: 0.9rem;
519
+ display: inline-flex;
520
+ align-items: center;
521
+ gap: 6px;
522
+ }
523
+ .modal-btn-view:hover {
524
+ text-decoration: underline;
525
+ }
526
+
354
527
  @media (max-width: 768px) {
355
528
  .hero h1 { font-size: 2.4rem; }
356
529
  .catalog-grid { grid-template-columns: 1fr; }
530
+ .nav-links { gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
357
531
  }
358
532
  </style>
359
533
  </head>
@@ -364,11 +538,14 @@
364
538
  <div class="container nav-inner">
365
539
  <a href="#" class="brand">
366
540
  🪐 Everything Gemini
367
- <span class="brand-badge">v1.2.0</span>
541
+ <span class="brand-badge">v1.9.0</span>
368
542
  </a>
369
543
  <div class="nav-links">
370
544
  <a href="https://github.com/salmandev/everything-gemini" class="nav-link">GitHub</a>
371
545
  <a href="https://www.npmjs.com/package/everything-gemini" class="nav-link">NPM</a>
546
+ <a href="https://github.com/salmandev/everything-gemini/blob/main/CONTRIBUTING.md" class="nav-link" style="color: var(--accent-emerald); font-weight: 600;">✨ Contribute</a>
547
+ <a href="https://twitter.com/intent/tweet?text=%F0%9F%AA%90%20Everything%20Gemini%20v1.9.0%20is%20live%21%20The%20open-source%20multi-agent%20harness%20for%20Google%20Antigravity%20%26%20Gemini%203.8%20with%2056%20progressive%20skills%2C%2012%20subagents%2C%20and%207%20safety%20gates.%0A%0A%F0%9F%91%89%20https%3A%2F%2Fsalmandev.github.io%2Feverything-gemini%2F" target="_blank" class="nav-link" style="color: var(--accent-cyan); font-weight: 600;">🐦 Share on X</a>
548
+ <a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fsalmandev.github.io%2Feverything-gemini%2F" target="_blank" class="nav-link" style="color: #00a0dc; font-weight: 600;">💼 Share on LinkedIn</a>
372
549
  <a href="https://github.com/salmandev/everything-gemini" target="_blank" class="btn-github">
373
550
  ⭐ Star on GitHub
374
551
  </a>
@@ -387,6 +564,23 @@
387
564
  Battle-tested progressive disclosure skills, scoped subagent fleets, and deterministic lifecycle security gates engineered for Google Antigravity.
388
565
  </p>
389
566
 
567
+ <!-- Profile Tabs -->
568
+ <div class="profile-tabs">
569
+ <button class="profile-tab active" onclick="setInstallProfile('developer', event)">Developer</button>
570
+ <button class="profile-tab" onclick="setInstallProfile('core', event)">Core</button>
571
+ <button class="profile-tab" onclick="setInstallProfile('full', event)">Full Power</button>
572
+ <button class="profile-tab" onclick="setInstallProfile('sync', event)">Sync</button>
573
+ <button class="profile-tab" onclick="setInstallProfile('scaffold', event)">Scaffold</button>
574
+ <button class="profile-tab" onclick="setInstallProfile('bundle', event)">Offline Bundle</button>
575
+ <button class="profile-tab" onclick="setInstallProfile('global', event)">Global (~/.gemini)</button>
576
+ <button class="profile-tab" onclick="setInstallProfile('status', event)">Status Check</button>
577
+ <button class="profile-tab" onclick="setInstallProfile('update', event)">Update Ecosystem</button>
578
+ <button class="profile-tab" onclick="setInstallProfile('dryrun', event)">Dry Run Preview</button>
579
+ <button class="profile-tab" onclick="setInstallProfile('json', event)">JSON Export</button>
580
+ <button class="profile-tab" onclick="setInstallProfile('doctor', event)">Doctor</button>
581
+ <button class="profile-tab" onclick="setInstallProfile('action', event)">GitHub Action</button>
582
+ </div>
583
+
390
584
  <!-- Install box -->
391
585
  <div class="install-box">
392
586
  <div class="install-cmd">
@@ -399,33 +593,34 @@
399
593
  <!-- Metrics -->
400
594
  <div class="metrics">
401
595
  <div class="metric-card">
402
- <div class="metric-value">30+</div>
596
+ <div class="metric-value">56</div>
403
597
  <div class="metric-label">Progressive Skills</div>
404
598
  </div>
405
599
  <div class="metric-card">
406
- <div class="metric-value">6</div>
600
+ <div class="metric-value">12</div>
407
601
  <div class="metric-label">Scoped Subagents</div>
408
602
  </div>
409
603
  <div class="metric-card">
410
- <div class="metric-value">&gt;85%</div>
411
- <div class="metric-label">Token Overhead Saved</div>
604
+ <div class="metric-value">7</div>
605
+ <div class="metric-label">Lifecycle Hooks</div>
412
606
  </div>
413
607
  <div class="metric-card">
414
608
  <div class="metric-value">2M</div>
415
- <div class="metric-label">Context Caching Ready</div>
609
+ <div class="metric-label">Prefix Cache Tokens</div>
416
610
  </div>
417
611
  </div>
418
612
  </section>
419
613
 
420
614
  <!-- Filters & Search -->
421
615
  <section class="filter-section">
422
- <input type="text" id="search-input" class="search-bar" placeholder="🔍 Search skills, subagents, or hooks (e.g. multimodal, supabase, tdd, cloudflare)...">
616
+ <input type="text" id="search-input" class="search-bar" placeholder="🔍 Search skills, subagents, or hooks (e.g. multimodal, supabase, tdd, cloudflare, shield, lint)...">
423
617
  <div class="filter-pills">
424
- <button class="filter-btn active" onclick="filterCategory('all')">All Components</button>
425
- <button class="filter-btn" onclick="filterCategory('frontier')">Frontier & Vision</button>
426
- <button class="filter-btn" onclick="filterCategory('subagent')">Scoped Subagents</button>
427
- <button class="filter-btn" onclick="filterCategory('backend')">Backend & Cloud</button>
428
- <button class="filter-btn" onclick="filterCategory('devops')">DevOps & Safety</button>
618
+ <button class="filter-btn active" onclick="filterCategory('all', event)">All Components</button>
619
+ <button class="filter-btn" onclick="filterCategory('frontier', event)">Frontier & Vision</button>
620
+ <button class="filter-btn" onclick="filterCategory('subagent', event)">Scoped Subagents</button>
621
+ <button class="filter-btn" onclick="filterCategory('backend', event)">Backend & Cloud</button>
622
+ <button class="filter-btn" onclick="filterCategory('devops', event)">DevOps & Quality</button>
623
+ <button class="filter-btn" onclick="filterCategory('hook', event)">Lifecycle Hooks</button>
429
624
  </div>
430
625
  </section>
431
626
 
@@ -439,49 +634,120 @@
439
634
  <div class="container">
440
635
  <p>Built with 💙 for Google Antigravity & Gemini developers worldwide.</p>
441
636
  <p style="margin-top: 8px;">
442
- Licensed under <a href="https://github.com/salmandev/everything-gemini/blob/main/LICENSE">Apache 2.0</a> • Inspired by <a href="https://github.com/affaan-m/everything-claude-code">ECC</a>
637
+ Licensed under <a href="https://github.com/salmandev/everything-gemini/blob/main/LICENSE">Apache 2.0</a> • Inspired by <a href="https://github.com/affaan-m/everything-claude-code">ECC</a> • <a href="https://star-history.com/#salmandev/everything-gemini&Date" target="_blank">Star History ↗</a>
443
638
  </p>
444
639
  </div>
445
640
  </footer>
446
641
 
642
+ <!-- Quick-View Modal -->
643
+ <div id="quick-view-modal" class="modal-backdrop" onclick="closeModalOnBackdrop(event)">
644
+ <div class="modal-dialog">
645
+ <button class="modal-close" onclick="closeModal()">✕</button>
646
+ <div class="modal-header">
647
+ <span id="modal-tag" class="card-tag tag-frontier"></span>
648
+ <h2 id="modal-title"></h2>
649
+ </div>
650
+ <p id="modal-desc" class="modal-desc"></p>
651
+
652
+ <div style="font-size: 0.8rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px;">1-Click Install Command</div>
653
+ <div class="modal-cmd-box">
654
+ <div class="modal-cmd-text" id="modal-cmd"></div>
655
+ <button class="card-btn-copy" id="modal-copy-btn" onclick="copyModalCmd()">Copy CLI</button>
656
+ </div>
657
+
658
+ <div class="modal-actions">
659
+ <span style="font-size: 0.82rem; color: var(--text-muted);">Google Antigravity & Gemini 3.8</span>
660
+ <a id="modal-github-link" href="#" target="_blank" class="modal-btn-view">View Complete Source on GitHub ↗</a>
661
+ </div>
662
+ </div>
663
+ </div>
664
+
447
665
  <script>
448
666
  const items = [
449
- { name: "gemini-multimodal", type: "frontier", cat: "frontier", desc: "Native visual reasoning over UI mockups, converting wireframes to frontend code, diagram-to-Mermaid extraction, and visual regression QA." },
450
- { name: "context-caching", type: "frontier", cat: "frontier", desc: "1M-2M token context optimization with deterministic static prefix caching, skeleton ingestion, and ~75% cost savings." },
451
- { name: "gemini-grounding", type: "frontier", cat: "frontier", desc: "Live Google Search grounding to eliminate hallucinations, verify real-time APIs, and retrieve breaking documentation." },
452
- { name: "rag-architect", type: "frontier", cat: "frontier", desc: "Retrieval-augmented generation pipelines, semantic AST chunking, hybrid keyword-vector search, and Gemini re-ranking." },
453
- { name: "gemini-function-calling", type: "frontier", cat: "frontier", desc: "Production function declarations, structured JSON output schemas (Pydantic), parallel tool execution, and error recovery." },
667
+ // Frontier & Vision Skills (10)
668
+ { name: "gemini-multimodal", type: "skill", cat: "frontier", desc: "Native visual reasoning over UI mockups, converting wireframes to frontend code, diagram-to-Mermaid extraction, and visual regression QA." },
669
+ { name: "context-caching", type: "skill", cat: "frontier", desc: "1M-2M token context optimization with deterministic static prefix caching, skeleton ingestion, and ~75% cost savings." },
670
+ { name: "gemini-grounding", type: "skill", cat: "frontier", desc: "Live Google Search grounding to eliminate hallucinations, verify real-time APIs, and retrieve breaking documentation." },
671
+ { name: "rag-architect", type: "skill", cat: "frontier", desc: "Retrieval-augmented generation pipelines, semantic AST chunking, hybrid keyword-vector search, and Gemini re-ranking." },
672
+ { name: "gemini-function-calling", type: "skill", cat: "frontier", desc: "Production function declarations, structured JSON output schemas (Pydantic), parallel tool execution, and error recovery." },
454
673
  { name: "ai-first-engineering", type: "skill", cat: "frontier", desc: "Decomposing ambiguous specs into verifiable milestones, executable acceptance criteria (BDD), and blast-radius containment." },
674
+ { name: "agent-evals", type: "skill", cat: "frontier", desc: "Automated evaluation pipelines, LLM-as-a-judge rubrics, golden test datasets, and prompt regression testing." },
675
+ { name: "browser-qa-tester", type: "skill", cat: "frontier", desc: "Automated browser end-to-end testing with native WebP recording into artifacts for visual validation." },
676
+ { name: "continuous-learning", type: "skill", cat: "frontier", desc: "Adaptive Learned Instincts and Knowledge Item memory capturing developer corrections across sessions." },
677
+ { name: "repo-onboarding", type: "skill", cat: "frontier", desc: "Rapid codebase indexing, directory mapping, pattern extraction, and permanent Knowledge Item generation." },
678
+
679
+ // Scoped Subagents & Orchestration (13)
455
680
  { name: "subagent-handoff", type: "skill", cat: "subagent", desc: "Delegation protocol for multi-agent workflows with scoped context isolation and deterministic structured report synthesis." },
681
+ { name: "architecture-designer", type: "skill", cat: "subagent", desc: "Comprehensive system design architectures, Mermaid diagrams, API contracts, and Architecture Decision Records (ADRs)." },
682
+ { name: "langgraph-orchestrator", type: "skill", cat: "subagent", desc: "Stateful multi-agent systems, cyclic graphs, persistent checkpoints, human-in-the-loop pauses, and streaming orchestration." },
683
+ { name: "antigravity-sdk-orchestrator", type: "skill", cat: "subagent", desc: "Programmatic multi-agent pipelines with the official google-antigravity Python SDK and token streaming." },
456
684
  { name: "agents/planner", type: "subagent", cat: "subagent", desc: "Strategic architect that breaks complex tasks into phased roadmaps with dependency mapping and risk radius assessment." },
457
685
  { name: "agents/code-reviewer", type: "subagent", cat: "subagent", desc: "Uncompromising reviewer enforcing minimal diffs, zero regression, strict typing, and defensive edge-case handling." },
458
686
  { name: "agents/browser-qa", type: "subagent", cat: "subagent", desc: "Autonomous UI tester driving browser_subagent with automatic WebP recording and DOM assertions into artifacts." },
459
687
  { name: "agents/build-repair", type: "subagent", cat: "subagent", desc: "Automated triage specialist isolating compiler errors and failing unit tests with surgical minimal fixes." },
460
688
  { name: "agents/security-auditor", type: "subagent", cat: "subagent", desc: "Adversarial security specialist scanning for credential leakage, injection risks, and dependency CVEs." },
461
689
  { name: "agents/architect", type: "subagent", cat: "subagent", desc: "Systems designer authoring C4 Mermaid diagrams, formal API contracts, and Architecture Decision Records (ADRs)." },
462
- { name: "github-ops", type: "skill", cat: "devops", desc: "End-to-end GitHub PR generation, automated diff review, semantic release drafting, and issue triage with gh CLI & GitHub MCP." },
690
+ { name: "agents/database-migrator", type: "subagent", cat: "subagent", desc: "Dedicated database schema evolution specialist designing zero-downtime expand/contract SQL migrations and rollback safety." },
691
+ { name: "agents/performance-tuner", type: "subagent", cat: "subagent", desc: "Systems performance specialist diagnosing flamegraphs, memory leaks, slow database query plans, and N+1 waterfalls." },
692
+ { name: "agents/documentation-writer", type: "subagent", cat: "subagent", desc: "Specialist authoring developer docs, API references, ADRs, changelogs, and verifying clickable file:// links." },
693
+ { name: "agents/release-engineer", type: "subagent", cat: "subagent", desc: "Release gatekeeper managing Semantic Versioning, automated changelogs, build checksums, git tagging, and canary rollouts." },
694
+ { name: "agents/incident-responder", type: "subagent", cat: "subagent", desc: "SRE incident commander triaging alerts, correlating OTel spans, containing blast radius, and generating blameless postmortems." },
695
+ { name: "agents/platform-engineer", type: "subagent", cat: "subagent", desc: "Cloud platform & IDP specialist authoring Terraform/OpenTofu, Kubernetes manifests, zero-trust network policies, and container right-sizing." },
696
+
697
+ // Backend & Cloud Skills (31)
698
+ { name: "milvus-vector-clustering", type: "skill", cat: "backend", desc: "Enterprise Milvus vector clustering, HNSW/IVF-PQ indexing, hybrid dense-sparse search, and dynamic partition keys." },
699
+ { name: "cloudflare-r2-object-storage", type: "skill", cat: "backend", desc: "Zero-egress fee object storage, S3-compatible APIs, pre-signed upload URLs, and Workers edge CDN caching." },
700
+ { name: "vault-secrets-management", type: "skill", cat: "backend", desc: "HashiCorp Vault enterprise secrets orchestration, AppRole authentication, dynamic ephemeral DB credentials, and PKI mTLS." },
701
+ { name: "distributed-rate-limiting", type: "skill", cat: "backend", desc: "High-throughput distributed rate limiting using Redis sliding window logs, token buckets, and RFC 6585 compliance." },
702
+ { name: "vllm-inference", type: "skill", cat: "backend", desc: "High-throughput LLM inference, PagedAttention KV cache, continuous batching, tensor parallelism, and OpenAI-compatible API serving." },
703
+ { name: "debezium-cdc", type: "skill", cat: "backend", desc: "Change Data Capture (CDC) streaming with Debezium, PostgreSQL WAL replication, Kafka Connect, and transactional outbox patterns." },
704
+ { name: "cilium-ebpf-networking", type: "skill", cat: "backend", desc: "Cloud-native eBPF networking, Kubernetes CNI replacement, transparent mTLS, L7 CiliumNetworkPolicies, and Hubble observability." },
705
+ { name: "litellm-proxy-gateway", type: "skill", cat: "backend", desc: "Enterprise LLM proxy gateway, multi-provider routing (Gemini, Claude, OpenAI), budget controls, virtual keys, and fallback cascades." },
706
+ { name: "open-telemetry-tracing", type: "skill", cat: "backend", desc: "Distributed tracing, OTLP exporters, W3C traceparent propagation, custom span attributes, and metric correlations." },
707
+ { name: "argo-workflows", type: "skill", cat: "backend", desc: "Kubernetes-native DAG workflows, artifact passing, container steps, retry strategies, and CronWorkflows." },
708
+ { name: "dbt-transformation", type: "skill", cat: "backend", desc: "Modular SQL transformations, Jinja macros, semantic layer models, automated schema tests, and documentation generation." },
709
+ { name: "apache-kafka-streams", type: "skill", cat: "backend", desc: "Exactly-once event streaming, stateful window aggregations, consumer group rebalancing, and Schema Registry serialization." },
710
+ { name: "grpc-connect-rpc", type: "skill", cat: "backend", desc: "Lightweight, browser-compatible gRPC and Protocol Buffers with Connect-ES / Connect-Go and HTTP/2-3 streaming." },
711
+ { name: "duckdb-local-olap", type: "skill", cat: "backend", desc: "In-process embedded SQL analytics, direct S3/Parquet querying, and zero-copy Apache Arrow integration." },
712
+ { name: "nats-jetstream", type: "skill", cat: "backend", desc: "Ultra-low latency event streaming, message deduplication, durable pull consumer groups, and KV stores." },
713
+ { name: "axum-web-service", type: "skill", cat: "backend", desc: "Production Rust web APIs using Axum, Tokio async runtime, Tower middlewares, and SQLx connection pools." },
714
+ { name: "clickhouse-analytics", type: "skill", cat: "backend", desc: "High-throughput OLAP schemas, MergeTree engines, Kafka streaming ingestion, and vector similarity search." },
715
+ { name: "temporal-workflows", type: "skill", cat: "backend", desc: "Durable workflow orchestration, resilient async activities, saga compensations, and child workflows." },
716
+ { name: "trpc-react-query", type: "skill", cat: "backend", desc: "End-to-end type safety with tRPC v11 routers, TanStack Query v5 cache management, and optimistic UI mutations." },
717
+ { name: "wasm-rust-optimizer", type: "skill", cat: "backend", desc: "High-performance WebAssembly compilation from Rust using wasm-pack, zero-copy memory buffers, and SIMD." },
463
718
  { name: "supabase-architect", type: "skill", cat: "backend", desc: "Row Level Security (RLS) policies, pgvector embeddings for semantic AI search, and performant Supabase Edge Functions." },
719
+ { name: "fastapi-production", type: "skill", cat: "backend", desc: "Production async FastAPI architecture, Pydantic v2 schemas, lifespan handlers, JWT auth, and Kubernetes health probes." },
720
+ { name: "redis-cache-patterns", type: "skill", cat: "backend", desc: "Enterprise Redis caching (cache-aside, jitter), distributed locking with atomic Lua, sliding-window rate limiting, and streams." },
721
+ { name: "svelte-kit-architect", type: "skill", cat: "backend", desc: "Modern SvelteKit applications using Svelte 5 runes ($state, $derived, $effect), SSR/prerendering, and progressive form actions." },
464
722
  { name: "cloudflare-workers", type: "skill", cat: "backend", desc: "Serverless edge functions, Wrangler v3 configuration, Cloudflare D1 SQL, and KV low-latency storage." },
465
723
  { name: "database-architect", type: "skill", cat: "backend", desc: "Relational and document schema modeling, zero-downtime expand/contract migrations, and concurrent indexing." },
466
724
  { name: "api-craftsman", type: "skill", cat: "backend", desc: "Production-grade REST APIs, OpenAPI 3.1 specifications, gRPC protobuf schemas, and RFC 7807 error envelopes." },
467
725
  { name: "fullstack-nextjs", type: "skill", cat: "backend", desc: "Next.js App Router, React Server Components (RSC), hydration error diagnosis, and Server Actions." },
468
726
  { name: "stripe-integration", type: "skill", cat: "backend", desc: "Cryptographic webhook signature verification, idempotent checkouts, and customer billing portal sessions." },
727
+ { name: "graphql-architect", type: "skill", cat: "backend", desc: "Schema-first GraphQL APIs, DataLoader N+1 query batching, and Relay cursor-based pagination." },
728
+ { name: "responsive-design", type: "skill", cat: "backend", desc: "Fluid typography, mobile-first flex/grid layouts, media queries, and cross-browser accessibility." },
729
+
730
+ // DevOps & Quality Skills (11)
731
+ { name: "playwright-visual-regression", type: "skill", cat: "devops", desc: "Automated visual regression testing, pixelmatch snapshot diffing, cross-browser viewport matrices, and Docker baseline stability." },
732
+ { name: "turborepo-monorepo", type: "skill", cat: "devops", desc: "High-performance monorepo build caching, task pipelines, package boundaries, and Docker pruning." },
733
+ { name: "github-ops", type: "skill", cat: "devops", desc: "End-to-end GitHub PR generation, automated diff review, semantic release drafting, and issue triage with gh CLI & GitHub MCP." },
734
+ { name: "docker-compose-orchestrator", type: "skill", cat: "devops", desc: "Multi-container local environments, database services (Postgres, pgvector, Redis), and healthcheck wiring." },
469
735
  { name: "kubernetes-operator", type: "skill", cat: "devops", desc: "Declarative production Kubernetes manifests, HPA autoscaling, zero-downtime rolling updates, and health probes." },
470
736
  { name: "devops-pipeline", type: "skill", cat: "devops", desc: "Multi-stage Dockerfiles, GitHub Actions CI/CD workflows, and container infrastructure automation." },
471
- { name: "gemini-shield", type: "hook", cat: "devops", desc: "Deterministic PreToolUse lifecycle gate blocking catastrophic commands (rm -rf, DROP TABLE, git push --force)." },
472
737
  { name: "security-audit", type: "skill", cat: "devops", desc: "OWASP Top 10 security audits, secret leakage detection, and dependency vulnerability scans." },
473
738
  { name: "tdd-workflow", type: "skill", cat: "devops", desc: "Strict Test-Driven Development (Red-Green-Refactor) loop ensuring tests exist before code is written." },
474
739
  { name: "root-cause-debugger", type: "skill", cat: "devops", desc: "Systematic regression diagnosis using binary search (git bisect), log traces, and minimal reproduction harnesses." },
475
- { name: "browser-qa-tester", type: "skill", cat: "frontier", desc: "Automated browser end-to-end testing with native WebP recording for visual validation." },
476
- { name: "agent-evals", type: "skill", cat: "frontier", desc: "Automated evaluation pipelines, LLM-as-a-judge rubrics, golden test datasets, and prompt regression testing." },
477
740
  { name: "git-craftsman", type: "skill", cat: "devops", desc: "Conventional atomic commits, interactive rebasing, clean branch lifecycles, and git hygiene." },
478
- { name: "docker-compose-orchestrator", type: "skill", cat: "devops", desc: "Multi-container local environments, database services (Postgres, pgvector, Redis), and healthcheck wiring." },
479
- { name: "graphql-architect", type: "skill", cat: "backend", desc: "Schema-first GraphQL APIs, DataLoader N+1 query batching, and Relay cursor-based pagination." },
480
741
  { name: "performance-profiler", type: "skill", cat: "devops", desc: "Application latency profiling, CPU/memory leak diagnosis, and slow query optimization." },
481
- { name: "continuous-learning", type: "skill", cat: "frontier", desc: "Adaptive Learned Instincts and Knowledge Item memory capturing developer corrections across sessions." },
482
- { name: "repo-onboarding", type: "skill", cat: "frontier", desc: "Rapid codebase indexing, directory mapping, pattern extraction, and Knowledge Item generation." },
483
- { name: "antigravity-sdk-orchestrator", type: "skill", cat: "subagent", desc: "Programmatic multi-agent pipelines with the official google-antigravity Python SDK and token streaming." },
484
- { name: "responsive-design", type: "skill", cat: "backend", desc: "Fluid typography, mobile-first flex/grid layouts, media queries, and cross-browser accessibility." }
742
+
743
+ // Lifecycle Safety Hooks (7)
744
+ { name: "gemini-shield", type: "hook", cat: "hook", desc: "Deterministic PreToolUse lifecycle gate blocking catastrophic commands (rm -rf, DROP TABLE, git push --force)." },
745
+ { name: "safety-shield", type: "hook", cat: "hook", desc: "PreToolUse shell execution firewall that inspects CLI commands against safety rules before execution." },
746
+ { name: "secret-scrubber", type: "hook", cat: "hook", desc: "PreToolUse security gate intercepting file write operations to block hardcoded API keys and private secrets." },
747
+ { name: "auto-lint-formatter", type: "hook", cat: "hook", desc: "PostToolUse automated formatting with project linters (prettier, black, ruff, gofmt) immediately after file edits." },
748
+ { name: "goal-verifier", type: "hook", cat: "hook", desc: "Stop hook intercepting agent exit, validating whether test suites pass or objectives are fulfilled before stopping." },
749
+ { name: "ephemeral-context", type: "hook", cat: "hook", desc: "PreInvocation hook dynamically injecting repo context, alerts, and instructions into model reasoning turns." },
750
+ { name: "learned-instincts", type: "hook", cat: "hook", desc: "Session learning hook that records developer corrections and feedback into persistent instincts." }
485
751
  ];
486
752
 
487
753
  let currentCat = 'all';
@@ -491,6 +757,7 @@
491
757
  if (cat === 'frontier') return 'tag-frontier';
492
758
  if (cat === 'subagent') return 'tag-agent';
493
759
  if (cat === 'backend') return 'tag-backend';
760
+ if (cat === 'hook') return 'tag-hook';
494
761
  return 'tag-devops';
495
762
  }
496
763
 
@@ -511,27 +778,130 @@
511
778
  }
512
779
 
513
780
  filtered.forEach(item => {
781
+ let githubUrl = "https://github.com/salmandev/everything-gemini";
782
+ let addCmd = `everything-gemini add skill ${item.name}`;
783
+
784
+ if (item.type === 'subagent' || item.name.startsWith('agents/')) {
785
+ const agentClean = item.name.replace('agents/', '');
786
+ githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/agents/${agentClean}.md`;
787
+ addCmd = `everything-gemini add agent ${agentClean}`;
788
+ } else if (item.name === 'antigravity-sdk-orchestrator') {
789
+ githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/plugins/python-ai/skills/antigravity-sdk-orchestrator/SKILL.md`;
790
+ addCmd = `everything-gemini add skill antigravity-sdk-orchestrator`;
791
+ } else if (item.name === 'responsive-design') {
792
+ githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/plugins/web-fullstack/skills/responsive-design/SKILL.md`;
793
+ addCmd = `everything-gemini add skill responsive-design`;
794
+ } else if (item.type === 'hook') {
795
+ githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/hooks/${item.name}/hooks.json`;
796
+ addCmd = `everything-gemini add hook ${item.name}`;
797
+ } else {
798
+ githubUrl = `https://github.com/salmandev/everything-gemini/blob/main/skills/${item.name}/SKILL.md`;
799
+ addCmd = `everything-gemini add skill ${item.name}`;
800
+ }
801
+
802
+ let tagLabel = '⚡ Skill';
803
+ if (item.type === 'subagent' || item.name.startsWith('agents/')) tagLabel = '🤖 Subagent';
804
+ else if (item.cat === 'frontier') tagLabel = '🪐 Frontier';
805
+ else if (item.cat === 'backend') tagLabel = '☁️ Backend';
806
+ else if (item.type === 'hook') tagLabel = '🛡️ Hook';
807
+ else if (item.cat === 'devops') tagLabel = '🛠️ DevOps';
808
+
514
809
  const card = document.createElement('div');
515
810
  card.className = 'card';
811
+ card.onclick = (e) => {
812
+ if (!e.target.closest('.card-actions')) {
813
+ openModal(item, tagLabel, githubUrl, addCmd);
814
+ }
815
+ };
516
816
  card.innerHTML = `
517
817
  <div>
518
- <span class="card-tag ${getTagClass(item.cat)}">${item.cat.toUpperCase()}</span>
818
+ <span class="card-tag ${getTagClass(item.cat)}">${tagLabel}</span>
519
819
  <h3>${item.name}</h3>
520
820
  <p>${item.desc}</p>
521
821
  </div>
522
- <div class="card-footer">
523
- <span>Google Antigravity</span>
524
- <span style="color: var(--accent-cyan);">Ready ⚡</span>
822
+ <div class="card-actions">
823
+ <a href="${githubUrl}" target="_blank" class="card-btn-view" onclick="event.stopPropagation()">View Spec ↗</a>
824
+ <button class="card-btn-copy" onclick="event.stopPropagation(); copyCardCmd('${addCmd}', this)">Copy Add CLI</button>
525
825
  </div>
526
826
  `;
527
827
  container.appendChild(card);
528
828
  });
529
829
  }
530
830
 
531
- function filterCategory(cat) {
831
+ function openModal(item, tagLabel, githubUrl, addCmd) {
832
+ document.getElementById('modal-tag').className = 'card-tag ' + getTagClass(item.cat);
833
+ document.getElementById('modal-tag').innerText = tagLabel;
834
+ document.getElementById('modal-title').innerText = item.name;
835
+ document.getElementById('modal-desc').innerText = item.desc;
836
+ document.getElementById('modal-cmd').innerText = addCmd;
837
+ document.getElementById('modal-github-link').href = githubUrl;
838
+ const copyBtn = document.getElementById('modal-copy-btn');
839
+ copyBtn.innerText = 'Copy CLI';
840
+ copyBtn.style.color = '';
841
+ copyBtn.style.borderColor = '';
842
+ document.getElementById('quick-view-modal').classList.add('open');
843
+ document.body.style.overflow = 'hidden';
844
+ }
845
+
846
+ function closeModal() {
847
+ document.getElementById('quick-view-modal').classList.remove('open');
848
+ document.body.style.overflow = '';
849
+ }
850
+
851
+ function closeModalOnBackdrop(e) {
852
+ if (e.target.id === 'quick-view-modal') {
853
+ closeModal();
854
+ }
855
+ }
856
+
857
+ document.addEventListener('keydown', (e) => {
858
+ if (e.key === 'Escape') closeModal();
859
+ });
860
+
861
+ function copyModalCmd() {
862
+ const text = document.getElementById('modal-cmd').innerText;
863
+ const btn = document.getElementById('modal-copy-btn');
864
+ copyCardCmd(text, btn);
865
+ }
866
+
867
+ function setInstallProfile(profile, ev) {
868
+ document.querySelectorAll('.profile-tab').forEach(t => t.classList.remove('active'));
869
+ if (ev && ev.target) ev.target.classList.add('active');
870
+ const cmdEl = document.getElementById('cmd-text');
871
+ if (profile === 'developer') cmdEl.innerText = 'npx everything-gemini install --profile developer';
872
+ else if (profile === 'core') cmdEl.innerText = 'npx everything-gemini install --profile core';
873
+ else if (profile === 'full') cmdEl.innerText = 'npx everything-gemini install --profile full';
874
+ else if (profile === 'sync') cmdEl.innerText = 'npx everything-gemini sync';
875
+ else if (profile === 'scaffold') cmdEl.innerText = 'npx everything-gemini scaffold skill my-skill';
876
+ else if (profile === 'bundle') cmdEl.innerText = 'npx everything-gemini bundle';
877
+ else if (profile === 'global') cmdEl.innerText = 'npx everything-gemini install --global';
878
+ else if (profile === 'status') cmdEl.innerText = 'npx everything-gemini status';
879
+ else if (profile === 'update') cmdEl.innerText = 'npx everything-gemini update';
880
+ else if (profile === 'dryrun') cmdEl.innerText = 'npx everything-gemini install --profile developer --dry-run';
881
+ else if (profile === 'json') cmdEl.innerText = 'npx everything-gemini status --json';
882
+ else if (profile === 'doctor') cmdEl.innerText = 'npx everything-gemini doctor';
883
+ else if (profile === 'action') cmdEl.innerText = '- uses: salmandev/everything-gemini@v1';
884
+ }
885
+
886
+ function copyCardCmd(cmd, btn) {
887
+ navigator.clipboard.writeText(cmd);
888
+ const original = btn.innerText;
889
+ btn.innerText = 'Copied! ✔';
890
+ btn.style.color = '#00e676';
891
+ btn.style.borderColor = '#00e676';
892
+ setTimeout(() => {
893
+ btn.innerText = original;
894
+ btn.style.color = '';
895
+ btn.style.borderColor = '';
896
+ }, 1500);
897
+ }
898
+
899
+ function filterCategory(cat, ev) {
532
900
  currentCat = cat;
533
901
  document.querySelectorAll('.filter-btn').forEach(btn => btn.classList.remove('active'));
534
- event.target.classList.add('active');
902
+ if (ev && ev.target) {
903
+ ev.target.classList.add('active');
904
+ }
535
905
  renderCards();
536
906
  }
537
907