docs: publish approved legacy Epic catalogue
Build and publish 3D Architecture Wizzard documentation / build (pull_request) Failing after 11s

This commit is contained in:
2026-09-02 09:42:29 +00:00
parent 73cf70f0f3
commit f443b355dc
32 changed files with 1650 additions and 9 deletions
+79
View File
@@ -0,0 +1,79 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-1",
"title": "Engineering Platform, Quality, and Operability",
"problem": "The platform spans browser applications, real-time services, AI-assisted generation, shared contracts, persistence, and delivery infrastructure that must evolve without destabilizing user journeys.",
"goal": "Provide a dependable engineering foundation for building, testing, documenting, packaging, deploying, and operating the complete 3D platform and its shared capabilities.",
"value": "Teams can evolve the platform safely and consistently while preserving the quality and operability of the complete experience.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/nebula/src/App.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/App.tsx"
},
{
"path": "apps/nebula/src/socket-client.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/socket-client.ts"
},
{
"path": "apps/singularity/src/index.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/index.ts"
},
{
"path": "apps/singularity/src/socket-server/index.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/index.ts"
},
{
"path": "apps/singularity/prisma/schema.prisma",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/prisma/schema.prisma"
},
{
"path": "apps/archwiz-forge/src/routes/generate.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/routes/generate.ts"
},
{
"path": "packages/utils/types/src",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/types/src"
}
]
}
+67
View File
@@ -0,0 +1,67 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-10",
"title": "Reopen and Continue Previous Design Projects",
"problem": "Generated work loses value if it cannot be recognized, reopened, and continued in a later session.",
"goal": "List saved projects with identifying context and let a person reopen a selected scene for review or modification.",
"value": "Apartment concepts remain reusable across sessions instead of becoming disposable one-time results.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/archwiz-portal/src/components/LeftSidebar.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/LeftSidebar.tsx"
},
{
"path": "apps/archwiz-portal/src/api/client.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/api/client.ts"
},
{
"path": "apps/archwiz-forge/src/routes/projects.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/routes/projects.ts"
},
{
"path": "apps/archwiz-forge/src/test/routes/projects.test.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/test/routes/projects.test.ts"
}
]
}
+75
View File
@@ -0,0 +1,75 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-2",
"title": "Secure Access and Personal Setup",
"problem": "A person needs a trusted way to enter the workplace and establish an identity and control setup that remains recognizable across visits.",
"goal": "Enable enterprise authentication, a persistent profile, avatar choice, and personal control settings as one coherent entry and setup experience.",
"value": "People can start with low friction and return to a personalized experience without repeating setup.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/singularity/src/routes/auth.routes.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/routes/auth.routes.ts"
},
{
"path": "apps/singularity/src/config/auth.config.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/config/auth.config.ts"
},
{
"path": "apps/nebula/src/hooks/useAuthRefresh.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/useAuthRefresh.ts"
},
{
"path": "apps/nebula/src/components/CharacterSelection/CharacterSelection.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/CharacterSelection/CharacterSelection.tsx"
},
{
"path": "apps/nebula/src/components/SettingsModal/SettingsModal.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/SettingsModal/SettingsModal.tsx"
},
{
"path": "apps/nebula/src/stores/settingsStore.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/stores/settingsStore.ts"
}
]
}
+75
View File
@@ -0,0 +1,75 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-3",
"title": "Navigate and Explore the Virtual Workplace",
"problem": "People need understandable, responsive movement and orientation across the multi-floor 3D workplace.",
"goal": "Enable walking, running, jumping, camera changes, elevator travel, and map-assisted orientation while preserving location between sessions.",
"value": "A person can find places and move between them confidently without losing their position when they return.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/nebula/src/hooks/usePlayerControls.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerControls.ts"
},
{
"path": "apps/nebula/src/hooks/usePlayerMovement.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerMovement.ts"
},
{
"path": "apps/nebula/src/hooks/usePlayerCamera.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerCamera.ts"
},
{
"path": "apps/nebula/src/hooks/usePlayerActions.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerActions.ts"
},
{
"path": "apps/nebula/src/components/Map/Map.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Map/Map.tsx"
},
{
"path": "apps/singularity/src/socket-server/player-manager.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/player-manager.ts"
}
]
}
+75
View File
@@ -0,0 +1,75 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-4",
"title": "Experience Live Co-Presence",
"problem": "A shared virtual workplace is not credible unless participants can recognize who is present and see their movement and activity coherently.",
"goal": "Synchronize scene-aware position, orientation, avatar, identity, and movement or activity state for people sharing a floor.",
"value": "Participants experience a consistent sense of being together as colleagues join, move, change floors, or leave.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/singularity/src/socket-server/event-handlers.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/event-handlers.ts"
},
{
"path": "apps/singularity/src/socket-server/scene-manager.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/scene-manager.ts"
},
{
"path": "apps/singularity/src/socket-server/broadcast-service.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/broadcast-service.ts"
},
{
"path": "apps/nebula/src/socket-client.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/socket-client.ts"
},
{
"path": "apps/nebula/src/components/Player.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Player.tsx"
},
{
"path": "packages/utils/types/src/player.types.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/types/src/player.types.ts"
}
]
}
+75
View File
@@ -0,0 +1,75 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-5",
"title": "Communicate in Spatial Context",
"problem": "Participants need fast written and spoken communication without leaving the shared 3D environment.",
"goal": "Enable floor-scoped text with speech bubbles and push-to-talk voice with proximity-reflective volume and speaking indicators.",
"value": "People can coordinate through visible text and natural nearby conversation in the context where they are working.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/nebula/src/components/Chat/Chat.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Chat/Chat.tsx"
},
{
"path": "apps/nebula/src/components/SpeechBubble.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/SpeechBubble.tsx"
},
{
"path": "apps/singularity/src/socket-server/chat-handler.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/chat-handler.ts"
},
{
"path": "apps/nebula/src/hooks/useVoiceChat.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/useVoiceChat.ts"
},
{
"path": "apps/singularity/src/socket-server/voice-handler.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/voice-handler.ts"
},
{
"path": "apps/nebula/src/components/VoiceIndicator.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/VoiceIndicator.tsx"
}
]
}
+75
View File
@@ -0,0 +1,75 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-6",
"title": "Coordinate Shared Workplace Seating",
"problem": "People need to discover and claim shared seating without collisions, hidden occupancy, or the ability to displace another occupant.",
"goal": "Expose seat availability and occupant identity in the office and map, and support conflict-safe claim, change, release, and daily reset behavior.",
"value": "Shared seating becomes self-service and trustworthy while each person holds at most one seat.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/nebula/src/hooks/usePlayerActions.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerActions.ts"
},
{
"path": "apps/nebula/src/stores/chairStore.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/stores/chairStore.ts"
},
{
"path": "apps/nebula/src/components/interactables/ChairOverlay.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/interactables/ChairOverlay.tsx"
},
{
"path": "apps/nebula/src/components/Map/components/MapSeatLayer.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Map/components/MapSeatLayer.tsx"
},
{
"path": "apps/singularity/src/routes/seat.routes.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/routes/seat.routes.ts"
},
{
"path": "apps/singularity/src/jobs/seat-reset.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/jobs/seat-reset.ts"
}
]
}
+75
View File
@@ -0,0 +1,75 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-7",
"title": "Generate a Furnished 3D Apartment from a Brief",
"problem": "Turning an informal residential brief into coherent geometry, furnishings, and lighting normally requires specialized modelling effort.",
"goal": "Interpret natural-language needs and progressively produce requirements, a connected floor plan, suitable furniture, and lighting as a complete saved 3D scene.",
"value": "A person can move from an informal brief to a usable, constraint-aware spatial concept while seeing meaningful progress.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/archwiz-portal/src/components/LeftSidebar.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/LeftSidebar.tsx"
},
{
"path": "apps/archwiz-forge/src/routes/generate.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/routes/generate.ts"
},
{
"path": "apps/archwiz-forge/src/skills/extract-requirements.md",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/extract-requirements.md"
},
{
"path": "apps/archwiz-forge/src/skills/generate-structure.md",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/generate-structure.md"
},
{
"path": "apps/archwiz-forge/src/skills/place-furniture.md",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/place-furniture.md"
},
{
"path": "apps/archwiz-forge/src/skills/add-lighting.md",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/add-lighting.md"
}
]
}
+75
View File
@@ -0,0 +1,75 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-8",
"title": "Review and Walk Through a Generated Design",
"problem": "A generated layout must be understandable at both overview and human scale before someone can evaluate it.",
"goal": "Provide orbit and first-person review with room labels, openings, materials, furniture, lighting, area, and project context visible in the experience.",
"value": "A person can assess scale, circulation, layout, and design intent before deciding what to refine.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/archwiz-portal/src/components/RightSidebar.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/RightSidebar.tsx"
},
{
"path": "apps/archwiz-portal/src/components/scene/ApartmentCanvas.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/ApartmentCanvas.tsx"
},
{
"path": "apps/archwiz-portal/src/components/scene/RoomMesh.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/RoomMesh.tsx"
},
{
"path": "apps/archwiz-portal/src/components/scene/RoomLabels.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/RoomLabels.tsx"
},
{
"path": "apps/archwiz-portal/src/components/scene/FPSControls.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/FPSControls.tsx"
},
{
"path": "apps/archwiz-portal/src/components/scene/entrance.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/entrance.ts"
}
]
}
+71
View File
@@ -0,0 +1,71 @@
{
"type": "Epic",
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"required_features": [],
"dependencies": [],
"approval": {
"approved_for_solution": false,
"conditions": [],
"evidence": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"actor": "Linas",
"actor_discord_id": "1483820991720329227",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"last_transition": {
"from": null,
"to": "IN_BACKLOG",
"actor": "Linas",
"authority": "Human team member approval to document the mined Epic catalogue",
"date": "2026-09-02",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
},
"sources": [
{
"label": "Legacy-analysis request — RootAtSkic",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409"
},
{
"label": "Catalogue documentation approval — Linas",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"id": "3DARCH-EP-9",
"title": "Refine a Design Through Natural-Language Changes",
"problem": "A person needs to iterate on a generated design without directly manipulating geometry or editing scene files.",
"goal": "Apply focused natural-language changes to a saved apartment and present the updated 3D result while preserving project identity and unaffected content.",
"value": "Design refinement becomes a conversational loop that keeps the spatial model valid and reviewable.",
"constraints": [
"Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue."
],
"legacy_evidence": [
{
"path": "apps/archwiz-portal/src/components/RightSidebar.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/RightSidebar.tsx"
},
{
"path": "apps/archwiz-portal/src/api/client.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/api/client.ts"
},
{
"path": "apps/archwiz-forge/src/routes/edit.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/routes/edit.ts"
},
{
"path": "apps/archwiz-forge/src/skills/edit-scene.md",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/edit-scene.md"
},
{
"path": "apps/archwiz-forge/src/test/routes/edit.test.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/test/routes/edit.test.ts"
}
]
}
+3 -1
View File
@@ -9,8 +9,10 @@
"serve": "docusaurus serve",
"clear": "docusaurus clear",
"typecheck": "tsc --noEmit",
"generate:scope": "node scripts/generate-scope.mjs",
"check:scope": "node scripts/generate-scope.mjs --check",
"test": "node --test tests/*.test.mjs",
"validate": "pnpm test && pnpm typecheck && pnpm build"
"validate": "pnpm check:scope && pnpm test && pnpm typecheck && pnpm build"
},
"dependencies": {
"@docusaurus/core": "3.10.2",
+47
View File
@@ -0,0 +1,47 @@
---
title: "3DARCH-EP-1 — Engineering Platform, Quality, and Operability"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Engineering Platform, Quality, and Operability
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-1` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
Provide a dependable engineering foundation for building, testing, documenting, packaging, deploying, and operating the complete 3D platform and its shared capabilities.
## Benefit
Teams can evolve the platform safely and consistently while preserving the quality and operability of the complete experience.
## Problem or opportunity
The platform spans browser applications, real-time services, AI-assisted generation, shared contracts, persistence, and delivery infrastructure that must evolve without destabilizing user journeys.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/nebula/src/App.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/App.tsx)
- [`apps/nebula/src/socket-client.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/socket-client.ts)
- [`apps/singularity/src/index.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/index.ts)
- [`apps/singularity/src/socket-server/index.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/index.ts)
- [`apps/singularity/prisma/schema.prisma`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/prisma/schema.prisma)
- [`apps/archwiz-forge/src/routes/generate.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/routes/generate.ts)
- [`packages/utils/types/src`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/types/src)
+44
View File
@@ -0,0 +1,44 @@
---
title: "3DARCH-EP-10 — Reopen and Continue Previous Design Projects"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Reopen and Continue Previous Design Projects
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-10` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
List saved projects with identifying context and let a person reopen a selected scene for review or modification.
## Benefit
Apartment concepts remain reusable across sessions instead of becoming disposable one-time results.
## Problem or opportunity
Generated work loses value if it cannot be recognized, reopened, and continued in a later session.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/archwiz-portal/src/components/LeftSidebar.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/LeftSidebar.tsx)
- [`apps/archwiz-portal/src/api/client.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/api/client.ts)
- [`apps/archwiz-forge/src/routes/projects.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/routes/projects.ts)
- [`apps/archwiz-forge/src/test/routes/projects.test.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/test/routes/projects.test.ts)
+46
View File
@@ -0,0 +1,46 @@
---
title: "3DARCH-EP-2 — Secure Access and Personal Setup"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Secure Access and Personal Setup
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-2` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
Enable enterprise authentication, a persistent profile, avatar choice, and personal control settings as one coherent entry and setup experience.
## Benefit
People can start with low friction and return to a personalized experience without repeating setup.
## Problem or opportunity
A person needs a trusted way to enter the workplace and establish an identity and control setup that remains recognizable across visits.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/singularity/src/routes/auth.routes.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/routes/auth.routes.ts)
- [`apps/singularity/src/config/auth.config.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/config/auth.config.ts)
- [`apps/nebula/src/hooks/useAuthRefresh.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/useAuthRefresh.ts)
- [`apps/nebula/src/components/CharacterSelection/CharacterSelection.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/CharacterSelection/CharacterSelection.tsx)
- [`apps/nebula/src/components/SettingsModal/SettingsModal.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/SettingsModal/SettingsModal.tsx)
- [`apps/nebula/src/stores/settingsStore.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/stores/settingsStore.ts)
+46
View File
@@ -0,0 +1,46 @@
---
title: "3DARCH-EP-3 — Navigate and Explore the Virtual Workplace"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Navigate and Explore the Virtual Workplace
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-3` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
Enable walking, running, jumping, camera changes, elevator travel, and map-assisted orientation while preserving location between sessions.
## Benefit
A person can find places and move between them confidently without losing their position when they return.
## Problem or opportunity
People need understandable, responsive movement and orientation across the multi-floor 3D workplace.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/nebula/src/hooks/usePlayerControls.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerControls.ts)
- [`apps/nebula/src/hooks/usePlayerMovement.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerMovement.ts)
- [`apps/nebula/src/hooks/usePlayerCamera.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerCamera.ts)
- [`apps/nebula/src/hooks/usePlayerActions.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerActions.ts)
- [`apps/nebula/src/components/Map/Map.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Map/Map.tsx)
- [`apps/singularity/src/socket-server/player-manager.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/player-manager.ts)
+46
View File
@@ -0,0 +1,46 @@
---
title: "3DARCH-EP-4 — Experience Live Co-Presence"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Experience Live Co-Presence
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-4` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
Synchronize scene-aware position, orientation, avatar, identity, and movement or activity state for people sharing a floor.
## Benefit
Participants experience a consistent sense of being together as colleagues join, move, change floors, or leave.
## Problem or opportunity
A shared virtual workplace is not credible unless participants can recognize who is present and see their movement and activity coherently.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/singularity/src/socket-server/event-handlers.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/event-handlers.ts)
- [`apps/singularity/src/socket-server/scene-manager.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/scene-manager.ts)
- [`apps/singularity/src/socket-server/broadcast-service.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/broadcast-service.ts)
- [`apps/nebula/src/socket-client.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/socket-client.ts)
- [`apps/nebula/src/components/Player.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Player.tsx)
- [`packages/utils/types/src/player.types.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/types/src/player.types.ts)
+46
View File
@@ -0,0 +1,46 @@
---
title: "3DARCH-EP-5 — Communicate in Spatial Context"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Communicate in Spatial Context
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-5` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
Enable floor-scoped text with speech bubbles and push-to-talk voice with proximity-reflective volume and speaking indicators.
## Benefit
People can coordinate through visible text and natural nearby conversation in the context where they are working.
## Problem or opportunity
Participants need fast written and spoken communication without leaving the shared 3D environment.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/nebula/src/components/Chat/Chat.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Chat/Chat.tsx)
- [`apps/nebula/src/components/SpeechBubble.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/SpeechBubble.tsx)
- [`apps/singularity/src/socket-server/chat-handler.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/chat-handler.ts)
- [`apps/nebula/src/hooks/useVoiceChat.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/useVoiceChat.ts)
- [`apps/singularity/src/socket-server/voice-handler.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/socket-server/voice-handler.ts)
- [`apps/nebula/src/components/VoiceIndicator.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/VoiceIndicator.tsx)
+46
View File
@@ -0,0 +1,46 @@
---
title: "3DARCH-EP-6 — Coordinate Shared Workplace Seating"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Coordinate Shared Workplace Seating
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-6` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
Expose seat availability and occupant identity in the office and map, and support conflict-safe claim, change, release, and daily reset behavior.
## Benefit
Shared seating becomes self-service and trustworthy while each person holds at most one seat.
## Problem or opportunity
People need to discover and claim shared seating without collisions, hidden occupancy, or the ability to displace another occupant.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/nebula/src/hooks/usePlayerActions.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerActions.ts)
- [`apps/nebula/src/stores/chairStore.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/stores/chairStore.ts)
- [`apps/nebula/src/components/interactables/ChairOverlay.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/interactables/ChairOverlay.tsx)
- [`apps/nebula/src/components/Map/components/MapSeatLayer.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Map/components/MapSeatLayer.tsx)
- [`apps/singularity/src/routes/seat.routes.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/routes/seat.routes.ts)
- [`apps/singularity/src/jobs/seat-reset.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/jobs/seat-reset.ts)
+46
View File
@@ -0,0 +1,46 @@
---
title: "3DARCH-EP-7 — Generate a Furnished 3D Apartment from a Brief"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Generate a Furnished 3D Apartment from a Brief
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-7` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
Interpret natural-language needs and progressively produce requirements, a connected floor plan, suitable furniture, and lighting as a complete saved 3D scene.
## Benefit
A person can move from an informal brief to a usable, constraint-aware spatial concept while seeing meaningful progress.
## Problem or opportunity
Turning an informal residential brief into coherent geometry, furnishings, and lighting normally requires specialized modelling effort.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/archwiz-portal/src/components/LeftSidebar.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/LeftSidebar.tsx)
- [`apps/archwiz-forge/src/routes/generate.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/routes/generate.ts)
- [`apps/archwiz-forge/src/skills/extract-requirements.md`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/extract-requirements.md)
- [`apps/archwiz-forge/src/skills/generate-structure.md`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/generate-structure.md)
- [`apps/archwiz-forge/src/skills/place-furniture.md`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/place-furniture.md)
- [`apps/archwiz-forge/src/skills/add-lighting.md`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/add-lighting.md)
+46
View File
@@ -0,0 +1,46 @@
---
title: "3DARCH-EP-8 — Review and Walk Through a Generated Design"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Review and Walk Through a Generated Design
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-8` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
Provide orbit and first-person review with room labels, openings, materials, furniture, lighting, area, and project context visible in the experience.
## Benefit
A person can assess scale, circulation, layout, and design intent before deciding what to refine.
## Problem or opportunity
A generated layout must be understandable at both overview and human scale before someone can evaluate it.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/archwiz-portal/src/components/RightSidebar.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/RightSidebar.tsx)
- [`apps/archwiz-portal/src/components/scene/ApartmentCanvas.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/ApartmentCanvas.tsx)
- [`apps/archwiz-portal/src/components/scene/RoomMesh.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/RoomMesh.tsx)
- [`apps/archwiz-portal/src/components/scene/RoomLabels.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/RoomLabels.tsx)
- [`apps/archwiz-portal/src/components/scene/FPSControls.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/FPSControls.tsx)
- [`apps/archwiz-portal/src/components/scene/entrance.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/entrance.ts)
+45
View File
@@ -0,0 +1,45 @@
---
title: "3DARCH-EP-9 — Refine a Design Through Natural-Language Changes"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# Refine a Design Through Natural-Language Changes
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| `3DARCH-EP-9` | `IN_BACKLOG` | `EXACT` | 3D Architecture Wizzard team | No |
## Goal
Apply focused natural-language changes to a saved apartment and present the updated 3D result while preserving project identity and unaffected content.
## Benefit
Design refinement becomes a conversational loop that keeps the spatial model valid and reviewable.
## Problem or opportunity
A person needs to iterate on a generated design without directly manipulating geometry or editing scene files.
## Constraints
- Only materially implemented legacy behavior is included; planned-only capabilities remain outside the approved catalogue.
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
- [Legacy-analysis request — RootAtSkic](https://discord.com/channels/1518726359512387766/1543925247361814568/1544617403160465409)
- [Catalogue documentation approval — Linas](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394)
### Legacy implementation evidence
The approved catalogue was mined from legacy revision `c0ced47ecaf4426f47e5c2e4868677f7144b951a`.
- [`apps/archwiz-portal/src/components/RightSidebar.tsx`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/RightSidebar.tsx)
- [`apps/archwiz-portal/src/api/client.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/api/client.ts)
- [`apps/archwiz-forge/src/routes/edit.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/routes/edit.ts)
- [`apps/archwiz-forge/src/skills/edit-scene.md`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/skills/edit-scene.md)
- [`apps/archwiz-forge/src/test/routes/edit.test.ts`](https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/test/routes/edit.test.ts)
+21
View File
@@ -0,0 +1,21 @@
---
title: "Epics"
description: "Review the approved experience-led Epic catalogue mined from the legacy platform."
---
# Review the approved Epic catalogue
These ten Epics define the documented product boundary mined from materially implemented legacy behavior. `3DARCH-EP-1` owns the engineering foundation; every remaining Epic describes a user experience or usage outcome.
- [3DARCH-EP-1 — Engineering Platform, Quality, and Operability](./3darch-ep-1.md)
- [3DARCH-EP-2 — Secure Access and Personal Setup](./3darch-ep-2.md)
- [3DARCH-EP-3 — Navigate and Explore the Virtual Workplace](./3darch-ep-3.md)
- [3DARCH-EP-4 — Experience Live Co-Presence](./3darch-ep-4.md)
- [3DARCH-EP-5 — Communicate in Spatial Context](./3darch-ep-5.md)
- [3DARCH-EP-6 — Coordinate Shared Workplace Seating](./3darch-ep-6.md)
- [3DARCH-EP-7 — Generate a Furnished 3D Apartment from a Brief](./3darch-ep-7.md)
- [3DARCH-EP-8 — Review and Walk Through a Generated Design](./3darch-ep-8.md)
- [3DARCH-EP-9 — Refine a Design Through Natural-Language Changes](./3darch-ep-9.md)
- [3DARCH-EP-10 — Reopen and Continue Previous Design Projects](./3darch-ep-10.md)
Planned-only capabilities—including VR entry, whiteboards, extra Archwiz domains, exports, and undo—remain outside this catalogue until separately evidenced and approved.
+8
View File
@@ -0,0 +1,8 @@
---
title: "Ideas"
description: "Review early opportunities before they become governed Epics or Features."
---
# Review product Ideas
No Ideas are currently recorded. Planned-only legacy concepts were deliberately excluded from the approved Epic catalogue and may enter this area only when supported by a clear user problem, expected benefit, owner, and source evidence.
+15 -6
View File
@@ -1,11 +1,20 @@
---
title: "Product Scope"
description: "Use the product purpose to evaluate proposed work."
slug: /
title: "Scope Overview"
description: "Find every governed product record and inspect its current status, authority, ownership, gates, and evidence."
slug: /overview/
---
# Frame product scope
import ScopeIssueMatrix from '@site/src/components/ScopeIssueMatrix';
3D Architecture Wizzard is an interactive 3D application for exploring, designing, and communicating software and system architecture.
# Find governed product scope
The product serves architecture authors, reviewers, and stakeholders who need a shared spatial view of a model.
The matrix is the complete operational index for the current governed catalogue. It includes all ten approved Epics; no Ideas, Questions, Features, or Tasks have been defined yet.
<ScopeIssueMatrix />
## How to read the baseline
- `IN_BACKLOG` records the accepted catalogue boundary, not implementation readiness or delivery progress.
- `EXACT` means the initial state is directly supported by the human decision evidence linked in each row.
- **Not approved for Solution** means Architecture must not begin Feature solution work from this catalogue alone.
- Empty child and dependency sets are explicit current facts; they are not inferred completeness claims.
+8
View File
@@ -0,0 +1,8 @@
---
title: "Questions"
description: "Review unresolved product decisions that affect governed scope."
---
# Review product Questions
No canonical product Questions are currently recorded. Questions discovered during Feature decomposition will be added here with an owner, affected scope, decision status, and durable source.
+21
View File
@@ -0,0 +1,21 @@
---
title: "Roadmap"
description: "Distinguish the approved Epic baseline from future sequencing and delivery forecasts."
---
# Review the product roadmap baseline
The current roadmap records the approved Epic catalogue without inventing sequence, dates, Feature scope, or delivery commitments. All Epics remain in `IN_BACKLOG`; future horizon and dependency decisions require separate evidence and human approval.
| Epic | Outcome area | Delivery status | Horizon | Owner | Last evidenced update |
|---|---|---|---|---|---|
| [3DARCH-EP-1](./epics/3darch-ep-1.md) | Engineering Platform, Quality, and Operability | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
| [3DARCH-EP-2](./epics/3darch-ep-2.md) | Secure Access and Personal Setup | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
| [3DARCH-EP-3](./epics/3darch-ep-3.md) | Navigate and Explore the Virtual Workplace | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
| [3DARCH-EP-4](./epics/3darch-ep-4.md) | Experience Live Co-Presence | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
| [3DARCH-EP-5](./epics/3darch-ep-5.md) | Communicate in Spatial Context | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
| [3DARCH-EP-6](./epics/3darch-ep-6.md) | Coordinate Shared Workplace Seating | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
| [3DARCH-EP-7](./epics/3darch-ep-7.md) | Generate a Furnished 3D Apartment from a Brief | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
| [3DARCH-EP-8](./epics/3darch-ep-8.md) | Review and Walk Through a Generated Design | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
| [3DARCH-EP-9](./epics/3darch-ep-9.md) | Refine a Design Through Natural-Language Changes | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
| [3DARCH-EP-10](./epics/3darch-ep-10.md) | Reopen and Continue Previous Design Projects | `IN_BACKLOG` | Current approved catalogue; no delivery forecast | 3D Architecture Wizzard team | [2026-09-02 decision](https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394) |
+128
View File
@@ -0,0 +1,128 @@
import {readFileSync, readdirSync, mkdirSync, writeFileSync, existsSync} from 'node:fs';
import {dirname, join} from 'node:path';
import process from 'node:process';
const root = process.cwd();
const sourceDir = join(root, 'data/scope/epics');
const check = process.argv.includes('--check');
const records = readdirSync(sourceDir)
.filter((name) => name.endsWith('.yml'))
.map((name) => JSON.parse(readFileSync(join(sourceDir, name), 'utf8')))
.sort((left, right) => Number(left.id.split('-').at(-1)) - Number(right.id.split('-').at(-1)));
if (records.length !== 10) throw new Error(`Expected 10 Epic records, found ${records.length}`);
const ids = new Set();
for (const epic of records) {
if (!/^3DARCH-EP-([1-9]|10)$/.test(epic.id)) throw new Error(`Invalid Epic ID: ${epic.id}`);
if (ids.has(epic.id)) throw new Error(`Duplicate Epic ID: ${epic.id}`);
ids.add(epic.id);
if (epic.type !== 'Epic' || epic.status !== 'IN_BACKLOG' || epic.status_source !== 'EXACT') throw new Error(`Invalid governed state: ${epic.id}`);
if (epic.approval?.approved_for_solution !== false) throw new Error(`Unexpected solution approval: ${epic.id}`);
if (!epic.catalogue_decision?.evidence_url || !epic.last_transition?.evidence_url) throw new Error(`Missing decision evidence: ${epic.id}`);
if (!Array.isArray(epic.legacy_evidence) || epic.legacy_evidence.length === 0) throw new Error(`Missing legacy evidence: ${epic.id}`);
}
const sourceList = (epic) => epic.sources.map((source) => `- [${source.label}](${source.url})`).join('\n');
const evidenceList = (epic) => epic.legacy_evidence.map((source) => `- [\`${source.path}\`](${source.url})`).join('\n');
const epicPage = (epic) => `---
title: "${epic.id} — ${epic.title}"
description: "Use this approved Epic boundary to assess related Features and outcomes."
---
# ${epic.title}
| Epic | Delivery status | Status source | Owner | Approved for Solution |
|---|---|---|---|---|
| \`${epic.id}\` | \`${epic.status}\` | \`${epic.status_source}\` | ${epic.owner} | No |
## Goal
${epic.goal}
## Benefit
${epic.value}
## Problem or opportunity
${epic.problem}
## Constraints
${epic.constraints.map((item) => `- ${item}`).join('\n')}
## Features
No child Features have been defined or approved. Feature discovery must preserve this Epic boundary and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
## Original source
${sourceList(epic)}
### Legacy implementation evidence
The approved catalogue was mined from legacy revision \`${epic.legacy_revision}\`.
${evidenceList(epic)}
`;
const epicLinks = records.map((epic) => `- [${epic.id} — ${epic.title}](./${epic.id.toLowerCase()}.md)`).join('\n');
const epicIndex = `---
title: "Epics"
description: "Review the approved experience-led Epic catalogue mined from the legacy platform."
---
# Review the approved Epic catalogue
These ten Epics define the documented product boundary mined from materially implemented legacy behavior. \`3DARCH-EP-1\` owns the engineering foundation; every remaining Epic describes a user experience or usage outcome.
${epicLinks}
Planned-only capabilities—including VR entry, whiteboards, extra Archwiz domains, exports, and undo—remain outside this catalogue until separately evidenced and approved.
`;
const roadmapRows = records.map((epic) => `| [${epic.id}](./epics/${epic.id.toLowerCase()}.md) | ${epic.title} | \`${epic.status}\` | Current approved catalogue; no delivery forecast | ${epic.owner} | [2026-09-02 decision](${epic.catalogue_decision.evidence_url}) |`).join('\n');
const roadmap = `---
title: "Roadmap"
description: "Distinguish the approved Epic baseline from future sequencing and delivery forecasts."
---
# Review the product roadmap baseline
The current roadmap records the approved Epic catalogue without inventing sequence, dates, Feature scope, or delivery commitments. All Epics remain in \`IN_BACKLOG\`; future horizon and dependency decisions require separate evidence and human approval.
| Epic | Outcome area | Delivery status | Horizon | Owner | Last evidenced update |
|---|---|---|---|---|---|
${roadmapRows}
`;
const ts = `// Generated by scripts/generate-scope.mjs from data/scope/epics/*.yml. Do not edit.\nexport type ScopeIssue = {id:string; type:string; title:string; parent:string; status:string; statusSource:string; blocked:boolean; owner:string; approval:string; requiredChildren:string; dependencies:string; evidenceUrl:string; recordUrl:string};\nexport const scopeIssues: ScopeIssue[] = ${JSON.stringify(records.map((epic) => ({
id: epic.id, type: epic.type, title: epic.title, parent: '—', status: epic.status,
statusSource: epic.status_source, blocked: epic.blocked, owner: epic.owner,
approval: epic.approval.approved_for_solution ? 'Approved for Solution' : 'Not approved for Solution',
requiredChildren: epic.required_features.length ? epic.required_features.join(', ') : 'None defined',
dependencies: epic.dependencies.length ? epic.dependencies.join(', ') : 'None recorded',
evidenceUrl: epic.last_transition.evidence_url, recordUrl: `/scope/epics/${epic.id.toLowerCase()}/`,
})), null, 2)};\n`;
const expected = new Map([
[join(root, 'scope/epics/index.md'), epicIndex],
[join(root, 'scope/roadmap.md'), roadmap],
[join(root, 'src/data/scopeIssues.ts'), ts],
...records.map((epic) => [join(root, `scope/epics/${epic.id.toLowerCase()}.md`), epicPage(epic)]),
]);
let stale = false;
for (const [path, content] of expected) {
if (check) {
if (!existsSync(path) || readFileSync(path, 'utf8') !== content) {
console.error(`Stale generated artifact: ${path}`);
stale = true;
}
} else {
mkdirSync(dirname(path), {recursive: true});
writeFileSync(path, content);
}
}
if (stale) process.exit(1);
console.log(`${check ? 'Verified' : 'Generated'} ${expected.size} Scope artifacts from ${records.length} canonical Epics.`);
+22 -1
View File
@@ -1,3 +1,24 @@
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
const sidebars: SidebarsConfig = {scopeSidebar: ['overview', 'initial-deliverable']};
const epicIds = Array.from({length: 10}, (_, index) => `3darch-ep-${index + 1}`);
const sidebars: SidebarsConfig = {
scopeSidebar: [
'overview',
'roadmap',
{type: 'category', label: 'Ideas', link: {type: 'doc', id: 'ideas'}, items: []},
{type: 'category', label: 'Questions', link: {type: 'doc', id: 'questions'}, items: []},
{
type: 'category',
label: 'Epics',
link: {type: 'doc', id: 'epics/index'},
collapsed: false,
items: epicIds.map((id) => ({
type: 'category',
label: id.toUpperCase(),
link: {type: 'doc', id: `epics/${id}`},
items: [{type: 'category', label: 'Features', items: []}],
})),
},
],
};
export default sidebars;
+42
View File
@@ -0,0 +1,42 @@
import React, {useMemo, useState} from 'react';
import Link from '@docusaurus/Link';
import {scopeIssues} from '@site/src/data/scopeIssues';
export default function ScopeIssueMatrix(): React.JSX.Element {
const [query, setQuery] = useState('');
const [type, setType] = useState('ALL');
const [status, setStatus] = useState('ALL');
const types = [...new Set(scopeIssues.map((item) => item.type))];
const statuses = [...new Set(scopeIssues.map((item) => item.status))];
const visible = useMemo(() => {
const needle = query.trim().toLocaleLowerCase();
return scopeIssues.filter((item) =>
(type === 'ALL' || item.type === type) &&
(status === 'ALL' || item.status === status) &&
(!needle || `${item.id} ${item.title} ${item.owner}`.toLocaleLowerCase().includes(needle)),
);
}, [query, type, status]);
return <section className="scope-matrix" aria-labelledby="scope-matrix-heading">
<h2 id="scope-matrix-heading">Issue Status Matrix</h2>
<p><strong>{visible.length}</strong> of <strong>{scopeIssues.length}</strong> governed records shown · Epic: {scopeIssues.filter((item) => item.type === 'Epic').length} · IN_BACKLOG: {scopeIssues.filter((item) => item.status === 'IN_BACKLOG').length}</p>
<div className="scope-matrix__filters" role="group" aria-label="Filter governed records">
<label>Search<input value={query} onChange={(event) => setQuery(event.target.value)} type="search" placeholder="ID, title, or owner" /></label>
<label>Type<select value={type} onChange={(event) => setType(event.target.value)}><option value="ALL">All types</option>{types.map((value) => <option key={value}>{value}</option>)}</select></label>
<label>Status<select value={status} onChange={(event) => setStatus(event.target.value)}><option value="ALL">All statuses</option>{statuses.map((value) => <option key={value}>{value}</option>)}</select></label>
</div>
<div className="scope-matrix__table-wrap">
<table>
<caption className="sr-only">Complete governed Scope record matrix</caption>
<thead><tr><th>ID and title</th><th>Type</th><th>Parent</th><th>Status</th><th>Authority</th><th>Blocked</th><th>Owner</th><th>Approval gate</th><th>Required children</th><th>Dependencies</th><th>Transition evidence</th></tr></thead>
<tbody>{visible.map((item) => <tr key={item.id}>
<td><Link to={item.recordUrl}><strong>{item.id}</strong><br />{item.title}</Link></td>
<td>{item.type}</td><td>{item.parent}</td><td><code>{item.status}</code></td><td><code>{item.statusSource}</code></td>
<td>{item.blocked ? 'Yes' : 'No'}</td><td>{item.owner}</td><td>{item.approval}</td><td>{item.requiredChildren}</td><td>{item.dependencies}</td>
<td><a href={item.evidenceUrl}>Decision ↗</a></td>
</tr>)}</tbody>
</table>
</div>
{visible.length === 0 && <p role="status">No governed records match these filters.</p>}
</section>;
}
+1
View File
@@ -1 +1,2 @@
:root{--ifm-color-primary:#176b87;--ifm-color-primary-dark:#155f79;--ifm-color-primary-darker:#135970;--ifm-color-primary-darkest:#10495c;--ifm-color-primary-light:#197797;--ifm-color-primary-lighter:#1b7d9e;--ifm-color-primary-lightest:#1f8db2;--ifm-global-radius:0;--ifm-code-border-radius:0;--ifm-button-border-radius:0;--ifm-font-family-base:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--ifm-font-family-monospace:"IBM Plex Mono",ui-monospace,SFMono-Regular,Consolas,monospace}[data-theme='dark']{--ifm-color-primary:#5eead4;--ifm-background-color:#090d17;--ifm-background-surface-color:#111827;--ifm-color-content:#e5edf7;--ifm-color-content-secondary:#aebdd0}.navbar{box-shadow:none;border-bottom:1px solid var(--ifm-color-emphasis-300)}*,*::before,*::after{border-radius:0!important}.button{font-weight:700}.footer{border-top:4px solid #4fd1c5}.theme-doc-sidebar-container{border-right-color:var(--ifm-color-emphasis-300)!important}.navbar__items{gap:.1rem}.navbar__link{font-size:.82rem}@media(max-width:1200px){.navbar__title{display:none}.navbar__link{font-size:.76rem;padding:.25rem}}
.scope-matrix__filters{display:grid;grid-template-columns:minmax(14rem,2fr) minmax(9rem,1fr) minmax(11rem,1fr);gap:1rem;margin:1rem 0}.scope-matrix__filters label{display:grid;gap:.35rem;font-weight:700}.scope-matrix__filters input,.scope-matrix__filters select{border:1px solid var(--ifm-color-emphasis-400);background:var(--ifm-background-color);color:var(--ifm-font-color-base);font:inherit;padding:.55rem}.scope-matrix__table-wrap{overflow-x:auto}.scope-matrix table{min-width:82rem}.scope-matrix th{white-space:nowrap}.scope-matrix td{vertical-align:top}.scope-matrix code{white-space:nowrap}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:760px){.scope-matrix__filters{grid-template-columns:1fr}}
+154
View File
@@ -0,0 +1,154 @@
// Generated by scripts/generate-scope.mjs from data/scope/epics/*.yml. Do not edit.
export type ScopeIssue = {id:string; type:string; title:string; parent:string; status:string; statusSource:string; blocked:boolean; owner:string; approval:string; requiredChildren:string; dependencies:string; evidenceUrl:string; recordUrl:string};
export const scopeIssues: ScopeIssue[] = [
{
"id": "3DARCH-EP-1",
"type": "Epic",
"title": "Engineering Platform, Quality, and Operability",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-1/"
},
{
"id": "3DARCH-EP-2",
"type": "Epic",
"title": "Secure Access and Personal Setup",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-2/"
},
{
"id": "3DARCH-EP-3",
"type": "Epic",
"title": "Navigate and Explore the Virtual Workplace",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-3/"
},
{
"id": "3DARCH-EP-4",
"type": "Epic",
"title": "Experience Live Co-Presence",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-4/"
},
{
"id": "3DARCH-EP-5",
"type": "Epic",
"title": "Communicate in Spatial Context",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-5/"
},
{
"id": "3DARCH-EP-6",
"type": "Epic",
"title": "Coordinate Shared Workplace Seating",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-6/"
},
{
"id": "3DARCH-EP-7",
"type": "Epic",
"title": "Generate a Furnished 3D Apartment from a Brief",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-7/"
},
{
"id": "3DARCH-EP-8",
"type": "Epic",
"title": "Review and Walk Through a Generated Design",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-8/"
},
{
"id": "3DARCH-EP-9",
"type": "Epic",
"title": "Refine a Design Through Natural-Language Changes",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-9/"
},
{
"id": "3DARCH-EP-10",
"type": "Epic",
"title": "Reopen and Continue Previous Design Projects",
"parent": "—",
"status": "IN_BACKLOG",
"statusSource": "EXACT",
"blocked": false,
"owner": "3D Architecture Wizzard team",
"approval": "Not approved for Solution",
"requiredChildren": "None defined",
"dependencies": "None recorded",
"evidenceUrl": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544641572975673394",
"recordUrl": "/scope/epics/3darch-ep-10/"
}
];
+26
View File
@@ -25,3 +25,29 @@ test('sharp light and dark UI contract is explicit', () => {
assert.match(css, /\*,\*::before,\*::after\{border-radius:0!important\}/);
assert.match(css, /\[data-theme='dark'\]/);
});
test('approved Epic catalogue is complete, governed, and reader-linked', () => {
const sidebar = read('sidebarsScope.ts');
const overview = read('scope/overview.md');
const roadmap = read('scope/roadmap.md');
const matrix = read('src/data/scopeIssues.ts');
assert.ok(sidebar.indexOf("'overview'") < sidebar.indexOf("'roadmap'"));
assert.ok(sidebar.indexOf("label: 'Ideas'") < sidebar.indexOf("label: 'Questions'"));
assert.ok(sidebar.indexOf("label: 'Questions'") < sidebar.indexOf("label: 'Epics'"));
assert.match(overview, /<ScopeIssueMatrix \/>/);
assert.match(roadmap, /All Epics remain in `IN_BACKLOG`/);
for (let number = 1; number <= 10; number += 1) {
const id = `3DARCH-EP-${number}`;
const slug = id.toLowerCase();
assert.ok(existsSync(`data/scope/epics/${slug}.yml`), id);
assert.ok(existsSync(`scope/epics/${slug}.md`), id);
const record = JSON.parse(read(`data/scope/epics/${slug}.yml`));
assert.equal(record.id, id);
assert.equal(record.status, 'IN_BACKLOG');
assert.equal(record.status_source, 'EXACT');
assert.equal(record.approval.approved_for_solution, false);
assert.ok(record.legacy_evidence.length > 0);
assert.ok(matrix.includes(`\"id\": \"${id}\"`));
}
assert.doesNotMatch(matrix, /type: \"Feature\"|type: \"Task\"|type: \"Idea\"/);
});