- productId: notelett - displayName: NoteLett - domain: notelett.app - iOS bundle: com.bytelyst.notelett - Android bundle: com.notelett.app - backend port: 4016 - token namespace: --nl-* (CSS), NoteLettTheme (native) Rippled through: - shared/product.json (canonical source) - backend package.json, config, cosmos-init, all 10 test files - web package.json, landing page, notes-client test - mobile app.json, package.json, auth screen - docs: PRD, ROADMAP, architecture review, foundations, web/mobile roadmaps - registered in learning_ai_common_plat/products/notelett/ Verification: backend typecheck + 18 tests, web typecheck + 6 tests, mobile typecheck — all pass.
3.0 KiB
3.0 KiB
Foundations and Decisions Roadmap
Status: Draft
Parent: docs/ROADMAP.md
Goal
Make the product implementation-ready and eliminate ambiguity before parallel coding begins.
Checklist
Product Identity
- Finalize product name
- Finalize
productId - Finalize domain
- Finalize app naming conventions
- Finalize backend port
Repo / Structure
- Finalize top-level folder layout
- Finalize package/dependency strategy
- Finalize build command strategy
- Finalize docs structure
Product Shape
- Finalize MVP feature cut line
- Finalize initial domain objects
- Finalize operator vs shared-admin boundary
- Finalize mobile parity definition
- Finalize initial route/page/screen inventory
Platform / Shared Dependencies
- Finalize
platform-servicedependencies - Finalize
extraction-serviceusage for MVP - Finalize
mcp-serverintegration strategy - Finalize telemetry/diagnostics baseline
- Finalize blob/upload strategy
- Finalize token namespace request
Architecture Decisions
- Confirm web stack
- Confirm backend stack
- Confirm React Native MVP path
- Confirm no parallel native-mobile track for MVP
- Confirm product-specific backend ownership
Documentation Alignment
- Align
PRD.md - Align
ROADMAP.md - Align all workstream roadmap docs
Progress Notes
- 2026-03-10 — Phase 0 decisions were partially locked to unblock implementation.
- The repo now has active
web/,backend/, andshared/surfaces instead of a docs-only structure. - Provisional bootstrap values are in use for implementation:
- product display name:
NoteLett productId:notelett- domain:
notelett.app - backend port:
4016
- product display name:
- Backend scaffolding now uses the established ByteLyst product-backend pattern:
- Fastify 5
- TypeScript ESM
types.ts→repository.ts→routes.ts- shared
@bytelyst/*package wiring
Open Questions
Should the final canonicalResolved:productIdremainbytelyst-notesor use a shorter ecosystem-standard form?notelettShould the final public domain beResolved:notes.bytelyst.appor another product-specific domain?notelett.app- What is the final operator vs shared-admin boundary for approval and audit review flows?
- Does v1 mobile parity include approvals and lightweight editing, or capture/retrieval only?
- What token namespace should be requested for shared design-system generation?
Blockers
- Dependencies have not yet been installed in the new
backend/package, so verification is still pending. - Product identity is still provisional in implementation and must be finalized before broader cross-surface wiring.
Deferred
- Final token namespace reservation
- Final operator/admin ownership split
- Full telemetry, diagnostics, and blob strategy lock
Done When
- No major implementation ambiguity remains
- All downstream workstreams can start without reopening stack decisions