cabloy 5.1.51 → 5.1.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/.claude/skills/cabloy-contract-loop/SKILL.md +1 -1
  2. package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +1 -1
  3. package/.claude/skills/cabloy-workflow/SKILL.md +8 -4
  4. package/.claude/skills/cabloy-workflow/references/edition-detection.md +3 -2
  5. package/.github/workflows/docs-pages.yml +2 -0
  6. package/CHANGELOG.md +25 -0
  7. package/CLAUDE.md +4 -4
  8. package/README.md +36 -21
  9. package/cabloy-docs/.vitepress/config.mjs +33 -0
  10. package/cabloy-docs/ai/class-placement-rule.md +1 -0
  11. package/cabloy-docs/ai/cli-for-agents.md +1 -1
  12. package/cabloy-docs/ai/docs-skills-rules-mapping.md +1 -0
  13. package/cabloy-docs/ai/edition-consistency-checklist.md +150 -0
  14. package/cabloy-docs/ai/edition-detection.md +3 -3
  15. package/cabloy-docs/ai/global-bean-lookup.md +1 -0
  16. package/cabloy-docs/ai/introduction.md +3 -3
  17. package/cabloy-docs/ai/repo-guidance.md +2 -2
  18. package/cabloy-docs/ai/rules-and-config.md +1 -1
  19. package/cabloy-docs/ai/skills.md +2 -0
  20. package/cabloy-docs/ai/verification.md +1 -0
  21. package/cabloy-docs/ai/virtual-decorator-guidance.md +206 -0
  22. package/cabloy-docs/backend/introduction.md +2 -2
  23. package/cabloy-docs/backend/logger-guide.md +1 -1
  24. package/cabloy-docs/backend/quickstart.md +3 -3
  25. package/cabloy-docs/editions/cabloy-basic.md +4 -3
  26. package/cabloy-docs/editions/cabloy-start.md +33 -2
  27. package/cabloy-docs/editions/choosing-between-basic-and-start.md +84 -0
  28. package/cabloy-docs/editions/overview.md +83 -20
  29. package/cabloy-docs/frontend/foundation.md +3 -2
  30. package/cabloy-docs/frontend/introduction.md +5 -4
  31. package/cabloy-docs/frontend/quickstart.md +3 -2
  32. package/cabloy-docs/frontend/scripts.md +2 -2
  33. package/cabloy-docs/fullstack/cli.md +118 -0
  34. package/cabloy-docs/fullstack/comparison-with-other-frameworks.md +117 -0
  35. package/cabloy-docs/fullstack/edition-collaboration-differences.md +3 -2
  36. package/cabloy-docs/fullstack/introduction.md +45 -33
  37. package/cabloy-docs/fullstack/quickstart.md +7 -4
  38. package/cabloy-docs/fullstack/vona-zova-integration.md +2 -2
  39. package/cabloy-docs/fullstack/vscode-extensions.md +126 -0
  40. package/cabloy-docs/index.md +39 -40
  41. package/cabloy-docs/reference/glossary.md +2 -2
  42. package/cabloy-docs/reference/repo-scripts.md +1 -1
  43. package/package.json +1 -1
  44. package/vona/README.md +1 -1
  45. package/vona/pnpm-lock.yaml +383 -38
  46. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +1 -1
  47. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/.metadata/index.ts +49 -1
  48. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/controller/memoryDiag.ts +97 -0
  49. package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
  50. package/zova/README.md +1 -1
  51. package/zova/package.original.json +4 -4
  52. package/zova/packages-cli/cli/package.json +2 -2
  53. package/zova/packages-cli/cli-set-front/package.json +2 -2
  54. package/zova/packages-utils/zova-jsx/package.json +2 -2
  55. package/zova/packages-utils/zova-vite/package.json +2 -2
  56. package/zova/packages-utils/zova-vite/templates/app/controller.tsx_ +3 -3
  57. package/zova/packages-zova/zova/package.json +3 -3
  58. package/zova/packages-zova/zova-core/package.json +2 -2
  59. package/zova/packages-zova/zova-core/src/bean/beanContainer.ts +3 -3
  60. package/zova/packages-zova/zova-core/src/bean/beanControllerPageBase.ts +1 -0
  61. package/zova/packages-zova/zova-core/src/core/component/module.ts +16 -16
  62. package/zova/packages-zova/zova-core/src/core/context/component.ts +35 -3
  63. package/zova/packages-zova/zova-core/src/core/context/util.ts +15 -11
  64. package/zova/pnpm-lock.yaml +1596 -1679
  65. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/index.ts +11 -0
  66. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/page/toolMinimal.ts +9 -0
  67. package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolMinimal/controller.tsx +11 -0
  68. package/zova/src/suite/a-demo/modules/demo-basic/src/routes.ts +10 -0
  69. package/zova/src/suite-vendor/a-zova/modules/a-model/package.json +1 -1
  70. package/zova/src/suite-vendor/a-zova/modules/a-model/src/service/storage.ts +4 -5
  71. package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
  72. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/monkey.ts +1 -1
  73. package/zova/src/suite-vendor/a-zova/modules/a-ssr/package.json +1 -1
  74. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssr.ts +36 -1
  75. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/lib/ssrMetaStore.ts +7 -2
  76. package/zova/src/suite-vendor/a-zova/modules/a-ssr/src/monkey.ts +3 -0
  77. package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/package.json +1 -1
  78. package/zova/src/suite-vendor/a-zova/modules/a-ssrserver/src/service/ssrHandler.ts +70 -29
  79. package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +2 -2
  80. package/zova/src/suite-vendor/a-zova/package.json +6 -6
@@ -0,0 +1,206 @@
1
+ # Virtual Decorator Guidance
2
+
3
+ Use this page when deciding whether a backend class should use `@Virtual()`, or when AI needs to understand what `@Virtual()` changes in Vona bean behavior.
4
+
5
+ The goal is to preserve real runtime semantics, keep class placement intentional, and prevent `@Virtual()` from being reused as a shorthand or registration filter.
6
+
7
+ ## Short definition
8
+
9
+ `@Virtual()` marks a container-managed class as a virtual inherited runtime node.
10
+
11
+ Its core effect is to make bean registration inherit `moduleBelong` from the parent bean chain instead of treating the current class as a new independent runtime ownership center.
12
+
13
+ ## What `@Virtual()` does not mean
14
+
15
+ `@Virtual()` does **not** mean any of the following:
16
+
17
+ - suppress bean registration
18
+ - remove a bean-scene class from `IBeanRecordGlobal`
19
+ - act as a shorthand-registration filter
20
+ - compensate for incorrect class placement
21
+ - mean only that a class is abstract or internal
22
+
23
+ If a class should not appear on the global shorthand surface, fix placement instead.
24
+
25
+ For related guidance, also read:
26
+
27
+ - [Class Placement Rule](/ai/class-placement-rule)
28
+ - [Global Bean Lookup](/ai/global-bean-lookup)
29
+
30
+ ## Runtime effect
31
+
32
+ `@Virtual()` matters at registration time and then keeps affecting runtime scope resolution.
33
+
34
+ ### 1. Decorator stage
35
+
36
+ The decorator writes virtual metadata on the class.
37
+
38
+ Conceptually:
39
+
40
+ ```text
41
+ @Virtual()
42
+ -> metadata(SymbolDecoratorVirtual = true)
43
+ ```
44
+
45
+ ### 2. Registration stage
46
+
47
+ When the bean is registered, Vona reads that metadata and computes `moduleBelong`.
48
+
49
+ - non-virtual bean -> `moduleBelong` stays equal to the current module
50
+ - virtual bean -> `moduleBelong` is inherited from the nearest parent bean that already has one
51
+
52
+ Conceptually:
53
+
54
+ ```text
55
+ @Virtual()
56
+ -> addBean()
57
+ -> _parseModuleBelong()
58
+ -> inherited moduleBelong
59
+ ```
60
+
61
+ ### 3. Runtime stage
62
+
63
+ Bean instances then resolve runtime scope resources from that inherited `moduleBelong`.
64
+
65
+ This directly affects access to:
66
+
67
+ - `this.scope`
68
+ - `this.module`
69
+ - `this.config`
70
+ - `this.constant`
71
+ - `this.error`
72
+ - `this.locale`
73
+ - `this.util`
74
+ - `this.model`
75
+ - `this.entity`
76
+ - module meta and scene resources
77
+
78
+ Short version:
79
+
80
+ > `@Virtual()` changes runtime ownership resolution, not registration existence.
81
+
82
+ ## Relationship to `@Bean()` and `@Service()`
83
+
84
+ These decorators solve different problems.
85
+
86
+ - `@Bean()` / `@Service()` / `@Controller()` decide which scene the class registers into
87
+ - `@Virtual()` decides how runtime ownership is resolved
88
+
89
+ They are orthogonal.
90
+
91
+ Examples:
92
+
93
+ - `@Service() + @Virtual()`
94
+ - service-scene bean
95
+ - runtime ownership follows the parent bean chain
96
+ - `@Bean() + @Virtual()`
97
+ - bean-scene bean
98
+ - still a virtual bridge node rather than a new independent ownership center
99
+
100
+ ## When to use `@Virtual()`
101
+
102
+ Use `@Virtual()` when a class is still container-managed, but is not intended to become a new independent runtime ownership center.
103
+
104
+ Typical cases:
105
+
106
+ ### 1. Runtime-anchor bases
107
+
108
+ These classes still need bean lifecycle, class-token lookup, selector-aware behavior, or framework-managed context.
109
+
110
+ Representative examples:
111
+
112
+ - `vona/src/suite-vendor/a-vona/modules/a-orm/src/service/databaseDialectBase_.ts`
113
+ - `vona/src/suite-vendor/a-vona/modules/a-cache/src/service/cacheMemBase_.ts`
114
+ - `vona/src/suite-vendor/a-vona/modules/a-cache/src/service/cacheRedisBase_.ts`
115
+ - `vona/src/suite-vendor/a-vona/modules/a-summer/src/service/summerCacheBase_.ts`
116
+
117
+ ### 2. Bean facade or bridge nodes
118
+
119
+ These classes remain intentionally visible on the bean-scene shorthand surface, but still behave as inherited bridge nodes rather than independent runtime ownership centers.
120
+
121
+ Representative example:
122
+
123
+ - `vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/bean.model.ts`
124
+
125
+ ### 3. Compatibility or variant nodes
126
+
127
+ These classes extend an existing bean hierarchy and should keep runtime ownership aligned with the parent chain.
128
+
129
+ Representative example:
130
+
131
+ - `vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.mysql3.ts`
132
+
133
+ ## When not to use `@Virtual()`
134
+
135
+ Do **not** use `@Virtual()` for these cases.
136
+
137
+ ### 1. Independent business services
138
+
139
+ If a class is the real business owner of its own runtime boundary, it should usually keep its own `moduleBelong` and should not be virtual.
140
+
141
+ ### 2. Misplaced bean-scene classes
142
+
143
+ Do not keep a class in `src/bean` and try to hide it with `@Virtual()`.
144
+
145
+ If it should not be a global shorthand bean, move it instead:
146
+
147
+ - pure helper or subclass-only base -> `src/lib`
148
+ - runtime-anchor base -> `src/service`, often `src/service/*_.ts`
149
+
150
+ ### 3. Pure helpers or superclass convenience classes
151
+
152
+ If a class does not need container-managed behavior, it usually belongs in `src/lib` and should not use `@Virtual()`.
153
+
154
+ ## Decision table
155
+
156
+ | Scenario | Use `@Virtual()` | Recommended placement | Reason |
157
+ | --- | --- | --- | --- |
158
+ | independent business service | No | `src/service` | it should own its own runtime resource boundary |
159
+ | runtime-anchor base with container behavior | Yes | `src/service` or `src/service/*_.ts` | it is container-managed but belongs logically to the parent bean system |
160
+ | bean-scene facade that intentionally stays on shorthand surface | Yes, if it is a bridge node | `src/bean` | it participates in shorthand lookup but is not a new ownership center |
161
+ | compatibility / dialect / variant node built on a parent bean | Yes | same scene as the concrete variant type | runtime ownership should inherit from the parent chain |
162
+ | pure helper or superclass convenience class | No | `src/lib` | no bean ownership semantics are needed |
163
+ | class kept in `src/bean` only to expose shortcut lookup | Usually no | re-evaluate placement | `@Virtual()` is not a shorthand filter |
164
+ | misplaced bean-scene class that should not be globally visible | No | move to `src/lib` or `src/service` | fix placement, not metadata |
165
+
166
+ ## Worked examples
167
+
168
+ ### Example: runtime-anchor dialect base
169
+
170
+ `databaseDialectBase_.ts` is virtual because it remains container-managed and is used as the runtime base for dialect resolution, but it is not meant to become a separate public shorthand ownership center.
171
+
172
+ ### Example: bean-scene bridge node
173
+
174
+ `bean.model.ts` is still in bean-scene because it intentionally participates in the global shorthand surface, but `@Virtual()` preserves its bridge-node semantics.
175
+
176
+ ### Example: derived dialect variant
177
+
178
+ `databaseDialect.mysql3.ts` combines `$Class.extend(...)` and `@Virtual()` because those two features solve different problems:
179
+
180
+ - `$Class.extend(...)` expresses a framework-managed derived-class relationship
181
+ - `@Virtual()` preserves inherited runtime ownership semantics
182
+
183
+ ## Quick checklist
184
+
185
+ Ask these questions in order:
186
+
187
+ 1. Does the class still need container-managed behavior?
188
+ - if no, do not use `@Virtual()`
189
+ 2. Is it a runtime extension of a parent bean system rather than a new business ownership center?
190
+ - if yes, `@Virtual()` may be appropriate
191
+ 3. Are you using `@Virtual()` only to hide the class from shorthand or metadata surfaces?
192
+ - if yes, do not use it; fix placement instead
193
+ 4. Will inherited `moduleBelong` produce the correct `scope` / `config` / `model` / `entity` behavior at runtime?
194
+ - if no, do not use `@Virtual()`
195
+
196
+ ## Related guidance
197
+
198
+ Read these pages together:
199
+
200
+ - [Class Placement Rule](/ai/class-placement-rule)
201
+ - [Global Bean Lookup](/ai/global-bean-lookup)
202
+ - [Docs, Skills, Rules, and CLI Mapping](/ai/docs-skills-rules-mapping)
203
+
204
+ For maintainer-level rationale, also read:
205
+
206
+ - `.docs-internal/architecture/virtual-decorator-runtime-semantics.md`
@@ -1,8 +1,8 @@
1
1
  # Backend (Vona)
