cabloy 5.1.146 → 5.1.148
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/.cabloy-version +1 -1
- package/.claude/skills/cabloy-backend-scaffold/SKILL.md +16 -16
- package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +3 -3
- package/.claude/skills/cabloy-contract-loop/SKILL.md +5 -5
- package/.claude/skills/cabloy-contract-loop/references/contract-loop-map.md +1 -1
- package/.claude/skills/cabloy-contract-loop/references/resource-custom-state-pattern.md +1 -1
- package/.claude/skills/cabloy-domain-planning/SKILL.md +3 -3
- package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +26 -26
- package/.claude/skills/cabloy-master-detail/SKILL.md +2 -2
- package/.claude/skills/cabloy-module-removal/SKILL.md +2 -2
- package/.claude/skills/cabloy-resource-field-update/SKILL.md +1 -1
- package/.claude/skills/cabloy-workflow/SKILL.md +10 -10
- package/.claude/skills/cabloy-workflow/evals/evals.json +3 -3
- package/.claude/skills/cabloy-worktree-environment/SKILL.md +5 -8
- package/.claude/skills/cabloy-worktree-environment/evals/evals.json +1 -1
- package/.claude/skills/cabloy-zova-source-reading/SKILL.md +23 -23
- package/.claude/skills/cabloy-zova-source-reading/references/analysis-modes.md +1 -1
- package/.claude/skills/cabloy-zova-source-reading/references/core-reading-paths.md +3 -3
- package/.github/workflows/docs-pages.yml +5 -5
- package/CHANGELOG.md +12 -0
- package/CLAUDE.md +12 -8
- package/README.md +2 -1
- package/package.json +7 -7
- package/{cabloy-docs → repo-docs}/.vitepress/config.mjs +1 -1
- package/{cabloy-docs → repo-docs}/ai/docs-skills-rules-mapping.md +4 -4
- package/{cabloy-docs → repo-docs}/ai/future-skill-roadmap.md +5 -5
- package/{cabloy-docs → repo-docs}/ai/introduction.md +3 -3
- package/{cabloy-docs → repo-docs}/ai/playbook-module-removal.md +2 -2
- package/{cabloy-docs → repo-docs}/ai/repo-guidance.md +3 -3
- package/{cabloy-docs → repo-docs}/ai/rules-and-config.md +1 -1
- package/{cabloy-docs → repo-docs}/ai/virtual-decorator-guidance.md +1 -1
- package/{cabloy-docs → repo-docs}/backend/introduction.md +1 -1
- package/{cabloy-docs → repo-docs}/backend/metrics-guide.md +2 -2
- package/{cabloy-docs → repo-docs}/frontend/router-tabs-introduction.md +2 -2
- package/{cabloy-docs → repo-docs}/frontend/scripts.md +14 -14
- package/{cabloy-docs → repo-docs}/fullstack/parallel-worktree-environment.md +4 -4
- package/{cabloy-docs → repo-docs}/fullstack/quickstart.md +12 -12
- package/{cabloy-docs → repo-docs}/package.json +2 -2
- package/{cabloy-docs → repo-docs}/reference/package-map.md +2 -2
- package/{cabloy-docs → repo-docs}/reference/repo-scripts.md +25 -27
- package/{e2e → repo-e2e}/config/playwright.config.ts +2 -2
- package/{e2e → repo-e2e}/scripts/e2e.ts +2 -2
- package/{observability → repo-observability}/README.md +1 -1
- package/scripts/init.ts +7 -7
- package/scripts/upgrade.ts +12 -34
- package/vona/packages-cli/cli/README.md +1 -1
- package/vona/packages-cli/cli/package.json +1 -1
- package/vona/packages-cli/cli-set-api/README.md +1 -1
- package/vona/packages-cli/cli-set-api/package.json +1 -1
- package/zova/packages-cli/cli/README.md +1 -1
- package/zova/packages-cli/cli/package.json +2 -2
- package/zova/packages-cli/cli-set-front/README.md +1 -1
- package/zova/packages-cli/cli-set-front/package.json +1 -1
- package/zova/pnpm-lock.yaml +15 -15
- /package/{cabloy-docs → repo-docs}/.vitepress/public/CNAME +0 -0
- /package/{cabloy-docs → repo-docs}/.vitepress/theme/custom.css +0 -0
- /package/{cabloy-docs → repo-docs}/.vitepress/theme/edition-badges.md +0 -0
- /package/{cabloy-docs → repo-docs}/.vitepress/theme/index.js +0 -0
- /package/{cabloy-docs → repo-docs}/ai/class-placement-rule.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/cli-for-agents.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/cli-to-skill-map.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/edition-consistency-checklist.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/edition-detection.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/global-bean-lookup.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/playbook-backend-module.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/playbook-contract-regeneration.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/playbook-frontend-page.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/playbook-metadata-refresh.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/playbook-technical-blog-authoring.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/skills.md +0 -0
- /package/{cabloy-docs → repo-docs}/ai/verification.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/aop-overview.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/auth-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/backend-contract-emission-output-inspection.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/backend-contract-emission-source-reading-map.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/backend-contract-emission-specimen.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/backend-essentials.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/backend-resource-module-contract-chain.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/backend-source-reading-debug-checklist.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/backend-source-reading-roadmap.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/backend-source-reading-verify-playbook.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/bean-scene-authoring.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/broadcast-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/cache-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/captcha-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/cli.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/config-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/controller-aop-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/controller-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/crud-workflow.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/dto-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/dto-infer-generation.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/dynamic-datasource-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/election-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/entity-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/error-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/event-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/external-aop-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/field-indexes.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/file-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/foundation.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/i18n-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/image-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/internal-aop-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/jwt-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/logger-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/mail-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/markdown-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/master-detail-source-reading-map.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/master-detail-workflow.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/menu-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/migration-and-changes.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/model-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/module-dependencies.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/multi-database-datasource.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/multi-instance-and-instance-resolution.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/openapi-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/orm-aggregate-group-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/orm-configuration-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/orm-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/orm-mutation-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/orm-select-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/queue-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/quickstart.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/rate-limit-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/redis-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/redlock-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/relations-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/runtime-and-flavors.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/schedule-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/scripts.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/serialization-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/service-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/sharding-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/startup-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/status-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/telemetry-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/transaction-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/unit-testing.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/upload-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/user-access-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/validation-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/vona-source-reading-map.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/websocket-call-flow.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/websocket-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/websocket-protocol-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/websocket-usage-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/backend/worker-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/blogs/ai-react-nextjs-enterprise-architecture-cabloy/cover-en-v1.png +0 -0
- /package/{cabloy-docs → repo-docs}/blogs/ai-react-nextjs-enterprise-architecture-cabloy/index.md +0 -0
- /package/{cabloy-docs → repo-docs}/blogs/cabloy-fullstack-resource-addressing/cover-en-v1.png +0 -0
- /package/{cabloy-docs → repo-docs}/blogs/cabloy-fullstack-resource-addressing/index.md +0 -0
- /package/{cabloy-docs → repo-docs}/blogs/index.md +0 -0
- /package/{cabloy-docs → repo-docs}/blogs/nextjs-integrated-fullstack-cabloy-contract-loop/cover-en-v1.png +0 -0
- /package/{cabloy-docs → repo-docs}/blogs/nextjs-integrated-fullstack-cabloy-contract-loop/index.md +0 -0
- /package/{cabloy-docs → repo-docs}/blogs/vue-object-oriented-zova-beginner-mental-model/cover-en-v1.png +0 -0
- /package/{cabloy-docs → repo-docs}/blogs/vue-object-oriented-zova-beginner-mental-model/index.md +0 -0
- /package/{cabloy-docs → repo-docs}/editions/cabloy-basic.md +0 -0
- /package/{cabloy-docs → repo-docs}/editions/cabloy-start.md +0 -0
- /package/{cabloy-docs → repo-docs}/editions/choosing-between-basic-and-start.md +0 -0
- /package/{cabloy-docs → repo-docs}/editions/detection.md +0 -0
- /package/{cabloy-docs → repo-docs}/editions/overview.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/a-model-under-the-hood.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/a-openapi-under-the-hood.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/a-router-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/api-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/api-schema-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/app-startup-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/bean-scene-authoring.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/behavior-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/cli.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/command-scene-authoring.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/component-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/component-props-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/component-v-model-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/css-in-js-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/design-principles.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/environment-config-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/fetch-interceptor-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/file-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/filter-query-select-data-flow-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/form-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/form-layout-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/form-scene-to-page-meta-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/foundation.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/frontend-source-reading-roadmap.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/generated-contract-consumption-debug-checklist.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/generated-contract-consumption-entry-branch.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/generated-contract-consumption-list-branch.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/generated-contract-consumption-specimen.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/generated-contract-consumption-verify-playbook.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/generic-component-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/icon-engine-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/image-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/introduction.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ioc-and-beans.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/markdown-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/mock-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/model-architecture.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/model-resource-best-practices.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/model-resource-cookbook.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/model-resource-internals-deep-dive.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/model-resource-owner-pattern.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/model-resource-usage-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/model-state-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/module-scope.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/modules-and-suites.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/navigation-guards-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/openapi-sdk-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/page-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/page-meta-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/page-params-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/page-query-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/page-route-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/permission-formscene-action-visibility-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/quickstart.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/reading-zova-for-vue-developers.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/resource-entry-page-deep-dive.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/resource-list-page-deep-dive.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/rest-resource-source-reading-map.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/rest-resource-under-the-hood.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/root-behaviors-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/route-alias-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/router-stack-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/router-tabs-admin-web-comparison.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/router-tabs-layout-integration.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/router-tabs-mechanism.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/router-tabs-overview.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/router-tabs-route-meta-cookbook.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/router-tabs-vs-stack.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/router-view-hosts-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/schema-driven-field-effects-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/sdk-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/server-data.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ssr-architecture-overview.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ssr-build-deploy-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ssr-client-only.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ssr-env.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ssr-init-data.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ssr-overview.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ssr-review-checklist.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ssr-seo-meta.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/ssr-troubleshooting-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/state-architecture-for-vue-developers.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/system-startup-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/table-action-visibility-permission-flow-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/table-cell-cookbook.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/table-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/table-resource-crud-cookbook.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/theme-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/use-state-data-best-practices.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zod-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-app-guide.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-form-source-reading-map.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-form-under-the-hood.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-reactivity-under-the-hood.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-router-under-the-hood.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-source-reading-map.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-table-controller-render-supplement.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-table-source-reading-map.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-table-under-the-hood.md +0 -0
- /package/{cabloy-docs → repo-docs}/frontend/zova-vs-vue3-comparison.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/a-pay-payment-suite.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/admin-resource-and-web-self-service.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/backend-metadata-to-frontend-table-actions-debug-checklist.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/backend-metadata-to-frontend-table-actions-source-reading-map.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/backend-metadata-to-frontend-table-actions-verify-playbook.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/backend-metadata-to-frontend-table-actions.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/cli.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/comparison-with-other-frameworks.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/contract-loop-playbook.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/deploy-cloudflare-docker.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/edition-collaboration-differences.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/file-workflow.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/framework-performance.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/frontend-metadata-to-backend.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/image-workflow.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/introduction.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/openapi-to-sdk.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/payment-sandbox-configuration.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/suites-and-modules.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/tutorial-1-first-module.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/tutorial-2-first-crud.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/tutorial-3-frontend-metadata-sharing.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/tutorial-4-custom-level-renderers.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/tutorial-5-backend-contract-sharing.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/tutorial-6-one-contract-four-uses.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/tutorials-overview.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/vona-zova-integration.md +0 -0
- /package/{cabloy-docs → repo-docs}/fullstack/vscode-extensions.md +0 -0
- /package/{cabloy-docs → repo-docs}/index.md +0 -0
- /package/{cabloy-docs → repo-docs}/pnpm-lock.yaml +0 -0
- /package/{cabloy-docs → repo-docs}/pnpm-workspace.yaml +0 -0
- /package/{cabloy-docs → repo-docs}/reference/backend-directory-structure.md +0 -0
- /package/{cabloy-docs → repo-docs}/reference/bean-scene-boilerplates.md +0 -0
- /package/{cabloy-docs → repo-docs}/reference/cli-reference.md +0 -0
- /package/{cabloy-docs → repo-docs}/reference/frontend-directory-structure.md +0 -0
- /package/{cabloy-docs → repo-docs}/reference/glossary.md +0 -0
- /package/{cabloy-docs → repo-docs}/reference/introduction.md +0 -0
- /package/{e2e → repo-e2e}/scripts/runE2e.ts +0 -0
- /package/{e2e → repo-e2e}/scripts/runE2eArgs.test.ts +0 -0
- /package/{e2e → repo-e2e}/scripts/runE2eArgs.ts +0 -0
- /package/{e2e → repo-e2e}/scripts/startE2eVona.ts +0 -0
- /package/{e2e → repo-e2e}/specs/a-commerce.spec.ts +0 -0
- /package/{e2e → repo-e2e}/specs/cabloy-basic.spec.ts +0 -0
- /package/{e2e → repo-e2e}/specs/home-user-account.spec.ts +0 -0
- /package/{e2e → repo-e2e}/specs/markdown.spec.ts +0 -0
- /package/{observability → repo-observability}/collector/otel-collector.yaml +0 -0
- /package/{observability → repo-observability}/docker-compose.metrics.yml +0 -0
- /package/{observability → repo-observability}/grafana/provisioning/datasources/prometheus.yaml +0 -0
- /package/{observability → repo-observability}/prometheus/prometheus.yaml +0 -0
package/.cabloy-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.1.
|
|
1
|
+
5.1.148
|
|
@@ -49,7 +49,7 @@ Inspect these surfaces before proposing implementation:
|
|
|
49
49
|
- the repository or workspace `package.json` that owns the scripts
|
|
50
50
|
- `npm run vona`
|
|
51
51
|
- Vona command families such as `create:*`, `init:*`, `tools:*`, and `bin:*`
|
|
52
|
-
- `
|
|
52
|
+
- `repo-docs/backend/` for the relevant backend thread
|
|
53
53
|
|
|
54
54
|
For deeper reference material, read:
|
|
55
55
|
|
|
@@ -152,7 +152,7 @@ When the active edition and installed modules provide `@Passport.rbac(...)` and
|
|
|
152
152
|
- treat summary/description as presentation metadata, not authorization identity or enforcement
|
|
153
153
|
- verify the explicit server-side catalog/editor projection; do not assume OpenAPI metadata is automatically displayed by a policy editor
|
|
154
154
|
|
|
155
|
-
For the authoring example and metadata boundary, read [Controller Guide](../../../
|
|
155
|
+
For the authoring example and metadata boundary, read [Controller Guide](../../../repo-docs/backend/controller-guide.md#rbac-presentation-metadata) and [Controller AOP Guide](../../../repo-docs/backend/controller-aop-guide.md#rbac-presentation-metadata).
|
|
156
156
|
|
|
157
157
|
### Persistence and schema lifecycle
|
|
158
158
|
|
|
@@ -172,7 +172,7 @@ For normal resource persistence, preserve Vona's default active-instance scope:
|
|
|
172
172
|
- use `disableInstance`, plain builders, or raw SQL only for an explicit global/system or otherwise authorized contract
|
|
173
173
|
- model a future multi-merchant requirement as a separate boundary within an instance, with its own ownership and authorization rules
|
|
174
174
|
|
|
175
|
-
For the canonical explanation, read [Multi-Instance and Instance Resolution](../../../
|
|
175
|
+
For the canonical explanation, read [Multi-Instance and Instance Resolution](../../../repo-docs/backend/multi-instance-and-instance-resolution.md) and [Model Guide](../../../repo-docs/backend/model-guide.md).
|
|
176
176
|
|
|
177
177
|
### Cross-module resource lookup
|
|
178
178
|
|
|
@@ -190,7 +190,7 @@ Then distinguish runtime lookup from a true module dependency:
|
|
|
190
190
|
- do not add a dependency declaration merely because code looks up another module's service, model, config, locale, or other resource
|
|
191
191
|
- scope lookup cannot make an absent module available; validate application/suite composition separately when the target must exist
|
|
192
192
|
|
|
193
|
-
For the canonical decision guide, read [Vona Module Dependencies](../../../
|
|
193
|
+
For the canonical decision guide, read [Vona Module Dependencies](../../../repo-docs/backend/module-dependencies.md), with [Backend Foundation](../../../repo-docs/backend/foundation.md#scope-lookup-vs-module-dependencies) and [Package Map](../../../repo-docs/reference/package-map.md) as companions.
|
|
194
194
|
|
|
195
195
|
### Verification
|
|
196
196
|
|
|
@@ -219,18 +219,18 @@ Use the docs to decide what the generated backend thread still needs.
|
|
|
219
219
|
|
|
220
220
|
Especially relevant pages include:
|
|
221
221
|
|
|
222
|
-
- `
|
|
223
|
-
- `
|
|
224
|
-
- `
|
|
225
|
-
- `
|
|
226
|
-
- `
|
|
227
|
-
- `
|
|
228
|
-
- `
|
|
229
|
-
- `
|
|
230
|
-
- `
|
|
231
|
-
- `
|
|
232
|
-
- `
|
|
233
|
-
- `
|
|
222
|
+
- `repo-docs/backend/controller-guide.md`
|
|
223
|
+
- `repo-docs/backend/service-guide.md`
|
|
224
|
+
- `repo-docs/backend/model-guide.md`
|
|
225
|
+
- `repo-docs/backend/entity-guide.md`
|
|
226
|
+
- `repo-docs/backend/dto-guide.md`
|
|
227
|
+
- `repo-docs/backend/crud-workflow.md`
|
|
228
|
+
- `repo-docs/backend/migration-and-changes.md`
|
|
229
|
+
- `repo-docs/backend/field-indexes.md`
|
|
230
|
+
- `repo-docs/backend/unit-testing.md`
|
|
231
|
+
- `repo-docs/backend/validation-guide.md`
|
|
232
|
+
- `repo-docs/backend/openapi-guide.md`
|
|
233
|
+
- `repo-docs/backend/dto-infer-generation.md`
|
|
234
234
|
|
|
235
235
|
## Step 7: Verification guidance
|
|
236
236
|
|
|
@@ -19,7 +19,7 @@ After generating or extending a backend thread, check which follow-up layers app
|
|
|
19
19
|
- when a narrowed DTO or OpenAPI schema is expected to remove physical response fields, separately shape and verify the action response; declaration narrowing alone does not guarantee runtime field stripping
|
|
20
20
|
- when stable Entity, Model, relation, or query truth exists, define the DTO projection first with `$Dto.*` and, where needed, `columns`, `include`, or `dtoClass`
|
|
21
21
|
- for an inferred field, use `$makeMetadata(...)` for metadata-only refinement and `$makeSchema(...)` for schema or validation refinement; use a class-body `@Api.field(...)` member only for a genuinely new field
|
|
22
|
-
- when inference cannot express the contract clearly, choose an explicit DTO deliberately; see [Default-first three-layer DTO authoring](../../../../
|
|
22
|
+
- when inference cannot express the contract clearly, choose an explicit DTO deliberately; see [Default-first three-layer DTO authoring](../../../../repo-docs/backend/dto-infer-generation.md#default-first-three-layer-dto-authoring)
|
|
23
23
|
- frontend contract impact
|
|
24
24
|
- `@Api.field(...)` / `$makeSchema(...)` ordering: framework guards now preserve previously attached OpenAPI metadata across schema rebuilds, but structure-shaping schemaLike is still order-sensitive
|
|
25
25
|
- when an explicit zod/custom schema or other structure-defining schemaLike is present, put that structure-defining schemaLike last because `makeSchemaLikes(...)` applies arguments right-to-left and later structure changes can otherwise alter or replace the intended schema
|
|
@@ -49,7 +49,7 @@ When the active edition and installed modules provide `@Passport.rbac(...)` and
|
|
|
49
49
|
- keep the dependency graph acyclic and free of duplicate edges; do not declare both forms for the same edge because propagation is transitive and current runtime collection does not deduplicate targets
|
|
50
50
|
- when `modelsClearedByFn` is required, treat it as replacement behavior and explicitly own the target clear and any necessary downstream propagation
|
|
51
51
|
- prefer normal Model/service mutation paths so source invalidation, commit-time re-clear, and configured double-delete remain active
|
|
52
|
-
- add a warm-query → mutate-source → repeat-query regression test for each new dependency path; read [Vona Cross-Model Query-Cache Dependencies](
|
|
52
|
+
- add a warm-query → mutate-source → repeat-query regression test for each new dependency path; read [Vona Cross-Model Query-Cache Dependencies](../../../../repo-docs-internal/architecture/vona-cross-model-query-cache-dependencies.md) for the source-backed decision rules
|
|
53
53
|
- transaction behavior
|
|
54
54
|
|
|
55
55
|
## Test resource lifecycle follow-up
|
|
@@ -73,7 +73,7 @@ When the active edition and installed modules provide `@Passport.rbac(...)` and
|
|
|
73
73
|
- add `vonaModule.dependencies` only for a genuine target-module availability, dependency-first ordering, or minimum-version requirement
|
|
74
74
|
- startup, lifecycle, or `monkey.ts` integration can require dependency-first ordering, but are not the only valid dependency case
|
|
75
75
|
- when adding an edge, verify package/suite composition, the target relative module name, the minimum compatible version, and that the graph remains acyclic
|
|
76
|
-
- do not create speculative dependency edges or circular declarations merely to document a lookup; read [Vona Module Dependencies](../../../../
|
|
76
|
+
- do not create speculative dependency edges or circular declarations merely to document a lookup; read [Vona Module Dependencies](../../../../repo-docs/backend/module-dependencies.md) for the canonical decision guide
|
|
77
77
|
|
|
78
78
|
## Verification follow-up
|
|
79
79
|
|
|
@@ -7,7 +7,7 @@ description: Use this skill whenever a Cabloy task crosses the Vona-to-Zova cont
|
|
|
7
7
|
|
|
8
8
|
Use this skill when a backend contract change needs to be reflected in frontend consumers, when frontend-owned metadata or resources need to be reflected back into backend consumers, or when either side appears stale and you need to diagnose where drift actually lives.
|
|
9
9
|
|
|
10
|
-
Read the public [Contract Loop Playbook](../../../
|
|
10
|
+
Read the public [Contract Loop Playbook](../../../repo-docs/fullstack/contract-loop-playbook.md) for the canonical bidirectional model. This skill is the branching orchestration guide.
|
|
11
11
|
|
|
12
12
|
## Important recovery note for stale local file consumers
|
|
13
13
|
|
|
@@ -110,14 +110,14 @@ Inspect these surfaces before proposing workflow:
|
|
|
110
110
|
- backend contract-defining code in Vona
|
|
111
111
|
- `npm run zova`
|
|
112
112
|
- frontend generation or consumption path in Zova
|
|
113
|
-
- relevant docs in `
|
|
113
|
+
- relevant docs in `repo-docs/fullstack/`, `repo-docs/backend/`, and `repo-docs/frontend/`
|
|
114
114
|
|
|
115
115
|
For deeper reference material, read:
|
|
116
116
|
|
|
117
117
|
- `references/contract-loop-map.md`
|
|
118
118
|
- `references/verification-checklist.md`
|
|
119
119
|
- `references/resource-custom-state-pattern.md`
|
|
120
|
-
- `../../../
|
|
120
|
+
- `../../../repo-docs/fullstack/admin-resource-and-web-self-service.md`
|
|
121
121
|
|
|
122
122
|
## Step 3: Identify the contract source of truth deliberately
|
|
123
123
|
|
|
@@ -241,7 +241,7 @@ When the regenerated contract feeds a form or another metadata-driven UI, decide
|
|
|
241
241
|
5. Keep reusable query, cache, mutation, invalidation, and resource state in `ModelResource` or a model. A page-specific action may call generated `$api` directly when it has no shared state or cache ownership; do not add an infrequently used operation to a shared model only for API indirection.
|
|
242
242
|
6. If the page needs a custom renderer, layout, or behavior, determine whether that resource is frontend-owned and referenced by backend metadata. If so, follow the reverse-chain flavor build and `deps:vona` handoff rather than treating the change as frontend-only.
|
|
243
243
|
|
|
244
|
-
Read the [API Schema Guide](../../../
|
|
244
|
+
Read the [API Schema Guide](../../../repo-docs/frontend/api-schema-guide.md), [Form Guide](../../../repo-docs/frontend/form-guide.md), [A-OpenAPI Under the Hood](../../../repo-docs/frontend/a-openapi-under-the-hood.md), and [Model Resource Owner Pattern](../../../repo-docs/frontend/model-resource-owner-pattern.md) for the ownership and runtime details. Use `references/contract-loop-map.md` and `references/verification-checklist.md` for the contract-loop proof steps.
|
|
245
245
|
|
|
246
246
|
### Path C: Downstream frontend alignment
|
|
247
247
|
|
|
@@ -262,7 +262,7 @@ For one persisted domain with both Admin Resource and Web self-service consumers
|
|
|
262
262
|
- **Admin/custom-resource branch:** the endpoint remains part of the Admin Resource authority, projection, and generic page state, so reuse `rest-resource.model.resource` through a thin semantic facade.
|
|
263
263
|
- **Separate Web self-service branch:** the consumer has different authority, server-derived owner scope, DTO projection, operation names, UX, or SSR behavior, so expose explicit self-service operations and use a dedicated Web model and purpose-built pages.
|
|
264
264
|
|
|
265
|
-
Share domain persistence and lifecycle logic, not necessarily HTTP projections or frontend state ownership. Read `../../../
|
|
265
|
+
Share domain persistence and lifecycle logic, not necessarily HTTP projections or frontend state ownership. Read `../../../repo-docs/fullstack/admin-resource-and-web-self-service.md` for the complete architecture. Reuse the resource-owned custom state pattern in `references/resource-custom-state-pattern.md` for the Admin/custom-resource branch.
|
|
266
266
|
|
|
267
267
|
## Step 6: Keep edition-aware differences explicit
|
|
268
268
|
|
|
@@ -103,7 +103,7 @@ After generation, choose the consumer shape by boundary:
|
|
|
103
103
|
| Admin custom operation with the same authority, projection, and Resource page semantics | thin module facade → `rest-resource.model.resource` → schema-driven Resource UI |
|
|
104
104
|
| Web self-service operation with different authority, server-derived owner scope, DTO projection, or page/SSR semantics | dedicated Web model → purpose-built self-service pages |
|
|
105
105
|
|
|
106
|
-
The Web model is valid only for the separate self-service state domain. It must not become a parallel owner for Admin `select`/`view`, schemas, permissions, or generic Resource page state. See `../../../../
|
|
106
|
+
The Web model is valid only for the separate self-service state domain. It must not become a parallel owner for Admin `select`/`view`, schemas, permissions, or generic Resource page state. See `../../../../repo-docs/fullstack/admin-resource-and-web-self-service.md` for the complete architecture.
|
|
107
107
|
|
|
108
108
|
## Forward chain artifact map
|
|
109
109
|
|
|
@@ -147,7 +147,7 @@ Use that branch only when all of these are true:
|
|
|
147
147
|
- the Web model owns only its self-service query keys and purpose-built page state, not Admin Resource schemas, permissions, or generic page state;
|
|
148
148
|
- Web UX or private SSR behavior needs a dedicated admission and post-hydration boundary.
|
|
149
149
|
|
|
150
|
-
This does not justify a parallel owner for a custom Admin endpoint. It establishes a separate Web state domain beside the Admin Resource boundary. Read `../../../../
|
|
150
|
+
This does not justify a parallel owner for a custom Admin endpoint. It establishes a separate Web state domain beside the Admin Resource boundary. Read `../../../../repo-docs/fullstack/admin-resource-and-web-self-service.md` for the complete cross-stack pattern.
|
|
151
151
|
|
|
152
152
|
## Quick checklist
|
|
153
153
|
|
|
@@ -48,7 +48,7 @@ Do not use this skill once naming is already confirmed and the request is clearl
|
|
|
48
48
|
|
|
49
49
|
For real business work, prefer the suite-first path described in:
|
|
50
50
|
|
|
51
|
-
- `
|
|
51
|
+
- `repo-docs/fullstack/suites-and-modules.md`
|
|
52
52
|
|
|
53
53
|
Use this practical rule:
|
|
54
54
|
|
|
@@ -75,8 +75,8 @@ If the user already provides names, validate them instead of replacing them sile
|
|
|
75
75
|
|
|
76
76
|
Reuse the durable naming rules from:
|
|
77
77
|
|
|
78
|
-
- `
|
|
79
|
-
- `
|
|
78
|
+
- `repo-docs/fullstack/suites-and-modules.md`
|
|
79
|
+
- `repo-docs/frontend/modules-and-suites.md`
|
|
80
80
|
|
|
81
81
|
### Suite short name rule
|
|
82
82
|
|
|
@@ -55,7 +55,7 @@ Inspect these surfaces before proposing implementation:
|
|
|
55
55
|
- the repository or workspace `package.json` that owns the scripts
|
|
56
56
|
- `npm run zova`
|
|
57
57
|
- Zova command families such as `create:*`, `init:*`, `refactor:*`, `tools:*`, `openapi:*`, and `bin:*`
|
|
58
|
-
- `
|
|
58
|
+
- `repo-docs/frontend/` for the relevant frontend thread
|
|
59
59
|
|
|
60
60
|
For deeper reference material, read:
|
|
61
61
|
|
|
@@ -241,31 +241,31 @@ Use the docs to decide what the generated frontend thread still needs.
|
|
|
241
241
|
|
|
242
242
|
Especially relevant pages include:
|
|
243
243
|
|
|
244
|
-
- `
|
|
245
|
-
- `
|
|
246
|
-
- `
|
|
247
|
-
- `
|
|
248
|
-
- `
|
|
249
|
-
- `
|
|
250
|
-
- `
|
|
251
|
-
- `
|
|
252
|
-
- `
|
|
253
|
-
- `
|
|
254
|
-
- `
|
|
255
|
-
- `
|
|
256
|
-
- `
|
|
257
|
-
- `
|
|
258
|
-
- `
|
|
259
|
-
- `
|
|
260
|
-
- `
|
|
261
|
-
- `
|
|
262
|
-
- `
|
|
263
|
-
- `
|
|
264
|
-
- `
|
|
265
|
-
- `
|
|
266
|
-
- `
|
|
267
|
-
- `
|
|
268
|
-
- `
|
|
244
|
+
- `repo-docs/frontend/page-guide.md`
|
|
245
|
+
- `repo-docs/frontend/page-query-guide.md`
|
|
246
|
+
- `repo-docs/frontend/page-params-guide.md`
|
|
247
|
+
- `repo-docs/frontend/page-route-guide.md`
|
|
248
|
+
- `repo-docs/frontend/route-alias-guide.md`
|
|
249
|
+
- `repo-docs/frontend/navigation-guards-guide.md`
|
|
250
|
+
- `repo-docs/frontend/component-guide.md`
|
|
251
|
+
- `repo-docs/frontend/form-layout-guide.md` for schema-driven field placement, Grid/flow selection, groups, tabs, or embedded filter actions
|
|
252
|
+
- `repo-docs/frontend/component-props-guide.md`
|
|
253
|
+
- `repo-docs/frontend/component-v-model-guide.md`
|
|
254
|
+
- `repo-docs/frontend/generic-component-guide.md`
|
|
255
|
+
- `repo-docs/frontend/api-guide.md`
|
|
256
|
+
- `repo-docs/frontend/model-architecture.md`
|
|
257
|
+
- `repo-docs/frontend/model-state-guide.md`
|
|
258
|
+
- `repo-docs/frontend/openapi-sdk-guide.md`
|
|
259
|
+
- `repo-docs/frontend/api-schema-guide.md`
|
|
260
|
+
- `repo-docs/frontend/sdk-guide.md`
|
|
261
|
+
- `repo-docs/frontend/ssr-overview.md`
|
|
262
|
+
- `repo-docs/frontend/ssr-init-data.md`
|
|
263
|
+
- `repo-docs/frontend/ssr-client-only.md`
|
|
264
|
+
- `repo-docs/frontend/ssr-seo-meta.md`
|
|
265
|
+
- `repo-docs/frontend/ssr-env.md`
|
|
266
|
+
- `repo-docs/frontend/css-in-js-guide.md`
|
|
267
|
+
- `repo-docs/frontend/theme-guide.md`
|
|
268
|
+
- `repo-docs/frontend/icon-engine-guide.md`
|
|
269
269
|
|
|
270
270
|
## Step 7: Verification guidance
|
|
271
271
|
|
|
@@ -7,7 +7,7 @@ description: This skill should be used when the main Cabloy task is parent-owned
|
|
|
7
7
|
|
|
8
8
|
Use this skill when the user wants to add, extend, analyze, or preserve a Cabloy master-detail or nested-detail backend workflow.
|
|
9
9
|
|
|
10
|
-
Read the public [Master-Detail Workflow](../../../
|
|
10
|
+
Read the public [Master-Detail Workflow](../../../repo-docs/backend/master-detail-workflow.md) for the canonical operational explanation and [Master-Detail Source Reading Map](../../../repo-docs/backend/master-detail-source-reading-map.md) for the current source evidence. This skill is the thinner orchestration layer: it should classify the detail shape, choose the generator-first path, preserve the naming and placement invariants, and finish with the right verification path.
|
|
11
11
|
|
|
12
12
|
## Goals
|
|
13
13
|
|
|
@@ -161,7 +161,7 @@ Master-detail ownership is separate from Vona's tenant/instance boundary:
|
|
|
161
161
|
- treat a missing parent or detail from the normal scoped aggregate flow as absent; do not add unscoped existence probes merely to distinguish a foreign-instance row
|
|
162
162
|
- if a future multi-merchant design is needed, model merchant ownership explicitly within the instance in addition to the aggregate relation
|
|
163
163
|
|
|
164
|
-
For the canonical tenancy explanation, read [Multi-Instance and Instance Resolution](../../../
|
|
164
|
+
For the canonical tenancy explanation, read [Multi-Instance and Instance Resolution](../../../repo-docs/backend/multi-instance-and-instance-resolution.md) and [Model Guide](../../../repo-docs/backend/model-guide.md).
|
|
165
165
|
|
|
166
166
|
## Step 7: Keep fullstack boundaries explicit
|
|
167
167
|
|
|
@@ -7,7 +7,7 @@ description: Use this skill whenever the user wants to remove or delete an exist
|
|
|
7
7
|
|
|
8
8
|
Use this skill when the user wants to remove an existing module from the Cabloy monorepo.
|
|
9
9
|
|
|
10
|
-
Read the public [Module Removal Playbook](../../../
|
|
10
|
+
Read the public [Module Removal Playbook](../../../repo-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
11
|
|
|
12
12
|
## Goals
|
|
13
13
|
|
|
@@ -128,7 +128,7 @@ Ask or confirm whether the task is:
|
|
|
128
128
|
- code/runtime removal only
|
|
129
129
|
- code/runtime removal plus docs/examples scrub
|
|
130
130
|
|
|
131
|
-
If docs cleanup is in scope, update `
|
|
131
|
+
If docs cleanup is in scope, update `repo-docs/` separately from the runtime cleanup and keep maintainer rationale in `repo-docs-internal/`.
|
|
132
132
|
|
|
133
133
|
## Response pattern
|
|
134
134
|
|
|
@@ -214,7 +214,7 @@ If the user explicitly wants to **demonstrate** the custom renderer workflow, br
|
|
|
214
214
|
Use these references:
|
|
215
215
|
|
|
216
216
|
- `references/custom-renderer-demo-checklist.md`
|
|
217
|
-
-
|
|
217
|
+
- `repo-docs-internal/architecture/backend-resource-field-workflow.md`
|
|
218
218
|
|
|
219
219
|
Recommended shape:
|
|
220
220
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cabloy-workflow
|
|
3
|
-
description: This skill should be used when the main Cabloy problem is workflow routing before implementation: deciding between Vona backend scaffolding, Zova frontend scaffolding, contract-loop work, or docs/AI-enablement homes such as
|
|
3
|
+
description: This skill should be used when the main Cabloy problem is workflow routing before implementation: deciding between Vona backend scaffolding, Zova frontend scaffolding, contract-loop work, or docs/AI-enablement homes such as repo-docs, repo-docs-internal, CLAUDE.md, commands, or skills, including cases where Cabloy Basic vs Cabloy Start assumptions affect that routing. Trigger on requests to route, classify, choose a workflow, choose an edition-specific path, or decide where Cabloy guidance should live. Do not use it once the task is already clearly a backend scaffold, frontend scaffold, or contract-loop job.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Cabloy Workflow
|
|
@@ -69,8 +69,8 @@ Use the frontend path when the task is about:
|
|
|
69
69
|
|
|
70
70
|
Use the docs/AI path when the task is about:
|
|
71
71
|
|
|
72
|
-
- `
|
|
73
|
-
-
|
|
72
|
+
- `repo-docs/`
|
|
73
|
+
- `repo-docs-internal/`
|
|
74
74
|
- `CLAUDE.md`
|
|
75
75
|
- `.claude/commands/`
|
|
76
76
|
- `.claude/skills/`
|
|
@@ -84,8 +84,8 @@ Before inventing a workflow, inspect these shared surfaces:
|
|
|
84
84
|
- `npm run vona`
|
|
85
85
|
- `npm run zova`
|
|
86
86
|
- root `CLAUDE.md` if present
|
|
87
|
-
- `
|
|
88
|
-
-
|
|
87
|
+
- `repo-docs/` for public guidance
|
|
88
|
+
- `repo-docs-internal/` for maintainer rationale
|
|
89
89
|
|
|
90
90
|
If the request spans backend and frontend, classify it as fullstack by default unless the user clearly wants only one side.
|
|
91
91
|
|
|
@@ -100,7 +100,7 @@ The reason is simple: these files are where Cabloy already encodes its real work
|
|
|
100
100
|
|
|
101
101
|
### Parallel worktree environment setup
|
|
102
102
|
|
|
103
|
-
When a request involves a second worktree, concurrent Vona/Zova development, isolated ordinary tests, or managed clean E2E, classify it as fullstack workflow setup. Read [Parallel Worktree Environment](../../../
|
|
103
|
+
When a request involves a second worktree, concurrent Vona/Zova development, isolated ordinary tests, or managed clean E2E, classify it as fullstack workflow setup. Read [Parallel Worktree Environment](../../../repo-docs/fullstack/parallel-worktree-environment.md), the canonical shared recipe maintained in Cabloy Basic for both editions.
|
|
104
104
|
|
|
105
105
|
This routing skill provides read-only guidance only. Do not infer an `APP_NAME` or ports, edit local overrides, or run `npm run init` from a generic worktree request. When the user wants confirmation-gated local environment setup, ask them to explicitly invoke `/cabloy-worktree-environment`.
|
|
106
106
|
|
|
@@ -152,7 +152,7 @@ When the user is asking for guidance or automation assets, route the work to the
|
|
|
152
152
|
|
|
153
153
|
### Public docs
|
|
154
154
|
|
|
155
|
-
Use `
|
|
155
|
+
Use `repo-docs/` for:
|
|
156
156
|
|
|
157
157
|
- user-facing explanations
|
|
158
158
|
- reusable AI-facing workflow guidance
|
|
@@ -160,7 +160,7 @@ Use `cabloy-docs/` for:
|
|
|
160
160
|
|
|
161
161
|
### Internal engineering docs
|
|
162
162
|
|
|
163
|
-
Use
|
|
163
|
+
Use `repo-docs-internal/` for:
|
|
164
164
|
|
|
165
165
|
- ADRs
|
|
166
166
|
- architecture notes
|
|
@@ -196,8 +196,8 @@ When the request is about whether a backend base class belongs in `src/lib`, `sr
|
|
|
196
196
|
|
|
197
197
|
For these requests:
|
|
198
198
|
|
|
199
|
-
- put the durable operational explanation in `
|
|
200
|
-
- put rationale and invariants in
|
|
199
|
+
- put the durable operational explanation in `repo-docs/`
|
|
200
|
+
- put rationale and invariants in `repo-docs-internal/`
|
|
201
201
|
- keep `CLAUDE.md` short and behavioral
|
|
202
202
|
- do not treat `@Service()` as a business-layer naming decision only; for B2 it is a runtime-anchor placement choice
|
|
203
203
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"id": 3,
|
|
18
|
-
"prompt": "Please help me decide whether this new AI guidance belongs in public docs,
|
|
18
|
+
"prompt": "Please help me decide whether this new AI guidance belongs in public docs, repo-docs-internal, CLAUDE.md, or a skill. The guidance is about when to use npm run zova instead of hand-written scaffolding.",
|
|
19
19
|
"expected_output": "Routes the request to the right knowledge homes, prefers public docs plus Claude rules/skills as appropriate, and reinforces the CLI-first principle.",
|
|
20
20
|
"files": []
|
|
21
21
|
},
|
|
@@ -33,14 +33,14 @@
|
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"id": 6,
|
|
36
|
-
"prompt": "I created a second Cabloy Basic worktree and need to run Vona, Zova Admin, and test:e2e
|
|
36
|
+
"prompt": "I created a second Cabloy Basic worktree and need to run Vona, Zova Admin, and test:e2e in parallel with the first worktree. Which environment files and exact variables should I configure without changing shared defaults?",
|
|
37
37
|
"expected_output": "Classifies this as fullstack parallel-worktree environment setup and routes to the canonical shared Parallel Worktree Environment guide. Explains that generic routing is read-only: it must not inspect env content, infer or write local values, or run npm run init. Directs the user to explicitly invoke /cabloy-worktree-environment for confirmation-gated setup. The invoked skill uses Git worktree metadata, the worktree basename, and fixed baseline ports to recommend APP_NAME, SERVER_LISTEN_PORT, DEV_SERVER_PORT, DEV_SERVER_HMR_PORT, and a derived API_BASE_URL, then writes only vona/env/.env.local and zova/env/.env.local after confirmation. It does not use a flavor-specific local file or reserve ports; Admin and Web are alternative non-concurrent commands using the shared tuple.",
|
|
38
38
|
"files": []
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"id": 7,
|
|
42
42
|
"prompt": "I created a linked Cabloy Start worktree and need isolated Vona, Zova Web, and managed clean E2E. Which workflow should I use?",
|
|
43
|
-
"expected_output": "Routes to the canonical shared guide and explicitly invoked /cabloy-worktree-environment skill. It recognizes that the invoked skill selects the Start command npm run test:e2e
|
|
43
|
+
"expected_output": "Routes to the canonical shared guide and explicitly invoked /cabloy-worktree-environment skill. It recognizes that the invoked skill selects the Start command npm run test:e2e while retaining read-only generic routing, a deterministic Git-metadata recommendation, no environment-content inspection, no automatic initialization, and the universal five-setting tuple written to both permitted broad local files only after confirmation.",
|
|
44
44
|
"files": []
|
|
45
45
|
},
|
|
46
46
|
{
|
|
@@ -31,12 +31,12 @@ Interpretation:
|
|
|
31
31
|
|
|
32
32
|
| Marker | Edition | Managed clean E2E command |
|
|
33
33
|
| --- | --- | --- |
|
|
34
|
-
| `__CABLOY_BASIC__` only | Cabloy Basic | `npm run test:e2e
|
|
35
|
-
| `__CABLOY_START__` only | Cabloy Start | `npm run test:e2e
|
|
34
|
+
| `__CABLOY_BASIC__` only | Cabloy Basic | `npm run test:e2e` |
|
|
35
|
+
| `__CABLOY_START__` only | Cabloy Start | `npm run test:e2e` |
|
|
36
36
|
|
|
37
37
|
Stop without edits when both markers are present, neither marker is present, the checkout is primary/unregistered, required environment directories are missing, or the selected edition's required scripts are unavailable.
|
|
38
38
|
|
|
39
|
-
Read [Parallel Worktree Environment](../../../
|
|
39
|
+
Read [Parallel Worktree Environment](../../../repo-docs/fullstack/parallel-worktree-environment.md) as the canonical shared recipe. Edition detection chooses command names and labels; it does not change the two-file environment model. Never change committed defaults, including `vona/env/.env` and `zova/env/.env`.
|
|
40
40
|
|
|
41
41
|
## Step 2: Generate the standard environment recommendation
|
|
42
42
|
|
|
@@ -181,11 +181,8 @@ npm run test
|
|
|
181
181
|
Run the edition-appropriate managed clean E2E command:
|
|
182
182
|
|
|
183
183
|
```bash
|
|
184
|
-
# Cabloy Basic
|
|
185
|
-
npm run test:e2e
|
|
186
|
-
|
|
187
|
-
# Cabloy Start
|
|
188
|
-
npm run test:e2e:start:clean
|
|
184
|
+
# Cabloy Basic or Cabloy Start
|
|
185
|
+
npm run test:e2e
|
|
189
186
|
```
|
|
190
187
|
|
|
191
188
|
Finish with a metadata-only status check. Do not use `git diff`, because it can print environment-file content:
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"id": 2,
|
|
12
12
|
"prompt": "I explicitly invoke /cabloy-worktree-environment in the second linked Cabloy Start worktree. Set up the standard local environment.",
|
|
13
|
-
"expected_output": "Detects __CABLOY_START__, selects npm run test:e2e
|
|
13
|
+
"expected_output": "Detects __CABLOY_START__, selects npm run test:e2e for later verification, and uses the shared canonical workflow. Without a process-selection question, it derives APP_NAME from the worktree basename and, for ordinal 2 batch 0, recommends SERVER_LISTEN_PORT 7104, DEV_SERVER_PORT 9002, DEV_SERVER_HMR_PORT 24681, and API_BASE_URL http://localhost:7104. It uses only the two broad local targets and waits for final confirmation before writing both.",
|
|
14
14
|
"files": []
|
|
15
15
|
},
|
|
16
16
|
{
|
|
@@ -74,17 +74,17 @@ That order reduces the risk of drifting into premature analogy before the source
|
|
|
74
74
|
|
|
75
75
|
Do not begin by forcing the problem into generic Vue terminology.
|
|
76
76
|
|
|
77
|
-
Start from the public frontend reading docs in `
|
|
77
|
+
Start from the public frontend reading docs in `repo-docs/frontend/`.
|
|
78
78
|
|
|
79
79
|
### Primary reading surfaces
|
|
80
80
|
|
|
81
|
-
- `
|
|
82
|
-
- `
|
|
83
|
-
- `
|
|
84
|
-
- `
|
|
85
|
-
- `
|
|
86
|
-
- `
|
|
87
|
-
- `
|
|
81
|
+
- `repo-docs/frontend/reading-zova-for-vue-developers.md`
|
|
82
|
+
- `repo-docs/frontend/zova-vs-vue3-comparison.md`
|
|
83
|
+
- `repo-docs/frontend/zova-reactivity-under-the-hood.md`
|
|
84
|
+
- `repo-docs/frontend/zova-source-reading-map.md`
|
|
85
|
+
- `repo-docs/frontend/page-guide.md`
|
|
86
|
+
- `repo-docs/frontend/component-guide.md`
|
|
87
|
+
- `repo-docs/frontend/css-in-js-guide.md`
|
|
88
88
|
|
|
89
89
|
For compact procedural summaries inside the skill bundle, also use:
|
|
90
90
|
|
|
@@ -93,25 +93,25 @@ For compact procedural summaries inside the skill bundle, also use:
|
|
|
93
93
|
|
|
94
94
|
For locale-sensitive schema/form questions, also read:
|
|
95
95
|
|
|
96
|
-
- `
|
|
97
|
-
- `
|
|
98
|
-
- `
|
|
99
|
-
- `
|
|
96
|
+
- `repo-docs/frontend/api-schema-guide.md`
|
|
97
|
+
- `repo-docs/frontend/a-openapi-under-the-hood.md`
|
|
98
|
+
- `repo-docs/frontend/form-guide.md`
|
|
99
|
+
- `repo-docs/frontend/zova-form-under-the-hood.md`
|
|
100
100
|
|
|
101
101
|
### Core architecture surfaces
|
|
102
102
|
|
|
103
103
|
Use these when the question needs broader architectural context:
|
|
104
104
|
|
|
105
|
-
- `
|
|
106
|
-
- `
|
|
107
|
-
- `
|
|
108
|
-
- `
|
|
109
|
-
- `
|
|
110
|
-
- `
|
|
111
|
-
- `
|
|
112
|
-
- `
|
|
113
|
-
- `
|
|
114
|
-
- `
|
|
105
|
+
- `repo-docs/frontend/introduction.md`
|
|
106
|
+
- `repo-docs/frontend/foundation.md`
|
|
107
|
+
- `repo-docs/frontend/design-principles.md`
|
|
108
|
+
- `repo-docs/frontend/ioc-and-beans.md`
|
|
109
|
+
- `repo-docs/frontend/page-guide.md`
|
|
110
|
+
- `repo-docs/frontend/component-guide.md`
|
|
111
|
+
- `repo-docs/frontend/model-architecture.md`
|
|
112
|
+
- `repo-docs/frontend/page-route-guide.md`
|
|
113
|
+
- `repo-docs/frontend/behavior-guide.md`
|
|
114
|
+
- `repo-docs/frontend/ssr-architecture-overview.md`
|
|
115
115
|
|
|
116
116
|
## Step 4: Choose the shortest correct source-reading path
|
|
117
117
|
|
|
@@ -122,7 +122,7 @@ Use these bundled references to keep the workflow compact:
|
|
|
122
122
|
- `references/analysis-modes.md`
|
|
123
123
|
- `references/core-reading-paths.md`
|
|
124
124
|
|
|
125
|
-
Use the public `
|
|
125
|
+
Use the public `repo-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.
|
|
126
126
|
|
|
127
127
|
### Locale-sensitive schema and form path
|
|
128
128
|
|
|
@@ -15,7 +15,7 @@ Use this mode when the user is mainly asking:
|
|
|
15
15
|
|
|
16
16
|
1. detect the active edition if UI-sensitive assumptions might matter
|
|
17
17
|
2. start from the public frontend docs first
|
|
18
|
-
3. pick the smallest matching thread from `
|
|
18
|
+
3. pick the smallest matching thread from `repo-docs/frontend/zova-source-reading-map.md`
|
|
19
19
|
4. cite the initial source files in the recommended reading order
|
|
20
20
|
5. stop before tracing deeper runtime layers unless the user also wants runtime-flow analysis
|
|
21
21
|
|
|
@@ -103,9 +103,9 @@ Use when the question is about:
|
|
|
103
103
|
|
|
104
104
|
Read in this order:
|
|
105
105
|
|
|
106
|
-
1. `
|
|
107
|
-
2. `
|
|
108
|
-
3. `
|
|
106
|
+
1. `repo-docs/frontend/api-schema-guide.md`
|
|
107
|
+
2. `repo-docs/frontend/a-openapi-under-the-hood.md`
|
|
108
|
+
3. `repo-docs/frontend/form-guide.md` and `repo-docs/frontend/zova-form-under-the-hood.md` when a form consumes the schema
|
|
109
109
|
4. `zova/src/suite-vendor/a-zova/modules/a-openapi/src/monkey.ts`
|
|
110
110
|
5. `zova/src/suite-vendor/a-zova/modules/a-openapi/src/model/sdk.ts`
|
|
111
111
|
6. `zova/src/suite-vendor/a-zova/modules/a-openapi/src/bean/sys.sdk.ts`
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
branches:
|
|
5
5
|
- main
|
|
6
6
|
paths:
|
|
7
|
-
- '
|
|
7
|
+
- 'repo-docs/**'
|
|
8
8
|
- 'README.md'
|
|
9
9
|
- '.github/workflows/docs-pages.yml'
|
|
10
10
|
workflow_dispatch:
|
|
@@ -32,19 +32,19 @@ jobs:
|
|
|
32
32
|
with:
|
|
33
33
|
node-version: 24
|
|
34
34
|
cache: pnpm
|
|
35
|
-
cache-dependency-path:
|
|
35
|
+
cache-dependency-path: repo-docs/pnpm-lock.yaml
|
|
36
36
|
- name: install docs dependencies
|
|
37
|
-
run: pnpm --dir
|
|
37
|
+
run: pnpm --dir repo-docs install --frozen-lockfile
|
|
38
38
|
- name: build docs
|
|
39
39
|
env:
|
|
40
40
|
GA_MEASUREMENT_ID: ${{ vars.GA_MEASUREMENT_ID }}
|
|
41
|
-
run: pnpm --dir
|
|
41
|
+
run: pnpm --dir repo-docs docs:build
|
|
42
42
|
- name: setup pages
|
|
43
43
|
uses: actions/configure-pages@v5
|
|
44
44
|
- name: upload pages artifact
|
|
45
45
|
uses: actions/upload-pages-artifact@v4
|
|
46
46
|
with:
|
|
47
|
-
path:
|
|
47
|
+
path: repo-docs/.vitepress/dist
|
|
48
48
|
|
|
49
49
|
deploy:
|
|
50
50
|
needs: build
|