0001. Canonical product name and wordmark
- Status: Accepted
- Date: 2026-10-09
- Deciders: tseka (Nebutra), wordmark originally by 363045841
Context
The product name drifts across the codebase:
| Spelling | Where |
|---|---|
KLineChartQuant | screenshot watermark (useChartScreenshot.ts), repo name |
KlineChartQuant | on-chart brand link + aria-label (KLineChart.vue) |
KLineChart Quant | desktop window title (desktop-electron/index.html) |
@363045841yyt/klinechart-* | npm scope |
Decision
- Display name:
KLineChartQuant— one word, capital K, L, C, Q. Used in UI, titles, docs, aria-labels, store listings. - Short name:
KCQ— for favicon/app icon monogram, PWAshort_name, subdomain (kcq.nebutra.com), tight UI. - Ecosystem form:
KLineChartQuant by Nebutrawhen shown outside the product (Nebutra surfaces, marketing). - Wordmark: Outfit 600, the existing mark by 363045841. Brand VI derivatives (monogram, glyph, color) build on it; it is not redrawn.
- Machine identifiers are unchanged: npm package names, repo URL, storage keys, and Electron
productName(KLineChart Quant). Electron derives the userData directory fromproductName, so renaming it would orphan local data. Renaming any of these is a separate breaking-change decision. - Product strings come from one constant (
BRANDin shared code) instead of literals.
Consequences
- Fix
KlineChartQuantinKLineChart.vueandKLineChart Quantin the desktop window title. - The CI spelling check excludes
electron-builder.ymlproductName. - Add a lint/grep check in CI rejecting
KlineChartQuantandKLineChart Quant.
Core exports and source aliases
项目是 pnpm workspace monorepo。@363045841yyt/klinechart-core 是发布包,生产消费者通过 packages/core/package.json 的 exports 使用其公开入口;Vue preview、React preview、Electron renderer…
0002. App routing: / enters /app, landing at /home
kcq.nebutra.com serves a single-page preview (packages/vue/preview/App.vue) with no router. A marketing landing page is required.