docs: publish legacy feature catalogue
Build and publish 3D Architecture Wizzard documentation / build (pull_request) Successful in 22s
Build and publish 3D Architecture Wizzard documentation / build (pull_request) Successful in 22s
This commit is contained in:
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user