vibes-plug 1.0.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 (141) hide show
  1. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  2. package/BLUEPRINT.md +125 -0
  3. package/CHANGELOG.md +195 -0
  4. package/CONTRIBUTING.md +199 -0
  5. package/LICENSE +21 -0
  6. package/README.md +263 -0
  7. package/SECURITY.md +21 -0
  8. package/banner.png +0 -0
  9. package/package.json +25 -0
  10. package/plugin.json +8 -0
  11. package/scripts/update_skills.js +75 -0
  12. package/skills/ai-llm-integration-expert/SKILL.md +162 -0
  13. package/skills/api-design-expert/SKILL.md +310 -0
  14. package/skills/app-analyzer-optimizer/SKILL.md +189 -0
  15. package/skills/asisten_ramah/SKILL.md +41 -0
  16. package/skills/authentication-identity-expert/SKILL.md +45 -0
  17. package/skills/auto-doc-updater/SKILL.md +204 -0
  18. package/skills/bootstrap-to-modern/SKILL.md +87 -0
  19. package/skills/brainstorming/SKILL.md +353 -0
  20. package/skills/bun-runtime-expert/SKILL.md +211 -0
  21. package/skills/ci-cd-devops-architect/SKILL.md +45 -0
  22. package/skills/cloud-hosting-expert/SKILL.md +244 -0
  23. package/skills/coderabbit/SKILL.md +192 -0
  24. package/skills/data-telemetry-expert/SKILL.md +213 -0
  25. package/skills/database-orm-expert/SKILL.md +294 -0
  26. package/skills/design-system-architect/SKILL.md +243 -0
  27. package/skills/e2e-testing-expert/SKILL.md +315 -0
  28. package/skills/event-driven-architect/SKILL.md +81 -0
  29. package/skills/firebase-security-expert/SKILL.md +195 -0
  30. package/skills/fullstack-expert/SKILL.md +202 -0
  31. package/skills/fullstack-expert/references/api_design_guide.md +466 -0
  32. package/skills/fullstack-expert/references/devops_infrastructure.md +477 -0
  33. package/skills/fullstack-expert/references/multi_language_backend.md +528 -0
  34. package/skills/fullstack-expert/references/system_design_patterns.md +358 -0
  35. package/skills/fullstack-expert/scripts/api_contract_validator.py +253 -0
  36. package/skills/fullstack-expert/scripts/architecture_analyzer.py +326 -0
  37. package/skills/gemini-agent-booster/SKILL.md +135 -0
  38. package/skills/global-a11y-i18n-expert/SKILL.md +81 -0
  39. package/skills/go-programming-expert/SKILL.md +295 -0
  40. package/skills/hig/SKILL.md +188 -0
  41. package/skills/js-backend-expert/SKILL.md +192 -0
  42. package/skills/mcp-server-architect/SKILL.md +194 -0
  43. package/skills/mobile-expo-expert/SKILL.md +186 -0
  44. package/skills/monday-design-aesthetic/SKILL.md +67 -0
  45. package/skills/monorepo-architect/SKILL.md +227 -0
  46. package/skills/mpa-orchestrator/SKILL.md +101 -0
  47. package/skills/multi-agent-orchestration/SKILL.md +234 -0
  48. package/skills/multiple-entry-points/SKILL.md +55 -0
  49. package/skills/mvc-expert/SKILL.md +231 -0
  50. package/skills/payment-gateway-expert/SKILL.md +45 -0
  51. package/skills/performance-web-vitals/SKILL.md +332 -0
  52. package/skills/prd-architect/SKILL.md +191 -0
  53. package/skills/production-ready-hardener/SKILL.md +469 -0
  54. package/skills/production-ready-hardener/references/performance_optimization.md +441 -0
  55. package/skills/production-ready-hardener/references/production_checklist.md +161 -0
  56. package/skills/production-ready-hardener/references/security_hardening_guide.md +379 -0
  57. package/skills/production-ready-hardener/scripts/production_readiness_scanner.py +875 -0
  58. package/skills/python-programming-expert/SKILL.md +271 -0
  59. package/skills/realtime-collaboration-expert/SKILL.md +45 -0
  60. package/skills/rust-programming-expert/SKILL.md +235 -0
  61. package/skills/saas-billing/SKILL.md +377 -0
  62. package/skills/saas-multi-tenant/SKILL.md +237 -0
  63. package/skills/saas-mvp-launcher/SKILL.md +231 -0
  64. package/skills/saas-transformer/SKILL.md +446 -0
  65. package/skills/saas-transformer/references/billing_integration_guide.md +401 -0
  66. package/skills/saas-transformer/references/feature_gating_patterns.md +137 -0
  67. package/skills/saas-transformer/references/saas_transformation_checklist.md +121 -0
  68. package/skills/saas-transformer/scripts/saas_transformation_scanner.py +254 -0
  69. package/skills/scalability-clean-code/SKILL.md +229 -0
  70. package/skills/secure-fuzz-testing/SKILL.md +201 -0
  71. package/skills/senior-frontend/SKILL.md +161 -0
  72. package/skills/senior-frontend/references/frontend_best_practices.md +806 -0
  73. package/skills/senior-frontend/references/nextjs_optimization_guide.md +724 -0
  74. package/skills/senior-frontend/references/react_patterns.md +746 -0
  75. package/skills/senior-frontend/scripts/bundle_analyzer.py +407 -0
  76. package/skills/senior-frontend/scripts/component_generator.py +329 -0
  77. package/skills/senior-frontend/scripts/frontend_scaffolder.py +1005 -0
  78. package/skills/senior-fullstack/SKILL.md +167 -0
  79. package/skills/senior-fullstack/references/architecture_patterns.md +160 -0
  80. package/skills/senior-fullstack/references/development_workflows.md +222 -0
  81. package/skills/senior-fullstack/references/tech_stack_guide.md +190 -0
  82. package/skills/senior-fullstack/scripts/code_quality_analyzer.py +114 -0
  83. package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +114 -0
  84. package/skills/senior-fullstack/scripts/project_scaffolder.py +114 -0
  85. package/skills/seo/SKILL.md +225 -0
  86. package/skills/seo/references/cwv-thresholds.md +108 -0
  87. package/skills/seo/references/eeat-framework.md +214 -0
  88. package/skills/seo/references/quality-gates.md +155 -0
  89. package/skills/seo/references/schema-types.md +118 -0
  90. package/skills/seo-aeo-landing-page-writer/SKILL.md +97 -0
  91. package/skills/seo-geo/SKILL.md +188 -0
  92. package/skills/session-handoff-resume/SKILL.md +158 -0
  93. package/skills/skill_baru/SKILL.md +147 -0
  94. package/skills/spa-orchestrator/SKILL.md +288 -0
  95. package/skills/state-management-expert/SKILL.md +272 -0
  96. package/skills/supabase-migration/SKILL.md +45 -0
  97. package/skills/supabase-security-expert/SKILL.md +243 -0
  98. package/skills/tailwind-expert/SKILL.md +188 -0
  99. package/skills/tanstack-query-expert/SKILL.md +199 -0
  100. package/skills/tauri-expert/SKILL.md +97 -0
  101. package/skills/token-saver/SKILL.md +111 -0
  102. package/skills/typescript-expert/SKILL.md +279 -0
  103. package/skills/ui-components-expert/SKILL.md +63 -0
  104. package/skills/ui-ux-pro-max/SKILL.md +201 -0
  105. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  106. package/skills/ui-ux-pro-max/data/colors.csv +97 -0
  107. package/skills/ui-ux-pro-max/data/icons.csv +101 -0
  108. package/skills/ui-ux-pro-max/data/landing.csv +31 -0
  109. package/skills/ui-ux-pro-max/data/products.csv +97 -0
  110. package/skills/ui-ux-pro-max/data/prompts.csv +24 -0
  111. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  112. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  113. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  114. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  115. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  116. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  117. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  118. package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  119. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  120. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  121. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  122. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  123. package/skills/ui-ux-pro-max/data/styles.csv +59 -0
  124. package/skills/ui-ux-pro-max/data/typography.csv +58 -0
  125. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  126. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  127. package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  128. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  129. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  130. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
  131. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  132. package/skills/ui-ux-pro-max/scripts/core.py +257 -0
  133. package/skills/ui-ux-pro-max/scripts/design_system.py +493 -0
  134. package/skills/ui-ux-pro-max/scripts/search.py +81 -0
  135. package/skills/ui_ux_expert/SKILL.md +114 -0
  136. package/skills/vibe-code-gardener/SKILL.md +173 -0
  137. package/skills/web-scraper/SKILL.md +205 -0
  138. package/skills/web-scraper/references/data-transforms.md +397 -0
  139. package/skills/web-scraper/references/extraction-patterns.md +475 -0
  140. package/skills/web-scraper/references/output-templates.md +481 -0
  141. package/skills/zero-to-prod-orchestrator/SKILL.md +180 -0
