cabloy 5.1.60 → 5.1.61
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.
- package/.claude/hooks/contract-loop-gate.ts +296 -0
- package/.claude/settings.json +16 -0
- package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +1 -0
- package/.claude/skills/cabloy-contract-loop/SKILL.md +89 -16
- package/.claude/skills/cabloy-contract-loop/references/contract-loop-map.md +102 -14
- package/.claude/skills/cabloy-contract-loop/references/resource-custom-state-pattern.md +4 -0
- package/.claude/skills/cabloy-contract-loop/references/verification-checklist.md +32 -14
- package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +11 -0
- package/.claude/skills/cabloy-frontend-scaffold/references/follow-up-checklist.md +2 -0
- package/.claude/skills/cabloy-module-removal/SKILL.md +144 -0
- package/.claude/skills/cabloy-resource-field-update/SKILL.md +7 -0
- package/.claude/skills/cabloy-zova-source-reading/SKILL.md +221 -0
- package/.claude/skills/cabloy-zova-source-reading/references/analysis-modes.md +91 -0
- package/.claude/skills/cabloy-zova-source-reading/references/core-reading-paths.md +117 -0
- package/CHANGELOG.md +22 -0
- package/CLAUDE.md +10 -0
- package/cabloy-docs/.vitepress/config.mjs +50 -4
- package/cabloy-docs/ai/cli-to-skill-map.md +7 -0
- package/cabloy-docs/ai/docs-skills-rules-mapping.md +14 -0
- package/cabloy-docs/ai/future-skill-roadmap.md +10 -7
- package/cabloy-docs/ai/introduction.md +1 -0
- package/cabloy-docs/ai/playbook-backend-module.md +6 -0
- package/cabloy-docs/ai/playbook-module-removal.md +164 -0
- package/cabloy-docs/ai/skills.md +11 -0
- package/cabloy-docs/backend/dto-guide.md +6 -0
- package/cabloy-docs/backend/entity-guide.md +18 -0
- package/cabloy-docs/backend/introduction.md +2 -0
- package/cabloy-docs/backend/serialization-guide.md +10 -0
- package/cabloy-docs/backend/status-guide.md +271 -0
- package/cabloy-docs/frontend/api-guide.md +2 -0
- package/cabloy-docs/frontend/bean-scene-authoring.md +2 -0
- package/cabloy-docs/frontend/cli.md +12 -0
- package/cabloy-docs/frontend/command-scene-authoring.md +495 -0
- package/cabloy-docs/frontend/design-principles.md +6 -0
- package/cabloy-docs/frontend/fetch-interceptor-guide.md +440 -0
- package/cabloy-docs/frontend/form-guide.md +795 -0
- package/cabloy-docs/frontend/foundation.md +29 -0
- package/cabloy-docs/frontend/introduction.md +12 -1
- package/cabloy-docs/frontend/ioc-and-beans.md +6 -0
- package/cabloy-docs/frontend/mock-guide.md +1 -0
- package/cabloy-docs/frontend/model-architecture.md +252 -39
- package/cabloy-docs/frontend/model-resource-best-practices.md +379 -0
- package/cabloy-docs/frontend/model-resource-cookbook.md +505 -0
- package/cabloy-docs/frontend/model-resource-owner-pattern.md +382 -0
- package/cabloy-docs/frontend/model-resource-usage-guide.md +318 -0
- package/cabloy-docs/frontend/model-state-guide.md +366 -13
- package/cabloy-docs/frontend/openapi-sdk-guide.md +5 -2
- package/cabloy-docs/frontend/page-guide.md +6 -0
- package/cabloy-docs/frontend/quickstart.md +4 -0
- package/cabloy-docs/frontend/reading-zova-for-vue-developers.md +266 -0
- package/cabloy-docs/frontend/server-data.md +2 -0
- package/cabloy-docs/frontend/zova-form-source-reading-map.md +295 -0
- package/cabloy-docs/frontend/zova-form-under-the-hood.md +556 -0
- package/cabloy-docs/frontend/zova-reactivity-under-the-hood.md +320 -0
- package/cabloy-docs/frontend/zova-source-reading-map.md +327 -0
- package/cabloy-docs/frontend/zova-vs-vue3-comparison.md +308 -0
- package/cabloy-docs/fullstack/contract-loop-playbook.md +350 -0
- package/cabloy-docs/fullstack/frontend-metadata-to-backend.md +44 -1
- package/cabloy-docs/fullstack/introduction.md +12 -1
- package/cabloy-docs/fullstack/openapi-to-sdk.md +19 -9
- package/cabloy-docs/fullstack/tutorial-3-frontend-metadata-sharing.md +2 -2
- package/cabloy-docs/fullstack/tutorial-4-custom-level-renderers.md +30 -5
- package/cabloy-docs/fullstack/tutorial-5-backend-contract-sharing.md +9 -7
- package/cabloy-docs/fullstack/tutorial-6-one-contract-four-uses.md +2 -0
- package/cabloy-docs/fullstack/tutorials-overview.md +16 -3
- package/cabloy-docs/reference/bean-scene-boilerplates.md +2 -0
- package/package.json +2 -1
- package/scripts/init.ts +2 -18
- package/scripts/initTestData.ts +25 -0
- package/scripts/upgrade.ts +17 -2
- package/vona/pnpm-lock.yaml +94 -4
- package/zova/packages-cli/cli/package.json +2 -2
- package/zova/packages-cli/cli-set-front/cli/templates/openapi/config/boilerplate/module/openapi.config.ts +6 -1
- package/zova/packages-cli/cli-set-front/package.json +1 -1
- package/zova/packages-cli/cli-set-front/src/lib/bean/cli.openapi.generate.ts +34 -4
- package/zova/pnpm-lock.yaml +20 -20
|
@@ -1,31 +1,47 @@
|
|
|
1
1
|
# Verification Checklist
|
|
2
2
|
|
|
3
|
-
After a contract-loop change,
|
|
3
|
+
After a contract-loop change, verify the branch that actually applies.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Edition verification
|
|
6
6
|
|
|
7
|
+
- Basic or Start marker confirmed
|
|
8
|
+
- affected flavor confirmed
|
|
9
|
+
- generation path matches the active edition
|
|
10
|
+
|
|
11
|
+
## Forward chain verification
|
|
12
|
+
|
|
13
|
+
- backend contract source is correct
|
|
7
14
|
- controller action contract is correct
|
|
8
15
|
- DTO and validation align
|
|
9
16
|
- OpenAPI output reflects the intended shape
|
|
10
|
-
-
|
|
11
|
-
-
|
|
17
|
+
- module ownership is constrained
|
|
18
|
+
- regeneration commands completed successfully
|
|
19
|
+
- generated SDK or schema outputs are updated
|
|
20
|
+
- thin model facades and downstream consumers still align with the regenerated contract
|
|
12
21
|
- `npm run tsc`
|
|
13
22
|
- `npm run build`
|
|
14
23
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
24
|
+
## Reverse chain verification
|
|
25
|
+
|
|
26
|
+
- frontend-owned source is correct
|
|
27
|
+
- metadata generation completed when applicable
|
|
28
|
+
- the relevant flavor build completed successfully
|
|
29
|
+
- `deps:vona` completed
|
|
30
|
+
- backend consumers can resolve the refreshed frontend-generated handoff
|
|
31
|
+
- prefer visible proof under `zova/src/**/.metadata/**` when it is available
|
|
32
|
+
- this repo does not rely on a contract-loop pre-commit gate; the active safeguard is the Claude hook layer
|
|
33
|
+
- if the change was a high-confidence Zova reverse-source edit through the Claude hook path, confirm whether the hook already auto-ran `npm run build:zova:admin` and `npm run deps:vona`
|
|
34
|
+
- if the change was consumer-side, low-confidence, outside the Claude hook path, or in another edition branch, run the reverse sync flow manually instead of assuming it already happened
|
|
35
|
+
- if the real handoff only appears in `.zova-rest`, treat the safeguard as conservative reminder/auto-sync assistance rather than strict proof
|
|
20
36
|
- `npm run tsc:zova`
|
|
21
|
-
- `npm run build:zova`
|
|
22
37
|
- relevant flavor-specific or route-specific checks
|
|
23
38
|
|
|
24
|
-
##
|
|
39
|
+
## Consumer drift verification
|
|
25
40
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
41
|
+
- source truth already looks correct
|
|
42
|
+
- generated output already looks correct
|
|
43
|
+
- the next consumer layer is the place that still looks stale
|
|
44
|
+
- do not patch source or generated artifacts again until the stale consumer path is identified
|
|
29
45
|
|
|
30
46
|
## Recovery rule for stale local file consumers
|
|
31
47
|
|
|
@@ -33,6 +49,8 @@ If all of these are true:
|
|
|
33
49
|
|
|
34
50
|
- generated `.zova-rest` or related generated consumer artifacts already contain the expected new keys or types
|
|
35
51
|
- the normal regeneration or sync flow already ran
|
|
52
|
+
- when relevant, the affected Zova flavor build already ran
|
|
53
|
+
- `deps:vona` already ran
|
|
36
54
|
- Vona still behaves as if old consumer types are installed
|
|
37
55
|
|
|
38
56
|
Then suspect a stale or unhealthy local installation state in `vona/node_modules`.
|
|
@@ -134,6 +134,16 @@ Check whether the feature needs:
|
|
|
134
134
|
- SSR init-data updates
|
|
135
135
|
- OpenAPI SDK regeneration
|
|
136
136
|
- schema-driven UI or `$apiSchema` review
|
|
137
|
+
- reverse fullstack handoff when newly added frontend resources will later be consumed by backend metadata or backend tooling
|
|
138
|
+
|
|
139
|
+
If the frontend change introduces resources such as a custom form-field renderer, table-cell renderer, or other generated metadata that backend `ZovaRender.field(...)` / `ZovaRender.cell(...)` will consume, do not treat the task as frontend-only cleanup.
|
|
140
|
+
|
|
141
|
+
In that case, surface this operational sequence:
|
|
142
|
+
|
|
143
|
+
1. refresh metadata when needed
|
|
144
|
+
2. build the affected flavor output
|
|
145
|
+
3. run `deps:vona`
|
|
146
|
+
4. if backend-side shared types still look stale, escalate to the contract-loop recovery path instead of continuing source-level debugging
|
|
137
147
|
|
|
138
148
|
### Component and interaction follow-up
|
|
139
149
|
|
|
@@ -173,6 +183,7 @@ Stay frontend-first, but if the frontend task clearly depends on backend contrac
|
|
|
173
183
|
- backend OpenAPI output may need refresh or inspection
|
|
174
184
|
- backend DTO/controller response shape may be the real source of truth
|
|
175
185
|
- frontend SDK or schema-driven layers should be regenerated from contract output rather than hand-patched
|
|
186
|
+
- newly added frontend resources that backend metadata will consume may require a reverse handoff through frontend build output and `deps:vona`
|
|
176
187
|
|
|
177
188
|
Do not turn the skill into a backend workflow. Only surface the reminder when the contract boundary is clearly involved.
|
|
178
189
|
|
|
@@ -15,6 +15,8 @@ After generating or extending a frontend thread, check which follow-up layers ap
|
|
|
15
15
|
- SSR init-data needs
|
|
16
16
|
- OpenAPI SDK or schema-driven layer impact
|
|
17
17
|
- backend contract reminder if frontend depends on generated backend contract output
|
|
18
|
+
- if backend metadata will consume newly added frontend render resources, run the relevant Zova build and then `deps:vona`
|
|
19
|
+
- if generated `.zova-rest` output is updated but backend still sees stale shared types, rebuild `vona/node_modules` and reinstall
|
|
18
20
|
|
|
19
21
|
## Interaction and UI follow-up
|
|
20
22
|
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cabloy-module-removal
|
|
3
|
+
description: Use this skill whenever the user wants to remove or delete an existing Cabloy module, retire a demo module, or cleanly take a backend, frontend, or fullstack module out of the monorepo. Trigger for requests such as remove module, delete module, retire module, remove demo module, or remove fullstack module, including equivalent requests in other languages. Prefer it when the task is about deletion order, generated-runtime cleanup, and verification rather than scaffolding or contract evolution.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cabloy Module Removal
|
|
7
|
+
|
|
8
|
+
Use this skill when the user wants to remove an existing module from the Cabloy monorepo.
|
|
9
|
+
|
|
10
|
+
Read the public [Module Removal Playbook](../../../cabloy-docs/ai/playbook-module-removal.md) for the canonical user/agent-facing workflow. This skill is the thinner orchestration layer: it should classify the removal path, choose the right cleanup branch, and point back to the playbook for the shared operational sequence.
|
|
11
|
+
|
|
12
|
+
## Goals
|
|
13
|
+
|
|
14
|
+
1. detect whether the active repository is Cabloy Basic or Cabloy Start
|
|
15
|
+
2. classify the removal scope as backend-only, frontend-only, or fullstack
|
|
16
|
+
3. keep the workflow source-first instead of debugging generated artifacts too early
|
|
17
|
+
4. make the stale-generated-runtime recovery branch explicit when needed
|
|
18
|
+
5. finish with verification guidance that proves the module is gone from the runtime/code graph
|
|
19
|
+
|
|
20
|
+
## Step 1: Detect repo and classify the removal branch
|
|
21
|
+
|
|
22
|
+
Check the repository root for these marker files:
|
|
23
|
+
|
|
24
|
+
- `__CABLOY_BASIC__`
|
|
25
|
+
- `__CABLOY_START__`
|
|
26
|
+
|
|
27
|
+
Interpretation:
|
|
28
|
+
|
|
29
|
+
- `__CABLOY_BASIC__` present → this is Cabloy Basic
|
|
30
|
+
- `__CABLOY_START__` present → this is Cabloy Start
|
|
31
|
+
- neither present → inspect nearby scripts and ask before making edition-specific assumptions
|
|
32
|
+
|
|
33
|
+
Then classify the request into one of three branches:
|
|
34
|
+
|
|
35
|
+
### Branch A: backend-only removal
|
|
36
|
+
|
|
37
|
+
Use this branch when the user is removing only Vona-side code such as:
|
|
38
|
+
|
|
39
|
+
- `vona/src/module/<module>`
|
|
40
|
+
- backend package references
|
|
41
|
+
- backend tests or metadata tied only to Vona
|
|
42
|
+
|
|
43
|
+
### Branch B: frontend-only removal
|
|
44
|
+
|
|
45
|
+
Use this branch when the user is removing only Zova-side code such as:
|
|
46
|
+
|
|
47
|
+
- `zova/src/module/<module>`
|
|
48
|
+
- frontend package references
|
|
49
|
+
- Zova-only API/model/component assets
|
|
50
|
+
|
|
51
|
+
### Branch C: fullstack removal
|
|
52
|
+
|
|
53
|
+
Use this branch when the module exists on both sides or the request affects both Vona and Zova.
|
|
54
|
+
|
|
55
|
+
This is the default branch for demo modules and shared business threads.
|
|
56
|
+
|
|
57
|
+
## Step 2: Inventory real source and direct references first
|
|
58
|
+
|
|
59
|
+
Before proposing or making cleanup steps, inspect the real module surfaces first:
|
|
60
|
+
|
|
61
|
+
- backend and frontend module roots
|
|
62
|
+
- `vona/package.json`
|
|
63
|
+
- `zova/package.json`
|
|
64
|
+
- generated registries or lockfiles that may need refresh
|
|
65
|
+
- tests tied to the module
|
|
66
|
+
- optional docs/examples only if the user explicitly wants a public scrub
|
|
67
|
+
|
|
68
|
+
Start from the shared root scripts first:
|
|
69
|
+
|
|
70
|
+
- `package.json`
|
|
71
|
+
- `npm run vona`
|
|
72
|
+
- `npm run zova`
|
|
73
|
+
|
|
74
|
+
Do not assume a module lives only in one path family until the actual repo layout has been inspected.
|
|
75
|
+
|
|
76
|
+
## Step 3: Keep the normal execution order source-first
|
|
77
|
+
|
|
78
|
+
Point the user or the main workflow to this order:
|
|
79
|
+
|
|
80
|
+
1. remove backend source if in scope
|
|
81
|
+
2. remove frontend source if in scope
|
|
82
|
+
3. remove direct workspace dependency references
|
|
83
|
+
4. run the repo-owned regeneration flow
|
|
84
|
+
5. verify no references remain
|
|
85
|
+
|
|
86
|
+
Important rule:
|
|
87
|
+
|
|
88
|
+
- do not start by hand-editing generated caches or type surfaces while the real source and dependency references still exist
|
|
89
|
+
|
|
90
|
+
Use the playbook for the full operational sequence and representative commands.
|
|
91
|
+
|
|
92
|
+
## Step 4: Use generated-runtime cleanup only as a recovery branch
|
|
93
|
+
|
|
94
|
+
When a module has already been removed from source and direct dependency references, but stale generated types or runtime entries still remain, treat generated runtime directories as disposable working state rather than source-of-truth files.
|
|
95
|
+
|
|
96
|
+
Primary recovery targets for this workflow are:
|
|
97
|
+
|
|
98
|
+
- `vona/.vona`
|
|
99
|
+
- `zova/.zova`
|
|
100
|
+
|
|
101
|
+
These directories are auto-generated by the Vona and Zova CLI flows and may survive when a service or build process does not stop cleanly.
|
|
102
|
+
|
|
103
|
+
This is a recovery branch, not the default first step.
|
|
104
|
+
|
|
105
|
+
After cleanup, rerun the normal build/deps/typecheck flow from the playbook.
|
|
106
|
+
|
|
107
|
+
## Step 5: Finish with branch-aware verification
|
|
108
|
+
|
|
109
|
+
Use the verification path that matches the branch:
|
|
110
|
+
|
|
111
|
+
- backend-only → backend deps/typecheck/tests as needed
|
|
112
|
+
- frontend-only → relevant Zova build/deps/typecheck path
|
|
113
|
+
- fullstack → fullstack regeneration order plus typecheck and targeted tests
|
|
114
|
+
|
|
115
|
+
Verification should prove:
|
|
116
|
+
|
|
117
|
+
- no direct workspace dependency entries remain
|
|
118
|
+
- no stale generated registrations remain
|
|
119
|
+
- no typecheck failures still point at the removed module
|
|
120
|
+
- no important runtime or test surfaces still import the removed module
|
|
121
|
+
|
|
122
|
+
## Step 6: Treat docs cleanup as a separate scope decision
|
|
123
|
+
|
|
124
|
+
Do not assume module deletion automatically means public docs cleanup.
|
|
125
|
+
|
|
126
|
+
Ask or confirm whether the task is:
|
|
127
|
+
|
|
128
|
+
- code/runtime removal only
|
|
129
|
+
- code/runtime removal plus docs/examples scrub
|
|
130
|
+
|
|
131
|
+
If docs cleanup is in scope, update `cabloy-docs/` separately from the runtime cleanup and keep maintainer rationale in `.docs-internal/`.
|
|
132
|
+
|
|
133
|
+
## Response pattern
|
|
134
|
+
|
|
135
|
+
When using this skill, structure the response around these points when helpful:
|
|
136
|
+
|
|
137
|
+
1. detected edition
|
|
138
|
+
2. detected removal scope
|
|
139
|
+
3. real module surfaces involved
|
|
140
|
+
4. recommended cleanup/regeneration branch
|
|
141
|
+
5. stale-generated-runtime recovery branch if needed
|
|
142
|
+
6. verification steps
|
|
143
|
+
|
|
144
|
+
Keep the response practical. The value of this skill is to choose the right removal branch quickly and keep generated working state in the correct role.
|
|
@@ -164,6 +164,12 @@ Then check whether DTOs are already inferred through patterns such as:
|
|
|
164
164
|
|
|
165
165
|
If the DTOs are inferred from the entity/model chain, let the entity change propagate. Do not hand-edit DTO field lists unless the source clearly requires it.
|
|
166
166
|
|
|
167
|
+
Important serialization reminder:
|
|
168
|
+
|
|
169
|
+
- if the returned field behavior depends on `v.serializerTransform(...)`, `v.serializerExclude()`, `v.serializerReplace(...)`, `v.serializerGetter(...)`, or `v.serializerCustom(...)`, do not assume those transforms run by default
|
|
170
|
+
- for performance reasons, Vona response serialization is opt-in per API action
|
|
171
|
+
- verify that the target controller action explicitly uses `@Core.serializer()` before concluding that serializer metadata is broken
|
|
172
|
+
|
|
167
173
|
## Step 6: Apply the renderer branch deliberately
|
|
168
174
|
|
|
169
175
|
### Default rule: prefer shared renderer reuse
|
|
@@ -251,6 +257,7 @@ Typical checks include:
|
|
|
251
257
|
- `npm run tsc`
|
|
252
258
|
- `npm run build`
|
|
253
259
|
- narrow resource test runs
|
|
260
|
+
- when returned-field masking or exclusion uses `v.serializer*`, verify the action-level `@Core.serializer()` path with an API test, not only static field metadata inspection
|
|
254
261
|
- renderer/build/deps synchronization when custom frontend renderers are involved
|
|
255
262
|
|
|
256
263
|
## Response pattern
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cabloy-zova-source-reading
|
|
3
|
+
description: Use this skill when the user wants to read, trace, or explain Zova frontend source code rather than scaffold new code: where a page/component/model/behavior/SSR flow is implemented, how a runtime path works internally, why a plain controller field is reactive, how Zova differs from generic Vue 3 habits, or which files to read first. Trigger for requests about Zova source reading, runtime tracing, Vue-vs-Zova explanation, controller/bean/IoC mental models, or the Zova-native way to understand frontend behavior. Do not use it for normal frontend scaffolding or backend/frontend contract regeneration.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cabloy Zova Source Reading
|
|
7
|
+
|
|
8
|
+
Use this skill when the task is to understand, explain, or trace Zova frontend behavior in source code.
|
|
9
|
+
|
|
10
|
+
## Goals
|
|
11
|
+
|
|
12
|
+
1. detect whether the active repository is Cabloy Basic or Cabloy Start
|
|
13
|
+
2. classify whether the user needs a source-entry map, a runtime-flow trace, or a Vue-vs-Zova explanation
|
|
14
|
+
3. start from Zova-native public docs before diving into framework source
|
|
15
|
+
4. explain Zova architecture in its own terms before translating it into Vue analogies
|
|
16
|
+
5. separate source-confirmed runtime behavior from interpretive comparison
|
|
17
|
+
6. finish with verification guidance that matches the analysis scope
|
|
18
|
+
|
|
19
|
+
## Step 1: Detect the active edition
|
|
20
|
+
|
|
21
|
+
Check the repository root for these marker files:
|
|
22
|
+
|
|
23
|
+
- `__CABLOY_BASIC__`
|
|
24
|
+
- `__CABLOY_START__`
|
|
25
|
+
|
|
26
|
+
Interpretation:
|
|
27
|
+
|
|
28
|
+
- `__CABLOY_BASIC__` present → this is Cabloy Basic
|
|
29
|
+
- `__CABLOY_START__` present → this is Cabloy Start
|
|
30
|
+
- neither present → inspect the repo scripts and ask before making edition-specific frontend assumptions
|
|
31
|
+
|
|
32
|
+
This matters most when the analysis becomes UI-sensitive, SSR-site-sensitive, flavor-sensitive, or module-set-sensitive.
|
|
33
|
+
|
|
34
|
+
## Step 2: Classify the analysis mode
|
|
35
|
+
|
|
36
|
+
Before reading files deeply, decide which kind of question the user is really asking.
|
|
37
|
+
|
|
38
|
+
### Mode A: source-location mode
|
|
39
|
+
|
|
40
|
+
Use this mode when the user is asking questions like:
|
|
41
|
+
|
|
42
|
+
- where should I start reading?
|
|
43
|
+
- which files are relevant?
|
|
44
|
+
- what order should I read the source in?
|
|
45
|
+
- where is this implemented in Zova?
|
|
46
|
+
|
|
47
|
+
### Mode B: runtime-flow mode
|
|
48
|
+
|
|
49
|
+
Use this mode when the user is asking questions like:
|
|
50
|
+
|
|
51
|
+
- how does this work internally?
|
|
52
|
+
- why is this field reactive?
|
|
53
|
+
- where does `$computed` / `$params` / `$query` come from?
|
|
54
|
+
- how does page/controller/component render enter the runtime?
|
|
55
|
+
|
|
56
|
+
### Mode C: Vue-vs-Zova comparison mode
|
|
57
|
+
|
|
58
|
+
Use this mode when the user is asking questions like:
|
|
59
|
+
|
|
60
|
+
- how should I understand this relative to Vue 3?
|
|
61
|
+
- is this just Vue with classes?
|
|
62
|
+
- what is the Zova way instead of the generic Vue way?
|
|
63
|
+
- how do controller / bean / model / render roles map to Vue concepts?
|
|
64
|
+
|
|
65
|
+
If a request spans more than one mode, answer in this order:
|
|
66
|
+
|
|
67
|
+
1. source-location mode
|
|
68
|
+
2. runtime-flow mode
|
|
69
|
+
3. Vue-vs-Zova comparison mode
|
|
70
|
+
|
|
71
|
+
That order reduces the risk of drifting into premature analogy before the source path is understood.
|
|
72
|
+
|
|
73
|
+
## Step 3: Start from public Zova docs first
|
|
74
|
+
|
|
75
|
+
Do not begin by forcing the problem into generic Vue terminology.
|
|
76
|
+
|
|
77
|
+
Start from the public frontend reading docs in `cabloy-docs/frontend/`.
|
|
78
|
+
|
|
79
|
+
### Primary reading surfaces
|
|
80
|
+
|
|
81
|
+
- `cabloy-docs/frontend/reading-zova-for-vue-developers.md`
|
|
82
|
+
- `cabloy-docs/frontend/zova-vs-vue3-comparison.md`
|
|
83
|
+
- `cabloy-docs/frontend/zova-reactivity-under-the-hood.md`
|
|
84
|
+
- `cabloy-docs/frontend/zova-source-reading-map.md`
|
|
85
|
+
|
|
86
|
+
For compact procedural summaries inside the skill bundle, also use:
|
|
87
|
+
|
|
88
|
+
- `references/analysis-modes.md`
|
|
89
|
+
- `references/core-reading-paths.md`
|
|
90
|
+
|
|
91
|
+
### Core architecture surfaces
|
|
92
|
+
|
|
93
|
+
Use these when the question needs broader architectural context:
|
|
94
|
+
|
|
95
|
+
- `cabloy-docs/frontend/introduction.md`
|
|
96
|
+
- `cabloy-docs/frontend/foundation.md`
|
|
97
|
+
- `cabloy-docs/frontend/design-principles.md`
|
|
98
|
+
- `cabloy-docs/frontend/ioc-and-beans.md`
|
|
99
|
+
- `cabloy-docs/frontend/page-guide.md`
|
|
100
|
+
- `cabloy-docs/frontend/component-guide.md`
|
|
101
|
+
- `cabloy-docs/frontend/model-architecture.md`
|
|
102
|
+
- `cabloy-docs/frontend/page-route-guide.md`
|
|
103
|
+
- `cabloy-docs/frontend/behavior-guide.md`
|
|
104
|
+
- `cabloy-docs/frontend/ssr-architecture-overview.md`
|
|
105
|
+
|
|
106
|
+
## Step 4: Choose the shortest correct source-reading path
|
|
107
|
+
|
|
108
|
+
After reading the public docs, choose the smallest source path that answers the question.
|
|
109
|
+
|
|
110
|
+
Use these bundled references to keep the workflow compact:
|
|
111
|
+
|
|
112
|
+
- `references/analysis-modes.md`
|
|
113
|
+
- `references/core-reading-paths.md`
|
|
114
|
+
|
|
115
|
+
Use the public `cabloy-docs/frontend/zova-source-reading-map.md` as the fuller explanation layer, but use the bundled references first when they are enough for the current task.
|
|
116
|
+
|
|
117
|
+
## Step 5: Explain Zova-native meaning first
|
|
118
|
+
|
|
119
|
+
When answering, explain the Zova role first, then add Vue analogies only if they help.
|
|
120
|
+
|
|
121
|
+
### Required answer posture
|
|
122
|
+
|
|
123
|
+
1. identify the Zova-native role first
|
|
124
|
+
- page controller
|
|
125
|
+
- component controller
|
|
126
|
+
- render bean
|
|
127
|
+
- style bean
|
|
128
|
+
- model bean
|
|
129
|
+
- service bean
|
|
130
|
+
- behavior bean
|
|
131
|
+
- route/SSR integration layer
|
|
132
|
+
|
|
133
|
+
2. explain the source-confirmed runtime path second
|
|
134
|
+
|
|
135
|
+
3. only then offer Vue analogies as approximate translations
|
|
136
|
+
|
|
137
|
+
Do **not** lead with statements like:
|
|
138
|
+
|
|
139
|
+
- "this is basically just Vue setup with classes"
|
|
140
|
+
- "this should really be a normal Vue composable"
|
|
141
|
+
- "the right end state is probably `ref.value`"
|
|
142
|
+
|
|
143
|
+
Those translations can erase the actual Zova architecture.
|
|
144
|
+
|
|
145
|
+
For component-wrapper questions specifically, remember that `controllerRef` exposes the controller instance, not a generic DOM ref, and should not be treated as a generic Vue component-ref substitute without checking the current wrapper/controller source path.
|
|
146
|
+
|
|
147
|
+
## Step 6: Distinguish source-confirmed behavior from interpretive comparison
|
|
148
|
+
|
|
149
|
+
Always make the boundary explicit.
|
|
150
|
+
|
|
151
|
+
### Source-confirmed behavior
|
|
152
|
+
|
|
153
|
+
This includes claims you can support directly from current source files, such as:
|
|
154
|
+
|
|
155
|
+
- where a controller is created
|
|
156
|
+
- where a bean becomes reactive
|
|
157
|
+
- where route state is refreshed
|
|
158
|
+
- where render is redirected
|
|
159
|
+
- which helper wraps which Vue API
|
|
160
|
+
|
|
161
|
+
### Interpretive comparison
|
|
162
|
+
|
|
163
|
+
This includes claims such as:
|
|
164
|
+
|
|
165
|
+
- why Zova feels more object-oriented than Vue
|
|
166
|
+
- how Zova growth paths differ from typical Vue growth paths
|
|
167
|
+
- which analogy is the closest Vue mental model
|
|
168
|
+
|
|
169
|
+
These can be useful, but they should be labeled as interpretation rather than current-source fact.
|
|
170
|
+
|
|
171
|
+
## Step 7: Stay inside the right workflow boundary
|
|
172
|
+
|
|
173
|
+
Use this skill for explanation and source reading.
|
|
174
|
+
|
|
175
|
+
Do **not** use it as the primary workflow when the real task is:
|
|
176
|
+
|
|
177
|
+
- creating or refactoring frontend structures → prefer `cabloy-frontend-scaffold`
|
|
178
|
+
- diagnosing backend/frontend contract drift → prefer `cabloy-contract-loop`
|
|
179
|
+
- choosing whether the work belongs to backend, frontend, fullstack, docs, or AI guidance → prefer `cabloy-workflow`
|
|
180
|
+
|
|
181
|
+
## Step 8: Verification guidance
|
|
182
|
+
|
|
183
|
+
Always finish with a verification path that matches the analysis task.
|
|
184
|
+
|
|
185
|
+
### For source-reading answers
|
|
186
|
+
|
|
187
|
+
Verify:
|
|
188
|
+
|
|
189
|
+
- the cited file paths exist
|
|
190
|
+
- the described runtime path is actually visible in current source
|
|
191
|
+
- the answer does not contradict the public frontend docs
|
|
192
|
+
|
|
193
|
+
### For Vue-vs-Zova explanation answers
|
|
194
|
+
|
|
195
|
+
Verify:
|
|
196
|
+
|
|
197
|
+
- the Zova-native explanation comes first
|
|
198
|
+
- Vue analogies are marked as approximate, not authoritative
|
|
199
|
+
- no claim quietly rewrites Zova back into generic Vue habits
|
|
200
|
+
|
|
201
|
+
### For edition-sensitive frontend analysis
|
|
202
|
+
|
|
203
|
+
Verify:
|
|
204
|
+
|
|
205
|
+
- the active edition marker was considered
|
|
206
|
+
- Basic-only or Start-only UI assumptions were not silently generalized
|
|
207
|
+
- SSR, theme, and flavor-sensitive statements match the active edition context
|
|
208
|
+
|
|
209
|
+
## Response pattern
|
|
210
|
+
|
|
211
|
+
When helpful, structure the response around these points:
|
|
212
|
+
|
|
213
|
+
1. detected edition
|
|
214
|
+
2. analysis mode
|
|
215
|
+
3. public docs to read first
|
|
216
|
+
4. source path to inspect next
|
|
217
|
+
5. Zova-native explanation
|
|
218
|
+
6. optional Vue analogy
|
|
219
|
+
7. verification notes or caveats
|
|
220
|
+
|
|
221
|
+
Keep the response practical. The value of this skill is to help AI and users read Zova source accurately and in the right architectural order, not to flatten Zova into generic Vue prose.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Analysis Modes
|
|
2
|
+
|
|
3
|
+
Use this reference to choose the shortest correct analysis posture before reading Zova source deeply.
|
|
4
|
+
|
|
5
|
+
## Mode A: source-location mode
|
|
6
|
+
|
|
7
|
+
Use this mode when the user is mainly asking:
|
|
8
|
+
|
|
9
|
+
- where should I start reading?
|
|
10
|
+
- which files matter?
|
|
11
|
+
- what order should I read the source in?
|
|
12
|
+
- where is this implemented?
|
|
13
|
+
|
|
14
|
+
### Workflow
|
|
15
|
+
|
|
16
|
+
1. detect the active edition if UI-sensitive assumptions might matter
|
|
17
|
+
2. start from the public frontend docs first
|
|
18
|
+
3. pick the smallest matching thread from `cabloy-docs/frontend/zova-source-reading-map.md`
|
|
19
|
+
4. cite the initial source files in the recommended reading order
|
|
20
|
+
5. stop before tracing deeper runtime layers unless the user also wants runtime-flow analysis
|
|
21
|
+
|
|
22
|
+
### Output emphasis
|
|
23
|
+
|
|
24
|
+
- reading order
|
|
25
|
+
- key file paths
|
|
26
|
+
- why those files are the right starting points
|
|
27
|
+
|
|
28
|
+
## Mode B: runtime-flow mode
|
|
29
|
+
|
|
30
|
+
Use this mode when the user is mainly asking:
|
|
31
|
+
|
|
32
|
+
- how does this work internally?
|
|
33
|
+
- why is this reactive?
|
|
34
|
+
- where does this controller/page/component behavior come from?
|
|
35
|
+
- how does render, route state, or lifecycle enter the runtime?
|
|
36
|
+
|
|
37
|
+
### Workflow
|
|
38
|
+
|
|
39
|
+
1. read the public Zova-native explanation docs first:
|
|
40
|
+
- `reading-zova-for-vue-developers.md`
|
|
41
|
+
- `zova-reactivity-under-the-hood.md`
|
|
42
|
+
2. identify the concrete thread:
|
|
43
|
+
- page controller
|
|
44
|
+
- component controller
|
|
45
|
+
- route/state
|
|
46
|
+
- model
|
|
47
|
+
- behavior
|
|
48
|
+
- SSR
|
|
49
|
+
3. trace the smallest current-source path that confirms the runtime behavior
|
|
50
|
+
4. distinguish source-confirmed behavior from interpretation
|
|
51
|
+
5. only after the Zova-native explanation is clear, add Vue analogy if helpful
|
|
52
|
+
|
|
53
|
+
### Output emphasis
|
|
54
|
+
|
|
55
|
+
- entrypoint
|
|
56
|
+
- intermediate runtime files
|
|
57
|
+
- what triggers the behavior
|
|
58
|
+
- what is source-confirmed
|
|
59
|
+
|
|
60
|
+
## Mode C: Vue-vs-Zova comparison mode
|
|
61
|
+
|
|
62
|
+
Use this mode when the user is mainly asking:
|
|
63
|
+
|
|
64
|
+
- how should I understand this relative to Vue 3?
|
|
65
|
+
- is this just Vue with a different syntax?
|
|
66
|
+
- what is the Zova way here?
|
|
67
|
+
|
|
68
|
+
### Workflow
|
|
69
|
+
|
|
70
|
+
1. explain the Zova-native architectural role first
|
|
71
|
+
2. identify which public Zova doc best defines that role
|
|
72
|
+
3. if needed, trace one representative source path to confirm the runtime grounding
|
|
73
|
+
4. only then provide Vue analogies as approximate translations
|
|
74
|
+
5. explicitly avoid flattening Zova back into generic Vue habits
|
|
75
|
+
|
|
76
|
+
### Output emphasis
|
|
77
|
+
|
|
78
|
+
- Zova-native role
|
|
79
|
+
- closest Vue analogy
|
|
80
|
+
- what is genuinely shared underneath
|
|
81
|
+
- what changes at the authoring-model level
|
|
82
|
+
|
|
83
|
+
## Combined requests
|
|
84
|
+
|
|
85
|
+
If a request spans multiple modes, answer in this order:
|
|
86
|
+
|
|
87
|
+
1. source-location mode
|
|
88
|
+
2. runtime-flow mode
|
|
89
|
+
3. Vue-vs-Zova comparison mode
|
|
90
|
+
|
|
91
|
+
This keeps the explanation anchored in the real source path before analogy work begins.
|