cabloy 5.1.49 → 5.1.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/.claude/skills/cabloy-backend-scaffold/SKILL.md +207 -0
  2. package/.claude/skills/cabloy-backend-scaffold/evals/evals.json +29 -0
  3. package/.claude/skills/cabloy-backend-scaffold/references/backend-thread-map.md +52 -0
  4. package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +39 -0
  5. package/.claude/skills/cabloy-contract-loop/SKILL.md +201 -0
  6. package/.claude/skills/cabloy-contract-loop/evals/evals.json +29 -0
  7. package/.claude/skills/cabloy-contract-loop/references/contract-loop-map.md +47 -0
  8. package/.claude/skills/cabloy-contract-loop/references/verification-checklist.md +32 -0
  9. package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +230 -0
  10. package/.claude/skills/cabloy-frontend-scaffold/evals/evals.json +35 -0
  11. package/.claude/skills/cabloy-frontend-scaffold/references/follow-up-checklist.md +41 -0
  12. package/.claude/skills/cabloy-frontend-scaffold/references/frontend-thread-map.md +54 -0
  13. package/.claude/skills/cabloy-workflow/SKILL.md +288 -0
  14. package/.claude/skills/cabloy-workflow/evals/evals.json +35 -0
  15. package/.claude/skills/cabloy-workflow/references/cli-strategy.md +39 -0
  16. package/.claude/skills/cabloy-workflow/references/edition-detection.md +29 -0
  17. package/.github/workflows/docs-pages.yml +54 -0
  18. package/.gitignore +1 -0
  19. package/CHANGELOG.md +46 -0
  20. package/CLAUDE.md +59 -0
  21. package/README.md +137 -0
  22. package/cabloy-docs/.vitepress/config.mjs +222 -0
  23. package/cabloy-docs/.vitepress/public/CNAME +1 -0
  24. package/cabloy-docs/.vitepress/theme/custom.css +64 -0
  25. package/cabloy-docs/.vitepress/theme/edition-badges.md +5 -0
  26. package/cabloy-docs/.vitepress/theme/index.js +5 -0
  27. package/cabloy-docs/ai/class-placement-rule.md +138 -0
  28. package/cabloy-docs/ai/cli-for-agents.md +56 -0
  29. package/cabloy-docs/ai/cli-to-skill-map.md +165 -0
  30. package/cabloy-docs/ai/docs-skills-rules-mapping.md +167 -0
  31. package/cabloy-docs/ai/edition-detection.md +30 -0
  32. package/cabloy-docs/ai/future-skill-roadmap.md +135 -0
  33. package/cabloy-docs/ai/global-bean-lookup.md +157 -0
  34. package/cabloy-docs/ai/introduction.md +62 -0
  35. package/cabloy-docs/ai/playbook-backend-module.md +111 -0
  36. package/cabloy-docs/ai/playbook-contract-regeneration.md +100 -0
  37. package/cabloy-docs/ai/playbook-frontend-page.md +99 -0
  38. package/cabloy-docs/ai/playbook-metadata-refresh.md +67 -0
  39. package/cabloy-docs/ai/repo-guidance.md +58 -0
  40. package/cabloy-docs/ai/rules-and-config.md +29 -0
  41. package/cabloy-docs/ai/skills.md +35 -0
  42. package/cabloy-docs/ai/verification.md +30 -0
  43. package/cabloy-docs/backend/aop-overview.md +128 -0
  44. package/cabloy-docs/backend/auth-guide.md +151 -0
  45. package/cabloy-docs/backend/backend-essentials.md +128 -0
  46. package/cabloy-docs/backend/broadcast-guide.md +138 -0
  47. package/cabloy-docs/backend/cache-guide.md +70 -0
  48. package/cabloy-docs/backend/captcha-guide.md +162 -0
  49. package/cabloy-docs/backend/cli.md +173 -0
  50. package/cabloy-docs/backend/config-guide.md +249 -0
  51. package/cabloy-docs/backend/controller-aop-guide.md +270 -0
  52. package/cabloy-docs/backend/controller-guide.md +347 -0
  53. package/cabloy-docs/backend/crud-workflow.md +118 -0
  54. package/cabloy-docs/backend/dto-guide.md +161 -0
  55. package/cabloy-docs/backend/dto-infer-generation.md +153 -0
  56. package/cabloy-docs/backend/dynamic-datasource-guide.md +70 -0
  57. package/cabloy-docs/backend/election-guide.md +141 -0
  58. package/cabloy-docs/backend/entity-guide.md +150 -0
  59. package/cabloy-docs/backend/error-guide.md +108 -0
  60. package/cabloy-docs/backend/event-guide.md +183 -0
  61. package/cabloy-docs/backend/external-aop-guide.md +149 -0
  62. package/cabloy-docs/backend/field-indexes.md +79 -0
  63. package/cabloy-docs/backend/foundation.md +281 -0
  64. package/cabloy-docs/backend/i18n-guide.md +211 -0
  65. package/cabloy-docs/backend/internal-aop-guide.md +181 -0
  66. package/cabloy-docs/backend/introduction.md +95 -0
  67. package/cabloy-docs/backend/jwt-guide.md +276 -0
  68. package/cabloy-docs/backend/logger-guide.md +223 -0
  69. package/cabloy-docs/backend/mail-guide.md +189 -0
  70. package/cabloy-docs/backend/menu-guide.md +80 -0
  71. package/cabloy-docs/backend/migration-and-changes.md +192 -0
  72. package/cabloy-docs/backend/model-guide.md +274 -0
  73. package/cabloy-docs/backend/multi-database-datasource.md +171 -0
  74. package/cabloy-docs/backend/multi-instance-and-instance-resolution.md +196 -0
  75. package/cabloy-docs/backend/openapi-guide.md +118 -0
  76. package/cabloy-docs/backend/orm-aggregate-group-guide.md +210 -0
  77. package/cabloy-docs/backend/orm-configuration-guide.md +165 -0
  78. package/cabloy-docs/backend/orm-guide.md +109 -0
  79. package/cabloy-docs/backend/orm-mutation-guide.md +195 -0
  80. package/cabloy-docs/backend/orm-select-guide.md +243 -0
  81. package/cabloy-docs/backend/queue-guide.md +271 -0
  82. package/cabloy-docs/backend/quickstart.md +141 -0
  83. package/cabloy-docs/backend/redis-guide.md +70 -0
  84. package/cabloy-docs/backend/redlock-guide.md +60 -0
  85. package/cabloy-docs/backend/relations-guide.md +250 -0
  86. package/cabloy-docs/backend/runtime-and-flavors.md +304 -0
  87. package/cabloy-docs/backend/schedule-guide.md +81 -0
  88. package/cabloy-docs/backend/scripts.md +116 -0
  89. package/cabloy-docs/backend/serialization-guide.md +192 -0
  90. package/cabloy-docs/backend/service-guide.md +166 -0
  91. package/cabloy-docs/backend/sharding-guide.md +49 -0
  92. package/cabloy-docs/backend/startup-guide.md +326 -0
  93. package/cabloy-docs/backend/transaction-guide.md +82 -0
  94. package/cabloy-docs/backend/unit-testing.md +209 -0
  95. package/cabloy-docs/backend/upload-guide.md +160 -0
  96. package/cabloy-docs/backend/user-access-guide.md +157 -0
  97. package/cabloy-docs/backend/validation-guide.md +80 -0
  98. package/cabloy-docs/backend/worker-guide.md +59 -0
  99. package/cabloy-docs/editions/cabloy-basic.md +25 -0
  100. package/cabloy-docs/editions/cabloy-start.md +24 -0
  101. package/cabloy-docs/editions/detection.md +31 -0
  102. package/cabloy-docs/editions/overview.md +44 -0
  103. package/cabloy-docs/frontend/api-guide.md +93 -0
  104. package/cabloy-docs/frontend/api-schema-guide.md +43 -0
  105. package/cabloy-docs/frontend/app-startup-guide.md +185 -0
  106. package/cabloy-docs/frontend/cli.md +78 -0
  107. package/cabloy-docs/frontend/component-guide.md +105 -0
  108. package/cabloy-docs/frontend/component-props-guide.md +97 -0
  109. package/cabloy-docs/frontend/component-v-model-guide.md +110 -0
  110. package/cabloy-docs/frontend/css-in-js-guide.md +151 -0
  111. package/cabloy-docs/frontend/design-principles.md +55 -0
  112. package/cabloy-docs/frontend/environment-config-guide.md +250 -0
  113. package/cabloy-docs/frontend/foundation.md +57 -0
  114. package/cabloy-docs/frontend/generic-component-guide.md +35 -0
  115. package/cabloy-docs/frontend/icon-engine-guide.md +88 -0
  116. package/cabloy-docs/frontend/introduction.md +32 -0
  117. package/cabloy-docs/frontend/ioc-and-beans.md +211 -0
  118. package/cabloy-docs/frontend/mock-guide.md +109 -0
  119. package/cabloy-docs/frontend/model-architecture.md +87 -0
  120. package/cabloy-docs/frontend/model-state-guide.md +70 -0
  121. package/cabloy-docs/frontend/module-scope.md +168 -0
  122. package/cabloy-docs/frontend/modules-and-suites.md +179 -0
  123. package/cabloy-docs/frontend/navigation-guards-guide.md +68 -0
  124. package/cabloy-docs/frontend/openapi-sdk-guide.md +102 -0
  125. package/cabloy-docs/frontend/page-guide.md +223 -0
  126. package/cabloy-docs/frontend/page-params-guide.md +87 -0
  127. package/cabloy-docs/frontend/page-query-guide.md +96 -0
  128. package/cabloy-docs/frontend/page-route-guide.md +147 -0
  129. package/cabloy-docs/frontend/quickstart.md +201 -0
  130. package/cabloy-docs/frontend/route-alias-guide.md +61 -0
  131. package/cabloy-docs/frontend/scripts.md +86 -0
  132. package/cabloy-docs/frontend/sdk-guide.md +45 -0
  133. package/cabloy-docs/frontend/server-data.md +74 -0
  134. package/cabloy-docs/frontend/ssr-client-only.md +40 -0
  135. package/cabloy-docs/frontend/ssr-env.md +51 -0
  136. package/cabloy-docs/frontend/ssr-init-data.md +46 -0
  137. package/cabloy-docs/frontend/ssr-overview.md +48 -0
  138. package/cabloy-docs/frontend/ssr-seo-meta.md +52 -0
  139. package/cabloy-docs/frontend/system-startup-guide.md +186 -0
  140. package/cabloy-docs/frontend/theme-guide.md +154 -0
  141. package/cabloy-docs/frontend/zod-guide.md +161 -0
  142. package/cabloy-docs/fullstack/edition-collaboration-differences.md +61 -0
  143. package/cabloy-docs/fullstack/frontend-metadata-to-backend.md +64 -0
  144. package/cabloy-docs/fullstack/introduction.md +69 -0
  145. package/cabloy-docs/fullstack/openapi-to-sdk.md +116 -0
  146. package/cabloy-docs/fullstack/quickstart.md +86 -0
  147. package/cabloy-docs/fullstack/vona-zova-integration.md +86 -0
  148. package/cabloy-docs/index.md +73 -0
  149. package/cabloy-docs/package.json +16 -0
  150. package/cabloy-docs/pnpm-lock.yaml +1607 -0
  151. package/cabloy-docs/reference/backend-directory-structure.md +88 -0
  152. package/cabloy-docs/reference/cli-reference.md +49 -0
  153. package/cabloy-docs/reference/glossary.md +38 -0
  154. package/cabloy-docs/reference/package-map.md +105 -0
  155. package/cabloy-docs/reference/repo-scripts.md +36 -0
  156. package/package.json +4 -1
  157. package/scripts/init.ts +12 -0
  158. package/scripts/upgrade.ts +31 -3
  159. package/vona/README.md +3 -3
  160. package/vona/README.zh-CN.md +4 -4
  161. package/vona/packages-vona/vona/package.json +1 -1
  162. package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/package.json +1 -1
  163. package/vona/src/suite-vendor/a-cabloy/modules/a-datasharding/src/bean/summerCache.datasourceWrite.ts +2 -2
  164. package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
  165. package/vona/src/suite-vendor/a-captcha/modules/a-captcha/package.json +1 -1
  166. package/vona/src/suite-vendor/a-captcha/modules/a-captcha/src/bean/cacheRedis.captcha.ts +2 -2
  167. package/vona/src/suite-vendor/a-captcha/package.json +1 -1
  168. package/vona/src/suite-vendor/a-vona/modules/a-bean/cli/bean/metadata/generate.ts +5 -6
  169. package/vona/src/suite-vendor/a-vona/modules/a-bean/package.json +1 -1
  170. package/vona/src/suite-vendor/a-vona/modules/a-cache/cli/cacheMem/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  171. package/vona/src/suite-vendor/a-vona/modules/a-cache/cli/cacheRedis/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  172. package/vona/src/suite-vendor/a-vona/modules/a-cache/package.json +1 -1
  173. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/.metadata/index.ts +13 -2
  174. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/bean/bean.cache.ts +6 -7
  175. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/{bean/bean.cacheMemBase.ts → service/cacheMemBase_.ts} +3 -3
  176. package/vona/src/suite-vendor/a-vona/modules/a-cache/src/{bean/bean.cacheRedisBase.ts → service/cacheRedisBase_.ts} +3 -3
  177. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/package.json +1 -1
  178. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/src/bean/cacheRedis.emailConfirm.ts +2 -2
  179. package/vona/src/suite-vendor/a-vona/modules/a-mailconfirm/src/bean/cacheRedis.passwordReset.ts +2 -2
  180. package/vona/src/suite-vendor/a-vona/modules/a-openapi/package.json +1 -1
  181. package/vona/src/suite-vendor/a-vona/modules/a-openapi/src/bean/summerCache.json.ts +2 -2
  182. package/vona/src/suite-vendor/a-vona/modules/a-orm/cli/databaseDialect/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  183. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
  184. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/.metadata/index.ts +4 -3
  185. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/bean.database.ts +3 -3
  186. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/bean.model.ts +1 -1
  187. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/bean/schedule.softDeletionPrune.ts +1 -1
  188. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/common/utils.ts +1 -1
  189. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/index.ts +1 -1
  190. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_cache.ts +1 -1
  191. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_meta.ts +1 -1
  192. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.modelBase.ts +0 -5
  193. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoAggregate.ts +1 -1
  194. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoCreate.ts +1 -1
  195. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGet.ts +1 -1
  196. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGroup.ts +1 -1
  197. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoMutate.ts +1 -1
  198. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoSelectAndCount.ts +1 -1
  199. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoUpdate.ts +1 -1
  200. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/index.ts +1 -0
  201. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/modelCacheBase.ts +3 -3
  202. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relations.ts +1 -1
  203. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsDynamic.ts +1 -1
  204. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsMutate.ts +1 -1
  205. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/relationsStatic.ts +1 -1
  206. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/cacheEntity_.ts +1 -1
  207. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/cacheQuery_.ts +1 -1
  208. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/database.ts +2 -2
  209. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean/bean.databaseDialectBase.ts → service/databaseDialectBase_.ts} +38 -41
  210. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/db_.ts +2 -2
  211. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/service/relations_.ts +3 -3
  212. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/database.ts +0 -5
  213. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoGet.ts +1 -1
  214. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoMutate.ts +1 -1
  215. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoSelectAndCount.ts +1 -1
  216. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/model.ts +1 -1
  217. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelAggr.ts +1 -1
  218. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelCount.ts +1 -1
  219. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGeneral.ts +1 -1
  220. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGroup.ts +1 -1
  221. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelIncrement.ts +1 -1
  222. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relations.ts +1 -1
  223. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsColumns.ts +1 -1
  224. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDef.ts +1 -1
  225. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDefDynamic.ts +1 -1
  226. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsDefMutate.ts +1 -1
  227. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsMutate.ts +1 -1
  228. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/relationsTables.ts +1 -1
  229. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +1 -1
  230. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.betterSqlite3.ts +2 -2
  231. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.mysql.ts +2 -2
  232. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/src/bean/databaseDialect.pg.ts +2 -2
  233. package/vona/src/suite-vendor/a-vona/modules/a-permission/package.json +1 -1
  234. package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/bean.permission.ts +109 -40
  235. package/vona/src/suite-vendor/a-vona/modules/a-permission/src/bean/summerCache.permission.ts +2 -2
  236. package/vona/src/suite-vendor/a-vona/modules/a-startup/package.json +1 -1
  237. package/vona/src/suite-vendor/a-vona/modules/a-startup/src/bean/cacheRedis.startupDebounce.ts +2 -2
  238. package/vona/src/suite-vendor/a-vona/modules/a-summer/cli/boilerplate/{{sceneName}}.{{beanName}}.ts_ +2 -2
  239. package/vona/src/suite-vendor/a-vona/modules/a-summer/package.json +1 -1
  240. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/.metadata/index.ts +1 -1
  241. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/bean/bean.summer.ts +3 -3
  242. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/service/localMem_.ts +3 -3
  243. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/service/localRedis_.ts +3 -3
  244. package/vona/src/suite-vendor/a-vona/modules/a-summer/src/{bean/bean.summerCacheBase.ts → service/summerCacheBase_.ts} +3 -3
  245. package/vona/src/suite-vendor/a-vona/modules/a-swagger/package.json +1 -1
  246. package/vona/src/suite-vendor/a-vona/modules/a-swagger/src/bean/summerCache.rapidoc.ts +2 -2
  247. package/vona/src/suite-vendor/a-vona/modules/a-swagger/src/bean/summerCache.swagger.ts +2 -2
  248. package/vona/src/suite-vendor/a-vona/modules/a-user/package.json +1 -1
  249. package/vona/src/suite-vendor/a-vona/modules/a-user/src/bean/cacheRedis.authToken.ts +2 -2
  250. package/vona/src/suite-vendor/a-vona/modules/a-worker/package.json +1 -1
  251. package/vona/src/suite-vendor/a-vona/modules/a-worker/src/bean/cacheRedis.workerAlive.ts +2 -2
  252. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  253. package/zova/README.md +4 -4
  254. package/zova/README.zh-CN.md +4 -4
  255. package/zova/packages-zova/zova/package.json +2 -2
  256. package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolTwo/controller.tsx +0 -2
  257. package/zova/src/suite/a-home/modules/home-base/src/config/locale/en-us.ts +1 -0
  258. package/zova/src/suite/a-home/modules/home-base/src/config/locale/zh-cn.ts +1 -0
  259. package/zova/src/suite/a-home/modules/home-base/src/page/errorNotFound/controller.tsx +8 -2
  260. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/controller.tsx +1 -1
  261. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.header.tsx +1 -1
  262. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.locale.tsx +2 -5
  263. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.tabs.tsx +1 -4
  264. package/zova/src/suite-vendor/a-zova/modules/a-router/package.json +1 -1
  265. package/zova/src/suite-vendor/a-zova/modules/a-router/src/bean/sys.router.ts +28 -6
  266. package/zova/src/suite-vendor/a-zova/modules/a-router/src/monkeySys.ts +15 -3
  267. package/zova/src/suite-vendor/a-zova/modules/a-router/src/types/router.ts +1 -0
  268. package/zova/src/suite-vendor/a-zova/modules/a-routertabs/package.json +1 -1
  269. package/zova/src/suite-vendor/a-zova/modules/a-routertabs/src/model/tabs.ts +4 -0
  270. package/zova/src/suite-vendor/a-zova/package.json +3 -3
  271. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud.ts +0 -0
  272. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud_inner.ts +0 -0
  273. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_crud_table.ts +0 -0
  274. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_knex.ts +0 -0
  275. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_utils.ts +0 -0
  276. /package/vona/src/suite-vendor/a-vona/modules/a-orm/src/{bean → lib}/bean.model/bean.model_view.ts +0 -0
