Architecture: How should GitLab repos be structured for generated platform...
Documentation for Sessions
🏗️ Architecture: How should GitLab repos be structured for generated platform...
Date: 2026-03-11
Time: 15:04:18 UTC
Session: gspace1-203.4
Agent: backend
Confidence: 95%
Status: ✅ Documented
📋 Decision Context
Question:
How should GitLab repos be structured for generated platforms?
Task: S203: Platform generation pipeline and edition
🎯 Decision Made
Chosen:
3-level structure: gograbspace/{spaceSlug}/{universeSlug}. Base group 'gograbspace' is fixed (configurable via GITLAB_BASE_GROUP env var). Each space gets a subgroup, each universe gets a repo. Pre-flight creates subgroup+repo BEFORE any LLM tokens are spent.
Options Considered:
- gograb-{spaceSlug}/{universeSlug} (per-space top-level groups)
- {spaceSlug}/{universeSlug} (no org prefix)
- gograbspace/{spaceSlug}/{universeSlug} (nested subgroups under fixed org)
💭 Reasoning
Went through 3 iterations before landing on the correct structure. First attempt used gograb-{spaceSlug} as top-level group (wrong — creates a new group per space). Second stripped all prefixes to {spaceSlug}/{universeSlug} (wrong — loses the org namespace). Final structure keeps the fixed org 'gograbspace' as the root, with spaceSlug as subgroup and universeSlug as repo. This mirrors GitLab's intended hierarchy and keeps all GoGrab projects under one org. The base group defaulted to 'gograb-space' (with hyphen) but the actual GitLab group was 'gograbspace' (no hyphen) — this mismatch caused generation to silently fail ('5 modules, 0 files'). Root cause: never verified the actual GitLab group name against the code default.
📁 Files Involved
APIs/backend-vitto-api/src/app/studio/universe-git.service.tsAPIs/backend-ai-api/src/app/module-files/studio-repo.controller.tsAPIs/backend-vitto-api/src/app/studio/studio-deploy.controller.tsAPIs/backend-api/src/app/studio/universe-git.service.tsAPIs/backend-vitto-api/src/app/tools/tool-registry.service.ts
🔗 Related
- Decision ID:
dev_1773241457937_39978vr - Session: 203
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation