S207 Handoff Prompt
Documentation for Handoffs
S207: Complete Platform Generation Pipeline + ESM SDK
Context
Session 206 fixed the platform generation pipeline. Here's what exists:
What's Done (S206)
GitLab base template at
gograbspace/platform-base-template— 33+ gspace1 libs, builds with 0 errors- Branch
before-changeshas the original state for comparison - Branch
mainhas the S206 fixes (NGXS removed, real libs added, all build errors fixed) - Local clone at
/Users/fguijarro/developer/repos-gspace/repo-templates/platform-base-template
- Branch
Pipeline changes in gspace1 (4 files modified, UNCOMMITTED on session-206.2 branch):
APIs/backend-vitto-api/src/app/studio/universe-git.service.ts— addedinitializeFromTemplate()that forks from template repoAPIs/backend-vitto-api/src/app/module-generation/phases/module-gen-phase.executor.ts— PRE-FLIGHT uses template; CI uses yarnAPIs/backend-vitto-api/src/app/module-generation/generators/app-shell-generator.service.ts— generatesprovideApiConfig(),providePlatformBootstrap(), extendstsconfig.base.jsonAPIs/backend-ai-api/src/app/workflow/templates/template-registry.service.ts— CRUD templates useUniverseDataCrudServiceinstead of raw HttpClient
New files in template (already pushed to GitLab):
PlatformBootstrapService— seeds SpaceService + UniverseContextService from environment.tsUniverseDataCrudService— adapter wrapping UniverseDataService, composable-compatibleseedForPlatform()method on SpaceService
Env vars already set:
GITLAB_TEMPLATE_REPO=gograbspace/platform-base-templatein .env.local + Railway
Architecture Decisions (logged to MCP intelligence)
- Generated platforms use
UniverseDataCrudService→UniverseDataService→ backend-api:3000 → MongoDB - No NGXS — flash-persistence + signals only
- Future: ESM SDK on Cloudflare R2 (pre-built libs, import maps)
Your Tasks (in order)
Task 1: Commit S206 Pipeline Changes
The 4 modified files in gspace1 are uncommitted. Commit them:
git add APIs/backend-ai-api/src/app/workflow/templates/template-registry.service.ts \
APIs/backend-vitto-api/src/app/module-generation/generators/app-shell-generator.service.ts \
APIs/backend-vitto-api/src/app/module-generation/phases/module-gen-phase.executor.ts \
APIs/backend-vitto-api/src/app/studio/universe-git.service.ts
Also commit the docs:
git add docs/english/GoGrab-Space/platform-generation/S206-PROGRESS-REPORT.md \
docs/english/GoGrab-Space/platform-generation/S207-PLAN.md
Commit message: [S206.3] feat: pipeline uses base template, UniverseDataCrudService, providePlatformBootstrap
Task 2: End-to-End Generation Test
- Start backends:
yarn serve:backend-api(3000),yarn serve:backend-ai(3001),yarn serve:backend-vitto(3003) - Trigger a platform generation via Vitto Studio (or API directly)
- Clone the generated repo from GitLab
- Run
yarn install && yarn ng build {slug} --configuration development - If it builds: serve it and test CRUD operations
- If it fails: fix the errors (likely proxy config, schema timing, or missing imports)
Task 3: Port gmodules1 Composables
Port these from /Users/fguijarro/developer/repos-gspace/gmodules1/libs/core/module-base/src/lib/crud/composables/:
use-crud-list.ts(460 lines — list with pagination, search, sort, filters, selection, delete)use-crud-form.ts(186 lines — create/edit with FormBuilder, validation, save)use-crud-detail.ts(170 lines — detail view with delete, navigation)use-master-detail.ts(207 lines — parent-child relationships)
Target: /Users/fguijarro/developer/repos-gspace/repo-templates/platform-base-template/libs/core/module-base/src/lib/crud/composables/
Key: These composables call apiService.getList(), getById(), create(), update(), delete() — which UniverseDataCrudService already implements. The composables should work as-is with minimal type adaptation. The types CrudPaginatedResult and PaginationRequest are already in the template's crud.types.ts and @libs-core/shared-models.
After porting, update the CRUD templates in template-registry.service.ts to use composables in generated components.
Task 4: ESM SDK on Cloudflare (if time permits)
See the full plan at docs/english/GoGrab-Space/platform-generation/S207-PLAN.md — Phases 2-5.
Key steps:
- Build script using ng-packagr to compile template libs into ESM bundles
- Generate AI-ready manifest.json cataloging all 137 gspace1 libraries
- Upload to Cloudflare R2 bucket
- Update app-shell-generator to support import-map mode
Key Files Reference
| File | Purpose |
|---|---|
APIs/backend-vitto-api/src/app/studio/universe-git.service.ts |
initializeFromTemplate() — forks from template |
APIs/backend-vitto-api/src/app/module-generation/phases/module-gen-phase.executor.ts |
Pipeline orchestrator — 8 phases |
APIs/backend-vitto-api/src/app/module-generation/generators/app-shell-generator.service.ts |
Generates app.config.ts, routes, environments |
APIs/backend-ai-api/src/app/workflow/templates/template-registry.service.ts |
CRUD/dashboard/analytics module templates |
APIs/backend-vitto-api/src/app/module-generation/phases/backend-setup.phase.ts |
Auto-registers entity schemas in MongoDB |
libs/libs-foundational/core-angular/src/lib/services/universe-data.service.ts |
Full CRUD with caching, offline, optimistic updates |
libs/libs-foundational/core-angular/src/lib/services/platform-bootstrap.service.ts |
Seeds context from environment.ts |
Conventions to Follow
- Use
yarneverywhere (not npm) - Generated services extend
UniverseDataCrudService(not raw HttpClient) app.config.tsmust includeprovidePlatformBootstrap()+provideApiConfig()- No NGXS — flash-persistence + signals only
- Commits:
[S207.N] type: description