vibes-plug 2.11.0 → 3.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.
- package/.claude/rules/vibes-plug-core.md +5 -0
- package/.cursor/rules/vibes-plug-core.mdc +8 -3
- package/.cursorrules +9 -3
- package/AGENTS.md +25 -4
- package/CHANGELOG.md +151 -0
- package/CLAUDE.md +15 -8
- package/README.md +216 -641
- package/bin/vibes.mjs +1104 -0
- package/index.js +1 -1
- package/package.json +11 -3
- package/plugin.json +4 -3
- package/scripts/check-anti-slop.js +53 -0
- package/scripts/check-anti-slop.mjs +53 -0
- package/scripts/generate_swarm_gif.py +2 -2
- package/scripts/install.js +3 -1
- package/scripts/update_skills.js +1 -1
- package/scripts/update_skills.mjs +86 -0
- package/scripts/validate-skills.mjs +111 -0
- package/skills/accessibility-testing-expert/SKILL.md +117 -116
- package/skills/affective-computing-emotion-ai/SKILL.md +83 -0
- package/skills/agentic-coding-workflow-expert/SKILL.md +297 -0
- package/skills/agentic-memory-architect/SKILL.md +52 -0
- package/skills/agentic-micro-economy-architect/SKILL.md +92 -0
- package/skills/ai-llm-integration-expert/SKILL.md +330 -187
- package/skills/ai-media-generation-expert/SKILL.md +173 -172
- package/skills/ai-prompt-engineering-expert/SKILL.md +170 -50
- package/skills/ai-safety-governance-expert/SKILL.md +223 -0
- package/skills/angular-expert/SKILL.md +149 -148
- package/skills/anti-slop/SKILL.md +134 -0
- package/skills/api-design-expert/SKILL.md +4 -3
- package/skills/api-gateway-proxy-expert/SKILL.md +3 -2
- package/skills/app-analyzer-optimizer/SKILL.md +4 -3
- package/skills/apple-ecosystem-expert/SKILL.md +6 -5
- package/skills/astro-framework-expert/SKILL.md +201 -200
- package/skills/async-queue-temporal-expert/SKILL.md +218 -240
- package/skills/authentication-identity-expert/SKILL.md +79 -184
- package/skills/autonomous-red-teamer/SKILL.md +338 -203
- package/skills/autonomous-tdd-debugger/SKILL.md +6 -5
- package/skills/biome-linter-formatter-expert/SKILL.md +90 -89
- package/skills/blockchain-web3-expert/SKILL.md +116 -115
- package/skills/brainstorming/SKILL.md +392 -377
- package/skills/browser-automation-expert/SKILL.md +260 -222
- package/skills/bun-runtime-expert/SKILL.md +5 -4
- package/skills/chatbot-messaging-expert/SKILL.md +115 -114
- package/skills/ci-cd-devops-architect/SKILL.md +3 -2
- package/skills/cloud-hosting-expert/SKILL.md +5 -4
- package/skills/coderabbit/SKILL.md +5 -4
- package/skills/compliance-gdpr-privacy-expert/SKILL.md +3 -2
- package/skills/composable-mach-architect/SKILL.md +338 -0
- package/skills/cron-scheduler-expert/SKILL.md +5 -4
- package/skills/data-pipeline-etl-expert/SKILL.md +3 -2
- package/skills/data-telemetry-expert/SKILL.md +5 -4
- package/skills/data-visualization-expert/SKILL.md +155 -154
- package/skills/database-orm-expert/SKILL.md +102 -240
- package/skills/deep-research-analyst/SKILL.md +182 -0
- package/skills/dependency-upgrade-migrator/SKILL.md +11 -10
- package/skills/design-system-architect/SKILL.md +34 -3
- package/skills/desktop-electron-expert/SKILL.md +129 -128
- package/skills/documentation-site-expert/SKILL.md +60 -59
- package/skills/doku-mcp-server/SKILL.md +5 -4
- package/skills/doku-payment-gateway/SKILL.md +250 -232
- package/skills/domain-driven-design-expert/SKILL.md +3 -2
- package/skills/e2e-testing-expert/SKILL.md +5 -4
- package/skills/ecommerce-expert/SKILL.md +88 -87
- package/skills/email-notification-expert/SKILL.md +35 -7
- package/skills/ephemeral-generative-ui-architect/SKILL.md +88 -0
- package/skills/error-resilience-expert/SKILL.md +26 -4
- package/skills/event-driven-architect/SKILL.md +5 -4
- package/skills/feature-flag-analytics-expert/SKILL.md +3 -2
- package/skills/file-upload-media-expert/SKILL.md +5 -4
- package/skills/firebase-security-expert/SKILL.md +5 -4
- package/skills/form-validation-expert/SKILL.md +7 -6
- package/skills/frontier-ai-models-expert/SKILL.md +116 -0
- package/skills/fullstack-expert/SKILL.md +68 -144
- package/skills/gemini-agent-booster/SKILL.md +248 -172
- package/skills/geospatial-maps-expert/SKILL.md +81 -80
- package/skills/global-a11y-i18n-expert/SKILL.md +5 -4
- package/skills/glsl-shader-expert/SKILL.md +155 -71
- package/skills/go-programming-expert/SKILL.md +5 -4
- package/skills/graph-rag-knowledge-expert/SKILL.md +201 -159
- package/skills/graphql-apollo-expert/SKILL.md +5 -4
- package/skills/headless-cms-expert/SKILL.md +182 -181
- package/skills/hig/SKILL.md +5 -4
- package/skills/js-backend-expert/SKILL.md +219 -218
- package/skills/legacy-code-translator/SKILL.md +6 -5
- package/skills/llm-finops-router/SKILL.md +52 -0
- package/skills/local-slm-edge-ai-expert/SKILL.md +168 -167
- package/skills/logging-error-tracking-expert/SKILL.md +5 -4
- package/skills/mcp-server-architect/SKILL.md +316 -294
- package/skills/micro-frontend-architect/SKILL.md +5 -4
- package/skills/mobile-expo-expert/SKILL.md +5 -4
- package/skills/modern-css-native-expert/SKILL.md +190 -189
- package/skills/monorepo-architect/SKILL.md +5 -4
- package/skills/mpa-orchestrator/SKILL.md +41 -4
- package/skills/multi-agent-orchestration/SKILL.md +388 -254
- package/skills/mvc-expert/SKILL.md +5 -4
- package/skills/n8n-automation-expert/SKILL.md +90 -89
- package/skills/nextjs-app-router-expert/SKILL.md +3 -2
- package/skills/openapi-swagger-codegen-expert/SKILL.md +4 -3
- package/skills/payment-gateway-expert/SKILL.md +131 -128
- package/skills/pdf-document-generation-expert/SKILL.md +92 -91
- package/skills/performance-web-vitals/SKILL.md +5 -4
- package/skills/post-quantum-crypto-migrator/SKILL.md +3 -2
- package/skills/prd-architect/SKILL.md +85 -109
- package/skills/proactive-background-watcher/SKILL.md +5 -4
- package/skills/production-ready-hardener/SKILL.md +25 -27
- package/skills/pwa-offline-first-expert/SKILL.md +227 -185
- package/skills/pydantic-ai-expert/SKILL.md +162 -0
- package/skills/python-programming-expert/SKILL.md +5 -4
- package/skills/rate-limit-abuse-prevention/SKILL.md +5 -4
- package/skills/realtime-collaboration-expert/SKILL.md +3 -2
- package/skills/rich-text-editor-expert/SKILL.md +178 -177
- package/skills/rust-programming-expert/SKILL.md +5 -4
- package/skills/saas-architect/SKILL.md +155 -0
- package/skills/saas-billing/SKILL.md +394 -382
- package/skills/saas-multi-tenant/SKILL.md +7 -6
- package/skills/scalability-clean-code/SKILL.md +5 -4
- package/skills/search-engine-expert/SKILL.md +90 -89
- package/skills/self-healing-cloud-orchestrator/SKILL.md +3 -2
- package/skills/senior-frontend/SKILL.md +21 -18
- package/skills/senior-frontend/scripts/frontend_scaffolder.py +1 -1
- package/skills/seo/SKILL.md +4 -4
- package/skills/session-memory-manager/SKILL.md +129 -0
- package/skills/solidjs-expert/SKILL.md +81 -80
- package/skills/spa-orchestrator/SKILL.md +5 -4
- package/skills/sse-websocket-streaming-expert/SKILL.md +3 -2
- package/skills/state-management-expert/SKILL.md +5 -4
- package/skills/supabase-security-expert/SKILL.md +5 -4
- package/skills/svelte-sveltekit-expert/SKILL.md +92 -91
- package/skills/svg-animation-motion-expert/SKILL.md +3 -2
- package/skills/synthetic-data-finetuning-expert/SKILL.md +156 -0
- package/skills/tailwind-expert/SKILL.md +62 -5
- package/skills/tanstack-query-expert/SKILL.md +5 -4
- package/skills/tauri-expert/SKILL.md +5 -4
- package/skills/typescript-expert/SKILL.md +5 -4
- package/skills/ui-ux-pro-max/SKILL.md +7 -4
- package/skills/vector-db-rag-expert/SKILL.md +209 -208
- package/skills/vercel-ai-sdk-expert/SKILL.md +226 -0
- package/skills/voice-ai-realtime-agent/SKILL.md +243 -202
- package/skills/vue-frontend-expert/SKILL.md +5 -4
- package/skills/wasm-edge-computing-expert/SKILL.md +3 -2
- package/skills/web-3d-graphics-expert/SKILL.md +259 -82
- package/skills/web-game-engine-expert/SKILL.md +278 -50
- package/skills/web-scraper/SKILL.md +158 -157
- package/skills/website-design-cloner/SKILL.md +5 -4
- package/skills/webxr-ar-vr-expert/SKILL.md +105 -65
- package/skills/wordpress-headless-expert/SKILL.md +145 -144
- package/skills/zero-tech-debt-auditor/SKILL.md +115 -0
- package/skills/zero-to-prod-orchestrator/SKILL.md +281 -227
- package/skills/zero-trust-secret-vault/SKILL.md +3 -2
- package/BLUEPRINT.md +0 -309
- package/skills/ai-cost-token-optimizer/SKILL.md +0 -82
- package/skills/ai-evals-benchmark-expert/SKILL.md +0 -188
- package/skills/asisten-ramah/SKILL.md +0 -47
- package/skills/auto-doc-updater/SKILL.md +0 -220
- package/skills/autonomous-chaos-monkey/SKILL.md +0 -63
- package/skills/background-jobs-queue-expert/SKILL.md +0 -235
- package/skills/bootstrap-to-modern/SKILL.md +0 -94
- package/skills/database-migration-versioning-expert/SKILL.md +0 -90
- package/skills/edge-serverless-db-expert/SKILL.md +0 -99
- package/skills/mcp-client-orchestrator/SKILL.md +0 -76
- package/skills/mobile-push-notification-expert/SKILL.md +0 -71
- package/skills/monday-design-aesthetic/SKILL.md +0 -73
- package/skills/multiple-entry-points/SKILL.md +0 -91
- package/skills/project-context-mapper/SKILL.md +0 -85
- package/skills/saas-mvp-launcher/SKILL.md +0 -260
- package/skills/saas-transformer/SKILL.md +0 -500
- package/skills/saas-transformer/references/billing_integration_guide.md +0 -401
- package/skills/secure-fuzz-testing/SKILL.md +0 -207
- package/skills/self-evolving-memory-graph/SKILL.md +0 -91
- package/skills/session-context-loader/SKILL.md +0 -83
- package/skills/session-handoff-resume/SKILL.md +0 -164
- package/skills/skill-baru/SKILL.md +0 -178
- package/skills/supabase-migration/SKILL.md +0 -91
- package/skills/token-saver/SKILL.md +0 -119
- package/skills/ui-components-expert/SKILL.md +0 -166
- package/skills/vibe-code-gardener/SKILL.md +0 -181
- package/skills/visual-qa-vision-agent/SKILL.md +0 -71
- /package/skills/{saas-transformer → saas-architect}/references/feature_gating_patterns.md +0 -0
- /package/skills/{saas-transformer → saas-architect}/references/saas_transformation_checklist.md +0 -0
- /package/skills/{saas-transformer → saas-architect}/scripts/saas_transformation_scanner.py +0 -0
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: database-migration-versioning-expert
|
|
3
|
-
description: "Expert guide for database migrations: schema versioning, zero-downtime migrations, backward-compatible changes, data backfill, and rollback strategies / Panduan ahli migrasi database."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Database Migration & Versioning Expert
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Description
|
|
17
|
-
A specialized skill focused strictly on the lifecycle of database schemas in production environments. While `database-orm-expert` handles queries and types, this skill covers the DevOps aspect of databases: zero-downtime schema migrations, backward-compatible release cycles, stateful data backfills, rollback mechanisms, and schema versioning strategies.
|
|
18
|
-
|
|
19
|
-
### Trigger Conditions
|
|
20
|
-
- When modifying an existing production database schema.
|
|
21
|
-
- When planning a deployment that involves database changes (blue-green, canary).
|
|
22
|
-
- When resolving merge conflicts in migration files (e.g., Prisma, Drizzle, Alembic).
|
|
23
|
-
- When designing backfill scripts for massive data migrations.
|
|
24
|
-
|
|
25
|
-
### Core Architectural Guidelines
|
|
26
|
-
|
|
27
|
-
#### 1. Zero-Downtime Migration Pattern (Expand and Contract)
|
|
28
|
-
Never make breaking changes in a single deployment. Use the "Expand and Contract" pattern (Parallel Change):
|
|
29
|
-
- **Phase 1 (Expand)**: Add the new schema element (column, table) without removing the old one. Deploy the database change.
|
|
30
|
-
- **Phase 2 (Migrate)**: Update application code to write to *both* old and new elements, and read from the new element (with fallback). Deploy code.
|
|
31
|
-
- **Phase 3 (Backfill)**: Run a background script to backfill data from the old element to the new element for older records.
|
|
32
|
-
- **Phase 4 (Contract)**: Remove the old application code that writes to the old element. Deploy code.
|
|
33
|
-
- **Phase 5 (Cleanup)**: Drop the old schema element from the database.
|
|
34
|
-
|
|
35
|
-
#### 2. Backward Compatibility Rules
|
|
36
|
-
- **Never `DROP` or `RENAME`** a column/table in active use. Create a new one, migrate data, then drop the old one later.
|
|
37
|
-
- **Avoid changing constraints** on existing data without carefully verifying that all data complies.
|
|
38
|
-
- **Add `DEFAULT` values** to new `NOT NULL` columns, or make them nullable first, backfill, then enforce `NOT NULL`.
|
|
39
|
-
|
|
40
|
-
#### 3. Migration Mechanics
|
|
41
|
-
- Always use version-controlled, immutable migration scripts (e.g., `20260814_add_user_status.sql`).
|
|
42
|
-
- Never modify an already-applied migration file. If a mistake was made, create a new forward-migration to fix it.
|
|
43
|
-
- **Idempotency**: Write scripts that can be safely run multiple times (e.g., `CREATE TABLE IF NOT EXISTS`, `ADD COLUMN IF NOT EXISTS`).
|
|
44
|
-
|
|
45
|
-
#### 4. Safe Data Backfilling
|
|
46
|
-
For large tables (millions of rows), running `UPDATE table SET new_col = old_col` will lock the table and cause downtime.
|
|
47
|
-
- **Chunking**: Perform updates in batches using `LIMIT` and sleep intervals to avoid locking the database.
|
|
48
|
-
- **Background Jobs**: Use dedicated queues (like BullMQ or Inngest) to orchestrate massive backfills.
|
|
49
|
-
|
|
50
|
-
## Orchestration & Integration
|
|
51
|
-
- Enhances `database-orm-expert` with production-grade migration strategies.
|
|
52
|
-
- Complements `ci-cd-devops-architect` for automated migration deployment steps.
|
|
53
|
-
- Integrates with `supabase-migration` for Supabase-specific PostgreSQL migration workflows.
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
<a name="bahasa-indonesia"></a>
|
|
58
|
-
## Bahasa Indonesia
|
|
59
|
-
|
|
60
|
-
### Deskripsi
|
|
61
|
-
Skill khusus yang berfokus ketat pada siklus hidup skema database di lingkungan produksi. Sementara `database-orm-expert` menangani query dan tipe, skill ini mencakup aspek DevOps database: migrasi skema tanpa downtime (zero-downtime), rilis backward-compatible, skrip backfill data stateful, mekanisme rollback, dan strategi pembuatan versi skema.
|
|
62
|
-
|
|
63
|
-
### Kondisi Pemicu
|
|
64
|
-
- Saat memodifikasi skema database produksi yang sudah ada.
|
|
65
|
-
- Saat merencanakan deployment yang melibatkan perubahan database (blue-green, canary).
|
|
66
|
-
- Saat merancang skrip backfill untuk tabel berukuran besar (jutaan baris).
|
|
67
|
-
|
|
68
|
-
### Panduan Arsitektur Inti
|
|
69
|
-
|
|
70
|
-
#### 1. Pola Zero-Downtime (Expand and Contract)
|
|
71
|
-
Jangan pernah melakukan perubahan yang merusak (breaking change) dalam satu deployment.
|
|
72
|
-
- Tambahkan kolom baru tanpa menghapus yang lama.
|
|
73
|
-
- Ubah aplikasi untuk menulis ke keduanya dan membaca dari yang baru.
|
|
74
|
-
- Lakukan migrasi data lama (backfill).
|
|
75
|
-
- Hapus penggunaan kolom lama dari kode aplikasi.
|
|
76
|
-
- Hapus kolom lama dari database di migrasi berikutnya.
|
|
77
|
-
|
|
78
|
-
#### 2. Aturan Kompatibilitas Mundur (Backward Compatibility)
|
|
79
|
-
- **Jangan pernah melakukan `DROP` atau `RENAME`** pada kolom yang sedang aktif digunakan. Buat yang baru, pindahkan data, baru hapus yang lama di siklus rilis berikutnya.
|
|
80
|
-
- Kolom `NOT NULL` baru harus selalu memiliki nilai `DEFAULT`, atau jadikan nullable terlebih dahulu sebelum memaksakan constraint.
|
|
81
|
-
|
|
82
|
-
#### 3. Keamanan Skrip Migrasi
|
|
83
|
-
- Gunakan file migrasi yang immutable (tidak boleh diubah setelah di-deploy). Jika ada bug, buat file migrasi baru untuk memperbaikinya (forward-fix).
|
|
84
|
-
- Skrip harus sebisa mungkin bersifat idempoten.
|
|
85
|
-
- Untuk tabel besar, lakukan backfill data secara bertahap (chunking/batching) agar tidak terjadi table lock yang menyebabkan downtime aplikasi.
|
|
86
|
-
|
|
87
|
-
## Integrasi Orkestrasi
|
|
88
|
-
- Memperkuat `database-orm-expert` dengan strategi deployment yang aman.
|
|
89
|
-
- Melengkapi `ci-cd-devops-architect` dalam alur CI/CD untuk otomatisasi migrasi.
|
|
90
|
-
- Terintegrasi dengan `supabase-migration` untuk ekosistem spesifik Supabase.
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: edge-serverless-db-expert
|
|
3
|
-
description: "Expert guide for Serverless & Edge Databases (Neon Serverless Postgres, Cloudflare D1, Turso/libsql, Upstash Redis), cold-start mitigation, and connection pooling / Panduan ahli database Serverless & Edge (Neon, Cloudflare D1, Turso, Upstash)."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Edge & Serverless DB Expert
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Purpose & Overview
|
|
17
|
-
Best practices for building ultra-low-latency 2026/2027 applications powered by serverless and edge databases. Exploit Neon Serverless Postgres, Cloudflare D1, Turso, Upstash Serverless Redis & Vector. Implement zero-cold-start strategies and HTTP connection pooling.
|
|
18
|
-
|
|
19
|
-
### Key Capabilities
|
|
20
|
-
- **Neon & Cloudflare D1**: Serverless autoscaling Postgres with instant branching. Distributed edge SQLite.
|
|
21
|
-
- **Connection Pooling**: WebSocket/HTTP proxy pooling (Neon Serverless Driver, Upstash Redis over HTTP) for edge workers. Prevent TCP pool exhaustion.
|
|
22
|
-
- **Embedded Replicas**: Sync edge SQLite read-replicas with central cloud databases for sub-10ms queries.
|
|
23
|
-
|
|
24
|
-
```typescript
|
|
25
|
-
import { neon } from '@neondatabase/serverless';
|
|
26
|
-
import { drizzle } from 'drizzle-orm/neon-http';
|
|
27
|
-
|
|
28
|
-
const sql = neon(process.env.DATABASE_URL!);
|
|
29
|
-
export const db = drizzle({ client: sql });
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### Implementation Checklist
|
|
33
|
-
- [ ] Use HTTP/WebSocket drivers (e.g., `neon-http`) for querying databases from Edge Workers/Functions.
|
|
34
|
-
- [ ] Configure connection pooling (PgBouncer, Prisma Accelerate) for standard TCP connections to avoid exhausting database connection limits.
|
|
35
|
-
- [ ] Use read-replicas near the edge location for global deployments to minimize latency.
|
|
36
|
-
- [ ] Cache read-heavy queries at the edge using Upstash Redis or Cloudflare KV.
|
|
37
|
-
|
|
38
|
-
### Example: Upstash Redis Edge Caching
|
|
39
|
-
```typescript
|
|
40
|
-
import { Redis } from '@upstash/redis';
|
|
41
|
-
|
|
42
|
-
const redis = new Redis({
|
|
43
|
-
url: process.env.UPSTASH_REDIS_REST_URL!,
|
|
44
|
-
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
export async function getCachedData(key: string) {
|
|
48
|
-
let data = await redis.get(key);
|
|
49
|
-
if (!data) {
|
|
50
|
-
data = await fetchFromDB();
|
|
51
|
-
await redis.set(key, data, { ex: 3600 }); // Cache for 1 hour
|
|
52
|
-
}
|
|
53
|
-
return data;
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Orchestration & Integration
|
|
58
|
-
- Integrates with: `database-orm-expert`, `js-backend-expert`, `cloud-hosting-expert`.
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
<a name="bahasa-indonesia"></a>
|
|
63
|
-
## Bahasa Indonesia
|
|
64
|
-
|
|
65
|
-
### Deskripsi
|
|
66
|
-
Praktik terbaik membangun aplikasi latensi rendah 2026/2027 dengan database serverless dan edge. Manfaatkan Neon Serverless Postgres, Cloudflare D1, Turso, Upstash Serverless Redis & Vector. Implementasi strategi tanpa cold-start dan connection pooling HTTP.
|
|
67
|
-
|
|
68
|
-
### Fitur Utama
|
|
69
|
-
- **Neon & Cloudflare D1**: Serverless Postgres autoscaling dengan branching instan. Distributed edge SQLite.
|
|
70
|
-
- **Connection Pooling**: Proxy pooling HTTP/WebSocket untuk edge worker. Cegah kehabisan koneksi TCP.
|
|
71
|
-
- **Embedded Replicas**: Sinkronisasi read-replica SQLite di edge dengan database utama untuk query di bawah 10ms.
|
|
72
|
-
|
|
73
|
-
### Checklist Implementasi
|
|
74
|
-
- [ ] Gunakan driver HTTP/WebSocket (misal: `neon-http`) untuk mengakses database dari Edge Workers/Functions.
|
|
75
|
-
- [ ] Konfigurasi connection pooling (PgBouncer, Prisma Accelerate) pada koneksi TCP standar untuk mencegah batas koneksi habis.
|
|
76
|
-
- [ ] Gunakan read-replicas di dekat lokasi edge untuk deployment global guna meminimalkan latensi.
|
|
77
|
-
- [ ] Cache query berat di edge menggunakan Upstash Redis atau Cloudflare KV.
|
|
78
|
-
|
|
79
|
-
### Contoh: Upstash Redis Edge Caching
|
|
80
|
-
```typescript
|
|
81
|
-
import { Redis } from '@upstash/redis';
|
|
82
|
-
|
|
83
|
-
const redis = new Redis({
|
|
84
|
-
url: process.env.UPSTASH_REDIS_REST_URL!,
|
|
85
|
-
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
export async function getCachedData(key: string) {
|
|
89
|
-
let data = await redis.get(key);
|
|
90
|
-
if (!data) {
|
|
91
|
-
data = await fetchFromDB();
|
|
92
|
-
await redis.set(key, data, { ex: 3600 }); // Cache 1 jam
|
|
93
|
-
}
|
|
94
|
-
return data;
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Integrasi Orkestrasi
|
|
99
|
-
- Terintegrasi dengan: `database-orm-expert`, `js-backend-expert`, `cloud-hosting-expert`.
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mcp-client-orchestrator
|
|
3
|
-
description: "Expert guide for the AI Agent to dynamically orchestrate and consume external MCP (Model Context Protocol) servers, giving it real-time superpowers over databases, GitHub, Slack, and local files."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# MCP Client Orchestrator
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Orchestration & Integration
|
|
17
|
-
Connects and orchestrates with relevant domain skills like `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
|
|
18
|
-
|
|
19
|
-
### Description
|
|
20
|
-
While `mcp-server-architect` teaches the agent how to *build* servers, this skill teaches the agent how to **consume** them as an MCP Client. This grants the agent "superpowers" by securely interacting with local PostgreSQL databases, GitHub repos, Figma APIs, and Slack channels in real-time, autonomously, using available MCP tool sets.
|
|
21
|
-
|
|
22
|
-
### Trigger Conditions
|
|
23
|
-
Activate this skill when:
|
|
24
|
-
- The user asks the agent to query the database, but the agent doesn't have a direct SQL tool.
|
|
25
|
-
- The user needs real-time context from an external system (e.g., "Read the latest Slack messages about this bug").
|
|
26
|
-
- The user wants the agent to orchestrate multiple tools across different domains simultaneously.
|
|
27
|
-
|
|
28
|
-
### Core Concepts
|
|
29
|
-
|
|
30
|
-
#### 1. MCP Resource & Tool Discovery
|
|
31
|
-
Before assuming a capability doesn't exist, the agent should dynamically inspect available tools.
|
|
32
|
-
- Use `list_resources` or check `mcp_config.json` to see what servers are running.
|
|
33
|
-
- Understand that MCP tools proxy capabilities securely. If there's a `postgres_mcp`, the agent can execute `execute_sql` through it.
|
|
34
|
-
|
|
35
|
-
#### 2. Workflow Orchestration
|
|
36
|
-
Example: "Find the bug reported on GitHub and fix it."
|
|
37
|
-
1. Use the GitHub MCP to `search_issues`.
|
|
38
|
-
2. Extract the stack trace from the issue comment.
|
|
39
|
-
3. Use `grep_search` to find the failing code.
|
|
40
|
-
4. Use `autonomous-tdd-debugger` to fix and test it.
|
|
41
|
-
5. Use the GitHub MCP to `create_pull_request`.
|
|
42
|
-
|
|
43
|
-
### Best Practices
|
|
44
|
-
- **Never guess schema:** Always use MCP tools like `list_tables` or `get_schema` before writing a query.
|
|
45
|
-
- **Respect Rate Limits:** If calling external APIs via MCP, avoid looping rapidly without timeouts.
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
### Integration with Other Skills (MANDATORY)
|
|
50
|
-
- `doku-mcp-server` — An example of a specific MCP server the agent can orchestrate.
|
|
51
|
-
- `ai-llm-integration-expert` — Provides context on how MCP fits into the broader LangGraph/AI landscape.
|
|
52
|
-
- `multi-agent-orchestration` — Used when delegating different MCP tool calls to specialized subagents.
|
|
53
|
-
|
|
54
|
-
### Referenced By Orchestrators (MANDATORY)
|
|
55
|
-
- `brainstorming` — Add to "AI & LLM Integration".
|
|
56
|
-
- `zero-to-prod-orchestrator` — Phase 4 (AI Agents).
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
<a name="bahasa-indonesia"></a>
|
|
61
|
-
## Bahasa Indonesia
|
|
62
|
-
|
|
63
|
-
### Integrasi Orkestrasi
|
|
64
|
-
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
65
|
-
|
|
66
|
-
### Deskripsi
|
|
67
|
-
Skill yang memandu Agen AI tentang cara menggunakan (consume) server Model Context Protocol (MCP) eksternal, memberikan kekuatan *real-time* untuk berinteraksi dengan Database, GitHub, Slack, dan sistem lainnya secara otonom.
|
|
68
|
-
|
|
69
|
-
### Kondisi Pemicu
|
|
70
|
-
- Saat Anda (sebagai agen) perlu mengeksekusi SQL ke database lokal/remote namun tidak memiliki akses terminal langsung.
|
|
71
|
-
- Saat Anda perlu membaca data *live* dari platform eksternal (Figma, GitHub, dll).
|
|
72
|
-
|
|
73
|
-
### Panduan Singkat
|
|
74
|
-
- **Eksplorasi Tool:** Selalu periksa tool MCP yang tersedia di sistem (misal `list_tables` atau `read_issue`). Jangan berasumsi Anda buta terhadap dunia luar jika server MCP-nya aktif.
|
|
75
|
-
- **Orkestrasi Lintas Platform:** Anda dapat membaca pesan error di Slack via MCP, mencari kode yang relevan di *file system*, memperbaikinya, dan membuat Pull Request di GitHub via MCP secara otomatis. Ini adalah definisi sebenarnya dari Agen Otonom.
|
|
76
|
-
- **Validasi Skema:** Jangan pernah menebak nama tabel. Selalu gunakan tool MCP untuk mengambil skema database terlebih dahulu sebelum menjalankan kueri `execute_sql`.
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mobile-push-notification-expert
|
|
3
|
-
description: "Expert guide for Cross-Platform Push Notifications (Expo Push, FCM, APNs, Web Push), iOS Live Activities, and background payload handling / Panduan ahli notifikasi push mobile, FCM, APNs, dan Live Activities."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Mobile Push Notification & Live Activities Expert
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Purpose & Overview
|
|
17
|
-
Comprehensive guide for configuring cross-platform push notifications (Expo Push API, Firebase Cloud Messaging FCM, Apple APNs, Web Push API), iOS Live Activities / ActivityKit, background payload handlers, deep-linking routing, and push token lifecycle management.
|
|
18
|
-
|
|
19
|
-
### Key Capabilities
|
|
20
|
-
- **Expo & FCM Push**: Sending batched push notifications with rich media, actions, and custom data payloads.
|
|
21
|
-
- **iOS Live Activities**: Real-time status updates on iOS Dynamic Island and Lock Screen.
|
|
22
|
-
- **Deep Linking**: Routing push notification taps directly to targeted screens within Expo Router / React Native.
|
|
23
|
-
|
|
24
|
-
```typescript
|
|
25
|
-
import * as Notifications from 'expo-notifications';
|
|
26
|
-
|
|
27
|
-
export async function registerForPushNotificationsAsync() {
|
|
28
|
-
const { status: existingStatus } = await Notifications.getPermissionsAsync();
|
|
29
|
-
let finalStatus = existingStatus;
|
|
30
|
-
if (existingStatus !== 'granted') {
|
|
31
|
-
const { status } = await Notifications.requestPermissionsAsync();
|
|
32
|
-
finalStatus = status;
|
|
33
|
-
}
|
|
34
|
-
if (finalStatus !== 'granted') return null;
|
|
35
|
-
const token = (await Notifications.getExpoPushTokenAsync()).data;
|
|
36
|
-
return token;
|
|
37
|
-
}
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Implementation Checklist
|
|
41
|
-
- [ ] Configure Apple Developer Account (APNs Key) and Google Firebase (FCM Service Account).
|
|
42
|
-
- [ ] Request push notification permissions explicitly from the user after they understand the value proposition.
|
|
43
|
-
- [ ] Save the device's Push Token to the database, associated with the user's ID.
|
|
44
|
-
- [ ] Handle token refresh events when the user uninstalls/reinstalls the app or changes devices.
|
|
45
|
-
- [ ] Set up background event handlers to process incoming messages when the app is killed.
|
|
46
|
-
|
|
47
|
-
## Orchestration & Integration
|
|
48
|
-
- Integrates with: `mobile-expo-expert`, `event-driven-architect`, `database-orm-expert`.
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
<a name="bahasa-indonesia"></a>
|
|
53
|
-
## Bahasa Indonesia
|
|
54
|
-
|
|
55
|
-
### Deskripsi
|
|
56
|
-
Panduan komprehensif untuk konfigurasi push notification lintas platform (Expo Push, FCM, APNs, Web Push), iOS Live Activities / ActivityKit, penanganan payload background, routing deep-linking, dan manajemen siklus token push.
|
|
57
|
-
|
|
58
|
-
### Fitur Utama
|
|
59
|
-
- **Expo & FCM Push**: Pengiriman push notification masal dengan media kaya, tombol aksi, dan payload kustom.
|
|
60
|
-
- **iOS Live Activities**: Update status real-time di Dynamic Island dan Lock Screen iOS.
|
|
61
|
-
- **Deep Linking**: Mengarahkan ketukan notifikasi secara langsung ke layar target di Expo Router / React Native.
|
|
62
|
-
|
|
63
|
-
### Checklist Implementasi
|
|
64
|
-
- [ ] Konfigurasi Akun Developer Apple (Kunci APNs) dan Google Firebase (Service Account FCM).
|
|
65
|
-
- [ ] Minta izin notifikasi push secara eksplisit dari pengguna setelah mereka memahami nilai gunanya.
|
|
66
|
-
- [ ] Simpan Push Token perangkat ke database, yang terkait dengan ID pengguna.
|
|
67
|
-
- [ ] Tangani event penyegaran token saat pengguna menghapus/menginstal ulang aplikasi atau mengganti perangkat.
|
|
68
|
-
- [ ] Siapkan handler event background untuk memproses pesan masuk saat aplikasi ditutup (killed).
|
|
69
|
-
|
|
70
|
-
## Integrasi Orkestrasi
|
|
71
|
-
- Terintegrasi dengan: `mobile-expo-expert`, `event-driven-architect`, `database-orm-expert`.
|
|
@@ -1,73 +0,0 @@
|
|
|
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
|
-
### Orchestration & Integration
|
|
17
|
-
Connects and orchestrates with relevant domain skills like `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
|
|
18
|
-
|
|
19
|
-
### Description
|
|
20
|
-
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.
|
|
21
|
-
|
|
22
|
-
### Trigger Conditions
|
|
23
|
-
Use this when the user asks for:
|
|
24
|
-
- A "Monday.com style" design.
|
|
25
|
-
- A modern SaaS landing page with clean structure.
|
|
26
|
-
- High-quality, spacious UI with vibrant accents.
|
|
27
|
-
|
|
28
|
-
### Core Design Tokens
|
|
29
|
-
- **Primary Brand Color**: Vibrant Blue (`#0073ea`) for active states and primary buttons.
|
|
30
|
-
- **Backgrounds**: Clean White (`#FFFFFF`) for main content, Light Grays (`#F9F9F9`, `#F5F6F8`) for section alternations, Dark Gray/Black (`#111111`) for footers.
|
|
31
|
-
- **Typography**: Clean geometric sans-serif (e.g., Figtree, Circular, Inter).
|
|
32
|
-
- Hero text is extra-bold (48-60px).
|
|
33
|
-
- Section headers are bold (32-40px) in dark slate (`#333333`).
|
|
34
|
-
- Body text is medium (16-18px) in muted gray (`#676879`).
|
|
35
|
-
|
|
36
|
-
### UI Components & Layout
|
|
37
|
-
- **Buttons**: Fully rounded corners (~8px). Primary buttons use vibrant blue with white text and generous padding (e.g., `px-6 py-3`).
|
|
38
|
-
- **Cards**: Large border radius (12-16px) with flat borders or extremely subtle drop shadows (`shadow-sm`).
|
|
39
|
-
- **Layout**: Centered max-width containers (1200-1400px).
|
|
40
|
-
- **Spacing**: Generous vertical padding between sections (80-120px) to let content breathe.
|
|
41
|
-
- **Interactions**: Smooth hover states, interactive tab systems, and collapsible accordions.
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
<a name="bahasa-indonesia"></a>
|
|
46
|
-
## Bahasa Indonesia
|
|
47
|
-
|
|
48
|
-
### Integrasi Orkestrasi
|
|
49
|
-
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
50
|
-
|
|
51
|
-
### Deskripsi
|
|
52
|
-
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.
|
|
53
|
-
|
|
54
|
-
### Kondisi Pemicu
|
|
55
|
-
Gunakan saat pengguna meminta:
|
|
56
|
-
- Desain ala "Monday.com".
|
|
57
|
-
- Landing page SaaS modern dengan struktur bersih.
|
|
58
|
-
- UI berkualitas tinggi dengan ruang bernapas luas dan aksen cerah.
|
|
59
|
-
|
|
60
|
-
### Token Desain Utama
|
|
61
|
-
- **Warna Utama (Brand Color)**: Biru Cerah (`#0073ea`) untuk elemen aktif dan tombol utama.
|
|
62
|
-
- **Background**: Putih Bersih (`#FFFFFF`) untuk konten utama, Abu-abu Terang (`#F9F9F9`, `#F5F6F8`) untuk variasi bagian, Abu-abu Gelap/Hitam (`#111111`) untuk footer.
|
|
63
|
-
- **Tipografi**: Sans-serif geometris bersih (mis. Figtree, Circular, Inter).
|
|
64
|
-
- Teks Hero sangat tebal (48-60px).
|
|
65
|
-
- Header bagian tebal (32-40px) dengan warna dark slate (`#333333`).
|
|
66
|
-
- Teks isi sedang (16-18px) berwarna abu-abu redup (`#676879`).
|
|
67
|
-
|
|
68
|
-
### Komponen UI & Layout
|
|
69
|
-
- **Tombol (Buttons)**: Sudut melengkung (~8px). Tombol utama berwarna biru dengan padding luas (`px-6 py-3`).
|
|
70
|
-
- **Kartu (Cards)**: Radius sudut besar (12-16px) dengan border datar atau bayangan sangat halus (`shadow-sm`).
|
|
71
|
-
- **Tata Letak (Layout)**: Kontainer dengan lebar maksimal (1200-1400px) terpusat.
|
|
72
|
-
- **Jarak (Spacing)**: Jarak vertikal yang sangat lega antar bagian (80-120px).
|
|
73
|
-
- **Interaksi**: Efek hover halus, sistem tab interaktif, dan akordion lipat.
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: multiple-entry-points
|
|
3
|
-
description: "Expert guide for designing and implementing Multiple Entry Points architecture in web applications / Panduan ahli untuk merancang dan mengimplementasikan arsitektur Multiple Entry Points pada aplikasi web."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Multiple Entry Points Architecture
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Orchestration & Integration
|
|
17
|
-
Connects and orchestrates with relevant domain skills like `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
|
|
18
|
-
|
|
19
|
-
### Description
|
|
20
|
-
This skill outlines the architectural pattern of using Multiple Entry Points in a web application. Instead of forcing all traffic through a single Front Controller (like a monolithic `index.php`), the application separates traffic logically into distinct entry files such as `index.php` (public), `admin.php`, and `api.php`. This provides stronger isolation, optimized loading, and stricter security boundaries.
|
|
21
|
-
|
|
22
|
-
### Core Principles of Multiple Entry Points
|
|
23
|
-
1. **Logical Separation**: Isolate different application domains into their own entry files. For example: `public/index.php` for user-facing pages, `public/admin.php` for back-office operations, and `public/api.php` for stateless API routes.
|
|
24
|
-
2. **Dedicated Bootstrapping**: Each entry point can bootstrap only the necessary dependencies, configurations, and middlewares it requires. For example, `api.php` does not need to initialize HTML template engines or stateful session cookies, while `admin.php` can enforce strict authentication middleware immediately upon execution.
|
|
25
|
-
3. **Security Boundaries**: By physically separating entry points, you can apply distinct server-level security rules (via `.htaccess`, Nginx configurations, or WAF). For example, you can restrict access to `admin.php` to specific internal IP addresses or enforce mutual TLS.
|
|
26
|
-
4. **Frontend Asset Bundling (Vite / Webpack)**: In a modern frontend context (especially for MPAs), define multiple entry points in the bundler configuration. This generates separate, optimized JavaScript and CSS bundles for the public site versus the complex admin dashboard, drastically reducing overall payload sizes for general users.
|
|
27
|
-
|
|
28
|
-
### Implementation Checklist
|
|
29
|
-
- [ ] Create separate HTML entry points in the root/public directory (e.g., `index.html`, `admin.html`).
|
|
30
|
-
- [ ] Configure the frontend bundler (Vite/Webpack) to output multiple bundles.
|
|
31
|
-
- [ ] Set up server-side routing (Nginx or Node.js) to serve the correct entry HTML based on the URL path.
|
|
32
|
-
- [ ] Ensure shared components and utilities are properly tree-shaken and split into common chunks.
|
|
33
|
-
|
|
34
|
-
### Example: Vite Config for Multiple Entries
|
|
35
|
-
```javascript
|
|
36
|
-
import { defineConfig } from 'vite';
|
|
37
|
-
import { resolve } from 'path';
|
|
38
|
-
|
|
39
|
-
export default defineConfig({
|
|
40
|
-
build: {
|
|
41
|
-
rollupOptions: {
|
|
42
|
-
input: {
|
|
43
|
-
main: resolve(__dirname, 'index.html'),
|
|
44
|
-
admin: resolve(__dirname, 'admin.html'),
|
|
45
|
-
app: resolve(__dirname, 'app.html')
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Orchestration with Other Skills
|
|
53
|
-
- **With `mpa-orchestrator`**: In a Multi-Page Application, multiple entry points allow you to split heavy dashboard assets from fast-loading public marketing pages, enhancing both SEO and performance.
|
|
54
|
-
- **With `mvc-expert`**: Each entry point acts as a distinct Front Controller, initiating its own lightweight Router instance configured specifically for that domain's controllers (e.g., an AdminRouter vs an ApiRouter).
|
|
55
|
-
- **With `saas-multi-tenant`**: You can design a `tenant.php` entry point that strictly mandates a valid `tenant_id` resolution before bootstrapping the app, while a `landing.php` entry point handles anonymous public traffic safely.
|
|
56
|
-
|
|
57
|
-
### Trigger Conditions
|
|
58
|
-
- Active when building or refactoring applications that require strict separation between public, admin, and API traffic.
|
|
59
|
-
- Active when optimizing frontend bundler configurations (like Vite) for Multi-Page Applications.
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
<a name="bahasa-indonesia"></a>
|
|
64
|
-
## Bahasa Indonesia
|
|
65
|
-
|
|
66
|
-
### Integrasi Orkestrasi
|
|
67
|
-
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
68
|
-
|
|
69
|
-
### Deskripsi
|
|
70
|
-
Skill ini menguraikan pola arsitektur menggunakan *Multiple Entry Points* dalam aplikasi web. Alih-alih memaksa semua lalu lintas (traffic) melalui satu Front Controller tunggal (seperti `index.php` monolitik), aplikasi memisahkan lalu lintas secara logis ke dalam file entri yang berbeda seperti `index.php` (publik), `admin.php`, dan `api.php`. Pola ini memberikan isolasi yang lebih kuat, pemuatan (loading) yang dioptimalkan, dan batas keamanan yang lebih ketat.
|
|
71
|
-
|
|
72
|
-
### Prinsip Inti Multiple Entry Points
|
|
73
|
-
1. **Pemisahan Logis**: Isolasi domain aplikasi yang berbeda ke dalam file entrinya masing-masing. Contoh: `public/index.php` untuk pengguna umum, `public/admin.php` untuk operasional *back-office*, dan `public/api.php` untuk rute API yang *stateless*.
|
|
74
|
-
2. **Bootstrapping Terdedikasi**: Setiap titik masuk (entry point) hanya memuat dependensi, konfigurasi, dan middleware yang benar-benar diperlukannya. Contohnya, `api.php` tidak perlu menginisialisasi *template engine* HTML atau *session cookies*, sementara `admin.php` dapat langsung memberlakukan middleware autentikasi secara ketat sejak awal file dieksekusi.
|
|
75
|
-
3. **Batas Keamanan (Security Boundaries)**: Dengan memisahkan titik masuk secara fisik, Anda dapat menerapkan aturan keamanan tingkat server yang berbeda (melalui `.htaccess`, konfigurasi Nginx, atau WAF). Misalnya, membatasi akses ke `admin.php` hanya untuk alamat IP internal tertentu.
|
|
76
|
-
4. **Bundling Aset Frontend (Vite / Webpack)**: Dalam konteks frontend modern (khususnya untuk MPA), tentukan beberapa *entry points* pada konfigurasi *bundler*. Ini akan menghasilkan bundel JavaScript dan CSS yang terpisah dan optimal antara situs publik dan dashboard admin, sehingga secara drastis mengurangi ukuran *payload* bagi pengguna umum.
|
|
77
|
-
|
|
78
|
-
### Checklist Implementasi
|
|
79
|
-
- [ ] Buat titik entri HTML terpisah di direktori utama/publik (misal: `index.html`, `admin.html`).
|
|
80
|
-
- [ ] Konfigurasi bundler frontend (Vite/Webpack) untuk menghasilkan multiple bundle.
|
|
81
|
-
- [ ] Siapkan routing di sisi server (Nginx atau Node.js) untuk menyajikan HTML entri yang benar berdasarkan path URL.
|
|
82
|
-
- [ ] Pastikan komponen dan utilitas yang dipakai bersama dioptimalkan (tree-shaking) dan dipisah ke dalam *common chunks*.
|
|
83
|
-
|
|
84
|
-
### Orkestrasi dengan Skill Lain
|
|
85
|
-
- **Dengan `mpa-orchestrator`**: Dalam aplikasi MPA, penggunaan beberapa *entry point* memungkinkan Anda memisahkan aset dashboard yang berat dari halaman *marketing* publik yang butuh kecepatan muat tinggi, sehingga meningkatkan SEO dan performa sekaligus.
|
|
86
|
-
- **Dengan `mvc-expert`**: Setiap *entry point* bertindak sebagai Front Controller yang terpisah, menginisiasi instans Router yang ringan dan dikonfigurasi khusus untuk controller di domain tersebut (misalnya AdminRouter vs ApiRouter).
|
|
87
|
-
- **Dengan `saas-multi-tenant`**: Anda dapat memiliki *entry point* `tenant.php` yang secara ketat mewajibkan resolusi `tenant_id` yang valid sebelum memuat aplikasi, sementara *entry point* `landing.php` melayani lalu lintas publik anonim dengan aman.
|
|
88
|
-
|
|
89
|
-
### Kondisi Pemicu
|
|
90
|
-
- Aktif saat membangun atau melakukan refaktor aplikasi yang membutuhkan pemisahan ketat antara lalu lintas publik, admin, dan API.
|
|
91
|
-
- Aktif saat mengoptimalkan konfigurasi *bundler* frontend (seperti Vite) untuk proyek Multi-Page Application.
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: project-context-mapper
|
|
3
|
-
description: "Gives the agent a photographic memory of massive repositories. Forces the creation and maintenance of a highly compressed CONTEXT_MAP.md to prevent context exhaustion and hallucination."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Project Context Mapper (Memory Optimizer)
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Orchestration & Integration
|
|
17
|
-
Connects and orchestrates with relevant domain skills like `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
|
|
18
|
-
|
|
19
|
-
### Description
|
|
20
|
-
LLMs struggle with repositories containing hundreds of files; they lose track of where things are, leading to hallucinations and excessive tool calls. This skill forces the agent to create, read, and maintain a `CONTEXT_MAP.md`—a highly compressed index of the repository's architecture, dependency graphs, and critical file locations. This acts as the agent's "photographic memory".
|
|
21
|
-
|
|
22
|
-
### Trigger Conditions
|
|
23
|
-
Activate this skill when:
|
|
24
|
-
- The agent enters a massive, existing codebase for the first time.
|
|
25
|
-
- The user complains that the AI is "editing the wrong file" or "forgetting how the app is structured."
|
|
26
|
-
- Context token usage is dangerously high and needs optimization.
|
|
27
|
-
|
|
28
|
-
### Core Concepts
|
|
29
|
-
|
|
30
|
-
#### 1. The Context Map Format
|
|
31
|
-
The agent should execute a script or traverse the directory to generate a compressed map in `CONTEXT_MAP.md` (or within `.agents/`).
|
|
32
|
-
```markdown
|
|
33
|
-
# CONTEXT MAP (Do not delete)
|
|
34
|
-
|
|
35
|
-
## Architecture
|
|
36
|
-
- Frontend: Next.js App Router (src/app)
|
|
37
|
-
- Backend: Hono RPC (src/server)
|
|
38
|
-
- DB: Drizzle (src/db/schema.ts)
|
|
39
|
-
|
|
40
|
-
## Dependency Graph (Critical Paths)
|
|
41
|
-
- `src/app/page.tsx` -> `src/components/ui/Button.tsx`
|
|
42
|
-
- `src/server/routes/users.ts` -> `src/db/queries/users.ts`
|
|
43
|
-
|
|
44
|
-
## State Locations
|
|
45
|
-
- Global Auth: `src/store/auth.ts` (Zustand)
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
#### 2. Workflow
|
|
49
|
-
1. **On Start:** The agent reads `CONTEXT_MAP.md` instead of blindly listing directories.
|
|
50
|
-
2. **On Modification:** When the agent creates a new major component, route, or service, it MUST append that location to the context map.
|
|
51
|
-
|
|
52
|
-
### Best Practices
|
|
53
|
-
- **Keep it Ultra-Compressed:** Do not store full code in the map. Store ONLY file paths, responsibilities (1 sentence), and connections.
|
|
54
|
-
- **BM25 Search First:** Before writing to the context map, consider using `grep_search` or semantic search for targeted lookups. The map is for *architectural* understanding, not exact variable finding.
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
### Integration with Other Skills (MANDATORY)
|
|
59
|
-
- `session-context-loader` — Integrates deeply to ensure the context map is loaded automatically on every new chat session.
|
|
60
|
-
- `token-saver` — The map prevents the agent from reading 10 separate files just to find one function, saving massive amounts of tokens.
|
|
61
|
-
- `monorepo-architect` — Essential for mapping out package boundaries in Turborepo/pnpm workspaces.
|
|
62
|
-
|
|
63
|
-
### Referenced By Orchestrators (MANDATORY)
|
|
64
|
-
- `brainstorming` — Add to "Discovery & Audit".
|
|
65
|
-
- `zero-to-prod-orchestrator` — Phase 1 (Discovery & Architecture).
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
<a name="bahasa-indonesia"></a>
|
|
70
|
-
## Bahasa Indonesia
|
|
71
|
-
|
|
72
|
-
### Integrasi Orkestrasi
|
|
73
|
-
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
74
|
-
|
|
75
|
-
### Deskripsi
|
|
76
|
-
Kelemahan utama agen AI adalah keterbatasan jendela konteks (*context window*). Skill ini memberi agen "ingatan fotografis" dengan mewajibkannya memelihara file `CONTEXT_MAP.md`—sebuah indeks super padat yang memetakan arsitektur proyek, lokasi file penting, dan graf dependensi.
|
|
77
|
-
|
|
78
|
-
### Kondisi Pemicu
|
|
79
|
-
- Saat agen baru saja dimasukkan ke dalam repositori raksasa yang sudah ada (bukan dari nol).
|
|
80
|
-
- Saat agen mulai salah mengedit file atau terlihat kebingungan dengan struktur folder.
|
|
81
|
-
|
|
82
|
-
### Panduan Singkat
|
|
83
|
-
- **Indeks Tersentralisasi:** Buat dan selalu perbarui `CONTEXT_MAP.md`. File ini berisi daftar *path* direktori krusial dan tanggung jawab masing-masing (misal: "Logic pembayaran ada di `src/lib/stripe.ts`").
|
|
84
|
-
- **Ultra-Ringkas:** Jangan menaruh baris kode di dalam peta konteks ini. Hanya gunakan format *bullet points* agar konsumsi token saat dibaca sangat rendah.
|
|
85
|
-
- **Baca di Awal Sesi:** Di setiap awal percakapan, agen tidak perlu lagi meraba-raba melakukan `ls` berulang kali. Cukup gunakan `view_file` pada `CONTEXT_MAP.md`, dan agen langsung mengerti seluruh topologi proyek.
|