cabloy 5.1.60 → 5.1.62
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/SKILL.md +2 -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-domain-planning/SKILL.md +212 -0
- package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +13 -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 +64 -0
- package/CLAUDE.md +11 -0
- package/cabloy-docs/.vitepress/config.mjs +197 -5
- package/cabloy-docs/ai/cli-to-skill-map.md +7 -0
- package/cabloy-docs/ai/docs-skills-rules-mapping.md +22 -0
- package/cabloy-docs/ai/future-skill-roadmap.md +12 -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 +12 -0
- package/cabloy-docs/backend/backend-contract-emission-output-inspection.md +189 -0
- package/cabloy-docs/backend/backend-contract-emission-source-reading-map.md +160 -0
- package/cabloy-docs/backend/backend-contract-emission-specimen.md +170 -0
- package/cabloy-docs/backend/backend-resource-module-contract-chain.md +323 -0
- package/cabloy-docs/backend/backend-source-reading-debug-checklist.md +173 -0
- package/cabloy-docs/backend/backend-source-reading-roadmap.md +129 -0
- package/cabloy-docs/backend/backend-source-reading-verify-playbook.md +166 -0
- package/cabloy-docs/backend/bean-scene-authoring.md +4 -4
- package/cabloy-docs/backend/broadcast-guide.md +3 -3
- package/cabloy-docs/backend/cli.md +20 -11
- package/cabloy-docs/backend/config-guide.md +4 -4
- package/cabloy-docs/backend/controller-aop-guide.md +10 -10
- package/cabloy-docs/backend/controller-guide.md +12 -2
- package/cabloy-docs/backend/crud-workflow.md +7 -3
- package/cabloy-docs/backend/dto-guide.md +18 -2
- package/cabloy-docs/backend/dto-infer-generation.md +201 -25
- package/cabloy-docs/backend/election-guide.md +2 -2
- package/cabloy-docs/backend/entity-guide.md +30 -3
- package/cabloy-docs/backend/error-guide.md +3 -3
- package/cabloy-docs/backend/event-guide.md +4 -4
- package/cabloy-docs/backend/external-aop-guide.md +2 -2
- package/cabloy-docs/backend/field-indexes.md +9 -3
- package/cabloy-docs/backend/foundation.md +8 -8
- package/cabloy-docs/backend/i18n-guide.md +6 -6
- package/cabloy-docs/backend/internal-aop-guide.md +2 -2
- package/cabloy-docs/backend/introduction.md +15 -0
- package/cabloy-docs/backend/migration-and-changes.md +3 -3
- package/cabloy-docs/backend/model-guide.md +16 -6
- package/cabloy-docs/backend/openapi-guide.md +3 -0
- package/cabloy-docs/backend/queue-guide.md +3 -3
- package/cabloy-docs/backend/redlock-guide.md +2 -2
- package/cabloy-docs/backend/schedule-guide.md +2 -2
- package/cabloy-docs/backend/scripts.md +8 -0
- package/cabloy-docs/backend/serialization-guide.md +12 -2
- package/cabloy-docs/backend/service-guide.md +18 -9
- package/cabloy-docs/backend/startup-guide.md +5 -5
- package/cabloy-docs/backend/status-guide.md +271 -0
- package/cabloy-docs/backend/unit-testing.md +3 -3
- package/cabloy-docs/backend/vona-source-reading-map.md +157 -0
- package/cabloy-docs/backend/websocket-protocol-guide.md +5 -5
- package/cabloy-docs/backend/websocket-usage-guide.md +15 -8
- package/cabloy-docs/frontend/a-model-under-the-hood.md +281 -0
- package/cabloy-docs/frontend/a-openapi-under-the-hood.md +248 -0
- package/cabloy-docs/frontend/a-router-guide.md +307 -0
- package/cabloy-docs/frontend/api-guide.md +6 -4
- package/cabloy-docs/frontend/api-schema-guide.md +1 -0
- package/cabloy-docs/frontend/app-startup-guide.md +7 -4
- package/cabloy-docs/frontend/bean-scene-authoring.md +3 -1
- package/cabloy-docs/frontend/behavior-guide.md +16 -16
- package/cabloy-docs/frontend/cli.md +14 -2
- package/cabloy-docs/frontend/command-scene-authoring.md +504 -0
- package/cabloy-docs/frontend/component-guide.md +5 -5
- package/cabloy-docs/frontend/component-props-guide.md +1 -1
- package/cabloy-docs/frontend/component-v-model-guide.md +2 -2
- package/cabloy-docs/frontend/design-principles.md +6 -0
- package/cabloy-docs/frontend/fetch-interceptor-guide.md +440 -0
- package/cabloy-docs/frontend/filter-query-select-data-flow-guide.md +260 -0
- package/cabloy-docs/frontend/form-guide.md +786 -0
- package/cabloy-docs/frontend/form-scene-to-page-meta-guide.md +303 -0
- package/cabloy-docs/frontend/foundation.md +33 -0
- package/cabloy-docs/frontend/frontend-source-reading-roadmap.md +249 -0
- package/cabloy-docs/frontend/generated-contract-consumption-debug-checklist.md +190 -0
- package/cabloy-docs/frontend/generated-contract-consumption-entry-branch.md +205 -0
- package/cabloy-docs/frontend/generated-contract-consumption-list-branch.md +157 -0
- package/cabloy-docs/frontend/generated-contract-consumption-specimen.md +203 -0
- package/cabloy-docs/frontend/generated-contract-consumption-verify-playbook.md +189 -0
- package/cabloy-docs/frontend/generic-component-guide.md +1 -1
- package/cabloy-docs/frontend/introduction.md +38 -5
- 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 +288 -39
- package/cabloy-docs/frontend/model-resource-best-practices.md +379 -0
- package/cabloy-docs/frontend/model-resource-cookbook.md +508 -0
- package/cabloy-docs/frontend/model-resource-internals-deep-dive.md +238 -0
- package/cabloy-docs/frontend/model-resource-owner-pattern.md +402 -0
- package/cabloy-docs/frontend/model-resource-usage-guide.md +334 -0
- package/cabloy-docs/frontend/model-state-guide.md +371 -15
- package/cabloy-docs/frontend/module-scope.md +8 -8
- package/cabloy-docs/frontend/modules-and-suites.md +2 -1
- package/cabloy-docs/frontend/navigation-guards-guide.md +7 -0
- package/cabloy-docs/frontend/openapi-sdk-guide.md +17 -6
- package/cabloy-docs/frontend/page-guide.md +15 -9
- package/cabloy-docs/frontend/page-meta-guide.md +466 -0
- package/cabloy-docs/frontend/page-params-guide.md +3 -3
- package/cabloy-docs/frontend/page-query-guide.md +2 -2
- package/cabloy-docs/frontend/page-route-guide.md +6 -0
- package/cabloy-docs/frontend/permission-formscene-action-visibility-guide.md +263 -0
- package/cabloy-docs/frontend/quickstart.md +18 -2
- package/cabloy-docs/frontend/reading-zova-for-vue-developers.md +266 -0
- package/cabloy-docs/frontend/resource-entry-page-deep-dive.md +271 -0
- package/cabloy-docs/frontend/resource-list-page-deep-dive.md +279 -0
- package/cabloy-docs/frontend/rest-resource-source-reading-map.md +522 -0
- package/cabloy-docs/frontend/rest-resource-under-the-hood.md +622 -0
- package/cabloy-docs/frontend/root-behaviors-guide.md +282 -0
- package/cabloy-docs/frontend/route-alias-guide.md +6 -0
- package/cabloy-docs/frontend/router-stack-guide.md +229 -0
- package/cabloy-docs/frontend/router-tabs-introduction.md +26 -3
- package/cabloy-docs/frontend/router-tabs-layout-integration.md +367 -0
- package/cabloy-docs/frontend/router-tabs-mechanism.md +6 -0
- package/cabloy-docs/frontend/router-tabs-route-meta-cookbook.md +7 -0
- package/cabloy-docs/frontend/router-tabs-vs-stack.md +167 -0
- package/cabloy-docs/frontend/router-view-hosts-guide.md +450 -0
- package/cabloy-docs/frontend/server-data.md +4 -1
- package/cabloy-docs/frontend/system-startup-guide.md +2 -2
- package/cabloy-docs/frontend/table-action-visibility-permission-flow-guide.md +263 -0
- package/cabloy-docs/frontend/table-cell-cookbook.md +568 -0
- package/cabloy-docs/frontend/table-guide.md +373 -0
- package/cabloy-docs/frontend/table-resource-crud-cookbook.md +496 -0
- package/cabloy-docs/frontend/zova-app-guide.md +251 -0
- package/cabloy-docs/frontend/zova-form-source-reading-map.md +293 -0
- package/cabloy-docs/frontend/zova-form-under-the-hood.md +561 -0
- package/cabloy-docs/frontend/zova-reactivity-under-the-hood.md +320 -0
- package/cabloy-docs/frontend/zova-router-under-the-hood.md +561 -0
- package/cabloy-docs/frontend/zova-source-reading-map.md +421 -0
- package/cabloy-docs/frontend/zova-table-controller-render-supplement.md +225 -0
- package/cabloy-docs/frontend/zova-table-source-reading-map.md +317 -0
- package/cabloy-docs/frontend/zova-table-under-the-hood.md +532 -0
- package/cabloy-docs/frontend/zova-vs-vue3-comparison.md +308 -0
- package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions-debug-checklist.md +245 -0
- package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions-source-reading-map.md +139 -0
- package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions-verify-playbook.md +248 -0
- package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions.md +511 -0
- package/cabloy-docs/fullstack/contract-loop-playbook.md +356 -0
- package/cabloy-docs/fullstack/edition-collaboration-differences.md +6 -0
- package/cabloy-docs/fullstack/frontend-metadata-to-backend.md +199 -23
- package/cabloy-docs/fullstack/introduction.md +15 -1
- package/cabloy-docs/fullstack/openapi-to-sdk.md +135 -11
- package/cabloy-docs/fullstack/suites-and-modules.md +333 -0
- package/cabloy-docs/fullstack/tutorial-1-first-module.md +3 -0
- package/cabloy-docs/fullstack/tutorial-2-first-crud.md +4 -0
- package/cabloy-docs/fullstack/tutorial-3-frontend-metadata-sharing.md +6 -2
- package/cabloy-docs/fullstack/tutorial-4-custom-level-renderers.md +60 -23
- package/cabloy-docs/fullstack/tutorial-5-backend-contract-sharing.md +14 -7
- package/cabloy-docs/fullstack/tutorial-6-one-contract-four-uses.md +6 -0
- package/cabloy-docs/fullstack/tutorials-overview.md +17 -4
- package/cabloy-docs/reference/bean-scene-boilerplates.md +15 -13
- package/cabloy-docs/reference/package-map.md +4 -3
- 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 +48 -194
- package/vona/src/suite/a-training/modules/training-student/package.json +53 -0
- package/vona/src/suite/a-training/modules/training-student/src/.metadata/index.ts +400 -0
- package/vona/src/suite/a-training/modules/training-student/src/.metadata/locales.ts +18 -0
- package/vona/src/suite/a-training/modules/training-student/src/.metadata/this.ts +2 -0
- package/vona/src/suite/a-training/modules/training-student/src/bean/meta.index.ts +12 -0
- package/vona/src/suite/a-training/modules/training-student/src/bean/meta.version.ts +21 -0
- package/vona/src/suite/a-training/modules/training-student/src/bean/ssrMenu.student.ts +29 -0
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +15 -0
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +15 -0
- package/vona/src/suite/a-training/modules/training-student/src/controller/student.ts +74 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +28 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectReq.tsx +44 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectRes.tsx +11 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectResItem.tsx +45 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSummary.tsx +42 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +28 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +25 -0
- package/vona/src/suite/a-training/modules/training-student/src/entity/student.tsx +84 -0
- package/vona/src/suite/a-training/modules/training-student/src/index.ts +2 -0
- package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +10 -0
- package/vona/src/suite/a-training/modules/training-student/src/service/student.ts +57 -0
- package/vona/src/suite/a-training/modules/training-student/test/student.test.ts +173 -0
- package/vona/src/suite/a-training/modules/training-student/tsconfig.build.json +11 -0
- package/vona/src/suite/a-training/modules/training-student/tsconfig.json +7 -0
- package/vona/src/suite/a-training/package.json +12 -0
- package/vona/src/suite/a-training/tsconfig.base.json +4 -0
- package/vona/src/suite/a-training/tsconfig.json +10 -0
- 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/packages-zova/zova/package.json +2 -2
- package/zova/pnpm-lock.yaml +416 -690
- package/zova/src/suite/a-training/modules/training-student/cli/openapi.config.ts +9 -0
- package/zova/src/suite/a-training/modules/training-student/package.json +52 -0
- package/zova/src/suite/a-training/modules/training-student/src/.metadata/component/formFieldLevel.ts +31 -0
- package/zova/src/suite/a-training/modules/training-student/src/.metadata/index.ts +258 -0
- package/zova/src/suite/a-training/modules/training-student/src/.metadata/locales.ts +7 -0
- package/zova/src/suite/a-training/modules/training-student/src/.metadata/this.ts +2 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/baseURL.ts +5 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/index.ts +3 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/schemas.ts +196 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/types.ts +4146 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/trainingStudent.ts +151 -0
- package/zova/src/suite/a-training/modules/training-student/src/apiSchema/trainingStudent.ts +43 -0
- package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.actionDeleteForce.tsx +51 -0
- package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.actionSummary.tsx +56 -0
- package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.level.tsx +63 -0
- package/zova/src/suite/a-training/modules/training-student/src/component/formFieldLevel/controller.tsx +117 -0
- package/zova/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +9 -0
- package/zova/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +9 -0
- package/zova/src/suite/a-training/modules/training-student/src/index.ts +2 -0
- package/zova/src/suite/a-training/modules/training-student/src/model/student.ts +42 -0
- package/zova/src/suite/a-training/modules/training-student/tsconfig.build.json +13 -0
- package/zova/src/suite/a-training/modules/training-student/tsconfig.json +5 -0
- package/zova/src/suite/a-training/package.json +12 -0
- package/zova/src/suite/a-training/tsconfig.base.json +4 -0
- package/zova/src/suite/a-training/tsconfig.json +4 -0
- package/zova/src/suite/cabloy-basic/modules/basic-select/src/component/formFieldSelect/controller.tsx +29 -7
- package/zova/src/suite/cabloy-basic/modules/basic-select/src/component/select/controller.tsx +34 -11
- package/zova/src/suite-vendor/a-zova/modules/a-table/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/controller.tsx +3 -3
- package/zova/src/suite-vendor/a-zova/modules/a-table/src/lib/tableCell.ts +1 -1
- package/zova/src/suite-vendor/a-zova/package.json +2 -2
|
@@ -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.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Core Reading Paths
|
|
2
|
+
|
|
3
|
+
Use this reference to choose the shortest source path after the analysis mode is known.
|
|
4
|
+
|
|
5
|
+
## Page controller and page reactivity
|
|
6
|
+
|
|
7
|
+
Read in this order:
|
|
8
|
+
|
|
9
|
+
1. the concrete page controller source
|
|
10
|
+
2. `zova-core/src/composables/useController.ts`
|
|
11
|
+
3. `zova-core/src/bean/beanContainer.ts`
|
|
12
|
+
4. `zova-core/src/bean/beanBase.ts`
|
|
13
|
+
5. `zova-core/src/bean/beanControllerPageBase.ts`
|
|
14
|
+
6. `zova-core/src/core/context/component.ts`
|
|
15
|
+
7. router integration files such as `a-router/src/monkey.ts`
|
|
16
|
+
|
|
17
|
+
Use when the question is about:
|
|
18
|
+
|
|
19
|
+
- plain controller fields
|
|
20
|
+
- `$computed`
|
|
21
|
+
- `$params` / `$query`
|
|
22
|
+
- page render flow
|
|
23
|
+
|
|
24
|
+
## Component controller and wrapper path
|
|
25
|
+
|
|
26
|
+
Read in this order:
|
|
27
|
+
|
|
28
|
+
1. representative wrapper metadata under `src/.metadata/component/`
|
|
29
|
+
2. `zova-core/src/composables/useController.ts`
|
|
30
|
+
3. `zova-core/src/bean/beanControllerBase.ts`
|
|
31
|
+
4. `zova-core/src/core/context/component.ts`
|
|
32
|
+
5. the concrete component controller source
|
|
33
|
+
|
|
34
|
+
Use when the question is about:
|
|
35
|
+
|
|
36
|
+
- wrapper components
|
|
37
|
+
- `controllerRef`
|
|
38
|
+
- component-local controller behavior
|
|
39
|
+
|
|
40
|
+
## Bean lifecycle and helper API path
|
|
41
|
+
|
|
42
|
+
Read in this order:
|
|
43
|
+
|
|
44
|
+
1. `zova-core/src/bean/beanBase.ts`
|
|
45
|
+
2. `zova-core/src/bean/beanBaseSimple.ts`
|
|
46
|
+
3. `zova-core/src/bean/beanContainer.ts`
|
|
47
|
+
4. `zova-core/src/core/context/util.ts`
|
|
48
|
+
|
|
49
|
+
Use when the question is about:
|
|
50
|
+
|
|
51
|
+
- `__init__`
|
|
52
|
+
- `__dispose__`
|
|
53
|
+
- `$watch`
|
|
54
|
+
- `$toRef`
|
|
55
|
+
- instance scope
|
|
56
|
+
|
|
57
|
+
## Route and page-shell path
|
|
58
|
+
|
|
59
|
+
Read in this order:
|
|
60
|
+
|
|
61
|
+
1. the local `routes.ts`
|
|
62
|
+
2. `a-router/src/monkey.ts`
|
|
63
|
+
3. router utility files
|
|
64
|
+
4. page schema sources
|
|
65
|
+
5. `BeanControllerPageBase`
|
|
66
|
+
|
|
67
|
+
Use when the question is about:
|
|
68
|
+
|
|
69
|
+
- route records
|
|
70
|
+
- params/query parsing
|
|
71
|
+
- layout shell implications
|
|
72
|
+
- route-aware controller state
|
|
73
|
+
|
|
74
|
+
## Model/state ownership path
|
|
75
|
+
|
|
76
|
+
Read in this order:
|
|
77
|
+
|
|
78
|
+
1. the relevant model bean
|
|
79
|
+
2. framework model state helper files
|
|
80
|
+
3. representative built-in model beans
|
|
81
|
+
4. consuming page/controller/service code
|
|
82
|
+
|
|
83
|
+
Use when the question is about:
|
|
84
|
+
|
|
85
|
+
- model-owned state
|
|
86
|
+
- cache-oriented state
|
|
87
|
+
- async vs sync state ownership
|
|
88
|
+
|
|
89
|
+
## Behavior path
|
|
90
|
+
|
|
91
|
+
Read in this order:
|
|
92
|
+
|
|
93
|
+
1. the public behavior wrapper/controller path
|
|
94
|
+
2. the concrete behavior bean
|
|
95
|
+
3. the behavior composer/service files
|
|
96
|
+
4. host-scoped injected dependencies
|
|
97
|
+
|
|
98
|
+
Use when the question is about:
|
|
99
|
+
|
|
100
|
+
- render-time interception
|
|
101
|
+
- behavior composition
|
|
102
|
+
- Behavior vs Component vs Helper
|
|
103
|
+
|
|
104
|
+
## SSR runtime path
|
|
105
|
+
|
|
106
|
+
Read in this order:
|
|
107
|
+
|
|
108
|
+
1. the SSR site or bundle entry
|
|
109
|
+
2. SSR runtime/context files in `zova-core`
|
|
110
|
+
3. relevant page/controller/model code
|
|
111
|
+
4. Vona SSR handoff layer if needed
|
|
112
|
+
|
|
113
|
+
Use when the question is about:
|
|
114
|
+
|
|
115
|
+
- SSR entry
|
|
116
|
+
- hydration handoff
|
|
117
|
+
- whether the bug belongs to Vona or Zova
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,69 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 5.1.62
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Add a domain planning skill.
|
|
8
|
+
- Add a masked mobile field to the student resource.
|
|
9
|
+
- Generate an OpenAPI SDK for `demo-student`.
|
|
10
|
+
- Add student summary and force-delete actions.
|
|
11
|
+
- Customize student level renderers.
|
|
12
|
+
- Add the `demo-student` module with a full student CRUD flow.
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- Localize the student menu in `zh-cn`.
|
|
17
|
+
- Override the level filter placeholder correctly.
|
|
18
|
+
- Stabilize empty select value mapping.
|
|
19
|
+
- Polish inline select spacing.
|
|
20
|
+
- Forward select blur handling correctly.
|
|
21
|
+
- Refine borderless styling for filter selects.
|
|
22
|
+
- Place explicit schemas last in `demo-student` metadata.
|
|
23
|
+
|
|
24
|
+
### Improvements
|
|
25
|
+
|
|
26
|
+
- Clarify level renderer examples.
|
|
27
|
+
- Clarify the standalone tutorial sandbox.
|
|
28
|
+
- Refresh training-student references.
|
|
29
|
+
- Move `demo-student` into the `a-training` suite.
|
|
30
|
+
- Add a suite-first modularization guide.
|
|
31
|
+
- Clarify the thin model facade reading path.
|
|
32
|
+
- Include `demo-student` in the root npm package.
|
|
33
|
+
- Expand source-reading and contract-loop guides.
|
|
34
|
+
- Clean `demo-student` locale resources.
|
|
35
|
+
- Move `TableCell` beans to app scope.
|
|
36
|
+
- Align the student summary query flow.
|
|
37
|
+
- Simplify the student summary action flow.
|
|
38
|
+
- Refine the student level renderer hierarchy.
|
|
39
|
+
- Add a page meta guide and cross-links.
|
|
40
|
+
- Add a rest-resource runtime documentation set.
|
|
41
|
+
- Refine tutorial 4 AI prompt wording.
|
|
42
|
+
- Expand Zova Router ecosystem guides.
|
|
43
|
+
- Add the Zova Table documentation cluster.
|
|
44
|
+
|
|
45
|
+
## 5.1.61
|
|
46
|
+
|
|
47
|
+
### Features
|
|
48
|
+
|
|
49
|
+
- Enforce explicit OpenAPI operation filters.
|
|
50
|
+
- Remove the demo-student module and document the module-removal workflow.
|
|
51
|
+
- Add a mobile field to students and document serializer guidance.
|
|
52
|
+
|
|
53
|
+
### Bug Fixes
|
|
54
|
+
|
|
55
|
+
- Decouple test data initialization from application initialization.
|
|
56
|
+
- Refresh the student summary after updates.
|
|
57
|
+
|
|
58
|
+
### Improvements
|
|
59
|
+
|
|
60
|
+
- Migrate the contract-loop hook to TypeScript.
|
|
61
|
+
- Harden and simplify contract-loop guidance and gate behavior.
|
|
62
|
+
- Add Zova Form documentation and navigation.
|
|
63
|
+
- Refine ModelResource guidance and examples.
|
|
64
|
+
- Add Zova command scene, fetch interceptor, frontend reading, and Status architecture guides.
|
|
65
|
+
- Update backend contract-sharing tutorial and related skill documentation.
|
|
66
|
+
|
|
3
67
|
## 5.1.60
|
|
4
68
|
|
|
5
69
|
### Features
|
package/CLAUDE.md
CHANGED
|
@@ -42,8 +42,19 @@ Before inventing a custom implementation path:
|
|
|
42
42
|
## AI development rules
|
|
43
43
|
|
|
44
44
|
- Prefer CLI-backed workflows over manual scaffolding whenever Vona or Zova already provides a generator, refactor, metadata, or verification command.
|
|
45
|
+
- The Cabloy contract-loop model applies to both Cabloy Basic and Cabloy Start; detect the edition to choose commands and output paths, not to redefine the workflow model.
|
|
46
|
+
- Treat contract-loop work as one of four branches: forward chain, reverse chain, consumer drift, or local dependency drift.
|
|
47
|
+
- For the forward chain, change backend contract truth first and regenerate frontend consumers rather than hand-patching them.
|
|
48
|
+
- After forward regeneration, keep frontend follow-up thin: prefer semantic model facades and reuse the existing resource-owner when the custom API still belongs to the same resource.
|
|
49
|
+
- For the reverse chain, when Vona consumes newly added or changed Zova Admin render/action/metadata, always run `npm run build:zova:admin` before `npm run deps:vona`. Do not treat `build:rest:cabloyBasicAdmin` alone as sufficient, because the Admin JS bundle and rest output must move together.
|
|
50
|
+
- If generated artifacts already contain the expected changes but consumers still behave stale, suspect local dependency drift before making more source edits.
|
|
51
|
+
- For Vona consumption drift after Zova-generated type/rest output changes, if `npm run deps:vona` still leaves stale consumer types, delete `vona/node_modules` and reinstall dependencies before further debugging or hand-patching dependency links.
|
|
52
|
+
- For Cabloy Start, apply the same reverse-chain logic but resolve the Start-specific flavor names and generated-output paths from the active Start repo before recommending commands.
|
|
45
53
|
- Treat legacy docs as input material, not as unquestioned truth. When docs conflict with source code, prefer current source code.
|
|
46
54
|
- For frontend work, assume Cabloy Basic and Cabloy Start share a frontend engineering layer but may diverge in UI layer, frontend flavors, suite/module availability, SSR site baselines, project assets, and generated outputs.
|
|
55
|
+
- For Zova frontend analysis, do not default to generic Vue reinterpretation first. Read the code through Zova’s controller / bean / IoC architecture before mapping it to Vue concepts.
|
|
56
|
+
- For Zova source-reading or Vue-vs-Zova explanation tasks, start from the frontend reading guides and source-reading map in `cabloy-docs/frontend/` before doing framework-neutral reinterpretation.
|
|
57
|
+
- Keep repo-wide AI rules in `CLAUDE.md` short and durable; put branching Zova analysis workflows in `.claude/skills/`.
|
|
47
58
|
- For SSR theme-sensitive frontend work, detect the active edition marker and UI library before making assumptions. Cabloy Basic currently means DaisyUI + Tailwind CSS assumptions; Cabloy Start currently means Vuetify assumptions.
|
|
48
59
|
- In Web SSR without cookie-backed theme resolution, do not treat server reads of `$theme.dark`, `$theme.darkMode`, or `$token` as final browser truth. Keep theme-sensitive SSR branching hydration-tolerant or defer final theme-sensitive decisions to the client.
|
|
49
60
|
- Do not assume Cabloy Basic and Cabloy Start use the same adapter-level SSR theme handoff. Verify the active theme handler and client hydration path before changing SSR theme behavior.
|