Spec: F41 — Brand Name Consistency (Full Name + Native Short Label)
Status: partial, contract-owned (2026-07-15)
1. Problem & CEO Job
Job: Trust the signal. The product loses trust when web, native, docs, and store metadata use different names.
The 2026-07-01 Apple Guideline 5.2.5 rejection replaced “one literal string everywhere” with a two-label system:
- Full product name:
Lumi AI Workspace - Short native/store label:
Lumi
Use the full name where space and identity clarity allow: web shell, login/register, HTML metadata, API title, and core docs. Use the short label for icon/display-name surfaces and localized App Store names, where Apple policy and device space apply.
F14’s assistant surface is not renamed: Lumi Assistant and Trợ lý Lumi remain valid when they
name the AI assistant, not the product.
2. User Stories & Acceptance Criteria
-
As a user, I want the product itself to be named consistently on web/API/docs, so that I know what product I am using.
-
frontend/src/i18n/locales/en|vi/{login,register,sidebar}.jsonapp_nameisLumi AI Workspace. -
frontend/index.htmltitle / OG title / site name useLumi AI Workspace. -
backend/config/settings/base.pySPECTACULAR_SETTINGS["TITLE"]isLumi AI Workspace API. -
openapi/schema.yamltitle isLumi AI Workspace API. - Root docs that identify the product (
README.md,DESIGN.md,DIAGRAMS.md,monorepo.md) useLumi AI Workspace.
-
-
As a mobile user, I want the app icon and store listing to use the compliant short label, so that the product passes Apple review and stays readable on-device.
- iOS
CFBundleDisplayNameisLumi. - macOS
INFOPLIST_KEY_CFBundleDisplayNameisLumi. - Android
app_nameisLumiin all shippedvalues*/strings.xmlapp-name resources. - App Store Connect locale metadata
nameisLumiin alldocs/mobile/app-stores/locales/*.jsonfiles.
- iOS
-
As a maintainer, I want publishing docs to describe the real shipping names, so that release instructions do not drift from the binaries.
-
docs/mobile/publishing-ios.mdlists prod display nameLumi.
-
3. Scope Boundaries
- In: product-name strings on web shell, HTML metadata, API metadata, mobile display names, app-store localized names, and publishing/release docs.
- Out: F14 assistant feature labeling (
Lumi Assistant,Trợ lý Lumi,Ask Lumi), archive docs, internal comments, and feature-copy changes that do not identify the product itself.
4. Data Model
No model changes.
5. API Contract
No endpoint changes.
SPECTACULAR_SETTINGS["TITLE"] remains Lumi AI Workspace API.
6. UI / UX
Branding is now surface-specific by rule, not by accident:
- Full name (
Lumi AI Workspace) on web, docs, API titles, and long-form metadata. - Short label (
Lumi) on native launch/display-name surfaces and App Store localized app names.
This spec governs the product name, not the assistant feature name. The chat entry may still say Lumi Assistant / Trợ lý Lumi where that is the explicit F14 feature label rather than the product label.
Strategic position (v2, 2026-06-14): This feature enforces naming consistency, not marketing positioning. Per competitive-strategy-v2.md, first-market positioning must not lead with generic “AI workspace” language even if the full product name still contains it in web/docs/API contexts.
7. Test Plan
| # | Case | Type | Where |
|---|---|---|---|
| 1 | Web shell app-name renders Lumi AI Workspace in active locales | e2e | frontend/tests/e2e/lumi.spec.ts |
| 2 | API schema title remains Lumi AI Workspace API | backend | backend/tests/test_branding.py |
| 3 | iOS/macOS native display names resolve to Lumi | repo audit | ios/Info.plist, ios/Lumi.xcodeproj/project.pbxproj |
| 4 | Android app_name resources all resolve to Lumi | repo audit | android/app/src/main/res/values*/strings.xml |
| 5 | App Store Connect locale name values all resolve to Lumi | repo audit | docs/mobile/app-stores/locales/*.json |
| 6 | The publishing runbook shows prod display name Lumi | docs audit | docs/mobile/publishing-ios.md |
8. Current Behavior
As of 2026-07-02, the repo ships a deliberate split:
- Web/API/docs:
Lumi AI Workspace - Native display/store surfaces:
Lumi
This matches current implementation and Apple compliance:
frontend/index.htmlstill identifies the product asLumi AI Workspace.- Login/register/sidebar labels identify the product as
Lumi AI Workspacein the active en/vi locales. - OpenAPI still identifies the API as
Lumi AI Workspace API. - iOS and macOS display names are
Lumi. - Android app-name resources are now
Lumi. - App Store Connect localized app names are
Lumi.
Before this refinement:
- The spec incorrectly claimed
Lumi AI Workspacewas the literal canonical string on every surface. - Apple rejected the app on 2026-07-01 under Guideline 5.2.5 for the on-device/display-name form.
- Release docs still claimed the prod iOS display name was
Lumi AI Workspace.
9. Error States
- If iOS/macOS/App Store localized names drift back to
Lumi AI Workspace, Apple review risk returns immediately. - If web/API/docs drift down to
Lumiwithout an explicit product rename decision, long-form product identity becomes vague and documentation loses precision. - If release docs advertise the wrong display name, publishing/debugging work becomes error-prone because the shipped binary and the instructions diverge.
openapi/schema.yamlis generated. IfSPECTACULAR_SETTINGS["TITLE"]changes without regenerating schema, API-title drift returns.
10. Diagrams & Docs Touched
- Release guidance:
docs/mobile/publishing-ios.md - Web/API identity files:
frontend/index.html,backend/config/settings/base.py,openapi/schema.yaml - Native display-name resources:
ios/Info.plist,ios/Lumi.xcodeproj/project.pbxproj,android/app/src/main/res/values*/strings.xml - App Store metadata:
docs/mobile/app-stores/locales/*.json
11. Implementation Audit (2026-07-02)
| # | Claim | Status | Evidence |
|---|---|---|---|
| 1 | Web login/register/sidebar product name is Lumi AI Workspace in active locales | ✅ match | `frontend/src/i18n/locales/en |
| 2 | frontend/index.html title / OG metadata identify the product as Lumi AI Workspace | ✅ match | frontend/index.html |
| 3 | API title remains Lumi AI Workspace API | ✅ match | backend/config/settings/base.py, openapi/schema.yaml, backend/tests/test_branding.py |
| 4 | iOS display name is Lumi | ✅ match | ios/Info.plist |
| 5 | macOS display name is Lumi | ✅ match | ios/Lumi.xcodeproj/project.pbxproj INFOPLIST_KEY_CFBundleDisplayName = Lumi; |
| 6 | Android app-name resources are Lumi across shipped locales | ✅ match | android/app/src/main/res/values*/strings.xml |
| 7 | App Store Connect localized app names are Lumi | ✅ match | docs/mobile/app-stores/locales/*.json |
| 8 | The publishing runbook states prod display name Lumi | ✅ match | docs/mobile/publishing-ios.md |
| 9 | The spec now distinguishes product-name surfaces from F14 assistant naming | ✅ match | §1, §3, §6 |
| 10 | Legacy universal-string claim (Lumi AI Workspace everywhere) has been removed | ✅ match | This spec revision |
Gaps flagged:
- There is still no automated CI guard that asserts all App Store locale
namefields remainLumi. - There is still no automated native manifest/resource test for iOS + Android display-name parity; verification is repo-audit based today.
- Deployed web metadata, installed native bundles, App Store Connect submission metadata, and release-operator execution remain external evidence gaps in the Contract Graph.
12. Open Questions / Decisions
- Decision:
Lumi AI Workspaceremains the full product name for web/API/docs until an explicit rename decision says otherwise. - Decision:
Lumiis the required short label for native display-name and App Store localized-name surfaces. - Decision: F14 assistant naming is separate from product naming and is not governed by this spec.
13. Bug / Change Log
2026-08-07 — Keep release identity in the publishing runbook
Type: Documentation ownership correction
Summary:
- Removed the duplicate iOS release-name table from the root agent router.
- Kept
docs/mobile/publishing-ios.mdas the authoritative release instruction and focused the F41 repository proof on that owner.
Impact:
- No product-name or binary change; this removes a second mutable copy of release metadata.
2026-07-02 — Align brand contract with Apple-compliant native short label
Type: Bug Fix
Summary:
- Refined F41 from a false “one string everywhere” contract to the real shipped rule:
Lumi AI Workspaceon web/API/docs,Lumion native display and App Store localized-name surfaces. - Updated Android
app_nameresources fromLumi AI WorkspacetoLumiso Android now matches iOS/macOS short-label behavior. - Updated publishing docs to reflect the real prod display name.
Reason:
- PR
#860changed Apple-facing display surfaces toLumiafter an App Store 5.2.5 rejection, but F41 and release docs still claimed the prod display name wasLumi AI Workspace.
Impact:
- No model or API changes.
- Android launcher label now matches Apple display surfaces.
- Source-of-truth docs now describe the current shipped naming contract precisely.
Tests:
- Repo audit:
rg -n '<string name="app_name">Lumi</string>' android/app/src/main/res/values*/*.xmlrg -n 'CFBundleDisplayName|INFOPLIST_KEY_CFBundleDisplayName = Lumi' ios/Info.plist ios/Lumi.xcodeproj/project.pbxprojrg -n '\"name\": \"Lumi\"' docs/mobile/app-stores/locales/*.json
2026-07-15 — Migrate F41 into the Contract Graph
Type: Contract and documentation correction
Summary:
- Added repository-owned API, web/docs, native/store-source, and publishing-doc proofs.
- Corrected the active en/vi login taglines and the root diagram title to match the full-name rule.
- Preserved explicit gaps for deployed web, installed/submitted native/store, and operator-executed release evidence.
2026-06-14 — Strategy v2 realignment (positioning)
Type: Documentation Change
Summary:
- Added a strategy note distinguishing naming consistency from external marketing positioning.
Notes:
- The product was not renamed in this change; only the positioning guidance was clarified.
2026-06-12 — Brand rename to Lumi AI Workspace across long-form surfaces
Type: Feature
Summary:
- Web shell product-name strings, HTML metadata, API titles, and core docs were aligned to
Lumi AI Workspace. - This remains the full-name half of the contract after the 2026-07-02 native-short-label refinement.