2
2
 
3
- This page is the backend hub for contributors who are documenting, designing, or extending backend work in the Cabloy repository.
3
+ This page is the backend hub for Cabloy users, contributors, and AI vibe coding workflows that need the backend side of the framework.
4
4
 
5
- Vona is the backend half of the Cabloy fullstack architecture.
5
+ Vona is the backend half of Cabloy’s one-framework-system fullstack architecture.
6
6
 
7
7
  ## What Vona is responsible for
8
8
 
@@ -24,7 +24,7 @@ By default, the log directory changes by runtime environment.
24
24
  Representative defaults are:
25
25
 
26
26
  - test/development → `{project path}/.app/logs`
27
- - production → `{home}/vona/{project name}/logs`
27
+ - production → `{home}/.vona/{project name}/logs`
28
28
 
29
29
  This can be configured through app config or environment variables such as `LOGGER_DIR`.
30
30
 
@@ -86,10 +86,10 @@ Legacy Vona docs described creating projects from templates such as `cabloy-basi
86
86
 
87
87
  That history still matters, because it explains why the Cabloy ecosystem now supports two editions:
88
88
 
89
- - **Cabloy Basic**: public reference repo with DaisyUI + TailwindCSS oriented frontend modules
90
- - **Cabloy Start**: sibling private repo with Vuetify-oriented frontend modules and different value-add composition
89
+ - **Cabloy Basic**: the public framework/reference edition, including the project route created by `npm create cabloy`, with a shared frontend engineering layer and a DaisyUI + Tailwind CSS oriented UI layer in the current public examples
90
+ - **Cabloy Start**: the private commercial edition, accessed by cloning the licensed private repository source, with Vuetify-oriented frontend modules plus Start-specific SSR site baselines and project assets
91
91
 
92
- In the current monorepo docs, do not treat these as just template names. Treat them as edition boundaries that affect frontend integration, scripts, and examples.
92
+ In the current monorepo docs, do not treat these as just template names. Treat them as edition boundaries that affect frontend integration, scripts, UI assumptions, and examples.
93
93
 
94
94
  ## Backend configuration reminder
95
95
 
@@ -1,6 +1,6 @@
1
1
  # Cabloy Basic
2
2
 
3
- Cabloy Basic is the public monorepo you are reading right now.
3
+ Cabloy Basic is the public framework/reference edition you are reading right now.
4
4
 
5
5
  ## Repository marker
6
6
 
@@ -12,14 +12,15 @@ This marker is the quickest safe signal for docs, skills, and rules that need to
12
12
 
13
13
  ## Typical role
14
14
 
15
- Use Cabloy Basic as the public reference for:
15
+ Use Cabloy Basic as the public reference edition for:
16
16
 
17
17
  - shared architecture explanations
18
18
  - root scripts and monorepo entrypoints
19
19
  - Vona and Zova source browsing
20
20
  - public CLI-backed workflows
21
21
  - public user-facing documentation
22
+ - projects created with `npm create cabloy`
22
23
 
23
24
  ## Frontend bias
24
25
 
25
- In the current source and docs, Cabloy Basic examples commonly align with a DaisyUI + TailwindCSS-oriented frontend story. That does not mean Zova is limited to that UI stack, but it does mean docs and AI outputs should not accidentally project Vuetify-specific assumptions into Cabloy Basic unless the current source explicitly requires it.
26
+ In the current source and docs, Cabloy Basic examples commonly align with a shared frontend engineering layer built on Zova, Vue, Vite, and Quasar tooling, plus a Basic-specific UI layer built with DaisyUI + Tailwind CSS. That does not mean Zova is limited to that UI stack, but it does mean docs and AI outputs should not accidentally project Vuetify-specific assumptions into Cabloy Basic unless the current source explicitly requires it.
@@ -1,6 +1,6 @@
1
1
  # Cabloy Start
2
2
 
3
- Cabloy Start is a sibling private repository that shares the Cabloy fullstack direction while intentionally differing from Cabloy Basic.
3
+ Cabloy Start is the private commercial edition. It is a sibling private repository that shares the Cabloy fullstack direction while intentionally differing from Cabloy Basic.
4
4
 
5
5
  ## Repository marker
6
6
 
@@ -14,10 +14,41 @@ Use that marker before choosing examples, UI assumptions, or automation behavior
14
14
 
15
15
  Use Cabloy Start as the edition-aware target when work depends on:
16
16
 
17
+ - direct use of the licensed private repository source
17
18
  - Vuetify-specific frontend workflows
18
19
  - Cabloy Start flavor names in frontend scripts
19
20
  - modules that exist in the private Start repository but not in Basic
20
- - private value-add project composition
21
+ - licensed private-repo structure and Start-specific project composition
22
+ - Start-specific SSR site baselines and project assets
23
+
24
+ ## Get access and initialize
25
+
26
+ Cabloy Start is the private commercial edition. It does not use the default `npm create cabloy` project route.
27
+
28
+ To use Cabloy Start:
29
+
30
+ 1. purchase a license and obtain repository access
31
+ 2. clone the private repository source directly
32
+ 3. run the edition initialization flow in the cloned project
33
+
34
+ Access surfaces:
35
+
36
+ - Purchase page: `https://cabloy.com/module/cabloy-start`
37
+ - Repository: `https://github.com/cabloy/cabloy-start`
38
+
39
+ Clone the repository:
40
+
41
+ ```bash
42
+ git clone git@github.com:cabloy/cabloy-start.git
43
+ ```
44
+
45
+ After cloning, run:
46
+
47
+ ```bash
48
+ npm run init
49
+ ```
50
+
51
+ This initializes the project and installs dependencies.
21
52
 