@@ -0,0 +1,326 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Fullstack Architecture Analyzer
4
+ Analyzes fullstack project structure, detects anti-patterns, and validates architecture health.
5
+ """
6
+
7
+ import os
8
+ import sys
9
+ import json
10
+ import argparse
11
+ from pathlib import Path
12
+ from typing import Dict, List, Optional
13
+
14
+
15
+ class ArchitectureAnalyzer:
16
+ """Analyzes fullstack project architecture for anti-patterns and best practices."""
17
+
18
+ # Common fullstack project indicators
19
+ FRONTEND_MARKERS = {
20
+ 'package.json', 'next.config.js', 'next.config.ts', 'next.config.mjs',
21
+ 'vite.config.ts', 'vite.config.js', 'nuxt.config.ts', 'svelte.config.js',
22
+ 'astro.config.mjs',
23
+ }
24
+ BACKEND_MARKERS = {
25
+ 'requirements.txt', 'pyproject.toml', 'go.mod', 'Cargo.toml',
26
+ 'pom.xml', 'build.gradle', 'Gemfile',
27
+ }
28
+ INFRA_MARKERS = {
29
+ 'Dockerfile', 'docker-compose.yml', 'docker-compose.yaml',
30
+ 'terraform.tf', 'main.tf', 'pulumi.yaml', 'serverless.yml',
31
+ 'k8s/', 'kubernetes/', 'helm/',
32
+ }
33
+ CONFIG_MARKERS = {
34
+ '.env', '.env.example', '.env.local',
35
+ 'tsconfig.json', 'eslint.config.js', '.eslintrc.js',
36
+ }
37
+
38
+ def __init__(self, target_path: str, verbose: bool = False):
39
+ self.target_path = Path(target_path)
40
+ self.verbose = verbose
41
+ self.results: Dict = {
42
+ 'status': 'pending',
43
+ 'target': str(self.target_path),
44
+ 'stack': {},
45
+ 'findings': [],
46
+ 'score': 100,
47
+ }
48
+
49
+ def run(self) -> Dict:
50
+ """Execute the full architecture analysis."""
51
+ print(f"🏗️ Running Architecture Analyzer...")
52
+ print(f"📁 Target: {self.target_path}")
53
+
54
+ try:
55
+ self.validate_target()
56
+ self.detect_stack()
57
+ self.check_project_structure()
58
+ self.check_security_basics()
59
+ self.check_database_patterns()
60
+ self.check_testing_setup()
61
+ self.check_ci_cd()
62
+ self.check_docker_setup()
63
+ self.generate_report()
64
+
65
+ self.results['status'] = 'success'
66
+ print("✅ Analysis completed!")
67
+ return self.results
68
+
69
+ except Exception as e:
70
+ print(f"❌ Error: {e}")
71
+ sys.exit(1)
72
+
73
+ def validate_target(self):
74
+ """Validate the target path exists."""
75
+ if not self.target_path.exists():
76
+ raise ValueError(f"Target path does not exist: {self.target_path}")
77
+ if self.verbose:
78
+ print(f"✓ Target validated: {self.target_path}")
79
+
80
+ def detect_stack(self):
81
+ """Detect the technology stack used in the project."""
82
+ stack = {'frontend': [], 'backend': [], 'infrastructure': [], 'database': []}
83
+
84
+ # Check for frontend frameworks
85
+ if (self.target_path / 'next.config.js').exists() or \
86
+ (self.target_path / 'next.config.ts').exists() or \
87
+ (self.target_path / 'next.config.mjs').exists():
88
+ stack['frontend'].append('Next.js')
89
+
90
+ if (self.target_path / 'vite.config.ts').exists() or \
91
+ (self.target_path / 'vite.config.js').exists():
92
+ stack['frontend'].append('Vite')
93
+
94
+ if (self.target_path / 'nuxt.config.ts').exists():
95
+ stack['frontend'].append('Nuxt')
96
+
97
+ # Check for backend languages
98
+ if (self.target_path / 'go.mod').exists():
99
+ stack['backend'].append('Go')
100
+ if (self.target_path / 'Cargo.toml').exists():
101
+ stack['backend'].append('Rust')
102
+ if (self.target_path / 'pyproject.toml').exists() or \
103
+ (self.target_path / 'requirements.txt').exists():
104
+ stack['backend'].append('Python')
105
+
106
+ # Check package.json for more details
107
+ pkg_json = self.target_path / 'package.json'
108
+ if pkg_json.exists():
109
+ try:
110
+ with open(pkg_json) as f:
111
+ pkg = json.load(f)
112
+ deps = {**pkg.get('dependencies', {}), **pkg.get('devDependencies', {})}
113
+
114
+ if 'drizzle-orm' in deps:
115
+ stack['database'].append('Drizzle ORM')
116
+ if 'prisma' in deps or '@prisma/client' in deps:
117
+ stack['database'].append('Prisma')
118
+ if 'hono' in deps:
119
+ stack['backend'].append('Hono')
120
+ if 'fastify' in deps:
121
+ stack['backend'].append('Fastify')
122
+ if 'express' in deps:
123
+ stack['backend'].append('Express')
124
+ except (json.JSONDecodeError, IOError):
125
+ pass
126
+
127
+ # Check for infrastructure
128
+ if (self.target_path / 'Dockerfile').exists():
129
+ stack['infrastructure'].append('Docker')
130
+ if (self.target_path / 'docker-compose.yml').exists() or \
131
+ (self.target_path / 'docker-compose.yaml').exists():
132
+ stack['infrastructure'].append('Docker Compose')
133
+ if (self.target_path / 'main.tf').exists():
134
+ stack['infrastructure'].append('Terraform')
135
+
136
+ self.results['stack'] = stack
137
+ if self.verbose:
138
+ print(f"✓ Stack detected: {stack}")
139
+
140
+ def check_project_structure(self):
141
+ """Check for proper project structure and organization."""
142
+ # Check for src/ or app/ directory
143
+ has_src = (self.target_path / 'src').is_dir()
144
+ has_app = (self.target_path / 'app').is_dir()
145
+ has_lib = (self.target_path / 'lib').is_dir()
146
+
147
+ if not has_src and not has_app:
148
+ self._add_finding('warning', 'Missing organized source directory (src/ or app/)')
149
+
150
+ # Check for proper separation of concerns
151
+ if has_src:
152
+ src = self.target_path / 'src'
153
+ subdirs = [d.name for d in src.iterdir() if d.is_dir()]
154
+ expected = {'routes', 'handlers', 'services', 'middleware', 'lib', 'utils', 'db', 'models'}
155
+ found = set(subdirs) & expected
156
+ if len(found) < 2:
157
+ self._add_finding('info', f'Consider organizing src/ with subdirectories: {expected - found}')
158
+
159
+ def check_security_basics(self):
160
+ """Check for basic security configurations."""
161
+ # Check for .env in .gitignore
162
+ gitignore = self.target_path / '.gitignore'
163
+ if gitignore.exists():
164
+ content = gitignore.read_text()
165
+ if '.env' not in content:
166
+ self._add_finding('critical', '.env is not in .gitignore — secrets may be committed!')
167
+ self.results['score'] -= 20
168
+ else:
169
+ self._add_finding('warning', 'No .gitignore found')
170
+ self.results['score'] -= 10
171
+
172
+ # Check for hardcoded secrets in common config files
173
+ env_file = self.target_path / '.env'
174
+ if env_file.exists():
175
+ self._add_finding('info', '.env file found — ensure it is not committed to version control')
176
+
177
+ # Check for .env.example
178
+ env_example = self.target_path / '.env.example'
179
+ if not env_example.exists():
180
+ self._add_finding('warning', 'No .env.example found — document required environment variables')
181
+
182
+ def check_database_patterns(self):
183
+ """Check for database best practices."""
184
+ # Check for migration files
185
+ migration_dirs = ['migrations', 'prisma/migrations', 'drizzle', 'alembic']
186
+ has_migrations = any((self.target_path / d).is_dir() for d in migration_dirs)
187
+
188
+ if not has_migrations and self.results['stack'].get('database'):
189
+ self._add_finding('warning', 'No database migration directory found — use managed migrations')
190
+ self.results['score'] -= 10
191
+
192
+ def check_testing_setup(self):
193
+ """Check for testing configuration."""
194
+ test_configs = [
195
+ 'vitest.config.ts', 'vitest.config.js',
196
+ 'jest.config.ts', 'jest.config.js',
197
+ 'playwright.config.ts', 'pytest.ini', 'conftest.py',
198
+ ]
199
+ has_tests = any((self.target_path / c).exists() for c in test_configs)
200
+
201
+ test_dirs = ['__tests__', 'tests', 'test', 'e2e', 'spec']
202
+ has_test_dir = any((self.target_path / d).is_dir() for d in test_dirs)
203
+
204
+ if not has_tests and not has_test_dir:
205
+ self._add_finding('warning', 'No testing setup detected — add unit and integration tests')
206
+ self.results['score'] -= 15
207
+
208
+ def check_ci_cd(self):
209
+ """Check for CI/CD pipeline configuration."""
210
+ ci_paths = [
211
+ '.github/workflows',
212
+ '.gitlab-ci.yml',
213
+ '.circleci',
214
+ 'Jenkinsfile',
215
+ '.drone.yml',
216
+ ]
217
+ has_ci = any(
218
+ (self.target_path / p).exists() or (self.target_path / p).is_dir()
219
+ for p in ci_paths
220
+ )
221
+
222
+ if not has_ci:
223
+ self._add_finding('info', 'No CI/CD pipeline detected — consider adding automated checks')
224
+
225
+ def check_docker_setup(self):
226
+ """Check Docker configuration best practices."""
227
+ dockerfile = self.target_path / 'Dockerfile'
228
+ if dockerfile.exists():
229
+ content = dockerfile.read_text()
230
+ if 'FROM' in content:
231
+ # Check for multi-stage build
232
+ from_count = content.count('FROM ')
233
+ if from_count < 2:
234
+ self._add_finding('info', 'Consider using multi-stage Docker builds for smaller images')
235
+
236
+ # Check for non-root user
237
+ if 'USER ' not in content and 'useradd' not in content and 'adduser' not in content:
238
+ self._add_finding('warning', 'Dockerfile runs as root — add a non-root USER')
239
+ self.results['score'] -= 5
240
+
241
+ # Check for HEALTHCHECK
242
+ if 'HEALTHCHECK' not in content:
243
+ self._add_finding('info', 'Consider adding HEALTHCHECK to Dockerfile')
244
+
245
+ def _add_finding(self, severity: str, message: str):
246
+ """Add a finding to the results."""
247
+ self.results['findings'].append({
248
+ 'severity': severity,
249
+ 'message': message,
250
+ })
251
+ if self.verbose:
252
+ icon = {'critical': '🔴', 'warning': '🟡', 'info': '🔵'}.get(severity, '⚪')
253
+ print(f" {icon} [{severity.upper()}] {message}")
254
+
255
+ def generate_report(self):
256
+ """Generate and display the analysis report."""
257
+ findings = self.results['findings']
258
+ critical = len([f for f in findings if f['severity'] == 'critical'])
259
+ warnings = len([f for f in findings if f['severity'] == 'warning'])
260
+ info = len([f for f in findings if f['severity'] == 'info'])
261
+
262
+ score = max(0, self.results['score'])
263
+ self.results['score'] = score
264
+
265
+ print(f"\n{'='*60}")
266
+ print("🏗️ ARCHITECTURE ANALYSIS REPORT")
267
+ print(f"{'='*60}")
268
+ print(f"Target: {self.results['target']}")
269
+ print(f"Score: {score}/100")
270
+ print(f"Findings: {critical} critical, {warnings} warnings, {info} info")
271
+ print(f"\nStack Detected:")
272
+ for layer, techs in self.results['stack'].items():
273
+ if techs:
274
+ print(f" {layer}: {', '.join(techs)}")
275
+ print(f"\nFindings:")
276
+ for f in findings:
277
+ icon = {'critical': '🔴', 'warning': '🟡', 'info': '🔵'}.get(f['severity'], '⚪')
278
+ print(f" {icon} [{f['severity'].upper()}] {f['message']}")
279
+ print(f"{'='*60}\n")
280
+
281
+
282
+ def main():
283
+ """Main entry point."""
284
+ parser = argparse.ArgumentParser(
285
+ description="Fullstack Architecture Analyzer — detects anti-patterns and validates best practices"
286
+ )
287
+ parser.add_argument(
288
+ 'target',
289
+ help='Target project path to analyze'
290
+ )
291
+ parser.add_argument(
292
+ '--verbose', '-v',
293
+ action='store_true',
294
+ help='Enable verbose output'
295
+ )
296
+ parser.add_argument(
297
+ '--json',
298
+ action='store_true',
299
+ help='Output results as JSON'
300
+ )
301
+ parser.add_argument(
302
+ '--output', '-o',
303
+ help='Output file path'
304
+ )
305
+
306
+ args = parser.parse_args()
307
+
308
+ analyzer = ArchitectureAnalyzer(
309
+ args.target,
310
+ verbose=args.verbose
311
+ )
312
+
313
+ results = analyzer.run()
314
+
315
+ if args.json:
316
+ output = json.dumps(results, indent=2)
317
+ if args.output:
318
+ with open(args.output, 'w') as f:
319
+ f.write(output)
320
+ print(f"Results written to {args.output}")
321
+ else:
322
+ print(output)
323
+
324
+
325
+ if __name__ == '__main__':
326
+ main()
@@ -0,0 +1,135 @@
1
+ ---
2
+ name: gemini-agent-booster
3
+ description: "Master optimization protocol for Gemini Agent (Antigravity) to unlock native 1M+ long-context reasoning, multimodal vision UI audits, visual subagent feedback, and high-speed problem solving / Protokol optimasi utama untuk Gemini Agent (Antigravity) untuk mengaktifkan pemikiran long-context 1M+, audit UI visual multimodal, dan pemecahan masalah kecepatan tinggi."
4
+ author: "Roedy Rustam"
5
+ ---
6
+
7
+ # Gemini Agent Booster (2026 Edition — Gemini 2.5 Pro/Flash)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Description
17
+ Master optimization protocol for the Gemini Agent (Antigravity) to leverage native Gemini 2.5 Pro/Flash capabilities — including 1M+ token context window, multimodal vision analysis, deep research mode, thinking chains, and high-speed code generation.
18
+
19
+ ### Trigger Conditions
20
+ - Analyzing very large codebases, logs, or documents that require 1M+ token context.
21
+ - Performing multimodal UI audits (analyzing screenshots of running applications).
22
+ - Running deep research tasks requiring web search + reasoning synthesis.
23
+ - Generating large, complex code artifacts in a single pass.
24
+ - Delegating complex multi-step tasks to browser subagents.
25
+
26
+ ### Gemini 2.5 Pro/Flash Capabilities (2026)
27
+
28
+ | Capability | Gemini 2.5 Pro | Gemini 2.5 Flash |
29
+ |---|---|---|
30
+ | Context Window | 1M tokens | 1M tokens |
31
+ | Thinking / Reasoning | ✅ Extended thinking | ✅ Flash thinking |
32
+ | Multimodal (Image/Video) | ✅ | ✅ |
33
+ | Code Generation | Best-in-class | Very fast |
34
+ | Web Search (Grounding) | ✅ | ✅ |
35
+ | Deep Research | ✅ (up to 30 min) | ✅ |
36
+ | Audio | ✅ | ✅ |
37
+ | Speed | Slower | 5-10x faster |
38
+ | Cost | Higher | Lower |
39
+
40
+ ### 1M+ Token Long-Context Strategies
41
+
42
+ When working with very large inputs (codebases, documents, logs):
43
+ 1. **Pass full file trees** — use `list_dir` to get the complete file tree, then pass relevant files to maximize context.
44
+ 2. **Read whole files, not snippets** — with 1M context, read entire source files rather than grepping for fragments.
45
+ 3. **Cross-file analysis** — trace data flows, imports, and interfaces across multiple files simultaneously.
46
+ 4. **Log analysis** — pass entire server logs (up to hundreds of thousands of lines) for pattern detection.
47
+ 5. **Codebase onboarding** — ingest an entire unfamiliar repo in one pass for deep architectural understanding.
48
+
49
+ ### Multimodal Vision — UI Audit Protocol
50
+ Use the `browser_subagent` + `generate_image` tools for visual feedback:
51
+ 1. **Screenshot the running app** via browser subagent.
52
+ 2. **Analyze the screenshot** for layout issues, accessibility problems, design inconsistencies, Core Web Vitals opportunities.
53
+ 3. **Generate a target design** using `generate_image` for visual comparison.
54
+ 4. **Iterate code** based on visual delta between current and target design.
55
+
56
+ ### Thinking Mode — Extended Reasoning
57
+ For complex problems, use Gemini's extended thinking:
58
+ - Architecture decisions with multiple tradeoffs.
59
+ - Debugging hard-to-reproduce race conditions.
60
+ - Designing multi-step agentic workflows.
61
+ - Cryptographic or security-sensitive implementations.
62
+ - **Protocol**: State the problem clearly → let thinking run → review reasoning chain → validate conclusion.
63
+
64
+ ### Deep Research Mode
65
+ Gemini 2.5 Pro's deep research can spend up to 30 minutes actively searching, reading, and synthesizing from hundreds of sources. Use for:
66
+ - Market research before building a new feature.
67
+ - Security vulnerability research.
68
+ - Competitive analysis of existing tools.
69
+ - Collecting the latest API documentation for a framework.
70
+
71
+ ### Speed Optimization — Flash for Iteration
72
+ Use **Gemini 2.5 Flash** for:
73
+ - Quick code generation, small file edits.
74
+ - Rapid back-and-forth iteration (linting, formatting, small bug fixes).
75
+ - High-volume batch processing.
76
+
77
+ Use **Gemini 2.5 Pro** for:
78
+ - Complex architecture decisions.
79
+ - Long-context full-codebase analysis.
80
+ - Security audits requiring deep reasoning.
81
+ - Generating comprehensive documentation.
82
+
83
+ ### Agent Parallelism
84
+ Gemini Agent natively supports parallel tool calls — run independent operations simultaneously:
85
+ - Read multiple files at once.
86
+ - Run multiple searches in parallel.
87
+ - Spawn multiple browser subagents for concurrent tasks.
88
+ - Write multiple files simultaneously.
89
+
90
+ ---
91
+
92
+ <a name="bahasa-indonesia"></a>
93
+ ## Bahasa Indonesia
94
+
95
+ ### Deskripsi
96
+ Protokol optimasi utama untuk Gemini Agent (Antigravity) memanfaatkan kemampuan native Gemini 2.5 Pro/Flash — termasuk context window 1M+ token, analisis visi multimodal, mode penelitian mendalam, rantai pemikiran, dan generasi kode berkecepatan tinggi.
97
+
98
+ ### Kondisi Pemicu
99
+ - Menganalisis codebase, log, atau dokumen yang sangat besar yang memerlukan konteks 1M+ token.
100
+ - Melakukan audit UI multimodal (menganalisis screenshot aplikasi yang berjalan).
101
+ - Menjalankan tugas penelitian mendalam yang memerlukan pencarian web + sintesis penalaran.
102
+ - Menghasilkan artefak kode yang besar dan kompleks dalam satu lintasan.
103
+ - Mendelegasikan tugas multi-langkah kompleks ke browser subagent.
104
+
105
+ ### Kemampuan Gemini 2.5 Pro/Flash (2026)
106
+
107
+ | Kemampuan | Gemini 2.5 Pro | Gemini 2.5 Flash |
108
+ |---|---|---|
109
+ | Context Window | 1M token | 1M token |
110
+ | Pemikiran / Penalaran | ✅ Extended thinking | ✅ Flash thinking |
111
+ | Multimodal (Gambar/Video) | ✅ | ✅ |
112
+ | Generasi Kode | Terbaik di kelasnya | Sangat cepat |
113
+ | Pencarian Web (Grounding) | ✅ | ✅ |
114
+ | Penelitian Mendalam | ✅ (hingga 30 mnt) | ✅ |
115
+ | Kecepatan | Lebih lambat | 5-10x lebih cepat |
116
+ | Biaya | Lebih tinggi | Lebih rendah |
117
+
118
+ ### Strategi Long-Context 1M+ Token
119
+ Manfaatkan jendela konteks besar dengan membaca seluruh file (bukan hanya fragment), melewatkan seluruh pohon file proyek, menganalisis aliran data lintas file secara bersamaan, dan menganalisis log server lengkap untuk deteksi pola.
120
+
121
+ ### Visi Multimodal — Protokol Audit UI
122
+ Gunakan `browser_subagent` untuk mengambil screenshot aplikasi yang berjalan, analisis secara visual untuk masalah tata letak atau aksesibilitas, buat desain target dengan `generate_image`, lalu iterasi kode berdasarkan delta visual.
123
+
124
+ ### Mode Pemikiran — Extended Reasoning
125
+ Untuk masalah kompleks (keputusan arsitektur, debugging race condition, alur kerja agentik), aktifkan mode pemikiran diperpanjang Gemini untuk rantai penalaran yang lebih dalam sebelum menghasilkan solusi.
126
+
127
+ ### Mode Penelitian Mendalam
128
+ Gemini 2.5 Pro dapat menghabiskan hingga 30 menit secara aktif mencari, membaca, dan mensintesis dari ratusan sumber. Ideal untuk riset pasar, kerentanan keamanan, analisis kompetitif, atau pengumpulan dokumentasi API terbaru.
129
+
130
+ ### Flash untuk Iterasi, Pro untuk Kedalaman
131
+ - **Flash**: Edit cepat, iterasi bolak-balik, pemrosesan batch.
132
+ - **Pro**: Keputusan arsitektur, analisis codebase penuh, audit keamanan, dokumentasi komprehensif.
133
+
134
+ ### Paralelisme Agen
135
+ Gemini Agent mendukung pemanggilan tool paralel secara native — jalankan operasi independen secara bersamaan untuk memaksimalkan throughput.
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: global-a11y-i18n-expert
3
+ description: "Expert guide for Web Accessibility (WCAG a11y) and Internationalization (i18n) / Panduan ahli untuk Aksesibilitas Web dan Internasionalisasi."
4
+ author: "Roedy Rustam"
5
+ ---
6
+
7
+ # Global Accessibility (a11y) & i18n Expert
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Description
17
+ This skill focuses on making enterprise web applications universally accessible and globally adaptable. It covers Web Content Accessibility Guidelines (WCAG) compliance and Internationalization (i18n) patterns for multi-language, multi-timezone software.
18
+
19
+ ### Trigger Conditions
20
+ - Selling software to government, education, or large enterprise sectors (where WCAG AA compliance is legally required).
21
+ - Implementing multi-language support (i18n).
22
+ - Designing UIs that must support RTL (Right-to-Left) languages like Arabic or Hebrew.
23
+ - Fixing "tab trap" or screen reader issues.
24
+ - Handling complex timezone/date calculations across global users.
25
+
26
+ ### Core Architecture Guidelines
27
+
28
+ #### 1. Web Accessibility (a11y)
29
+ Do not treat accessibility as an afterthought. It is a core engineering requirement.
30
+ - **Semantic HTML**: Always prefer native HTML elements (`<button>`, `<nav>`, `<dialog>`) over building custom ones with `<div>`. Native elements come with free accessibility baked in by the browser.
31
+ - **ARIA Attributes**: If you must build custom UI, use WAI-ARIA roles (`role="tablist"`, `aria-expanded="true"`) to tell screen readers what the component is doing.
32
+ - **Keyboard Navigation**: The entire app MUST be usable without a mouse. Ensure interactive elements are focusable (`tabindex="0"`) and visual focus outlines are distinct (do not use `outline: none` without providing an alternative styling).
33
+ - **Color Contrast**: Ensure text has a minimum contrast ratio of 4.5:1 against its background (WCAG AA standard).
34
+
35
+ #### 2. Internationalization (i18n)
36
+ Handling multiple languages requires structural foresight.
37
+ - **Locale Routing**: Use URL structures like `/en/pricing` or `/id/pricing`.
38
+ - **String Externalization**: Never hardcode UI text. Use translation files (`en.json`, `id.json`) and a library like `next-intl` or `react-i18next`.
39
+ - **RTL Support**: Use CSS logical properties (e.g., `margin-inline-start` instead of `margin-left`) so your UI automatically flips when rendering RTL languages.
40
+
41
+ #### 3. Timezones and Dates
42
+ Time is incredibly difficult to manage globally.
43
+ - **Storage**: ALWAYS store dates in the database as UTC (`TIMESTAMPTZ` in PostgreSQL). Never store local time.
44
+ - **Transport**: Send dates across APIs in ISO 8601 format (e.g., `2024-03-15T12:00:00Z`).
45
+ - **Display**: Convert UTC to the user's local timezone only at the UI layer just before rendering (using native `Intl.DateTimeFormat` or libraries like `date-fns-tz`).
46
+
47
+ ---
48
+
49
+ <a name="bahasa-indonesia"></a>
50
+ ## Bahasa Indonesia
51
+
52
+ ### Deskripsi
53
+ Skill ini berfokus pada pembuatan aplikasi web skala *enterprise* yang dapat diakses secara universal dan diadaptasi secara global. Panduan ini mencakup kepatuhan pedoman Aksesibilitas Web (WCAG) serta pola Internasionalisasi (i18n) untuk perangkat lunak multi-bahasa dan multi-zona-waktu.
54
+
55
+ ### Kondisi Pemicu
56
+ - Menjual perangkat lunak ke sektor pemerintah, pendidikan, atau perusahaan besar (di mana kepatuhan WCAG AA diwajibkan secara hukum).
57
+ - Menerapkan dukungan multi-bahasa (i18n).
58
+ - Merancang UI yang harus mendukung bahasa yang dibaca dari Kanan ke Kiri (RTL) seperti Arab atau Ibrani.
59
+ - Memperbaiki masalah navigasi *keyboard* (*tab trap*) atau dukungan *screen reader* (pembaca layar).
60
+ - Menangani kalkulasi tanggal dan zona waktu yang kompleks untuk pengguna global.
61
+
62
+ ### Panduan Arsitektur Inti
63
+
64
+ #### 1. Aksesibilitas Web (a11y)
65
+ Jangan anggap aksesibilitas sebagai fitur tambahan. Ini adalah syarat mutlak *engineering*.
66
+ - **HTML Semantik**: Selalu utamakan elemen HTML bawaan (`<button>`, `<nav>`, `<dialog>`) daripada membuat elemen kustom menggunakan `<div>`. Elemen bawaan sudah memiliki fitur aksesibilitas yang ditangani langsung oleh browser.
67
+ - **Atribut ARIA**: Jika Anda terpaksa membuat komponen UI kustom, gunakan peran WAI-ARIA (`role="tablist"`, `aria-expanded="true"`) untuk memberi tahu *screen reader* apa fungsi komponen tersebut.
68
+ - **Navigasi Keyboard**: Seluruh aplikasi HARUS bisa digunakan tanpa *mouse*. Pastikan elemen interaktif bisa difokuskan (`tabindex="0"`) dan garis tepi fokus (*focus ring*) terlihat jelas (jangan gunakan `outline: none` tanpa memberikan gaya alternatif).
69
+ - **Kontras Warna**: Pastikan teks memiliki rasio kontras minimal 4.5:1 terhadap warna latar belakangnya (standar WCAG AA).
70
+
71
+ #### 2. Internasionalisasi (i18n)
72
+ Menangani berbagai bahasa memerlukan perencanaan struktural.
73
+ - **Routing Lokal (Locale Routing)**: Gunakan struktur URL seperti `/en/pricing` atau `/id/pricing`.
74
+ - **Eksternalisasi Teks**: Jangan pernah menulis teks UI langsung (*hardcode*) di dalam kode. Gunakan berkas terjemahan (`en.json`, `id.json`) dan pustaka seperti `next-intl` atau `react-i18next`.
75
+ - **Dukungan RTL**: Gunakan properti logika CSS (*CSS logical properties*, mis. `margin-inline-start` alih-alih `margin-left`) agar tata letak UI Anda secara otomatis berbalik saat merender bahasa RTL.
76
+
77
+ #### 3. Zona Waktu dan Tanggal
78
+ Mengelola waktu secara global sangatlah rumit.
79
+ - **Penyimpanan**: SELALU simpan tanggal di dalam database dalam format UTC (`TIMESTAMPTZ` pada PostgreSQL). Jangan pernah menyimpan waktu lokal komputer.
80
+ - **Transportasi**: Kirimkan tanggal melalui API dalam format ISO 8601 (mis., `2024-03-15T12:00:00Z`).
81
+ - **Tampilan UI**: Konversikan waktu UTC ke zona waktu lokal pengguna *hanya di lapisan UI* sesaat sebelum dirender (menggunakan `Intl.DateTimeFormat` bawaan browser atau pustaka seperti `date-fns-tz`).