learning_ai_common_plat/AI.dev/PROMPTS/platform-integration.md
saravanakumardb 32c7b1ba7e docs(prompts): add 14 reusable AI prompts for ecosystem-wide workflows
- roadmap-execution: phased roadmap execution with checkpoints
- new-product-scaffold: scaffold new ByteLyst product repos
- prd-to-implementation: convert PRDs to concrete plans
- cross-repo-debug: systematic multi-repo debugging
- backend-module-crud: Fastify CRUD modules (types/repo/routes/tests)
- platform-integration: wire products into common platform
- refactor-with-tests: test-first safe refactoring
- test-gap-analysis: coverage gap identification and remediation
- type-safety-sweep: TypeScript error triage and fix
- dependency-health-check: cross-repo dependency audit
- pre-release-validation: comprehensive release checklist
- docker-production-prep: production Docker images
- agents-md-sync: keep AI instruction files accurate
- ecosystem-audit: full ecosystem health dashboard
2026-05-17 16:48:58 -07:00

182 lines
5.5 KiB
Markdown

---
name: platform-integration
description: 'Wire a product repo into the ByteLyst common platform ecosystem — auth, flags, telemetry, design tokens, and shared packages.'
argument-hint: 'Product repo name and integration scope, e.g. "learning_ai_efforise — full integration", "learning_ai_peakpulse — auth + flags only"'
agent: agent
---
# Platform Integration Prompt
Connect a product repository to the ByteLyst common platform, wiring up auth, feature flags, telemetry, design tokens, and shared packages.
## Context — Integration Architecture
```
Product Repo (e.g. learning_ai_efforise)
├── backend/ ──→ @bytelyst/fastify-core, config, errors, datastore, auth, fastify-auth
├── web/ ──→ @bytelyst/react-auth, api-client, design-tokens, ui, feature-flag-client
├── mobile/ ──→ @bytelyst/auth-client, telemetry-client, feature-flag-client
└── shared/product.json ──→ Product identity consumed by all layers
platform-service (port 4003)
├── Auth (JWT issue/validate)
├── Feature flags (FNV-1a rollout)
├── Telemetry (event ingestion)
├── Billing (Stripe subscriptions)
└── Notifications (email, push)
```
## Integration Checklist
### 1. Product Identity (`shared/product.json`)
Ensure this file exists and is correct:
```json
{
"productId": "<product_id>",
"productName": "<ProductName>",
"backendPort": <port>,
"tokenNamespace": "--<prefix>-"
}
```
### 2. Backend Integration
#### Config (`backend/src/lib/config.ts`)
- Self-contained Zod schema (do NOT import zod from @bytelyst/config)
- Include: PORT, HOST, NODE_ENV, DB_PROVIDER, JWT_SECRET, PLATFORM_SERVICE_URL, CORS_ORIGIN
#### Auth (`backend/src/lib/auth.ts`)
- Re-export from `@bytelyst/fastify-auth`
- Wire auth hook in `server.ts` for protected routes
#### Datastore (`backend/src/lib/datastore.ts`)
- Re-export from `@bytelyst/datastore`
- Support `DB_PROVIDER=memory` for dev/test and `DB_PROVIDER=cosmos` for production
#### Product Config (`backend/src/lib/product-config.ts`)
- Read `shared/product.json`
- Export `PRODUCT_ID`, `PRODUCT_NAME`, etc.
#### Request Context (`backend/src/lib/request-context.ts`)
- `getUserId(req)` — extract userId from JWT
- `getRequestProductId(req)` — return productId from config
#### Feature Flags (`backend/src/lib/feature-flags.ts`)
- Initialize `@bytelyst/backend-flags` with product config
- Register product-specific flags
#### Telemetry (`backend/src/lib/telemetry.ts`)
- Initialize `@bytelyst/backend-telemetry`
- Buffer events for platform-service ingestion
#### Diagnostics (`backend/src/lib/register-diagnostics.ts`)
- Register `/api/diagnostics/flags`, `/api/diagnostics/events` routes
- Health endpoint at `GET /health`
### 3. Web Integration
#### Auth (`web/src/lib/auth.ts`)
```typescript
import { createAuthContext } from '@bytelyst/react-auth';
export const { AuthProvider, useAuth } = createAuthContext({
platformUrl: process.env.NEXT_PUBLIC_PLATFORM_SERVICE_URL || 'http://localhost:4003',
productId: '<product_id>',
});
```
#### API Client (`web/src/lib/api-helpers.ts`)
```typescript
import { createApiClient } from '@bytelyst/api-client';
export function createProductClient(getToken: () => string | null) {
return createApiClient({
baseUrl: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:<port>',
getToken,
});
}
```
#### Design Tokens (`web/src/app/globals.css` or `client/src/index.css`)
- Import `@bytelyst/design-tokens` CSS
- Use product namespace: `--<prefix>-*` custom properties
- Never hardcode hex colors
#### Platform Clients
- `@bytelyst/feature-flag-client` — feature gating
- `@bytelyst/telemetry-client` — event tracking
- `@bytelyst/kill-switch-client` — remote kill switch
- `@bytelyst/diagnostics-client` — health monitoring
### 4. Mobile Integration (if applicable)
- `@bytelyst/auth-client` — login/register/token management
- `@bytelyst/telemetry-client` — event buffering
- `@bytelyst/feature-flag-client` — feature gating
- `@bytelyst/kill-switch-client` — remote disable
- `@bytelyst/offline-queue` — offline-first data sync
### 5. pnpm Workspace Configuration
`pnpm-workspace.yaml`:
```yaml
packages:
- 'backend'
- 'web'
- 'mobile'
- '../learning_ai_common_plat/packages/*'
```
`.npmrc` — sync from canonical template:
```bash
cd ../learning_ai_common_plat && bash scripts/sync-npmrc.sh
```
### 6. Docker Support
`docker-compose.yml`:
```yaml
services:
backend:
build: ./backend
ports:
- "<port>:<port>"
env_file: ./backend/.env
depends_on:
- platform-service
```
### 7. Validation
```bash
# Backend
cd backend && pnpm install && pnpm typecheck && pnpm test && pnpm build
# Web
cd web && pnpm install && pnpm typecheck && pnpm build
# Verify auth flow
curl -X POST http://localhost:4003/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"password"}'
# Use returned token against product backend:
curl http://localhost:<port>/health
curl http://localhost:<port>/api/<endpoint> \
-H "Authorization: Bearer <token>"
```
### 8. Commit
```bash
git add .
git commit -m "feat(platform): wire @bytelyst/* ecosystem integration
- Auth: JWT via @bytelyst/fastify-auth + @bytelyst/react-auth
- Data: @bytelyst/datastore with memory/cosmos providers
- Flags: @bytelyst/feature-flag-client
- Telemetry: @bytelyst/telemetry-client
- Tokens: @bytelyst/design-tokens with --<prefix>-* namespace
- Tests: all passing"
git push
```