22
53
  ## Relationship to this docs site
23
54
 
@@ -0,0 +1,84 @@
1
+ # Choosing Between Cabloy Basic and Cabloy Start
2
+
3
+ This guide helps you choose the right Cabloy edition before you start a new project, adopt a frontend UI strategy, or prepare AI workflow guidance.
4
+
5
+ ## Short answer
6
+
7
+ Choose **Cabloy Basic** when you want the public framework/reference edition, the default `npm create cabloy` project route, and a faster path for open, community-oriented, or small-to-medium system development.
8
+
9
+ Choose **Cabloy Start** when you want the private commercial edition, purchase-based access to the licensed private repository source, and a stronger baseline for more complex business systems built around the Start-specific suites, SSR sites, project assets, and Vuetify UI layer.
10
+
11
+ ## What stays the same in both editions
12
+
13
+ Both editions share the same Cabloy fullstack core:
14
+
15
+ - **Vona** as the backend framework
16
+ - **Zova** as the frontend framework
17
+ - suite-based modular architecture
18
+ - CLI-first workflows
19
+ - shared frontend engineering direction built around Vue, Vite, Quasar tooling, and related libraries
20
+
21
+ So the decision is not about choosing two unrelated products. It is about choosing the edition baseline that fits your delivery goals best.
22
+
23
+ ## Choose Cabloy Basic when
24
+
25
+ Cabloy Basic is usually the better fit when you want:
26
+
27
+ - the public framework/reference edition
28
+ - the default project route created by `npm create cabloy`
29
+ - open-source visibility and community-friendly workflows
30
+ - public examples and docs that match your repo directly
31
+ - a UI layer aligned with DaisyUI + Tailwind CSS
32
+ - a faster path for small-to-medium system development
33
+
34
+ ## Choose Cabloy Start when
35
+
36
+ Cabloy Start is usually the better fit when you want:
37
+
38
+ - the private commercial edition
39
+ - purchase-based access to the licensed private repository source
40
+ - direct cloning of the Start repository after authorization
41
+ - Start-specific suites, flavors, SSR site baselines, and project assets
42
+ - a UI layer aligned with Vuetify
43
+ - a stronger starting point for more complex business systems
44
+ - edition-specific rules, skills, and docs optimized for the Start repo assumptions
45
+
46
+ ## The most practical decision factors
47
+
48
+ ### Project creation path
49
+
50
+ - **Cabloy Basic**: create the project with `npm create cabloy`
51
+ - **Cabloy Start**: purchase access, clone the licensed private repository source directly, then run `npm run init`
52
+
53
+ ### UI strategy
54
+
55
+ - **Cabloy Basic**: DaisyUI + Tailwind CSS
56
+ - **Cabloy Start**: Vuetify
57
+
58
+ ### Repo and asset model
59
+
60
+ - **Cabloy Basic**: public repository and public reference materials
61
+ - **Cabloy Start**: private repository with Start-specific suites, SSR sites, and project assets
62
+
63
+ ### AI workflow assumptions
64
+
65
+ - **Cabloy Basic**: use Basic-specific examples, flavors, modules, and UI assumptions
66
+ - **Cabloy Start**: use Start-specific examples, flavors, modules, SSR site baselines, and UI assumptions
67
+
68
+ This is why edition detection matters so much for AI vibe coding.
69
+
70
+ ## A simple recommendation rule
71
+
72
+ Use this rule when you need a fast decision:
73
+
74
+ 1. If you want the public, default, `npm create cabloy` path, choose **Cabloy Basic**.
75
+ 2. If you want the licensed private repo with Start-specific assets, a Vuetify-based business-system baseline, and a clone-plus-`npm run init` onboarding path, choose **Cabloy Start**.
76
+ 3. If AI workflow accuracy matters for UI generation, SSR site assumptions, or flavor-specific commands, confirm the edition before writing prompts, rules, skills, or docs.
77
+
78
+ ## Read together with
79
+
80
+ - [Editions Overview](/editions/overview)
81
+ - [Cabloy Basic](/editions/cabloy-basic)
82
+ - [Cabloy Start](/editions/cabloy-start)
83
+ - [Edition Detection](/editions/detection)
84
+ - [Fullstack Quickstart](/fullstack/quickstart)
@@ -1,44 +1,107 @@
1
1
  # Editions Overview
