docs: publish legacy feature catalogue
Build and publish 3D Architecture Wizzard documentation / build (pull_request) Successful in 22s

This commit is contained in:
2026-09-03 08:14:14 +00:00
parent 94ffd5d4cf
commit 3a2e19fc52
139 changed files with 8681 additions and 203 deletions
+101
View File
@@ -0,0 +1,101 @@
{
"id": "3DARCH-FT-1",
"type": "Feature",
"title": "Reproducible monorepo development workspace",
"epic_id": "3DARCH-EP-1",
"description": "Enable contributors to install one pinned toolchain and run coordinated development, build, type-check, lint, test, documentation, and Storybook workflows across the platform.",
"user_problem": "Contributors face onboarding delays and environment-specific failures when each package requires separately reconciled tools and commands.",
"expected_value": "Reduces contributor setup time and makes workspace checks repeatable across the monorepo.",
"scope": "Includes the pinned Node/pnpm workspace baseline, root task orchestration, environment examples, and contributor setup path.",
"exclusions": [
"End-user product behavior and solution or release authorization are outside these engineering Features."
],
"acceptance_outcomes": [
"The workspace uses a declared Node and pnpm baseline.",
"One root workflow can run each supported application/package task through the dependency graph.",
"Local setup instructions and environment examples are available to contributors."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [],
"risks": [
"Tracked setup guidance and environment examples have legacy inconsistencies that can undermine repeatability."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"path": "package.json",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/package.json"
},
{
"path": "pnpm-workspace.yaml",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/pnpm-workspace.yaml"
},
{
"path": "turbo.json",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/turbo.json"
},
{
"path": "devbox.json",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/devbox.json"
},
{
"path": "README.md",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/README.md"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+100
View File
@@ -0,0 +1,100 @@
{
"id": "3DARCH-FT-10",
"type": "Feature",
"title": "First-entry avatar onboarding",
"epic_id": "3DARCH-EP-2",
"description": "Enable a first-time user to preview, rotate, zoom, choose, and persist an in-world avatar before entering the workplace.",
"user_problem": "First-time users need to choose an embodied workplace identity before entering the shared environment.",
"expected_value": "Ensures every new participant enters with a persisted, recognizable in-world representation.",
"scope": "Includes first-entry gating, avatar preview controls, selection persistence, onboarding completion, and entry with the selected avatar.",
"exclusions": [
"Administrator access, account recovery, display-name editing, and unwired self-service logout are excluded."
],
"acceptance_outcomes": [
"An unonboarded user cannot enter the workplace before completing avatar selection.",
"Available avatars can be previewed from multiple viewing angles.",
"Confirmation persists the avatar and onboarding completion.",
"The selected avatar appears when the user enters."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-9"
],
"risks": [
"Reselecting the existing avatar can fail to mark onboarding complete."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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/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/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/nebula/src/test/components/CharacterSelection.test.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/test/components/CharacterSelection.test.tsx"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+100
View File
@@ -0,0 +1,100 @@
{
"id": "3DARCH-FT-11",
"type": "Feature",
"title": "Review profile and change workplace appearance",
"epic_id": "3DARCH-EP-2",
"description": "Enable a returning user to review the enterprise identity represented in the workplace and replace the visible avatar without repeating onboarding.",
"user_problem": "Returning users need to inspect their enterprise identity and change the avatar coworkers see.",
"expected_value": "Lets users keep their visible workplace representation current without repeating onboarding.",
"scope": "Includes profile identity display, reopening avatar selection, persistence of the replacement, and propagation to other participants.",
"exclusions": [
"Administrator access, account recovery, display-name editing, and unwired self-service logout are excluded."
],
"acceptance_outcomes": [
"Settings display the authenticated profile identity.",
"The user can reopen avatar selection from the profile area.",
"A changed avatar persists and is rendered to other participants."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-9",
"3DARCH-FT-10"
],
"risks": [
"Unavailable avatar assets or delayed propagation can produce inconsistent identity across clients."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"path": "apps/nebula/src/components/SettingsModal/parts/Profile/Profile.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/SettingsModal/parts/Profile/Profile.tsx"
},
{
"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/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": "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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+104
View File
@@ -0,0 +1,104 @@
{
"id": "3DARCH-FT-12",
"type": "Feature",
"title": "Discover and retain personal controls",
"epic_id": "3DARCH-EP-2",
"description": "Enable a user to learn the workplace controls, prevent movement controls from interfering with text/settings interaction, and retain mouse sensitivity across visits.",
"user_problem": "Users need discoverable controls that do not interfere with typing and settings, with sensitivity retained across visits.",
"expected_value": "Improves control discoverability and preserves a usable personal interaction setup.",
"scope": "Includes the controls guide, movement suppression during text/settings input, mouse-sensitivity adjustment, persistence, and save-failure feedback.",
"exclusions": [
"Administrator access, account recovery, display-name editing, and unwired self-service logout are excluded."
],
"acceptance_outcomes": [
"A visible controls guide explains supported keyboard actions.",
"Typing or using settings does not trigger movement actions.",
"Mouse sensitivity can be adjusted and restored in a later session.",
"Save failures are surfaced rather than silently discarded."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-9"
],
"risks": [
"Settings persistence failures can leave the displayed sensitivity different from the retained value."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"path": "apps/nebula/src/components/ControlsLayout.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/ControlsLayout.tsx"
},
{
"path": "apps/nebula/src/components/SettingsModal/parts/Controls/Controls.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/SettingsModal/parts/Controls/Controls.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"
},
{
"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/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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+100
View File
@@ -0,0 +1,100 @@
{
"id": "3DARCH-FT-13",
"type": "Feature",
"title": "Enter and resume the last workplace location",
"epic_id": "3DARCH-EP-3",
"description": "Enable a returning user to enter the previously occupied floor and position rather than restarting from a default location every time.",
"user_problem": "Returning users lose continuity when every session starts on a default floor and pose.",
"expected_value": "Restores spatial continuity so returning users can resume work where they left it.",
"scope": "Includes loading a valid stored scene and pose, safe defaults, and persistence of the latest location when leaving.",
"exclusions": [
"VR/controller navigation and generated-apartment review are excluded."
],
"acceptance_outcomes": [
"Entry loads the stored scene, position, and orientation when valid.",
"A safe default is used when no prior location exists.",
"Leaving the workplace persists the latest known pose and scene."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-9",
"3DARCH-FT-10"
],
"risks": [
"Location persists primarily on orderly socket disconnect, so abrupt loss can discard recent movement."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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"
},
{
"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/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/components/Scene.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Scene.tsx"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+100
View File
@@ -0,0 +1,100 @@
{
"id": "3DARCH-FT-14",
"type": "Feature",
"title": "Move through a collision-aware 3D workplace",
"epic_id": "3DARCH-EP-3",
"description": "Enable a user to walk, run, strafe, rotate, and jump through the office with visible animation and physical boundaries.",
"user_problem": "Users need responsive movement through the office while respecting its physical boundaries.",
"expected_value": "Creates a responsive, bounded traversal experience that supplies movement state to co-presence.",
"scope": "Includes walk, run, strafe, turn, and jump input; local animation; collider response; and movement-state publication.",
"exclusions": [
"VR/controller navigation and generated-apartment review are excluded."
],
"acceptance_outcomes": [
"Keyboard input produces responsive supported movement states.",
"Movement respects floor and scene colliders.",
"Walking, running, idling, jumping, and turning produce coherent local animation.",
"Movement state is available to the live-presence experience."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-13"
],
"risks": [
"Client-originated movement and pose data require validation before they can be trusted by other participants."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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/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": "apps/nebula/src/hooks/useSceneWithColliders.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/useSceneWithColliders.tsx"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+97
View File
@@ -0,0 +1,97 @@
{
"id": "3DARCH-FT-15",
"type": "Feature",
"title": "Change viewpoint and look around naturally",
"epic_id": "3DARCH-EP-3",
"description": "Enable a user to choose first- or third-person viewing and control the view without the camera passing through nearby scene geometry.",
"user_problem": "Users need viewpoints suited to navigation and orientation without camera obstruction by nearby geometry.",
"expected_value": "Improves spatial awareness while limiting camera clipping and overlay input conflicts.",
"scope": "Includes first/third-person switching, sensitivity-aware mouse look, obstruction-aware third-person distance, and predictable pointer capture.",
"exclusions": [
"VR/controller navigation and generated-apartment review are excluded."
],
"acceptance_outcomes": [
"The user can switch between supported camera modes.",
"Mouse input controls the view at the configured sensitivity.",
"Third-person camera distance responds to obstructing geometry.",
"Pointer capture and release behave predictably around overlays and settings."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-12",
"3DARCH-FT-14"
],
"risks": [
"Third-person camera constraints and overlay pointer capture have legacy edge cases."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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/useMouseControls.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/useMouseControls.ts"
},
{
"path": "packages/utils/constants/src/controls.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/constants/src/controls.ts"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+104
View File
@@ -0,0 +1,104 @@
{
"id": "3DARCH-FT-16",
"type": "Feature",
"title": "Travel between workplace floors",
"epic_id": "3DARCH-EP-3",
"description": "Enable a user to approach an elevator, receive a contextual action, and move between the implemented ninth- and tenth-floor scenes.",
"user_problem": "Users need a contextual, understandable way to move between the implemented workplace floors.",
"expected_value": "Connects the workplace’s floor experiences while keeping real-time scene membership accurate.",
"scope": "Includes elevator proximity detection, contextual action, ninth/tenth-floor transitions, scene-membership updates, and persisted destination.",
"exclusions": [
"VR/controller navigation and generated-apartment review are excluded."
],
"acceptance_outcomes": [
"Elevator proximity exposes the floor-change action only when applicable.",
"Activating the action moves the user to the target floor entry point.",
"Real-time scene membership changes with the floor.",
"The new floor becomes the location resumed later."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-14"
],
"risks": [
"The implemented floor set and entry points are fixed and require explicit expansion rules."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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/components/PlayerActionPrompt/PlayerActionPrompt.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/PlayerActionPrompt/PlayerActionPrompt.tsx"
},
{
"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": "packages/utils/constants/src/scenes.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/constants/src/scenes.ts"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+104
View File
@@ -0,0 +1,104 @@
{
"id": "3DARCH-FT-17",
"type": "Feature",
"title": "Orient with the live floor map",
"epic_id": "3DARCH-EP-3",
"description": "Enable a user to open a floor map, locate themselves, identify coworkers and occupied seats, and pan or zoom to understand the surrounding workplace.",
"user_problem": "Users need a compact spatial reference for locating themselves, coworkers, and occupied seating.",
"expected_value": "Reduces disorientation and supports informed navigation and seating decisions.",
"scope": "Includes current-floor geometry, local/coworker markers, seating state, occupant identity, pan, and cursor-centred zoom.",
"exclusions": [
"VR/controller navigation and generated-apartment review are excluded."
],
"acceptance_outcomes": [
"The map represents the current floor geometry.",
"The local user and coworkers appear with distinguishable markers and names.",
"Seats show available/occupied state and occupant identity at the supported zoom level.",
"Pan and cursor-centred zoom retain usable orientation."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-14"
],
"risks": [
"Map markers can become stale when presence or seating events are missed."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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/nebula/src/components/Map/components/MapStaticLayer.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Map/components/MapStaticLayer.tsx"
},
{
"path": "apps/nebula/src/components/Map/components/MapPlayerLayer.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Map/components/MapPlayerLayer.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/nebula/src/utils/sceneMap.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/utils/sceneMap.ts"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+102
View File
@@ -0,0 +1,102 @@
{
"id": "3DARCH-FT-18",
"type": "Feature",
"title": "See who shares the current floor",
"epic_id": "3DARCH-EP-4",
"description": "Enable a participant to see coworkers join, remain present, change floors, and leave within the same scene-scoped workplace context.",
"user_problem": "Participants need an accurate view of who currently shares their floor as people join, move, and disconnect.",
"expected_value": "Makes the shared environment reflect current floor membership without requiring reloads.",
"scope": "Includes initial current-floor membership plus real-time join, floor-change, and disconnect reconciliation.",
"exclusions": [
"Communication content and seat-reservation ownership are excluded."
],
"acceptance_outcomes": [
"Joining returns the existing people on the participant's current floor.",
"New arrivals appear without reloading.",
"Floor changes remove a person from the previous floor and add them to the destination floor.",
"Disconnects remove stale participants from the shared scene."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-9",
"3DARCH-FT-13",
"3DARCH-FT-16"
],
"risks": [
"Join, floor-change, and disconnect event ordering can temporarily duplicate or retain participants."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+102
View File
@@ -0,0 +1,102 @@
{
"id": "3DARCH-FT-19",
"type": "Feature",
"title": "Recognize coworkers by workplace identity",
"epic_id": "3DARCH-EP-4",
"description": "Enable a participant to recognize each current-floor coworker by persisted avatar and visible name in both the 3D scene and map.",
"user_problem": "Participants need to recognize each coworker consistently across the 3D scene and floor map.",
"expected_value": "Provides stable social recognition across scene and map representations.",
"scope": "Includes persisted avatar selection, safe avatar fallback, visible names, map labels, and identity-change reconciliation.",
"exclusions": [
"Communication content and seat-reservation ownership are excluded."
],
"acceptance_outcomes": [
"Every current-floor participant renders as one embodied avatar.",
"The persisted avatar is used when valid, with a safe fallback for an unavailable model.",
"A visible name label follows each remote avatar.",
"The floor map shows labeled coworker markers and distinguishes the local participant.",
"Identity changes propagate without creating a duplicate participant."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-10",
"3DARCH-FT-18"
],
"risks": [
"Missing avatar models and delayed profile changes can reduce reliable coworker recognition."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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": "apps/nebula/src/components/Scene.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Scene.tsx"
},
{
"path": "apps/nebula/src/components/Map/components/MapPlayerLayer.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/components/Map/components/MapPlayerLayer.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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+103
View File
@@ -0,0 +1,103 @@
{
"id": "3DARCH-FT-2",
"type": "Feature",
"title": "Shared contracts and reusable interface foundations",
"epic_id": "3DARCH-EP-1",
"description": "Enable application teams to evolve real-time interactions and user interfaces against shared types, constants, TypeScript rules, lint rules, and reusable UI components rather than duplicating incompatible definitions.",
"user_problem": "Application teams risk incompatible real-time behavior and inconsistent interfaces when contracts, constants, and components are duplicated.",
"expected_value": "Keeps client, service, and interface behavior aligned while reducing duplicated definitions.",
"scope": "Includes shared player, chat, voice, seat, authentication, control, socket, TypeScript, lint, and reusable UI foundations.",
"exclusions": [
"End-user product behavior and solution or release authorization are outside these engineering Features."
],
"acceptance_outcomes": [
"Frontend and backend consume the same player, chat, voice, seat, and authentication contracts.",
"Common controls and socket event names have one shared definition.",
"Reusable UI components can be developed, demonstrated, and tested independently."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-1"
],
"risks": [
"Shared contract changes can break multiple applications unless all consumers are validated together."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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/"
},
{
"path": "packages/utils/constants/src/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/constants/src/"
},
{
"path": "packages/utils/typescript-config/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/typescript-config/"
},
{
"path": "packages/utils/eslint-config/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/eslint-config/"
},
{
"path": "packages/stardust/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/stardust/"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+102
View File
@@ -0,0 +1,102 @@
{
"id": "3DARCH-FT-20",
"type": "Feature",
"title": "Follow coworker movement and activity in real time",
"epic_id": "3DARCH-EP-4",
"description": "Enable a participant to see current-floor coworkers' synchronized position, orientation, and movement/activity animation so that the shared environment feels live rather than static.",
"user_problem": "Participants need remote movement and activity to feel live and remain associated with the correct coworker.",
"expected_value": "Makes co-presence legible through synchronized pose and activity rather than static avatars.",
"scope": "Includes remote position, orientation, movement/activity animation, identity association, and local/remote distinction.",
"exclusions": [
"Communication content and seat-reservation ownership are excluded."
],
"acceptance_outcomes": [
"Movement updates remain associated with the correct recognized participant.",
"Position and orientation changes update smoothly for floor peers.",
"Supported animation/activity state follows the remote participant.",
"Local and remote representations remain distinguishable."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-14",
"3DARCH-FT-18",
"3DARCH-FT-19"
],
"risks": [
"Unvalidated pose and activity updates can create implausible or misleading remote movement."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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": "apps/nebula/src/hooks/usePlayerAnimations.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/hooks/usePlayerAnimations.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": "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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+102
View File
@@ -0,0 +1,102 @@
{
"id": "3DARCH-FT-21",
"type": "Feature",
"title": "Exchange floor-scoped text conversation",
"epic_id": "3DARCH-EP-5",
"description": "Enable participants on the same floor to send and receive named, timestamped messages and see recent speech represented above the sender's avatar.",
"user_problem": "Colocated participants need a quick written conversation channel that preserves the current floor context.",
"expected_value": "Keeps lightweight written communication inside the participant’s immediate spatial context.",
"scope": "Includes opening/collapsing chat, non-empty submission, floor-scoped relay, sender/time display, scrolling, and temporary avatar speech bubbles.",
"exclusions": [
"Direct messaging, persistence, history, recording, transcription, and cross-floor communication are excluded."
],
"acceptance_outcomes": [
"The chat panel can be opened, collapsed, composed in, and scrolled.",
"A sent message is relayed only to the sender's current floor.",
"Messages identify the sender and time.",
"A temporary speech bubble and speaking/talking state connect the message to the in-world avatar.",
"Changing floors cannot present previous-floor chat as current-floor conversation."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-18",
"3DARCH-FT-19"
],
"risks": [
"Chat is ephemeral and the legacy client can retain previous-floor messages after a floor change."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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/nebula/src/stores/chatStore.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/stores/chatStore.ts"
},
{
"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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+107
View File
@@ -0,0 +1,107 @@
{
"id": "3DARCH-FT-22",
"type": "Feature",
"title": "Speak with push-to-talk and spatial cues",
"epic_id": "3DARCH-EP-5",
"description": "Enable a participant to hold a voice control, grant microphone access, stream speech to the current-floor context, see who is speaking, and hear volume reflect speaker distance.",
"user_problem": "Participants need hands-busy voice communication with visible speaking state and spatial listening cues.",
"expected_value": "Adds immediate spoken coordination while preserving floor isolation and distance-aware feedback.",
"scope": "Includes push-to-talk capture, permission feedback, current-floor relay, speaking indicators, distance-based volume, and explicit playback recovery.",
"exclusions": [
"Direct messaging, persistence, history, recording, transcription, and cross-floor communication are excluded."
],
"acceptance_outcomes": [
"Voice capture starts only while the configured push-to-talk action is active.",
"Microphone denial or unsupported capture produces clear user feedback.",
"Voice traffic remains isolated to the current floor.",
"A speaking indicator identifies active speakers.",
"Playback volume decreases to silence outside the approved proximity range.",
"Playback can recover after browser autoplay restrictions through an explicit user action."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-18",
"3DARCH-FT-20"
],
"risks": [
"Voice is relayed floor-wide, does not reach silence outside the nominal range, and lacks complete autoplay recovery."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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/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"
},
{
"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": "packages/utils/constants/src/chat.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/constants/src/chat.ts"
},
{
"path": "packages/utils/constants/src/controls.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/constants/src/controls.ts"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+101
View File
@@ -0,0 +1,101 @@
{
"id": "3DARCH-FT-23",
"type": "Feature",
"title": "Discover seat availability and occupant identity",
"epic_id": "3DARCH-EP-6",
"description": "Enable a person to distinguish available and occupied chairs in the 3D office and map before attempting to claim a place.",
"user_problem": "People need to know which nearby seats are available and who occupies the others before acting.",
"expected_value": "Prevents unnecessary claim attempts and aligns 3D and map occupancy information.",
"scope": "Includes nearby-chair availability, occupant identity, map parity, and live claim/release/reset updates.",
"exclusions": [
"Advance booking, recurring reservations, administrator override, and historical occupancy reporting are excluded."
],
"acceptance_outcomes": [
"Nearby chairs expose their current availability.",
"Occupied chairs show the occupant's identity in the 3D scene.",
"The floor map uses the same occupancy state and can reveal occupant names.",
"Live claim/release/reset changes update both views without a reload."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-17",
"3DARCH-FT-19"
],
"risks": [
"The legacy client bulk-reset listener does not correctly consume the server reset payload."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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/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/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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+102
View File
@@ -0,0 +1,102 @@
{
"id": "3DARCH-FT-24",
"type": "Feature",
"title": "Manage one daily seat reservation",
"epic_id": "3DARCH-EP-6",
"description": "Enable a person to claim an available nearby seat, move the reservation to another seat, release it, and trust that another user's reservation cannot be displaced.",
"user_problem": "A person needs to claim, move, or release one seat without displacing another user’s reservation.",
"expected_value": "Provides one authoritative daily reservation outcome with visible success or failure.",
"scope": "Includes contextual claim/release actions, one-seat enforcement, atomic reservation moves, ownership protection, broadcast updates, and user feedback.",
"exclusions": [
"Advance booking, recurring reservations, administrator override, and historical occupancy reporting are excluded."
],
"acceptance_outcomes": [
"A contextual action offers claim or release according to proximity, occupancy, and ownership.",
"A user can hold at most one seat; claiming another moves the reservation atomically.",
"Another user's occupied seat cannot be claimed or released.",
"Claim, change, and release outcomes are visible to all affected participants.",
"Success and failure are communicated to the initiating user."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-9",
"3DARCH-FT-23"
],
"risks": [
"Concurrent claims and reconnects require authoritative ownership checks to prevent inconsistent occupancy."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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/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/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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+103
View File
@@ -0,0 +1,103 @@
{
"id": "3DARCH-FT-25",
"type": "Feature",
"title": "Expire stale seat claims at the workplace-day boundary",
"epic_id": "3DARCH-EP-6",
"description": "Enable participants to start each workplace day with stale reservations cleared rather than blocked by people who did not manually release yesterday's seats.",
"user_problem": "The workplace needs stale seat claims cleared at a predictable day boundary without manual cleanup.",
"expected_value": "Restores fair seat availability each workplace day and makes reset failures diagnosable.",
"scope": "Includes an explicit timezone/boundary, authoritative claim clearing, single multi-replica execution, client replacement, failure visibility, and safe retry.",
"exclusions": [
"Advance booking, recurring reservations, administrator override, and historical occupancy reporting are excluded."
],
"acceptance_outcomes": [
"The governing workplace timezone and daily reset boundary are explicit.",
"Every active claim becomes available with occupant and claim time cleared.",
"Available seats remain unchanged.",
"Only one reset is applied when the service has multiple replicas.",
"Connected clients replace their occupancy state from the authoritative reset without reloading.",
"A missed or failed reset is visible and can be retried safely."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-23",
"3DARCH-FT-24"
],
"risks": [
"The reset timezone, multi-replica coordination, failure visibility, and client refresh behavior are incomplete."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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"
},
{
"path": "apps/singularity/src/test/jobs/seat-reset.test.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/test/jobs/seat-reset.test.ts"
},
{
"path": "packages/utils/constants/src/socket.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/utils/constants/src/socket.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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+110
View File
@@ -0,0 +1,110 @@
{
"id": "3DARCH-FT-26",
"type": "Feature",
"title": "Generate a complete apartment concept from a natural-language brief",
"epic_id": "3DARCH-EP-7",
"description": "Enable a person to describe residential needs in ordinary language and receive a saved 3D apartment with inferred requirements, connected rooms, openings, furniture, and lighting.",
"user_problem": "A residential user needs to translate an ordinary-language brief into a coherent furnished 3D concept without manual modelling.",
"expected_value": "Produces the Epic’s primary saved artifact: a connected, furnished, and lit apartment scene.",
"scope": "Includes prompt validation, requirement inference, connected rooms/openings, furnishing, lighting, final persistence, and stable project identity.",
"exclusions": [
"Office, retail, and factory generation, export, and loading scenes into Nebula are excluded."
],
"acceptance_outcomes": [
"The service rejects empty, too-short, or oversized briefs before generation.",
"Missing residential needs can be inferred and represented in the generated requirements.",
"The floor plan contains connected rooms, circulation, doors, exterior windows, and dimensions.",
"Furniture reflects room purpose and available space.",
"Ambient, sunlight, and room lighting complete the scene.",
"Completion returns a stable project identity and persists the final scene."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-8"
],
"risks": [
"Generated YAML lacks complete schema, bounds, clearance, and overlap validation."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+100
View File
@@ -0,0 +1,100 @@
{
"id": "3DARCH-FT-27",
"type": "Feature",
"title": "Follow generation progress and intermediate design states",
"epic_id": "3DARCH-EP-7",
"description": "Enable a person to understand which generation stage is running and see the apartment emerge instead of waiting for an opaque request.",
"user_problem": "A person needs visible generation stages and intermediate results rather than waiting on an opaque long-running request.",
"expected_value": "Builds trust in long-running generation through progressive feedback and safe failure handling.",
"scope": "Includes ordered stage reporting, intermediate structural/furnished previews, final-scene selection, and failure cleanup.",
"exclusions": [
"Office, retail, and factory generation, export, and loading scenes into Nebula are excluded."
],
"acceptance_outcomes": [
"Progress identifies requirements, structure, furniture, and lighting stages in order.",
"Structural and furnished intermediate scenes replace the current preview as they become available.",
"Completion selects the final persisted scene.",
"Failure produces a visible message and does not leave a false completed project."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-26"
],
"risks": [
"Failure cleanup must prevent partial generation output from appearing as a completed project."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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-portal/src/App.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/App.tsx"
},
{
"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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+104
View File
@@ -0,0 +1,104 @@
{
"id": "3DARCH-FT-28",
"type": "Feature",
"title": "Inspect the apartment from an overview",
"epic_id": "3DARCH-EP-8",
"description": "Enable a person to orbit around the open-ceiling apartment and assess rooms, area, dimensions, openings, materials, furniture, lighting, and the originating brief.",
"user_problem": "A person needs an overview that makes the generated apartment’s layout, dimensions, contents, and brief assessable.",
"expected_value": "Enables informed review of the complete generated concept and its originating context.",
"scope": "Includes orbit review, coherent scene rendering, project summary, original brief, and toggleable room labels with area.",
"exclusions": [
"Editing, export, VR review, and collaborative walkthrough are excluded."
],
"acceptance_outcomes": [
"Orbit controls expose the complete generated apartment from useful angles.",
"Walls, floors, openings, furnishings, ambient light, sunlight, and room lights render coherently.",
"Project context shows name, total area, room count, creation context, and original brief.",
"Room labels can be shown or hidden and include calculated room area."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-26"
],
"risks": [
"Large or malformed scenes can degrade rendering, labels, or the accuracy of project summaries."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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/SceneLights.tsx",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/components/scene/SceneLights.tsx"
},
{
"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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+100
View File
@@ -0,0 +1,100 @@
{
"id": "3DARCH-FT-29",
"type": "Feature",
"title": "Walk through the apartment at human scale",
"epic_id": "3DARCH-EP-8",
"description": "Enable a person to enter near the detected apartment entrance, look around, move through rooms, and return to overview mode.",
"user_problem": "A person needs to experience the generated apartment at human scale and return predictably to overview review.",
"expected_value": "Enables experiential validation of circulation and scale beyond a top-down overview.",
"scope": "Includes entrance detection, valid walk-mode start, pointer look, WASD movement, collision boundaries, and return to Orbit mode.",
"exclusions": [
"Editing, export, VR review, and collaborative walkthrough are excluded."
],
"acceptance_outcomes": [
"Walk mode starts at a valid position just inside the detected entrance.",
"Pointer look and WASD movement provide a human-scale review.",
"Collision prevents movement through walls and solid furnishings.",
"Escape or the visible mode control returns predictably to Orbit mode."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-28"
],
"risks": [
"Legacy Walk mode has no collision enforcement and permits movement through walls or furniture."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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/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"
},
{
"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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+108
View File
@@ -0,0 +1,108 @@
{
"id": "3DARCH-FT-3",
"type": "Feature",
"title": "Automated multi-layer quality verification",
"epic_id": "3DARCH-EP-1",
"description": "Enable contributors to detect regressions in UI components, stores, APIs, real-time handlers, persistence behavior, generation pipelines, and end-to-end journeys before release.",
"user_problem": "Maintainers need regressions to surface before release across stores, APIs, persistence, UI components, and integrated journeys.",
"expected_value": "Provides earlier, repeatable evidence that principal product and platform behavior still works.",
"scope": "Includes root and application-level unit, integration, component, persistence, and end-to-end verification commands and assets.",
"exclusions": [
"End-user product behavior and solution or release authorization are outside these engineering Features."
],
"acceptance_outcomes": [
"Root commands invoke unit, CI, type, lint, and end-to-end checks consistently.",
"Application-level tests cover the principal workplace and Archwiz behaviors.",
"End-to-end browser checks can validate integrated user journeys."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-1",
"3DARCH-FT-2"
],
"risks": [
"The repository contains broad test assets but no tracked CI workflow, so local commands alone do not prove release readiness."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"path": "package.json",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/package.json"
},
{
"path": "apps/horizon/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/horizon/"
},
{
"path": "apps/nebula/src/test/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/test/"
},
{
"path": "apps/singularity/src/test/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/test/"
},
{
"path": "apps/archwiz-portal/src/test/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/test/"
},
{
"path": "apps/archwiz-forge/src/test/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/test/"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+106
View File
@@ -0,0 +1,106 @@
{
"id": "3DARCH-FT-30",
"type": "Feature",
"title": "Apply and persist a natural-language design change",
"epic_id": "3DARCH-EP-9",
"description": "Enable a person to describe a focused change to a generated or reopened apartment, review the updated 3D result, and find that result retained when the project is reopened.",
"user_problem": "A person needs to refine an existing apartment through a focused request without regenerating a separate project.",
"expected_value": "Preserves project continuity while allowing the current design to evolve from natural-language intent.",
"scope": "Includes bounded natural-language input, update of the current persisted project, last-valid-scene protection, visible result, and drift review.",
"exclusions": [
"Version history, undo, deterministic diffs, and fast-edit guarantees are excluded."
],
"acceptance_outcomes": [
"Editing is available only after a project has a persisted identity and scene.",
"A bounded natural-language request updates the intended design content while preserving project identity and unaffected content.",
"Invalid or failed edits leave the last valid scene intact and explain the failure.",
"The updated scene appears in the current viewer and persists for later reopening.",
"The user can distinguish the requested change from unintended model drift before accepting it as the current version."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-26",
"3DARCH-FT-28"
],
"risks": [
"Editing rewrites the complete scene without a diff, version history, undo, or deterministic preservation guarantees."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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/pipeline/edit.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-forge/src/pipeline/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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+101
View File
@@ -0,0 +1,101 @@
{
"id": "3DARCH-FT-31",
"type": "Feature",
"title": "Browse and recognize saved apartment projects",
"epic_id": "3DARCH-EP-10",
"description": "Enable a person to locate prior apartment concepts by meaningful summary information rather than remembering opaque project identifiers.",
"user_problem": "A person needs to recognize and select earlier apartment concepts without remembering opaque identifiers.",
"expected_value": "Makes completed work discoverable and distinguishable for later continuation.",
"scope": "Includes automatic/refreshable completed-project listing, meaningful summaries, newest-first ordering, current selection, and malformed-entry filtering.",
"exclusions": [
"Sharing, deletion, ownership, authentication, and collaboration are excluded."
],
"acceptance_outcomes": [
"Completed projects load automatically and can be refreshed on demand.",
"Each entry provides enough context to distinguish it, including name, area, and creation date.",
"Projects are presented newest first.",
"The current project is visually distinguishable from other entries.",
"Incomplete or unreadable generation folders are not presented as completed projects, while service failure remains distinguishable from an empty history."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-26"
],
"risks": [
"Filesystem-backed projects have no implemented authentication, ownership, authorization, sharing, or deletion boundary."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+106
View File
@@ -0,0 +1,106 @@
{
"id": "3DARCH-FT-32",
"type": "Feature",
"title": "Reopen a saved project into the active workspace",
"epic_id": "3DARCH-EP-10",
"description": "Enable a person to restore a selected apartment as active work so it can be reviewed and refined instead of regenerated.",
"user_problem": "A person needs to restore a saved apartment as active work for continued review and refinement.",
"expected_value": "Restores project identity, scene, context, and review controls without regenerating the design.",
"scope": "Includes retrieval by project identity, transactional workspace replacement, restored context/review modes, edit continuity, and visible load failure.",
"exclusions": [
"Sharing, deletion, ownership, authentication, and collaboration are excluded."
],
"acceptance_outcomes": [
"Selecting a known project retrieves its complete persisted final scene by project identity.",
"The scene and project identity become the active workspace without retaining stale data from the prior selection.",
"Project context and both review modes are available after reopening.",
"The reopened identity enables subsequent natural-language refinement of the same project.",
"Missing, unreadable, or malformed projects produce a visible failure and leave the last valid workspace intact."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-28",
"3DARCH-FT-31"
],
"risks": [
"Missing or malformed project data can replace valid workspace state unless loading remains transactional."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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-portal/src/store/useAppStore.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/archwiz-portal/src/store/useAppStore.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-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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+105
View File
@@ -0,0 +1,105 @@
{
"id": "3DARCH-FT-4",
"type": "Feature",
"title": "Reusable UI component authoring and review workbench",
"epic_id": "3DARCH-EP-1",
"description": "Enable frontend developers and designers to create, demonstrate, accessibility-check, and test consistent interface components outside a product application.",
"user_problem": "Designers and frontend developers need to review component behavior and accessibility without mounting a complete product application.",
"expected_value": "Accelerates consistent component delivery and exposes interaction or accessibility defects earlier.",
"scope": "Includes component generation, package export, Storybook documentation, accessibility checks, and headless story interactions.",
"exclusions": [
"End-user product behavior and solution or release authorization are outside these engineering Features."
],
"acceptance_outcomes": [
"A generator creates a component, story, and package export in the chosen atomic category.",
"Storybook presents component documentation and accessibility tooling.",
"Story interactions can run in a headless browser.",
"The component library builds behind a stable package entry point."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-1",
"3DARCH-FT-2"
],
"risks": [
"Storybook, accessibility tooling, and browser interaction tests can drift from the shipped component package."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"path": "packages/stardust/README.md",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/stardust/README.md"
},
{
"path": "packages/stardust/turbo/generators/config.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/stardust/turbo/generators/config.ts"
},
{
"path": "packages/stardust/.storybook/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/stardust/.storybook/"
},
{
"path": "packages/stardust/src/atoms/Button/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/stardust/src/atoms/Button/"
},
{
"path": "packages/stardust/vite.config.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/packages/stardust/vite.config.ts"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+100
View File
@@ -0,0 +1,100 @@
{
"id": "3DARCH-FT-5",
"type": "Feature",
"title": "Versioned engineering knowledge hub",
"epic_id": "3DARCH-EP-1",
"description": "Enable contributors and operators to maintain architecture, setup, authentication, rendering, and deployment guidance alongside source and publish it as a browsable static site.",
"user_problem": "Contributors and operators need one discoverable, versioned source for implemented architecture and operating guidance.",
"expected_value": "Keeps engineering knowledge reviewable with source and available as a browsable reference.",
"scope": "Includes version-controlled engineering documentation authoring, build, navigation, indexes, sitemap, and implemented-versus-planned boundaries.",
"exclusions": [
"End-user product behavior and solution or release authorization are outside these engineering Features."
],
"acceptance_outcomes": [
"Contributors can author and preview version-controlled MDX documentation.",
"The knowledge hub builds through a root workspace command.",
"Static output contains navigable topic pages, indexes, and a sitemap.",
"Published guidance distinguishes implemented behavior from future intent."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-1"
],
"risks": [
"Published guidance can confuse implemented behavior with future intent unless evidence boundaries remain explicit."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"path": "apps/constellation/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/constellation/"
},
{
"path": "apps/constellation/package.json",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/constellation/package.json"
},
{
"path": "apps/constellation/scripts/build.js",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/constellation/scripts/build.js"
},
{
"path": "README.md",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/README.md"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+100
View File
@@ -0,0 +1,100 @@
{
"id": "3DARCH-FT-6",
"type": "Feature",
"title": "Repeatable database schema lifecycle",
"epic_id": "3DARCH-EP-1",
"description": "Enable service developers and operators to evolve and apply the workplace persistence schema consistently across fresh workspaces and deployed instances.",
"user_problem": "Service teams need database changes to be ordered, repeatable, and compatible across local and deployed environments.",
"expected_value": "Reduces schema drift and makes migration failure visible before the service accepts traffic.",
"scope": "Includes the Prisma schema, ordered migrations, client generation, development migration workflow, and production migration gate.",
"exclusions": [
"End-user product behavior and solution or release authorization are outside these engineering Features."
],
"acceptance_outcomes": [
"The database contract is versioned in one Prisma schema.",
"Ordered migrations create and evolve user, settings, scene, and seat data.",
"Local service workflows generate the Prisma client and apply development migrations.",
"Production startup applies pending migrations before accepting traffic and exposes migration failure."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-1"
],
"risks": [
"Migration failure can block service startup or leave persistence incompatible with application code."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"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/singularity/prisma/migrations/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/prisma/migrations/"
},
{
"path": "apps/singularity/package.json",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/package.json"
},
{
"path": "apps/singularity/Dockerfile",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/Dockerfile"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+100
View File
@@ -0,0 +1,100 @@
{
"id": "3DARCH-FT-7",
"type": "Feature",
"title": "Integrated local runtime with persistence and health checks",
"epic_id": "3DARCH-EP-1",
"description": "Enable developers to start the browser workplace, real-time backend, and database as one local environment and determine whether each service is healthy.",
"user_problem": "Developers need the browser client, backend, and database to start together with visible dependency health.",
"expected_value": "Provides a repeatable integration environment and shortens diagnosis of startup or dependency failures.",
"scope": "Includes coordinated local startup for frontend, backend, and PostgreSQL plus storage, ordering, and health checks.",
"exclusions": [
"End-user product behavior and solution or release authorization are outside these engineering Features."
],
"acceptance_outcomes": [
"One local workflow starts the frontend, backend, and PostgreSQL dependencies.",
"Service ordering and persistent database storage are declared.",
"Frontend, backend, and database health checks expose startup failure."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-1",
"3DARCH-FT-6"
],
"risks": [
"Service health can appear green while a dependency or browser route remains unusable."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"path": "docker-compose.yml",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/docker-compose.yml"
},
{
"path": "apps/nebula/Dockerfile",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/Dockerfile"
},
{
"path": "apps/singularity/Dockerfile",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/Dockerfile"
},
{
"path": "apps/singularity/src/routes/health.routes.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/routes/health.routes.ts"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+107
View File
@@ -0,0 +1,107 @@
{
"id": "3DARCH-FT-8",
"type": "Feature",
"title": "Package, deploy, and health-check workplace services",
"epic_id": "3DARCH-EP-1",
"description": "Enable operators to build versionable frontend/backend images, package Kubernetes deployment configuration, and admit only healthy services to traffic.",
"user_problem": "Operators need repeatable artifacts and health gates for deploying the workplace services safely.",
"expected_value": "Creates versionable deployment inputs and prevents unhealthy services from receiving traffic.",
"scope": "Includes independent service images, repeatable tagging/publishing tasks, Helm configuration, probes, ingress, and dependency-aware readiness.",
"exclusions": [
"End-user product behavior and solution or release authorization are outside these engineering Features."
],
"acceptance_outcomes": [
"Frontend and backend images build independently for the declared platform.",
"Images can be tagged and published through repeatable tasks.",
"Helm charts configure deployments, services, ingress, runtime values, and health probes for both services.",
"Process and dependency health distinguish a running backend from a usable backend.",
"Database failure withholds readiness and returns a bounded unhealthy response."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-1",
"3DARCH-FT-3",
"3DARCH-FT-6"
],
"risks": [
"Legacy packaging and deployment assumptions require validation against the target runtime before release."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"legacy_evidence": [
{
"path": "Taskfile.yml",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/Taskfile.yml"
},
{
"path": "apps/nebula/Dockerfile",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/Dockerfile"
},
{
"path": "apps/singularity/Dockerfile",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/Dockerfile"
},
{
"path": "apps/singularity/src/routes/health.routes.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/singularity/src/routes/health.routes.ts"
},
{
"path": "helm/",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/helm/"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+104
View File
@@ -0,0 +1,104 @@
{
"id": "3DARCH-FT-9",
"type": "Feature",
"title": "Enterprise sign-in and session continuity",
"epic_id": "3DARCH-EP-2",
"description": "Enable a user to enter through enterprise SSO, remain signed in through token refresh, and return to sign-in when the session cannot be recovered.",
"user_problem": "Enterprise users need trusted access that survives normal token expiry without separate workplace credentials.",
"expected_value": "Provides secure session continuity and a single enterprise identity boundary for protected HTTP and real-time access.",
"scope": "Includes enterprise OIDC redirect/callback, user upsert, protected cookies, token refresh, request recovery, and authenticated socket admission.",
"exclusions": [
"Administrator access, account recovery, display-name editing, and unwired self-service logout are excluded."
],
"acceptance_outcomes": [
"Successful SSO creates or updates the user and returns the user to the workplace.",
"Access and refresh credentials remain in protected cookies.",
"Expired access is refreshed once and queued requests resume after recovery.",
"Authenticated real-time connections reject invalid or duplicate sessions safely."
],
"status": "IN_BACKLOG",
"status_source": "EXACT",
"blocked": false,
"blocked_reason": null,
"owner": "3D Architecture Wizzard team",
"dependencies": [
"3DARCH-FT-8"
],
"risks": [
"Duplicate-session handling redirects to a hard-coded legacy location and self-service sign-out is not wired in the client."
],
"required_tasks": [],
"approval": {
"approved_for_solution": false,
"approved_for_solution_by": null,
"approved_for_solution_at": null,
"conditions": [],
"evidence_url": null,
"approved_for_implementation": false,
"approved_for_implementation_by": null,
"approved_for_implementation_at": null,
"implementation_conditions": [],
"implementation_evidence_url": null
},
"catalogue_decision": {
"decision": "Approved for documentation",
"decided_by": "Linas",
"decided_at": "2026-09-02T10:40:43.220Z",
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201",
"conditions": [
"Documentation approval does not grant Approved for Solution or implementation approval."
]
},
"sources": [
{
"label": "Discord – Scope – Linas: original Feature request",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544647879111483562"
},
{
"label": "Discord – Scope – Linas: proceed with documented mapping",
"url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
],
"legacy_revision": "c0ced47ecaf4426f47e5c2e4868677f7144b951a",
"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/api.ts",
"url": "https://gitea.lego-cloud.eu/corp-v1-3darch-legacy/corp-v1-3darch-legacy/src/commit/c0ced47ecaf4426f47e5c2e4868677f7144b951a/apps/nebula/src/api.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"
}
],
"architecture_traceability": {
"requirements": [],
"readiness": "Not started"
},
"release_evidence": [],
"last_transition": {
"event": "Catalogue registration",
"from": null,
"to": "IN_BACKLOG",
"at": "2026-09-02T10:40:43.220Z",
"actor": "Linas",
"authority": "Human project team member",
"reason": "The Feature catalogue was accepted for governed documentation and retained in the backlog.",
"conditions": [
"Registration records the accepted documentation boundary only.",
"No solution or implementation approval is granted."
],
"evidence_url": "https://discord.com/channels/1518726359512387766/1543925247361814568/1544658325738885201"
}
}
+133
View File
@@ -0,0 +1,133 @@
{
"schema_version": 1,
"items": [
{
"id": "3DARCH-FT-1",
"file": "3darch-ft-1.yml"
},
{
"id": "3DARCH-FT-2",
"file": "3darch-ft-2.yml"
},
{
"id": "3DARCH-FT-3",
"file": "3darch-ft-3.yml"
},
{
"id": "3DARCH-FT-4",
"file": "3darch-ft-4.yml"
},
{
"id": "3DARCH-FT-5",
"file": "3darch-ft-5.yml"
},
{
"id": "3DARCH-FT-6",
"file": "3darch-ft-6.yml"
},
{
"id": "3DARCH-FT-7",
"file": "3darch-ft-7.yml"
},
{
"id": "3DARCH-FT-8",
"file": "3darch-ft-8.yml"
},
{
"id": "3DARCH-FT-9",
"file": "3darch-ft-9.yml"
},
{
"id": "3DARCH-FT-10",
"file": "3darch-ft-10.yml"
},
{
"id": "3DARCH-FT-11",
"file": "3darch-ft-11.yml"
},
{
"id": "3DARCH-FT-12",
"file": "3darch-ft-12.yml"
},
{
"id": "3DARCH-FT-13",
"file": "3darch-ft-13.yml"
},
{
"id": "3DARCH-FT-14",
"file": "3darch-ft-14.yml"
},
{
"id": "3DARCH-FT-15",
"file": "3darch-ft-15.yml"
},
{
"id": "3DARCH-FT-16",
"file": "3darch-ft-16.yml"
},
{
"id": "3DARCH-FT-17",
"file": "3darch-ft-17.yml"
},
{
"id": "3DARCH-FT-18",
"file": "3darch-ft-18.yml"
},
{
"id": "3DARCH-FT-19",
"file": "3darch-ft-19.yml"
},
{
"id": "3DARCH-FT-20",
"file": "3darch-ft-20.yml"
},
{
"id": "3DARCH-FT-21",
"file": "3darch-ft-21.yml"
},
{
"id": "3DARCH-FT-22",
"file": "3darch-ft-22.yml"
},
{
"id": "3DARCH-FT-23",
"file": "3darch-ft-23.yml"
},
{
"id": "3DARCH-FT-24",
"file": "3darch-ft-24.yml"
},
{
"id": "3DARCH-FT-25",
"file": "3darch-ft-25.yml"
},
{
"id": "3DARCH-FT-26",
"file": "3darch-ft-26.yml"
},
{
"id": "3DARCH-FT-27",
"file": "3darch-ft-27.yml"
},
{
"id": "3DARCH-FT-28",
"file": "3darch-ft-28.yml"
},
{
"id": "3DARCH-FT-29",
"file": "3darch-ft-29.yml"
},
{
"id": "3DARCH-FT-30",
"file": "3darch-ft-30.yml"
},
{
"id": "3DARCH-FT-31",
"file": "3darch-ft-31.yml"
},
{
"id": "3DARCH-FT-32",
"file": "3darch-ft-32.yml"
}
]
}