@@ -0,0 +1,230 @@
1
+ ---
2
+ name: cabloy-frontend-scaffold
3
+ description: Use this skill whenever the user wants the Zova frontend path in this Cabloy repo: create or extend pages, components, api or model beans, route/query/params work, metadata refresh, SSR-sensitive frontend work, or component props, v-model, and generic refactors. Trigger for questions about which npm run zova create or refactor command to use and what frontend follow-up is required after generation, especially when the user wants the Zova way instead of generic Vue advice. Prefer it for frontend-first requests, even if backend context exists in the story. Do not use it for pure Vona scaffolding or backend/frontend contract-sync diagnosis.
4
+ ---
5
+
6
+ # Cabloy Frontend Scaffold
7
+
8
+ Use this skill when the user wants to add or extend a Zova frontend feature thread.
9
+
10
+ ## Goals
11
+
12
+ 1. detect whether the active repository is Cabloy Basic or Cabloy Start
13
+ 2. stay frontend-first unless the request clearly becomes a broader fullstack contract or backend workflow
14
+ 3. prefer Zova CLI generation and refactor tools over manual scaffolding
15
+ 4. always perform a frontend follow-up review so route metadata, API/model integration, SSR behavior, style/theme/icon implications, and metadata regeneration are not forgotten
16
+ 5. add a backend-contract reminder only when the frontend change clearly depends on backend OpenAPI or DTO contract changes
17
+ 6. finish with verification guidance that matches the scope of the change
18
+
19
+ ## Step 1: Detect repo and task scope
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 nearby scripts and ask before making edition-specific assumptions
31
+
32
+ Then classify the request:
33
+
34
+ - **frontend-only** if the task is about Zova pages, components, API services, models, routing, params/query, metadata, icons, styles, or SSR behavior
35
+ - **fullstack** only if the task clearly requires backend contract changes, SDK regeneration, or broader cross-stack contract work
36
+
37
+ Default to frontend-first. Only escalate mentally to a broader fullstack workflow when the frontend task obviously crosses the contract boundary.
38
+
39
+ If the task is really a broad cross-stack workflow, consider whether the root `cabloy-workflow` skill is the better primary router.
40
+
41
+ ## Step 2: Start from Zova CLI and repo entrypoints
42
+
43
+ Inspect these surfaces before proposing implementation:
44
+
45
+ - the repository or workspace `package.json` that owns the scripts
46
+ - `npm run zova`
47
+ - Zova command families such as `create:*`, `init:*`, `refactor:*`, `tools:*`, `openapi:*`, and `bin:*`
48
+ - `cabloy-docs/frontend/` for the relevant frontend thread
49
+
50
+ For deeper reference material, read:
51
+
52
+ - `references/frontend-thread-map.md`
53
+ - `references/follow-up-checklist.md`
54
+
55
+ ## Step 3: Choose the correct frontend scaffolding path
56
+
57
+ ### Path A: create a new frontend structural piece
58
+
59
+ Use `create:*` when the user needs a new structural piece such as:
60
+
61
+ - page
62
+ - component
63
+ - api
64
+ - model
65
+ - module
66
+ - mock
67
+ - bean
68
+
69
+ Typical examples:
70
+
71
+ - `npm run zova :create:page ...`
72
+ - `npm run zova :create:component ...`
73
+ - `npm run zova :create:bean api ...`
74
+ - `npm run zova :create:bean model ...`
75
+
76
+ ### Path B: add framework capabilities to an existing page or component
77
+
78
+ Use `refactor:*` when the user is extending an existing Zova structure rather than creating a new one.
79
+
80
+ Typical examples:
81
+
82
+ - `npm run zova :refactor:pageQuery ...`
83
+ - `npm run zova :refactor:pageParams ...`
84
+ - `npm run zova :refactor:componentProps ...`
85
+ - `npm run zova :refactor:componentModel ...`
86
+ - `npm run zova :refactor:componentGeneric ...`
87
+
88
+ Choose this path when the user already has a page or component and wants to add framework-native structure to it.
89
+
90
+ ### Path C: refresh metadata or generated contract output
91
+
92
+ Use `tools:*` or `openapi:*` when the task is about generation rather than hand-authored frontend code.
93
+
94
+ Typical examples:
95
+
96
+ - `npm run zova :tools:metadata ...`
97
+ - `npm run zova :openapi:config ...`
98
+ - `npm run zova :openapi:generate ...`
99
+
100
+ ## Step 4: Inspect the generated or transformed frontend thread
101
+
102
+ After generation or refactor, inspect what the CLI created and keep it as the baseline.
103
+
104
+ Typical frontend thread pieces may include:
105
+
106
+ - page or component controller
107
+ - wrapper component
108
+ - route record implications
109
+ - API service or model bean
110
+ - query/params schema additions
111
+ - generated metadata-dependent artifacts
112
+
113
+ Do not throw away the generated structure and rewrite it from scratch unless the generator clearly does not match the task.
114
+
115
+ ## Step 5: Apply frontend follow-up logic deliberately
116
+
117
+ Frontend scaffolding is rarely complete after generation alone. Treat this follow-up review as mandatory.
118
+
119
+ ### Route and metadata follow-up
120
+
121
+ Check whether the feature needs:
122
+
123
+ - page route review
124
+ - params/query schema alignment
125
+ - alias or guard review
126
+ - metadata regeneration
127
+
128
+ ### Data and contract follow-up
129
+
130
+ Check whether the feature needs:
131
+
132
+ - API service updates
133
+ - model-managed remote state
134
+ - SSR init-data updates
135
+ - OpenAPI SDK regeneration
136
+ - schema-driven UI or `$apiSchema` review
137
+
138
+ ### Component and interaction follow-up
139
+
140
+ Check whether the feature needs:
141
+
142
+ - props contract review
143
+ - `v-model` review
144
+ - generic component conversion
145
+ - style/theme/icon updates
146
+ - wrapper usage review
147
+ - async-loading or controllerRef implications
148
+
149
+ ### Verification
150
+
151
+ Check whether the feature needs:
152
+
153
+ - typecheck
154
+ - build
155
+ - metadata regeneration verification
156
+ - SSR or route-path verification
157
+ - edition-specific flavor verification
158
+
159
+ ### Optional backend-contract reminder
160
+
161
+ Stay frontend-first, but if the frontend task clearly depends on backend contract output, add a reminder such as:
162
+
163
+ - backend OpenAPI output may need refresh or inspection
164
+ - backend DTO/controller response shape may be the real source of truth
165
+ - frontend SDK or schema-driven layers should be regenerated from contract output rather than hand-patched
166
+
167
+ Do not turn the skill into a backend workflow. Only surface the reminder when the contract boundary is clearly involved.
168
+
169
+ ## Step 6: Use docs to avoid missing layers
170
+
171
+ Use the docs to decide what the generated frontend thread still needs.
172
+
173
+ Especially relevant pages include:
174
+
175
+ - `cabloy-docs/frontend/page-guide.md`
176
+ - `cabloy-docs/frontend/page-query-guide.md`
177
+ - `cabloy-docs/frontend/page-params-guide.md`
178
+ - `cabloy-docs/frontend/page-route-guide.md`
179
+ - `cabloy-docs/frontend/route-alias-guide.md`
180
+ - `cabloy-docs/frontend/navigation-guards-guide.md`
181
+ - `cabloy-docs/frontend/component-guide.md`
182
+ - `cabloy-docs/frontend/component-props-guide.md`
183
+ - `cabloy-docs/frontend/component-v-model-guide.md`
184
+ - `cabloy-docs/frontend/generic-component-guide.md`
185
+ - `cabloy-docs/frontend/api-guide.md`
186
+ - `cabloy-docs/frontend/model-architecture.md`
187
+ - `cabloy-docs/frontend/model-state-guide.md`
188
+ - `cabloy-docs/frontend/openapi-sdk-guide.md`
189
+ - `cabloy-docs/frontend/api-schema-guide.md`
190
+ - `cabloy-docs/frontend/sdk-guide.md`
191
+ - `cabloy-docs/frontend/ssr-overview.md`
192
+ - `cabloy-docs/frontend/ssr-init-data.md`
193
+ - `cabloy-docs/frontend/ssr-client-only.md`
194
+ - `cabloy-docs/frontend/ssr-seo-meta.md`
195
+ - `cabloy-docs/frontend/ssr-env.md`
196
+ - `cabloy-docs/frontend/css-in-js-guide.md`
197
+ - `cabloy-docs/frontend/theme-guide.md`
198
+ - `cabloy-docs/frontend/icon-engine-guide.md`
199
+
200
+ ## Step 7: Verification guidance
201
+
202
+ Always end with a verification path that matches the scope of the frontend change.
203
+
204
+ Typical shared checks include:
205
+
206
+ - `npm run tsc`
207
+ - `npm run build:zova`
208
+
209
+ If the task is inside `zova/` rather than the monorepo root wrapper path, use the smallest correct `zova/` script surface for the affected flavor or generation path.
210
+
211
+ Narrower checks may include:
212
+
213
+ - metadata refresh verification
214
+ - page route verification
215
+ - component wrapper or `v-model` behavior verification
216
+ - SSR or flavor-specific build verification
217
+ - edition-specific frontend script verification
218
+
219
+ ## Response pattern
220
+
221
+ When helpful, structure the response around these points:
222
+
223
+ 1. detected edition
224
+ 2. frontend-first or clearly fullstack-sensitive classification
225
+ 3. recommended Zova CLI path
226
+ 4. required frontend follow-up layers to check
227
+ 5. optional backend-contract reminder if applicable
228
+ 6. verification steps
229
+
230
+ Keep the response practical. The value of this skill is turning Cabloy frontend requests into the right generation + refactor + verification workflow, not writing more prose than necessary.
@@ -0,0 +1,35 @@
1
+ {
2
+ "skill_name": "cabloy-frontend-scaffold",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "I need to add a new frontend page for invoice management in Cabloy. Please tell me the right Zova workflow and what I should generate first.",
7
+ "expected_output": "Chooses a frontend scaffolding path, prefers Zova page generation or closely related CLI generation, and mentions follow-up layers like route/query/params, model/API, metadata, or verification.",
8
+ "files": []
9
+ },
10
+ {
11
+ "id": 2,
12
+ "prompt": "Please help me add page params and page query support to an existing Zova page. I do not want generic Vue Router advice; I want the Cabloy way.",
13
+ "expected_output": "Routes to the Zova frontend refactor thread, recommends the right refactor path, and includes metadata or route follow-up instead of generic framework advice.",
14
+ "files": []
15
+ },
16
+ {
17
+ "id": 3,
18
+ "prompt": "I changed a route and component structure in Cabloy Basic and now I am not sure what else I should update. What should Claude check before saying the frontend work is done?",
19
+ "expected_output": "Identifies likely frontend follow-up such as metadata regeneration, page/component/API/model or SSR impact, and verification commands.",
20
+ "files": []
21
+ },
22
+ {
23
+ "id": 4,
24
+ "prompt": "I updated a Zova page and component contract, but I do not want backend implementation help yet. Keep this frontend-first and only mention backend if it is truly a contract reminder.",
25
+ "expected_output": "Stays frontend-first, covers page/component/metadata or model follow-up, and only adds a light backend-contract reminder if frontend work depends on backend OpenAPI or SDK output.",
26
+ "files": []
27
+ },
28
+ {
29
+ "id": 5,
30
+ "prompt": "Help me add a new frontend page thread in Cabloy Start. I want the Zova way first, including what frontend follow-up review is mandatory after generation.",
31
+ "expected_output": "Detects Start or Start-sensitive edition handling, recommends Zova scaffolding first, and treats metadata, routing, API/model or SSR checks, and verification as mandatory frontend follow-up rather than optional extras.",
32
+ "files": []
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,41 @@
1
+ # Follow-up Checklist
2
+
3
+ After generating or extending a frontend thread, check which follow-up layers apply.
4
+
5
+ ## Structural follow-up
6
+
7
+ - page/controller structure
8
+ - component wrapper usage
9
+ - route record implications
10
+ - params/query schema alignment
11
+
12
+ ## Data and contract follow-up
13
+
14
+ - API service or model alignment
15
+ - SSR init-data needs
16
+ - OpenAPI SDK or schema-driven layer impact
17
+ - backend contract reminder if frontend depends on generated backend contract output
18
+
19
+ ## Interaction and UI follow-up
20
+
21
+ - props contract
22
+ - `v-model`
23
+ - generic typing
24
+ - style / theme / icon implications
25
+
26
+ ## Metadata follow-up
27
+
28
+ - `:tools:metadata`
29
+ - route/component/icon regeneration-sensitive changes
30
+ - edition-specific generated output review
31
+
32
+ ## Verification follow-up
33
+
34
+ - `npm run tsc`
35
+ - `npm run build:zova`
36
+ - flavor-specific checks
37
+ - route or SSR verification
38
+
39
+ ## Escalation rule
40
+
41
+ If the request clearly changes backend contract output or requires SDK regeneration from backend changes, mentally escalate to a fullstack workflow instead of pretending it is frontend-only.
@@ -0,0 +1,54 @@
1
+ # Frontend Thread Map
2
+
3
+ Use this reference when a frontend request needs to be turned into the right Zova thread.
4
+
5
+ ## Common request -> likely thread
6
+
7
+ ### “Add a new page”
8
+
9
+ Usually means:
10
+
11
+ - page generation
12
+ - route review
13
+ - params/query additions if needed
14
+ - API/model integration
15
+ - metadata refresh if routing changes affect typed artifacts
16
+
17
+ ### “Add a new component”
18
+
19
+ Usually means:
20
+
21
+ - component generation
22
+ - props/v-model/generic follow-up if needed
23
+ - wrapper-based usage review
24
+ - style/theme/icon review if UI behavior changes
25
+
26
+ ### “Add data access to a page”
27
+
28
+ Usually means:
29
+
30
+ - API service or model bean
31
+ - possible OpenAPI SDK usage
32
+ - possible SSR init-data follow-up
33
+ - metadata or route refresh if the page shape changes too
34
+
35
+ ### “Change route/query/params behavior”
36
+
37
+ Usually means:
38
+
39
+ - page route review
40
+ - `refactor:*` path first
41
+ - metadata regeneration
42
+ - route alias / guard / SSR review
43
+
44
+ ### “Change UI contract of a component”
45
+
46
+ Usually means:
47
+
48
+ - component props
49
+ - `v-model`
50
+ - generic component or wrapper behavior
51
+
52
+ ## Generation-first rule
53
+
54
+ If a Zova generator or refactor command exists for the frontend thread, use it first and refine second.
@@ -0,0 +1,288 @@
1
+ ---
2
+ name: cabloy-workflow
3
+ description: Use this skill first when a Cabloy request is about choosing the right path before implementation: whether the work belongs to Vona backend scaffolding, Zova frontend scaffolding, backend/frontend contract sync, or docs, .docs-internal, CLAUDE.md, commands, or skills; which Cabloy Basic or Cabloy Start assumptions apply; or where Cabloy guidance should live. Trigger on requests that ask to route, classify, choose a workflow, choose an edition-specific path, or decide between docs, rules, and skills. Do not use it once the task is already clearly a backend scaffold, frontend scaffold, or contract-loop job.
4
+ ---
5
+
6
+ # Cabloy Workflow
7
+
8
+ Use this skill to choose the right workflow before making Cabloy changes.
9
+
10
+ ## Goals
11
+
12
+ 1. detect whether the active repository is Cabloy Basic or Cabloy Start
13
+ 2. choose the correct layer of work: fullstack, backend, frontend, docs, or AI-enablement
14
+ 3. prefer Vona or Zova CLI capabilities over manual scaffolding whenever possible
15
+ 4. keep public docs, internal docs, rules, and skills in the correct locations
16
+ 5. finish with verification guidance that matches the scope of the task
17
+
18
+ ## Step 1: Detect the active edition
19
+
20
+ Check the repository root for these marker files:
21
+
22
+ - `__CABLOY_BASIC__`
23
+ - `__CABLOY_START__`
24
+
25
+ Interpretation:
26
+
27
+ - `__CABLOY_BASIC__` present → this is Cabloy Basic
28
+ - `__CABLOY_START__` present → this is Cabloy Start
29
+ - neither present → inspect the repo scripts and ask the user before making a strong edition-specific assumption
30
+
31
+ This matters most for frontend work, UI-library assumptions, flavor names, and edition-specific modules.
32
+
33
+ ## Step 2: Identify the task layer
34
+
35
+ Classify the request before proposing a workflow.
36
+
37
+ ### Fullstack
38
+
39
+ Use the fullstack path when the task spans backend and frontend or touches shared scripts, integration, docs architecture, or cross-stack generation.
40
+
41
+ Typical signals:
42
+
43
+ - "fullstack"
44
+ - "Cabloy"
45
+ - backend + frontend in one request
46
+ - OpenAPI + SDK + DTO + page generation
47
+ - docs/rules/skills that must support both Vona and Zova
48
+
49
+ ### Backend (Vona)
50
+
51
+ Use the backend path when the task is about:
52
+
53
+ - suite, module, bean, service, controller, model, entity, DTO
54
+ - CRUD generation
55
+ - ORM, cache, queue, worker, schedule, auth, permissions
56
+ - backend tests, build, play, or database reset
57
+
58
+ ### Frontend (Zova)
59
+
60
+ Use the frontend path when the task is about:
61
+
62
+ - page, component, mock, bean
63
+ - SSR, Web, Admin, SPA
64
+ - UI-library-sensitive work
65
+ - OpenAPI SDK generation
66
+ - frontend refactors such as page params, page query, component props, or model helpers
67
+
68
+ ### Docs and AI-enablement
69
+
70
+ Use the docs/AI path when the task is about:
71
+
72
+ - `cabloy-docs/`
73
+ - `.docs-internal/`
74
+ - `CLAUDE.md`
75
+ - `.claude/commands/`
76
+ - `.claude/skills/`
77
+ - repo guidance for AI development
78
+
79
+ ## Step 3: Start from shared entrypoints
80
+
81
+ Before inventing a workflow, inspect these shared surfaces:
82
+
83
+ - the repository or workspace `package.json` that owns the active scripts
84
+ - `npm run vona`
85
+ - `npm run zova`
86
+ - root `CLAUDE.md` if present
87
+ - `cabloy-docs/` for public guidance
88
+ - `.docs-internal/` for maintainer rationale
89
+
90
+ If the request spans backend and frontend, classify it as fullstack by default unless the user clearly wants only one side.
91
+
92
+ If edition markers are missing or the repo shape is ambiguous, inspect the nearby scripts and ask the user before making a strong edition-specific assumption.
93
+
94
+ For deeper reference material, read:
95
+
96
+ - `references/edition-detection.md`
97
+ - `references/cli-strategy.md`
98
+
99
+ The reason is simple: these files are where Cabloy already encodes its real workflows.
100
+
101
+ ## Step 4: Prefer CLI-first workflows
102
+
103
+ Whenever the task maps to an existing generator, initializer, refactor, or metadata command, prefer the CLI.
104
+
105
+ ### Vona CLI families
106
+
107
+ Typical families:
108
+
109
+ - `bin:*`
110
+ - `create:*`
111
+ - `init:*`
112
+ - `tools:*`
113
+
114
+ Typical use cases:
115
+
116
+ - scaffold suite/module/bean/test resources
117
+ - initialize config/locale/constant/error/assets/types
118
+ - generate CRUD-related artifacts
119
+ - refresh metadata or dependency-related output
120
+ - run backend verification flows
121
+
122
+ ### Zova CLI families
123
+
124
+ Typical families:
125
+
126
+ - `bin:*`
127
+ - `create:*`
128
+ - `init:*`
129
+ - `refactor:*`
130
+ - `tools:*`
131
+ - `openapi:*`
132
+
133
+ Typical use cases:
134
+
135
+ - scaffold suite/module/page/component/mock/bean resources
136
+ - initialize app/system assets and typing helpers
137
+ - run focused refactors for page/component patterns
138
+ - generate OpenAPI-related output
139
+ - refresh metadata or dependency-related output
140
+
141
+ ## Step 5: Choose where the knowledge belongs
142
+
143
+ When the user is asking for guidance or automation assets, route the work to the correct home.
144
+
145
+ ### Public docs
146
+
147
+ Use `cabloy-docs/` for:
148
+
149
+ - user-facing explanations
150
+ - reusable AI-facing workflow guidance
151
+ - edition-aware public documentation
152
+
153
+ ### Internal engineering docs
154
+
155
+ Use `.docs-internal/` for:
156
+
157
+ - ADRs
158
+ - architecture notes
159
+ - maintainer rationale
160
+ - invariants and design boundaries
161
+
162
+ ### Root rules and commands
163
+
164
+ Use `CLAUDE.md` and `.claude/commands/` for:
165
+
166
+ - concise operational guidance
167
+ - named recurring workflows
168
+ - repo-wide behavior for Claude
169
+
170
+ ### Skills
171
+
172
+ Use `.claude/skills/` for:
173
+
174
+ - procedural workflows that benefit from reusable instructions
175
+ - edition-aware decision trees
176
+ - CLI-first orchestration paths
177
+ - future bundled references or deterministic helper scripts
178
+
179
+ ### Class-placement questions
180
+
181
+ When the request is about whether a backend base class belongs in `src/lib`, `src/service`, or the global bean shorthand surface, apply the A / B1 / B2 rule.
182
+
183
+ - **A**: pure helper base -> `src/lib`
184
+ - **B1**: subclass-only base -> evaluate case by case, often `src/lib`
185
+ - **B2**: runtime-anchor base that still needs container-managed or selector/class-token behavior but should not be a global bean -> prefer `src/service` with `@Service()`
186
+
187
+ For these requests:
188
+
189
+ - put the durable operational explanation in `cabloy-docs/`
190
+ - put rationale and invariants in `.docs-internal/`
191
+ - keep `CLAUDE.md` short and behavioral
192
+ - do not treat `@Service()` as a business-layer naming decision only; for B2 it is a runtime-anchor placement choice
193
+
194
+ ### Service underscore files
195
+
196
+ When a backend base class should move into `src/service`, do not treat the file name as a cosmetic choice.
197
+
198
+ Prefer `src/service/*_.ts` when the class:
199
+
200
+ - should remain container-managed
201
+ - mainly acts as a runtime-anchor base, selector anchor, or class-token contract
202
+ - should not participate in the general full-name registration surface
203
+ - may need to keep meaningful `@Virtual()` semantics
204
+
205
+ Prefer a normal `src/service/*.ts` file when the service-scene class itself should remain part of the general full-name surface.
206
+
207
+ Do not apply this mechanically to all concrete beans or all abstract classes. Judge by runtime role and registration surface.
208
+
209
+ ### Bean-scene and global shorthand
210
+
211
+ Treat `src/bean` as the structural definition of the global shorthand surface.
212
+
213
+ For these requests:
214
+
215
+ - do not treat `@Virtual()` as a reason to exclude a bean-scene class from `IBeanRecordGlobal`
216
+ - if a class in `src/bean` should not be global shorthand, re-evaluate placement first
217
+ - prefer B1/B2 relocation over metadata exceptions or manual `IBeanRecordGlobal` patching
218
+ - use `IBeanRecordGlobal` as the static authoring-surface registry for global shorthand, not as a full runtime-container inventory
219
+
220
+ ### Global bean lookup workflow
221
+
222
+ When backend code references `this.bean.xxx`, `ctx.bean.xxx`, or `app.bean.xxx`, prefer this lookup sequence:
223
+
224
+ 1. check `IBeanRecordGlobal` in the relevant module `src/.metadata/index.ts`
225
+ 2. map the shorthand name to the generated bean type
226
+ 3. jump from the generated type to the source file in `src/bean`
227
+ 4. only if the shorthand is not found, re-evaluate whether the target is actually a general full-name bean, a service-scene runtime-anchor, or a lib/helper class
228
+
229
+ Use `IBeanRecordGeneral` for general full-name beans and `src/service` or service metadata for runtime-anchor/service-scene lookup. Do not treat `IBeanRecordGlobal` as a full container inventory.
230
+
231
+ ## Step 6: Apply edition-aware branching
232
+
233
+ When the task is frontend-sensitive or examples differ between editions, branch explicitly.
234
+
235
+ ### Cabloy Basic
236
+
237
+ Bias toward:
238
+
239
+ - current public monorepo source
240
+ - public docs examples
241
+ - the Basic repo marker
242
+ - current Basic frontend flavors and module layout
243
+
244
+ ### Cabloy Start
245
+
246
+ Bias toward:
247
+
248
+ - the Start repo marker
249
+ - Vuetify-sensitive examples
250
+ - Start-specific frontend flavor names
251
+ - Start-specific modules and private-value repo structure
252
+
253
+ Do not silently reuse Basic examples when Start-specific assumptions matter.
254
+
255
+ ## Step 7: Verification
256
+
257
+ Always finish with a verification plan that matches the work.
258
+
259
+ ### For docs or AI-asset changes
260
+
261
+ Verify:
262
+
263
+ - referenced paths exist
264
+ - command names still exist
265
+ - public docs, internal docs, and rules tell a consistent story
266
+ - edition-specific notes point to the right repo assumptions
267
+
268
+ ### For backend/frontend workflow changes
269
+
270
+ Prefer the narrowest useful checks first, then broader checks when needed.
271
+
272
+ Typical shared checks include:
273
+
274
+ - root scripts such as `npm run tsc`, `npm run test`, `npm run build`
275
+ - command help or discovery output from `npm run vona` / `npm run zova`
276
+ - targeted build/dev/typecheck flows for the affected side
277
+
278
+ ## Response pattern
279
+
280
+ When you use this skill, structure the response around these points when helpful:
281
+
282
+ 1. detected edition
283
+ 2. detected task layer
284
+ 3. recommended CLI or repo entrypoint
285
+ 4. files or directories likely involved
286
+ 5. verification steps
287
+
288
+ Keep the response practical. The value of this skill is not extra prose. The value is choosing the right Cabloy workflow quickly and accurately.
@@ -0,0 +1,35 @@
1
+ {
2
+ "skill_name": "cabloy-workflow",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "I am in the cabloy-basic repo and want to add a new backend bean plus the related frontend page for an admin workflow. Please tell me the right Cabloy workflow and what command families I should inspect first.",
7
+ "expected_output": "Detects Cabloy Basic, classifies the work as cross-stack, recommends root package.json plus Vona/Zova CLI families instead of manual scaffolding, and mentions verification.",
8
+ "files": []
9
+ },
10
+ {
11
+ "id": 2,
12
+ "prompt": "We are working in cabloy-start and I need to create a new page with Vuetify-specific assumptions. Which repo checks should Claude do before recommending code changes?",
13
+ "expected_output": "Detects Cabloy Start, highlights the edition marker, treats the task as frontend-sensitive, and avoids reusing Cabloy Basic assumptions blindly.",
14
+ "files": []
15
+ },
16
+ {
17
+ "id": 3,
18
+ "prompt": "Please help me decide whether this new AI guidance belongs in public docs, .docs-internal, CLAUDE.md, or a skill. The guidance is about when to use npm run zova instead of hand-written scaffolding.",
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
+ "files": []
21
+ },
22
+ {
23
+ "id": 4,
24
+ "prompt": "I found a Cabloy-like repo without __CABLOY_BASIC__ or __CABLOY_START__. Before I scaffold a frontend page, what should Claude verify so it does not assume the wrong edition?",
25
+ "expected_output": "Does not force an edition, inspects the owning package scripts and nearby repo structure, and asks before making a strong edition-specific assumption.",
26
+ "files": []
27
+ },
28
+ {
29
+ "id": 5,
30
+ "prompt": "I want to update the public guidance for Cabloy contributors about using CLI generators first, but I also think Claude should follow the same rule automatically. Where should each part of that knowledge live?",
31
+ "expected_output": "Splits the guidance across public docs and Claude rules/skills appropriately, keeping maintainer rationale out of public docs unless needed.",
32
+ "files": []
33
+ }
34
+ ]
35
+ }