2
2
 
3
- Cabloy currently needs to support two related but distinct repositories:
3
+ Cabloy currently supports two related but distinct editions:
4
4
 
5
5
  - **Cabloy Basic**
6
6
  - **Cabloy Start**
7
7
 
8
- They share the same core architectural direction, but they are not interchangeable.
8
+ They share one Cabloy fullstack architecture, but they are distributed, composed, and optimized differently.
9
9
 
10
- ## Shared core
10
+ If you need a recommendation path, start with [Choosing Between Cabloy Basic and Cabloy Start](/editions/choosing-between-basic-and-start).
11
11
 
12
- Both editions use the Cabloy fullstack model built around:
12
+ ## Shared fullstack core
13
13
 
14
- - Vona as the backend framework
15
- - Zova as the frontend framework
14
+ Both editions are built around the same core direction:
15
+
16
+ - **Vona** as the backend framework
17
+ - **Zova** as the frontend framework
18
+ - suite-based modules across the stack
16
19
  - root-level `npm run vona` and `npm run zova` entrypoints
17
20
  - CLI-backed workflows for generation, refactoring, metadata, and verification
18
21
 
19
- ## Why the editions differ
22
+ This means the editions are related fullstack baselines, not unrelated products.
23
+
24
+ ## What "Basic" means
25
+
26
+ Cabloy Basic is the public framework/reference edition.
27
+
28
+ - this public repository is marked with `__CABLOY_BASIC__`
29
+ - projects created with `npm create cabloy` follow the Cabloy Basic route
30
+ - the public docs and examples in this repo use Cabloy Basic as the default baseline
31
+
32
+ Cabloy Basic is the open-source community edition and is optimized for public reference, learning, and fast development workflows.
33
+
34
+ ## What "Start" means
35
+
36
+ Cabloy Start is the private commercial edition.
37
+
38
+ - the private repository is marked with `__CABLOY_START__`
39
+ - users first purchase a license and obtain repository access, then clone the private repository source directly
40
+ - after cloning, the project is initialized through the Start edition workflow
41
+ - Start provides its own suites, flavors, SSR sites, and project assets for that edition
42
+
43
+ Cabloy Start is optimized as a commercial baseline for more complex business systems while staying on the same Cabloy fullstack direction.
44
+
45
+ ## Architecture layering
46
+
47
+ Most of the frontend engineering layer is shared, while the edition-specific UI layer differs.
48
+
49
+ ### Shared frontend engineering layer
50
+
51
+ Across editions, Zova uses the same frontend framework direction and engineering tooling, including:
52
+
53
+ - Vue
54
+ - Vite
55
+ - Quasar tooling such as `quasar dev` and `quasar build`
56
+ - TanStack libraries where applicable
57
+
58
+ Here, Quasar is used for engineering tooling rather than as the edition UI component library.
59
+
60
+ ### Edition-specific UI layer
61
+
62
+ The UI component strategy diverges by edition:
63
+
64
+ - **Cabloy Basic**: DaisyUI + Tailwind CSS
65
+ - **Cabloy Start**: Vuetify
66
+
67
+ This difference affects not only UI code, but also module composition, frontend flavor assumptions, SSR site baselines, examples, and AI workflow guidance.
68
+
69
+ ## Edition-specific assets
70
+
71
+ The editions intentionally diverge in several surfaces:
72
+
73
+ - UI layer assumptions
74
+ - frontend flavor names
75
+ - suite and module composition
76
+ - admin/web SSR site baselines
77
+ - licensed private-repo structure and Start-specific project assets
78
+ - rules, skills, and docs used for AI vibe coding
79
+
80
+ For example:
81
+
82
+ - **Cabloy Basic** provides the `cabloy-basic` suites and the `cabloyBasicAdmin` / `cabloyBasicWeb` Zova flavors
83
+ - **Cabloy Start** provides the `cabloy-start` suites and the `cabloyStartAdmin` / `cabloyStartWeb` Zova flavors
20
84
 
