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,194 @@
1
+ ---
2
+ name: mcp-server-architect
3
+ description: "Expert guide for designing, building, and security-hardening Model Context Protocol (MCP) servers and tool integrations in TypeScript, Python, and Go / Panduan ahli merancang, membangun, dan mengamankan server Model Context Protocol (MCP) dan integrasi tool dalam TypeScript, Python, dan Go."
4
+ author: "Roedy Rustam"
5
+ ---
6
+
7
+ # MCP Server Architect (v1.9+ Edition)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Description
17
+ Expert guide for designing, building, and security-hardening **Model Context Protocol (MCP)** servers and client integrations. Covers MCP v1.9+ specification (including the new Streamable HTTP transport), tool/resource/prompt design, Zod validation, OAuth 2.1 authorization, and multi-server orchestration patterns for production AI applications.
18
+
19
+ ### Trigger Conditions
20
+ - Building an MCP server to expose tools, resources, or prompt templates to AI agents.
21
+ - Integrating third-party APIs or databases as MCP tools for LLM consumption.
22
+ - Implementing MCP client logic in an AI agent or chatbot.
23
+ - Securing MCP servers with OAuth 2.1 and permission scoping.
24
+ - Deploying MCP servers to edge/serverless environments.
25
+
26
+ ### MCP v1.9+ Specification Overview
27
+
28
+ MCP standardizes how AI models interact with external tools and data. The 2026 specification (v1.9) introduces:
29
+
30
+ | Feature | Description |
31
+ |---|---|
32
+ | **Streamable HTTP** | New bidirectional transport via HTTP streaming — replaces SSE for cloud deployments |
33
+ | **stdio** | Original transport for local/CLI tools — still recommended for local MCP |
34
+ | **OAuth 2.1** | Standard authorization flow for MCP servers requiring user consent |
35
+ | **Tool Annotations** | `readOnlyHint`, `destructiveHint`, `idempotentHint` for safer agent decisions |
36
+ | **Audio Content** | Support for audio data in tool responses |
37
+ | **Resource Links** | Resources can now link to external URIs |
38
+
39
+ ### Core MCP Concepts
40
+
41
+ | Primitive | What It Is | Example |
42
+ |---|---|---|
43
+ | **Tool** | Executable function the LLM can call | `search_database`, `send_email` |
44
+ | **Resource** | Read-only data the LLM can read | File contents, DB records |
45
+ | **Prompt** | Reusable prompt templates | `code_review_prompt` |
46
+ | **Sampling** | Server requests LLM completion | Agent asks LLM to classify |
47
+
48
+ ### Building an MCP Server (TypeScript)
49
+
50
+ #### 1. Setup with `@modelcontextprotocol/sdk`
51
+ ```typescript
52
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
53
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
54
+ import { z } from 'zod';
55
+
56
+ const server = new McpServer({
57
+ name: 'my-api-server',
58
+ version: '1.0.0',
59
+ });
60
+ ```
61
+
62
+ #### 2. Define Tools with Zod Validation
63
+ ```typescript
64
+ server.tool(
65
+ 'search_products',
66
+ 'Search the product catalog by query and category',
67
+ {
68
+ query: z.string().min(1).describe('Search query string'),
69
+ category: z.enum(['electronics', 'clothing', 'books']).optional(),
70
+ limit: z.number().int().min(1).max(50).default(10),
71
+ },
72
+ {
73
+ readOnlyHint: true, // v1.9 annotation: this tool does not modify state
74
+ idempotentHint: true, // safe to call multiple times
75
+ },
76
+ async ({ query, category, limit }) => {
77
+ const results = await productDB.search({ query, category, limit });
78
+ return {
79
+ content: [{ type: 'text', text: JSON.stringify(results, null, 2) }],
80
+ };
81
+ }
82
+ );
83
+ ```
84
+
85
+ #### 3. Expose Resources
86
+ ```typescript
87
+ server.resource(
88
+ 'company-docs',
89
+ 'docs://{path}',
90
+ { mimeType: 'text/markdown' },
91
+ async (uri) => {
92
+ const path = uri.pathname;
93
+ const content = await fs.readFile(`./docs${path}`, 'utf-8');
94
+ return { contents: [{ uri: uri.href, mimeType: 'text/markdown', text: content }] };
95
+ }
96
+ );
97
+ ```
98
+
99
+ #### 4. Streamable HTTP Transport (v1.9 — Production Deployment)
100
+ ```typescript
101
+ import express from 'express';
102
+
103
+ const app = express();
104
+ app.use(express.json());
105
+
106
+ app.all('/mcp', async (req, res) => {
107
+ const transport = new StreamableHTTPServerTransport({
108
+ sessionIdGenerator: () => crypto.randomUUID(),
109
+ });
110
+ await server.connect(transport);
111
+ await transport.handleRequest(req, res, req.body);
112
+ });
113
+
114
+ app.listen(3000, () => console.log('MCP Server running on :3000'));
115
+ ```
116
+
117
+ #### 5. OAuth 2.1 Authorization (Secure MCP)
118
+ For MCP servers requiring user consent (e.g., accessing user's GitHub repos):
119
+ ```typescript
120
+ import { ProxyOAuthServerProvider } from '@modelcontextprotocol/sdk/server/auth/providers/proxyOAuth.js';
121
+
122
+ const authProvider = new ProxyOAuthServerProvider({
123
+ endpoints: {
124
+ authorizationUrl: 'https://github.com/login/oauth/authorize',
125
+ tokenUrl: 'https://github.com/login/oauth/access_token',
126
+ },
127
+ clientId: process.env.GITHUB_CLIENT_ID!,
128
+ clientSecret: process.env.GITHUB_CLIENT_SECRET!,
129
+ scopes: ['repo', 'read:user'],
130
+ });
131
+
132
+ server.setAuthProvider(authProvider);
133
+ ```
134
+
135
+ ### Security Hardening
136
+
137
+ - **Validate ALL inputs**: Every tool parameter must be validated with Zod before execution. Never trust LLM-generated inputs directly.
138
+ - **Principle of Least Privilege**: Each tool should only request the minimum permissions needed.
139
+ - **Rate Limiting**: Implement per-session rate limits to prevent prompt injection loops.
140
+ - **Sanitize Outputs**: Never return raw database records with sensitive fields (passwords, API keys). Always filter/select only what's needed.
141
+ - **Audit Logging**: Log every tool call with session ID, tool name, parameters, and result status.
142
+ - **Tool Annotations**: Use `destructiveHint: true` for tools that modify or delete data — agents should ask for human confirmation before calling these.
143
+
144
+ ### Multi-Server Orchestration
145
+ When building AI apps with multiple MCP servers:
146
+ ```typescript
147
+ // Client connecting to multiple MCP servers
148
+ const client = new McpClient({ name: 'my-agent', version: '1.0.0' });
149
+
150
+ // Connect to multiple specialized servers
151
+ await client.connect(new StdioTransport({ command: 'node', args: ['file-server.js'] }));
152
+ await client.connect(new StreamableHTTPTransport({ url: 'https://api.mydb.com/mcp' }));
153
+
154
+ // List all available tools across servers
155
+ const { tools } = await client.listTools();
156
+ ```
157
+
158
+ ---
159
+
160
+ <a name="bahasa-indonesia"></a>
161
+ ## Bahasa Indonesia
162
+
163
+ ### Deskripsi
164
+ Panduan ahli untuk merancang, membangun, dan mengamankan server **Model Context Protocol (MCP)** dan integrasi klien. Mencakup spesifikasi MCP v1.9+ (termasuk transport Streamable HTTP baru), desain tool/resource/prompt, validasi Zod, otorisasi OAuth 2.1, dan pola orkestrasi multi-server untuk aplikasi AI produksi.
165
+
166
+ ### Kondisi Pemicu
167
+ - Membangun MCP server untuk mengekspos tool, resource, atau prompt template ke agen AI.
168
+ - Mengintegrasikan API pihak ketiga atau database sebagai MCP tool untuk konsumsi LLM.
169
+ - Mengimplementasikan logika klien MCP dalam agen AI atau chatbot.
170
+ - Mengamankan MCP server dengan OAuth 2.1 dan pembatasan izin.
171
+ - Men-deploy MCP server ke lingkungan edge/serverless.
172
+
173
+ ### Ringkasan Spesifikasi MCP v1.9+
174
+
175
+ MCP menstandarisasi cara model AI berinteraksi dengan tool dan data eksternal. Spesifikasi 2026 (v1.9) memperkenalkan:
176
+ - **Streamable HTTP**: Transport dua arah baru via HTTP streaming — menggantikan SSE untuk deployment cloud.
177
+ - **Tool Annotations**: `readOnlyHint`, `destructiveHint`, `idempotentHint` untuk keputusan agen yang lebih aman.
178
+ - **OAuth 2.1**: Alur otorisasi standar untuk MCP server yang memerlukan izin pengguna.
179
+
180
+ ### Membangun MCP Server (TypeScript)
181
+
182
+ Gunakan `@modelcontextprotocol/sdk` untuk TypeScript. Definisikan tool dengan validasi Zod yang ketat, tambahkan anotasi v1.9 (`readOnlyHint`, `destructiveHint`), dan gunakan Streamable HTTP transport untuk deployment cloud produksi.
183
+
184
+ ### Keamanan MCP
185
+
186
+ - **Validasi SEMUA input**: Setiap parameter tool harus divalidasi dengan Zod sebelum eksekusi.
187
+ - **Prinsip Least Privilege**: Setiap tool hanya boleh meminta izin minimum yang diperlukan.
188
+ - **Rate Limiting**: Batasi panggilan per sesi untuk mencegah loop prompt injection.
189
+ - **Sanitasi Output**: Jangan pernah mengembalikan field sensitif (password, API key).
190
+ - **Audit Logging**: Catat setiap panggilan tool dengan session ID, nama tool, parameter, dan status hasil.
191
+ - **Anotasi Tool**: Gunakan `destructiveHint: true` untuk tool yang memodifikasi/menghapus data — agen harus meminta konfirmasi manusia sebelum memanggilnya.
192
+
193
+ ### Orkestrasi Multi-Server
194
+ Klien MCP dapat terhubung ke beberapa server sekaligus, menyatukan semua tool dari server yang berbeda menjadi satu daftar yang tersedia untuk agen.
@@ -0,0 +1,186 @@
1
+ ---
2
+ name: mobile-expo-expert
3
+ description: "Expert guide for React Native 0.76+ and Expo SDK 52+ development. Covers cross-platform mobile architecture, Expo Router v4, New Architecture, OTA updates, and native modules / Panduan ahli pengembangan React Native 0.76+ dan Expo SDK 52+ untuk aplikasi mobile."
4
+ author: "Roedy Rustam"
5
+ ---
6
+
7
+ # Mobile Expert — React Native & Expo (SDK 53 / RN 0.79 Edition)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Description
17
+ Expert guide for building production-grade cross-platform mobile applications using **React Native 0.79+** and **Expo SDK 53+**. Covers the New Architecture (stable), Expo Router v4, OTA updates, native modules, and modern state management patterns for iOS and Android.
18
+
19
+ ### Trigger Conditions
20
+ - Building a new iOS/Android cross-platform mobile app.
21
+ - Using Expo SDK 53+ or React Native 0.79+ with the New Architecture.
22
+ - Implementing file-based routing with **Expo Router v4**.
23
+ - Setting up OTA (Over-the-Air) updates with EAS Update.
24
+ - Writing native modules using **JSI** (JavaScript Interface) or **Expo Modules API**.
25
+ - Integrating device features: camera, biometrics, notifications, location.
26
+
27
+ ### What's New in 2026
28
+
29
+ #### React Native 0.79 — New Architecture Stable
30
+ The **New Architecture** (Fabric + JSI + TurboModules) is now **fully stable** and the default for all new Expo SDK 53 projects:
31
+ - **Fabric**: New rendering engine — synchronous rendering, better animations.
32
+ - **JSI (JavaScript Interface)**: Direct C++ bridge — no more async serialization for native calls.
33
+ - **TurboModules**: Lazy-loaded native modules — significantly faster startup time.
34
+ - **Concurrent React**: Full support for `useTransition`, `useDeferredValue`, and Suspense on mobile.
35
+
36
+ #### Expo SDK 53 — Key Updates
37
+ - **Expo Router v4**: File-based routing with typed routes, API routes (Expo functions), and universal links.
38
+ - **Expo Camera v15**: Unified camera API for iOS and Android.
39
+ - **Expo SQLite v15**: Full SQLite with WAL mode and `useSQLiteContext` hook.
40
+ - **Expo Modules API v2**: Easier native module authoring with Swift/Kotlin.
41
+ - **EAS Build**: Faster builds with M-series Mac runners.
42
+
43
+ ### Core Architecture Patterns
44
+
45
+ #### 1. Project Setup (Expo SDK 53 + New Arch)
46
+ ```bash
47
+ npx create-expo-app@latest MyApp --template tabs
48
+ cd MyApp
49
+ # New Architecture is enabled by default in SDK 53
50
+ ```
51
+
52
+ #### 2. Expo Router v4 — File-Based Routing
53
+ ```
54
+ app/
55
+ _layout.tsx # Root layout (navigation + providers)
56
+ (tabs)/
57
+ _layout.tsx # Tab navigator
58
+ index.tsx # Home tab
59
+ profile.tsx # Profile tab
60
+ (auth)/
61
+ login.tsx # Login screen
62
+ register.tsx
63
+ modal.tsx # Modal screen
64
+ ```
65
+
66
+ Use **typed routes** for compile-time safety:
67
+ ```typescript
68
+ import { Link, useRouter } from 'expo-router';
69
+
70
+ // Typed navigation — TypeScript errors on invalid paths
71
+ <Link href="/profile">Profile</Link>
72
+
73
+ const router = useRouter();
74
+ router.push('/modal');
75
+ ```
76
+
77
+ #### 3. API Routes (Expo Functions)
78
+ Expo Router v4 supports API routes for serverless backend logic:
79
+ ```typescript
80
+ // app/api/user+api.ts
81
+ export async function GET(request: Request) {
82
+ const user = await db.user.findFirst();
83
+ return Response.json(user);
84
+ }
85
+ ```
86
+
87
+ #### 4. State Management
88
+ - **TanStack Query v5**: Primary choice for server state (`useQuery`, `useMutation`).
89
+ - **Zustand**: Lightweight client state management (replace Context for complex state).
90
+ - **MMKV**: Ultra-fast synchronous storage (replace AsyncStorage).
91
+ - **Expo SQLite + Drizzle**: Local-first database with full SQL support.
92
+
93
+ #### 5. Navigation Patterns
94
+ ```typescript
95
+ // Deep linking & Universal Links configuration
96
+ // app.json
97
+ {
98
+ "expo": {
99
+ "scheme": "myapp",
100
+ "ios": { "associatedDomains": ["applinks:myapp.com"] },
101
+ "android": { "intentFilters": [{ "action": "VIEW", "data": [{ "scheme": "https", "host": "myapp.com" }] }] }
102
+ }
103
+ }
104
+ ```
105
+
106
+ #### 6. Native Modules — Expo Modules API v2
107
+ ```typescript
108
+ // modules/my-sensor/src/MyModule.ts
109
+ import { requireNativeModule } from 'expo-modules-core';
110
+ const MyModule = requireNativeModule('MyModule');
111
+
112
+ export function readSensor(): Promise<number> {
113
+ return MyModule.readSensor();
114
+ }
115
+ ```
116
+
117
+ #### 7. OTA Updates with EAS Update
118
+ ```bash
119
+ # Push an instant OTA update (no App Store review)
120
+ eas update --branch production --message "Fix critical bug"
121
+ ```
122
+ Use **channels** to target specific user groups (production, staging, beta).
123
+
124
+ #### 8. Performance Best Practices
125
+ - Use **FlashList** (Shopify) instead of `FlatList` for large lists.
126
+ - Use **react-native-reanimated v3** for 60/120fps animations that run on the UI thread.
127
+ - Use **react-native-gesture-handler** for gesture recognition on the native thread.
128
+ - Enable **Hermes** engine (default in SDK 53) for faster startup and reduced memory.
129
+
130
+ ---
131
+
132
+ <a name="bahasa-indonesia"></a>
133
+ ## Bahasa Indonesia
134
+
135
+ ### Deskripsi
136
+ Panduan ahli untuk membangun aplikasi mobile cross-platform tingkat produksi menggunakan **React Native 0.79+** dan **Expo SDK 53+**. Mencakup New Architecture (stabil), Expo Router v4, OTA updates, native modules, dan pola state management modern untuk iOS dan Android.
137
+
138
+ ### Kondisi Pemicu
139
+ - Membangun aplikasi mobile iOS/Android cross-platform baru.
140
+ - Menggunakan Expo SDK 53+ atau React Native 0.79+ dengan New Architecture.
141
+ - Mengimplementasikan routing berbasis file dengan **Expo Router v4**.
142
+ - Menyiapkan OTA (Over-the-Air) updates dengan EAS Update.
143
+ - Menulis native modules menggunakan JSI atau Expo Modules API v2.
144
+ - Mengintegrasikan fitur perangkat: kamera, biometrik, notifikasi, lokasi.
145
+
146
+ ### Yang Baru di 2026
147
+
148
+ #### React Native 0.79 — New Architecture Stabil
149
+ **New Architecture** (Fabric + JSI + TurboModules) kini **sepenuhnya stabil** dan menjadi default untuk semua proyek baru Expo SDK 53:
150
+ - **Fabric**: Engine rendering baru — rendering sinkron, animasi lebih baik.
151
+ - **JSI**: Bridge C++ langsung — tidak ada lagi serialisasi async untuk panggilan native.
152
+ - **TurboModules**: Modul native lazy-loaded — startup jauh lebih cepat.
153
+ - **Concurrent React**: Dukungan penuh untuk `useTransition`, `useDeferredValue`, dan Suspense di mobile.
154
+
155
+ #### Expo SDK 53 — Pembaruan Utama
156
+ - **Expo Router v4**: Routing berbasis file dengan typed routes, API routes, dan universal links.
157
+ - **Expo Camera v15**: API kamera terpadu untuk iOS dan Android.
158
+ - **Expo SQLite v15**: SQLite lengkap dengan mode WAL dan hook `useSQLiteContext`.
159
+ - **Expo Modules API v2**: Pembuatan modul native yang lebih mudah dengan Swift/Kotlin.
160
+ - **EAS Build**: Build lebih cepat dengan runner Mac M-series.
161
+
162
+ ### Pola Arsitektur Inti
163
+
164
+ #### 1. Routing Berbasis File (Expo Router v4)
165
+ Expo Router menggunakan konvensi direktori `app/` untuk mendefinisikan semua layar dan navigasi. Gunakan **typed routes** untuk keamanan type-safe di waktu kompilasi.
166
+
167
+ #### 2. API Routes (Expo Functions)
168
+ Expo Router v4 mendukung API routes untuk logika backend serverless langsung di dalam proyek.
169
+
170
+ #### 3. State Management
171
+ - **TanStack Query v5**: Pilihan utama untuk server state.
172
+ - **Zustand**: State klien yang ringan.
173
+ - **MMKV**: Penyimpanan sinkron ultra-cepat (pengganti AsyncStorage).
174
+ - **Expo SQLite + Drizzle**: Database lokal-first dengan dukungan SQL penuh.
175
+
176
+ #### 4. Native Modules — Expo Modules API v2
177
+ Gunakan Expo Modules API untuk membuat modul native kustom dengan Swift (iOS) dan Kotlin (Android) dengan boilerplate minimal.
178
+
179
+ #### 5. OTA Updates dengan EAS Update
180
+ Dorong pembaruan instan ke pengguna tanpa melalui review App Store. Gunakan channel (`production`, `staging`, `beta`) untuk menargetkan kelompok pengguna tertentu.
181
+
182
+ #### 6. Praktik Terbaik Performa
183
+ - **FlashList**: Pengganti FlatList yang jauh lebih cepat untuk daftar panjang.
184
+ - **react-native-reanimated v3**: Animasi 60/120fps yang berjalan di UI thread.
185
+ - **react-native-gesture-handler**: Pengenalan gesture di native thread.
186
+ - **Hermes Engine**: Default di SDK 53 — startup lebih cepat, memori lebih sedikit.
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: monday-design-aesthetic
3
+ description: "Expert guide for implementing the modern, spacious, and highly structured Monday.com design system / Panduan desain ala Monday.com."
4
+ author: "Roedy Rustam"
5
+ ---
6
+
7
+ # Monday.com Design Aesthetic
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 implementing the modern, spacious, and structured design aesthetic inspired by Monday.com. It is ideal for SaaS landing pages and dashboards.
18
+
19
+ ### Trigger Conditions
20
+ Use this when the user asks for:
21
+ - A "Monday.com style" design.
22
+ - A modern SaaS landing page with clean structure.
23
+ - High-quality, spacious UI with vibrant accents.
24
+
25
+ ### Core Design Tokens
26
+ - **Primary Brand Color**: Vibrant Blue (`#0073ea`) for active states and primary buttons.
27
+ - **Backgrounds**: Clean White (`#FFFFFF`) for main content, Light Grays (`#F9F9F9`, `#F5F6F8`) for section alternations, Dark Gray/Black (`#111111`) for footers.
28
+ - **Typography**: Clean geometric sans-serif (e.g., Figtree, Circular, Inter).
29
+ - Hero text is extra-bold (48-60px).
30
+ - Section headers are bold (32-40px) in dark slate (`#333333`).
31
+ - Body text is medium (16-18px) in muted gray (`#676879`).
32
+
33
+ ### UI Components & Layout
34
+ - **Buttons**: Fully rounded corners (~8px). Primary buttons use vibrant blue with white text and generous padding (e.g., `px-6 py-3`).
35
+ - **Cards**: Large border radius (12-16px) with flat borders or extremely subtle drop shadows (`shadow-sm`).
36
+ - **Layout**: Centered max-width containers (1200-1400px).
37
+ - **Spacing**: Generous vertical padding between sections (80-120px) to let content breathe.
38
+ - **Interactions**: Smooth hover states, interactive tab systems, and collapsible accordions.
39
+
40
+ ---
41
+
42
+ <a name="bahasa-indonesia"></a>
43
+ ## Bahasa Indonesia
44
+
45
+ ### Deskripsi
46
+ Skill ini berfokus pada implementasi desain yang modern, luas (spacious), dan terstruktur yang terinspirasi oleh Monday.com. Sangat cocok untuk landing page dan dashboard SaaS.
47
+
48
+ ### Kondisi Pemicu
49
+ Gunakan saat pengguna meminta:
50
+ - Desain ala "Monday.com".
51
+ - Landing page SaaS modern dengan struktur bersih.
52
+ - UI berkualitas tinggi dengan ruang bernapas luas dan aksen cerah.
53
+
54
+ ### Token Desain Utama
55
+ - **Warna Utama (Brand Color)**: Biru Cerah (`#0073ea`) untuk elemen aktif dan tombol utama.
56
+ - **Background**: Putih Bersih (`#FFFFFF`) untuk konten utama, Abu-abu Terang (`#F9F9F9`, `#F5F6F8`) untuk variasi bagian, Abu-abu Gelap/Hitam (`#111111`) untuk footer.
57
+ - **Tipografi**: Sans-serif geometris bersih (mis. Figtree, Circular, Inter).
58
+ - Teks Hero sangat tebal (48-60px).
59
+ - Header bagian tebal (32-40px) dengan warna dark slate (`#333333`).
60
+ - Teks isi sedang (16-18px) berwarna abu-abu redup (`#676879`).
61
+
62
+ ### Komponen UI & Layout
63
+ - **Tombol (Buttons)**: Sudut melengkung (~8px). Tombol utama berwarna biru dengan padding luas (`px-6 py-3`).
64
+ - **Kartu (Cards)**: Radius sudut besar (12-16px) dengan border datar atau bayangan sangat halus (`shadow-sm`).
65
+ - **Tata Letak (Layout)**: Kontainer dengan lebar maksimal (1200-1400px) terpusat.
66
+ - **Jarak (Spacing)**: Jarak vertikal yang sangat lega antar bagian (80-120px).
67
+ - **Interaksi**: Efek hover halus, sistem tab interaktif, dan akordion lipat.
@@ -0,0 +1,227 @@
1
+ ---
2
+ name: monorepo-architect
3
+ description: "Expert guide for designing and managing scalable monorepos using Turborepo, pnpm workspaces, and shared packages / Panduan ahli untuk merancang dan mengelola monorepo skalabel menggunakan Turborepo dan pnpm workspaces."
4
+ author: "Roedy Rustam"
5
+ ---
6
+
7
+ # Monorepo Architect (Turborepo 2.x / Moon Edition)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Description
17
+ Expert guide for designing and managing scalable monorepos. Covers **Turborepo 2.x** (the 2026 standard for JS/TS monorepos), **moon** (polyglot task runner for teams mixing JS + Rust + Go), **pnpm workspaces**, shared package design, incremental builds, remote caching, and CI/CD pipeline optimization.
18
+
19
+ ### Trigger Conditions
20
+ - Managing a codebase with multiple apps and shared packages.
21
+ - Setting up a monorepo for a SaaS with separate `web`, `admin`, `api`, and `packages`.
22
+ - Optimizing build and test times with remote caching.
23
+ - Sharing TypeScript types, UI components, or utility functions across apps.
24
+ - Migrating from a multi-repo setup to a monorepo.
25
+
26
+ ### Tool Selection Guide (2026)
27
+
28
+ | Tool | Best For | Language Agnostic |
29
+ |---|---|---|
30
+ | **Turborepo 2.x** | JS/TS monorepos (Next.js, Vite, Node) | ❌ (JS focused) |
31
+ | **moon** | Polyglot teams (JS + Go + Rust + Python) | ✅ |
32
+ | **Nx** | Enterprise, Angular/React, plugin ecosystem | ❌ (JS focused) |
33
+ | **Bazel** | Very large orgs, hermetic builds | ✅ |
34
+
35
+ ### Turborepo 2.x — Standard JS Monorepo
36
+
37
+ #### Repository Structure
38
+ ```
39
+ my-saas/
40
+ ├── apps/
41
+ │ ├── web/ # Next.js 15 main app
42
+ │ ├── admin/ # Next.js 15 super admin (subdomain)
43
+ │ └── api/ # Hono/Fastify backend
44
+ ├── packages/
45
+ │ ├── ui/ # Shared Tailwind v4 components
46
+ │ ├── db/ # Drizzle ORM schema + queries
47
+ │ ├── auth/ # Auth utilities (session, JWT)
48
+ │ ├── email/ # Email templates (React Email)
49
+ │ └── tsconfig/ # Shared TypeScript configs
50
+ ├── turbo.json
51
+ ├── pnpm-workspace.yaml
52
+ └── package.json
53
+ ```
54
+
55
+ #### turbo.json (v2 Syntax)
56
+ ```json
57
+ {
58
+ "$schema": "https://turbo.build/schema.json",
59
+ "ui": "tui",
60
+ "tasks": {
61
+ "build": {
62
+ "dependsOn": ["^build"],
63
+ "inputs": ["$TURBO_DEFAULT$", ".env*"],
64
+ "outputs": [".next/**", "!.next/cache/**", "dist/**"]
65
+ },
66
+ "dev": {
67
+ "cache": false,
68
+ "persistent": true
69
+ },
70
+ "test": {
71
+ "dependsOn": ["^build"],
72
+ "inputs": ["src/**", "test/**", "vitest.config.*"]
73
+ },
74
+ "lint": {
75
+ "inputs": ["src/**", "*.config.*", ".eslintrc*"]
76
+ },
77
+ "typecheck": {
78
+ "dependsOn": ["^build"]
79
+ },
80
+ "db:generate": {
81
+ "cache": false
82
+ }
83
+ }
84
+ }
85
+ ```
86
+
87
+ #### pnpm-workspace.yaml
88
+ ```yaml
89
+ packages:
90
+ - "apps/*"
91
+ - "packages/*"
92
+ ```
93
+
94
+ #### Remote Caching (Vercel Remote Cache)
95
+ ```bash
96
+ # Authenticate with Vercel Remote Cache
97
+ npx turbo login
98
+ npx turbo link
99
+
100
+ # Or self-hosted with Turborepo Remote Cache
101
+ TURBO_TEAM=my-team TURBO_TOKEN=xxx turbo build
102
+ ```
103
+
104
+ #### Shared UI Package (`packages/ui`)
105
+ ```json
106
+ // packages/ui/package.json
107
+ {
108
+ "name": "@myapp/ui",
109
+ "version": "0.0.0",
110
+ "private": true,
111
+ "exports": {
112
+ "./button": {
113
+ "import": "./src/button.tsx",
114
+ "types": "./src/button.tsx"
115
+ },
116
+ "./card": {
117
+ "import": "./src/card.tsx",
118
+ "types": "./src/card.tsx"
119
+ }
120
+ },
121
+ "peerDependencies": {
122
+ "react": "^19.0.0",
123
+ "react-dom": "^19.0.0"
124
+ }
125
+ }
126
+ ```
127
+
128
+ #### Internal Package Pattern (No Build Step)
129
+ Use `"exports"` pointing to source files directly — Turborepo compiles them as part of the consuming app:
130
+ ```json
131
+ // packages/db/package.json
132
+ {
133
+ "name": "@myapp/db",
134
+ "exports": {
135
+ ".": {
136
+ "import": "./src/index.ts",
137
+ "types": "./src/index.ts"
138
+ }
139
+ },
140
+ "devDependencies": {
141
+ "drizzle-orm": "latest",
142
+ "drizzle-kit": "latest"
143
+ }
144
+ }
145
+ ```
146
+
147
+ ### moon — Polyglot Task Runner
148
+ For teams mixing JavaScript, Go, Rust, and Python in one repo:
149
+ ```yaml
150
+ # .moon/workspace.yml
151
+ projects:
152
+ - "apps/*"
153
+ - "packages/*"
154
+ - "services/*" # Go/Rust microservices
155
+
156
+ vcs:
157
+ manager: "git"
158
+ defaultBranch: "main"
159
+ ```
160
+
161
+ ```yaml
162
+ # apps/api/moon.yml (Go service)
163
+ language: "go"
164
+ type: "application"
165
+
166
+ tasks:
167
+ build:
168
+ command: "go build -o ./bin/api ./cmd/api"
169
+ inputs: ["src/**/*.go", "go.mod"]
170
+ outputs: ["bin/api"]
171
+ test:
172
+ command: "go test ./..."
173
+ ```
174
+
175
+ ### CI/CD Optimization
176
+ ```yaml
177
+ # .github/workflows/ci.yml
178
+ - name: Build & Test (Turborepo)
179
+ run: |
180
+ npx turbo run build test lint typecheck \
181
+ --filter="...[origin/main]" \ # Only changed packages
182
+ --cache-dir=".turbo"
183
+ env:
184
+ TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
185
+ TURBO_TEAM: ${{ vars.TURBO_TEAM }}
186
+ ```
187
+
188
+ ---
189
+
190
+ <a name="bahasa-indonesia"></a>
191
+ ## Bahasa Indonesia
192
+
193
+ ### Deskripsi
194
+ Panduan ahli untuk merancang dan mengelola monorepo yang skalabel. Mencakup **Turborepo 2.x** (standar 2026 untuk monorepo JS/TS), **moon** (task runner poliglot untuk tim yang memadukan JS + Rust + Go), **pnpm workspaces**, desain shared package, incremental build, remote caching, dan optimasi pipeline CI/CD.
195
+
196
+ ### Kondisi Pemicu
197
+ - Mengelola codebase dengan banyak aplikasi dan shared package.
198
+ - Menyiapkan monorepo untuk SaaS dengan `web`, `admin`, `api`, dan `packages` terpisah.
199
+ - Mengoptimalkan waktu build dan test dengan remote caching.
200
+ - Berbagi TypeScript types, komponen UI, atau utilitas antar aplikasi.
201
+ - Migrasi dari multi-repo ke monorepo.
202
+
203
+ ### Panduan Pemilihan Tool (2026)
204
+ - **Turborepo 2.x**: Standar untuk monorepo JS/TS — cepat, zero-config, remote cache bawaan.
205
+ - **moon**: Untuk tim poliglot yang memadukan JS, Go, Rust, Python dalam satu repo.
206
+ - **Nx**: Untuk enterprise dengan ekosistem plugin yang kaya.
207
+
208
+ ### Struktur Repositori
209
+ Pisahkan `apps/` (aplikasi yang dapat di-deploy) dari `packages/` (shared library internal):
210
+ - `apps/web` — Next.js utama
211
+ - `apps/admin` — Dashboard Super Admin (subdomain terpisah)
212
+ - `apps/api` — Backend API
213
+ - `packages/ui` — Komponen UI bersama (Tailwind v4)
214
+ - `packages/db` — Skema Drizzle ORM + query
215
+ - `packages/auth` — Utilitas auth
216
+
217
+ ### Turborepo 2.x — Sintaksis Baru
218
+ Turborepo 2.x memperkenalkan TUI interaktif (`"ui": "tui"`), sintaksis `tasks` yang lebih ekspresif, dan caching yang lebih granular dengan `inputs`/`outputs`.
219
+
220
+ ### Pola Internal Package (Tanpa Build Step)
221
+ Arahkan `exports` langsung ke file sumber TypeScript — Turborepo mengkompilasi sebagai bagian dari aplikasi yang mengonsumsinya. Ini menghilangkan kebutuhan langkah build terpisah untuk setiap package.
222
+
223
+ ### moon — Task Runner Poliglot
224
+ Moon mendukung proyek dalam bahasa yang berbeda (Go, Rust, JS) dalam satu workspace, masing-masing dengan konfigurasi `moon.yml`-nya sendiri.
225
+
226
+ ### Optimasi CI/CD
227
+ Gunakan flag `--filter="...[origin/main]"` Turborepo untuk hanya membangun dan menguji package yang berubah sejak commit terakhir. Gunakan remote cache Vercel atau self-hosted untuk berbagi cache antar runner CI.