21
- The editions exist to support different product and distribution goals.
85
+ ## Why the repo markers matter
22
86
 
23
- ### Cabloy Basic
87
+ The edition markers are not just labels for humans.
24
88
 
25
- - public repository
26
- - baseline fullstack reference implementation
27
- - current default examples in this public monorepo
89
+ `__CABLOY_BASIC__` and `__CABLOY_START__` help tools, docs, and AI workflows choose the correct assumptions for:
28
90
 
29
- ### Cabloy Start
91
+ - UI component usage
92
+ - flavor selection
93
+ - module availability
94
+ - SSR site expectations
95
+ - rules, skills, and verification guidance
30
96
 
31
- - sibling private repository
32
- - created from `npm create cabloy`
33
- - uses a different UI strategy centered on Vuetify
34
- - contains different Vona/Zova modules and value-add project structure
97
+ This is why the two editions should be identified explicitly instead of being treated as interchangeable.
35
98
 
36
99
  ## Documentation rule
37
100
 
38
- Write shared explanations once. Only split or annotate when a workflow changes because of:
101
+ Write shared explanations once. Split or annotate only when a workflow changes because of:
39
102
 
40
103
  - UI library assumptions
41
104
  - frontend flavor names
42
105
  - different modules or assets
43
- - private-value product boundaries
44
- - edition-specific scripts or generated outputs
106
+ - distribution and authorization model
107
+ - edition-specific scripts, generated outputs, or AI workflow guidance
@@ -26,8 +26,9 @@ Zova is not tied to one UI library.
26
26
 
27
27
  That flexibility matters directly for Cabloy’s edition model:
28
28
 
29
- - **Cabloy Basic** currently aligns with DaisyUI + TailwindCSS oriented examples
30
- - **Cabloy Start** aligns with Vuetify-oriented frontend modules and workflows
29
+ - **Shared frontend engineering layer**: both editions follow the same Zova-centered frontend direction, with Vue, Vite, Quasar tooling, and related libraries
30
+ - **Cabloy Basic UI layer**: current public docs and examples align with DaisyUI + Tailwind CSS
31
+ - **Cabloy Start UI layer**: the private commercial edition aligns with Vuetify-oriented frontend modules, workflows, and SSR site baselines
31
32
 
32
33
  So docs and skills must separate shared Zova principles from edition-specific UI assumptions.
33
34
 
@@ -1,8 +1,8 @@
1
1
  # Frontend (Zova)
2
2
 
3
- This page is the frontend hub for contributors who are documenting, designing, or extending frontend work in the Cabloy repository.
3
+ This page is the frontend hub for Cabloy users, contributors, and AI vibe coding workflows that need the frontend side of the framework.
4
4
 
5
- Zova is the frontend half of the Cabloy fullstack architecture.
5
+ Zova is the frontend half of Cabloy’s one-framework-system fullstack architecture.
6
6
 
7
7
  ## What Zova is responsible for
8
8
 
@@ -26,7 +26,8 @@ For contributor and automation workflows in this repository, prefer this order:
26
26
 
27
27
  Frontend work is where Cabloy Basic and Cabloy Start differ most clearly.
28
28
 
29
- - **Cabloy Basic** uses a frontend stack centered on DaisyUI and TailwindCSS in the current docs and examples.
30
- - **Cabloy Start** uses Vuetify and ships different frontend modules as a private value-add project.
29
+ - **Shared frontend engineering layer**: both editions follow the same Zova-centered frontend direction, with Vue, Vite, Quasar tooling, and related libraries.
30
+ - **Cabloy Basic UI layer**: current public docs and examples align with DaisyUI + Tailwind CSS.
31
+ - **Cabloy Start UI layer**: the private commercial edition aligns with Vuetify and ships different frontend modules, SSR site baselines, and project assets.
31
32
 
32
33
  Because of this, automation and docs should always detect the active edition before recommending page-level, component-level, or UI-library-specific work.
@@ -28,8 +28,9 @@ When working in this framework repository, the active edition is **Cabloy Basic*
28
28
  That matters because edition choice affects:
29
29
 
30
30
  - frontend flavor names
31
- - UI-library assumptions
32
- - available modules and layouts
31
+ - UI-layer assumptions
32
+ - available modules, layouts, and SSR site baselines
33
+ - project assets and examples
33
34
  - which examples in the docs match the current repo directly
34
35
 
35
36
  Read together with:
@@ -66,12 +66,12 @@ cd zova && npm run build:rest:cabloyBasicAdmin
66
66
 
67
67
  ## Cabloy Start
68
68
 
69
- The sibling `cabloy-start` repository uses Start-specific flavors such as:
69
+ The sibling `cabloy-start` repository is the private commercial edition and uses Start-specific flavors such as:
70
70
 
71
71
  - `cabloyStartAdmin`
72
72
  - `cabloyStartWeb`
73
73
 
74
- Those commands are not driven by the current Basic repo root wrappers, so verify the Start repo’s `package.json` before documenting or automating them.
74
+ Those commands are not driven by the current Basic repo root wrappers, so verify the Start repo’s `package.json`, suites, SSR site baselines, and project assets before documenting or automating them.
75
75
 
76
76
  ## Workflow guidance
77
77