@jskit-ai/agent-docs 0.1.149 → 0.1.151

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 (240) hide show
  1. package/guide/agent/app-setup/existing-application-migration.md +8 -6
  2. package/guide/agent/app-setup/initial-scaffolding.md +9 -7
  3. package/guide/agent/app-setup/quickstart.md +9 -6
  4. package/guide/agent/framework/application-operations.md +91 -0
  5. package/guide/agent/framework/crud-operations.md +83 -0
  6. package/guide/agent/framework/material-3.md +113 -0
  7. package/guide/agent/framework/ui-operations.md +79 -0
  8. package/guide/agent/index.md +13 -3
  9. package/package.json +1 -1
  10. package/patterns/feature-package/example/booking-engine/package.json +1 -1
  11. package/patterns/minimal-foundation/PATTERN.md +2 -0
  12. package/patterns/minimal-foundation/example/AGENTS.md +12 -8
  13. package/patterns/minimal-foundation/example/Procfile +0 -1
  14. package/patterns/minimal-foundation/example/package.json +4 -5
  15. package/patterns/minimal-foundation/example/src/pages/home/index.vue +0 -27
  16. package/patterns/minimal-foundation/example/tests/e2e/base-shell.spec.ts +1 -1
  17. package/patterns/page-scaffolding.md +5 -3
  18. package/patterns/shell-foundation/PATTERN.md +2 -0
  19. package/patterns/shell-foundation/example/AGENTS.md +12 -8
  20. package/patterns/shell-foundation/example/Procfile +0 -1
  21. package/patterns/shell-foundation/example/package.json +5 -6
  22. package/patterns/shell-foundation/example/packages/main/package.json +1 -1
  23. package/patterns/shell-foundation/example/src/pages/home/index.vue +5 -31
  24. package/patterns/shell-foundation/example/src/pages/home/settings/general/index.vue +3 -6
  25. package/patterns/shell-foundation/example/src/pages/home/settings.vue +0 -19
  26. package/patterns/shell-foundation/example/tests/e2e/base-shell.spec.ts +1 -1
  27. package/patterns/ui-contract.md +2 -0
  28. package/patterns/ui-testing.md +1 -1
  29. package/reference/autogen/PATTERN_INDEX.md +61 -61
  30. package/skills/jskit/SKILL.md +8 -5
  31. package/skills/jskit/references/app-operations.md +12 -11
  32. package/skills/jskit/references/crud-operations.md +10 -6
  33. package/skills/jskit/references/existing-application-migration.md +9 -12
  34. package/skills/jskit/references/material-3.md +5 -2
  35. package/skills/jskit/references/pattern-index.md +61 -61
  36. package/skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md +107 -0
  37. package/skills/jskit/references/patterns/app/minimal-foundation/example/.nvmrc +1 -0
  38. package/skills/jskit/references/patterns/app/minimal-foundation/example/AGENTS.md +21 -0
  39. package/skills/jskit/references/patterns/app/minimal-foundation/example/Procfile +1 -0
  40. package/skills/jskit/references/patterns/app/minimal-foundation/example/app.json +14 -0
  41. package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/develop.js +71 -0
  42. package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/server.js +8 -0
  43. package/skills/jskit/references/patterns/app/minimal-foundation/example/config/public.js +40 -0
  44. package/skills/jskit/references/patterns/app/minimal-foundation/example/config/server.js +1 -0
  45. package/skills/jskit/references/patterns/app/minimal-foundation/example/config/surfaceAccessPolicies.js +3 -0
  46. package/skills/jskit/references/patterns/app/minimal-foundation/example/eslint.config.mjs +19 -0
  47. package/skills/jskit/references/patterns/app/minimal-foundation/example/favicon.svg +7 -0
  48. package/skills/jskit/references/patterns/app/minimal-foundation/example/gitignore +9 -0
  49. package/skills/jskit/references/patterns/app/minimal-foundation/example/index.html +13 -0
  50. package/skills/jskit/references/patterns/app/minimal-foundation/example/jsconfig.json +8 -0
  51. package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +62 -0
  52. package/skills/jskit/references/patterns/app/minimal-foundation/example/packages/main/package.json +42 -0
  53. package/skills/jskit/references/patterns/app/minimal-foundation/example/packages/main/src/shared/index.js +10 -0
  54. package/skills/jskit/references/patterns/app/minimal-foundation/example/packages/main/src/shared/schemas/index.js +22 -0
  55. package/skills/jskit/references/patterns/app/minimal-foundation/example/playwright.config.mjs +31 -0
  56. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/runtimeEnv.js +45 -0
  57. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/surfaceRuntime.js +10 -0
  58. package/skills/jskit/references/patterns/app/minimal-foundation/example/server.js +195 -0
  59. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/App.vue +13 -0
  60. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/main.js +85 -0
  61. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/pages/home/index.vue +21 -0
  62. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/pages/home.vue +13 -0
  63. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/views/NotFound.vue +13 -0
  64. package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/client/smoke.vitest.js +7 -0
  65. package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/e2e/base-shell.spec.ts +23 -0
  66. package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/server/smoke.test.js +16 -0
  67. package/skills/jskit/references/patterns/app/minimal-foundation/example/vite.config.mjs +80 -0
  68. package/skills/jskit/references/patterns/app/shell-foundation/PATTERN.md +113 -0
  69. package/skills/jskit/references/patterns/app/shell-foundation/example/.nvmrc +1 -0
  70. package/skills/jskit/references/patterns/app/shell-foundation/example/AGENTS.md +21 -0
  71. package/skills/jskit/references/patterns/app/shell-foundation/example/Procfile +1 -0
  72. package/skills/jskit/references/patterns/app/shell-foundation/example/app.json +14 -0
  73. package/skills/jskit/references/patterns/app/shell-foundation/example/bin/develop.js +71 -0
  74. package/skills/jskit/references/patterns/app/shell-foundation/example/bin/server.js +8 -0
  75. package/skills/jskit/references/patterns/app/shell-foundation/example/config/public.js +40 -0
  76. package/skills/jskit/references/patterns/app/shell-foundation/example/config/server.js +1 -0
  77. package/skills/jskit/references/patterns/app/shell-foundation/example/config/surfaceAccessPolicies.js +3 -0
  78. package/skills/jskit/references/patterns/app/shell-foundation/example/eslint.config.mjs +19 -0
  79. package/skills/jskit/references/patterns/app/shell-foundation/example/favicon.svg +7 -0
  80. package/skills/jskit/references/patterns/app/shell-foundation/example/gitignore +9 -0
  81. package/skills/jskit/references/patterns/app/shell-foundation/example/index.html +13 -0
  82. package/skills/jskit/references/patterns/app/shell-foundation/example/jsconfig.json +8 -0
  83. package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +64 -0
  84. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +56 -0
  85. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/index.js +9 -0
  86. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +18 -0
  87. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/shared/index.js +10 -0
  88. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/shared/schemas/index.js +22 -0
  89. package/skills/jskit/references/patterns/app/shell-foundation/example/playwright.config.mjs +31 -0
  90. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/runtimeEnv.js +45 -0
  91. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/surfaceRuntime.js +10 -0
  92. package/skills/jskit/references/patterns/app/shell-foundation/example/server.js +195 -0
  93. package/skills/jskit/references/patterns/app/shell-foundation/example/src/App.vue +11 -0
  94. package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/ShellLayout.vue +12 -0
  95. package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/menus/MenuLinkItem.vue +30 -0
  96. package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/menus/SurfaceAwareMenuLinkItem.vue +42 -0
  97. package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/menus/TabLinkItem.vue +42 -0
  98. package/skills/jskit/references/patterns/app/shell-foundation/example/src/error.js +19 -0
  99. package/skills/jskit/references/patterns/app/shell-foundation/example/src/main.js +85 -0
  100. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/index.vue +90 -0
  101. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings/general/index.vue +37 -0
  102. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings/index.vue +7 -0
  103. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings.vue +90 -0
  104. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home.vue +20 -0
  105. package/skills/jskit/references/patterns/app/shell-foundation/example/src/placement.js +56 -0
  106. package/skills/jskit/references/patterns/app/shell-foundation/example/src/placementTopology.js +149 -0
  107. package/skills/jskit/references/patterns/app/shell-foundation/example/src/views/NotFound.vue +13 -0
  108. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/client/smoke.vitest.js +7 -0
  109. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/e2e/adaptive-shell.spec.ts +10 -0
  110. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/e2e/base-shell.spec.ts +23 -0
  111. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/server/smoke.test.js +16 -0
  112. package/skills/jskit/references/patterns/app/shell-foundation/example/vite.config.mjs +80 -0
  113. package/skills/jskit/references/patterns/assistant/assistant-surface/PATTERN.md +77 -0
  114. package/skills/jskit/references/patterns/assistant/assistant-surface/example/config/public.js +19 -0
  115. package/skills/jskit/references/patterns/assistant/assistant-surface/example/config/server.js +9 -0
  116. package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/pages/admin/assistant/index.vue +7 -0
  117. package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/pages/admin/settings/assistant/index.vue +7 -0
  118. package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/placement.js +38 -0
  119. package/skills/jskit/references/patterns/auth/auth-surface/PATTERN.md +90 -0
  120. package/skills/jskit/references/patterns/auth/auth-surface/example/src/pages/auth/login.vue +17 -0
  121. package/skills/jskit/references/patterns/auth/auth-surface/example/src/pages/auth/reset-password.vue +17 -0
  122. package/skills/jskit/references/patterns/auth/auth-surface/example/src/pages/auth/signout.vue +17 -0
  123. package/skills/jskit/references/patterns/auth/auth-surface/example/src/runtime/authGuardRuntime.js +7 -0
  124. package/skills/jskit/references/patterns/auth/auth-surface/example/src/runtime/authHttpClient.js +1 -0
  125. package/skills/jskit/references/patterns/auth/auth-surface/example/src/runtime/useSignOut.js +1 -0
  126. package/skills/jskit/references/patterns/auth/auth-surface/example/src/views/auth/LoginView.vue +7 -0
  127. package/skills/jskit/references/patterns/auth/auth-surface/example/src/views/auth/ResetPasswordView.vue +7 -0
  128. package/skills/jskit/references/patterns/auth/auth-surface/example/src/views/auth/SignOutView.vue +7 -0
  129. package/skills/jskit/references/patterns/auth/auth-surface/example/tools/preview-identity +5 -0
  130. package/skills/jskit/references/patterns/auth/supabase-auth/PATTERN.md +67 -0
  131. package/skills/jskit/references/patterns/auth/supabase-auth/example/.env.example +4 -0
  132. package/skills/jskit/references/patterns/auth/supabase-auth/example/config/server.js +11 -0
  133. package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +7 -0
  134. package/skills/jskit/references/patterns/console/console-surface/PATTERN.md +59 -0
  135. package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console/index.vue +43 -0
  136. package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console/settings/index.vue +16 -0
  137. package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console/settings.vue +81 -0
  138. package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console.vue +20 -0
  139. package/skills/jskit/references/patterns/crud/crud-screen-set/PATTERN.md +89 -0
  140. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookEditPage.vue +52 -0
  141. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookFormFields.vue +52 -0
  142. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookListPage.vue +50 -0
  143. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookNewPage.vue +43 -0
  144. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookViewPage.vue +49 -0
  145. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/formFields.js +31 -0
  146. package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/listExtensions.js +9 -0
  147. package/skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md +160 -0
  148. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/migrations/20260815000000_books.cjs +22 -0
  149. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +41 -0
  150. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/server/BooksFeature.js +13 -0
  151. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/shared/bookResource.js +83 -0
  152. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/shared/index.js +1 -0
  153. package/skills/jskit/references/patterns/crud/resource-contract/PATTERN.md +102 -0
  154. package/skills/jskit/references/patterns/crud/resource-contract/example/bookResource.js +87 -0
  155. package/skills/jskit/references/patterns/database/mysql-application/PATTERN.md +80 -0
  156. package/skills/jskit/references/patterns/database/mysql-application/example/.env.example +5 -0
  157. package/skills/jskit/references/patterns/database/mysql-application/example/.github/workflows/verify.yml +39 -0
  158. package/skills/jskit/references/patterns/database/mysql-application/example/knexfile.js +11 -0
  159. package/skills/jskit/references/patterns/database/mysql-application/example/package.json +13 -0
  160. package/skills/jskit/references/patterns/database/mysql-application/example/scripts/prepare-database.js +3 -0
  161. package/skills/jskit/references/patterns/database/postgres-application/PATTERN.md +80 -0
  162. package/skills/jskit/references/patterns/database/postgres-application/example/.env.example +5 -0
  163. package/skills/jskit/references/patterns/database/postgres-application/example/.github/workflows/verify.yml +38 -0
  164. package/skills/jskit/references/patterns/database/postgres-application/example/knexfile.js +11 -0
  165. package/skills/jskit/references/patterns/database/postgres-application/example/package.json +13 -0
  166. package/skills/jskit/references/patterns/database/postgres-application/example/scripts/prepare-database.js +3 -0
  167. package/skills/jskit/references/patterns/mobile/android-application/PATTERN.md +71 -0
  168. package/skills/jskit/references/patterns/mobile/android-application/example/capacitor.config.json +10 -0
  169. package/skills/jskit/references/patterns/realtime/realtime-application/PATTERN.md +69 -0
  170. package/skills/jskit/references/patterns/realtime/realtime-application/example/.env.example +1 -0
  171. package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +8 -0
  172. package/skills/jskit/references/patterns/realtime/realtime-application/example/src/placement.js +17 -0
  173. package/skills/jskit/references/patterns/server/feature-package/PATTERN.md +108 -0
  174. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +48 -0
  175. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +33 -0
  176. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/actions.js +26 -0
  177. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/inputSchemas.js +19 -0
  178. package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineProvider.js +31 -0
  179. package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupProvider.js +36 -0
  180. package/skills/jskit/references/patterns/server/feature-package/example/variations/customKnexRepository.js +34 -0
  181. package/skills/jskit/references/patterns/server/feature-package/example/variations/orchestratorService.js +23 -0
  182. package/skills/jskit/references/patterns/shell/application-shell/PATTERN.md +67 -0
  183. package/skills/jskit/references/patterns/shell/application-shell/example/expected-existing/src/App.vue +13 -0
  184. package/skills/jskit/references/patterns/shell/application-shell/example/expected-existing/src/pages/home/index.vue +21 -0
  185. package/skills/jskit/references/patterns/shell/application-shell/example/expected-existing/src/pages/home.vue +13 -0
  186. package/skills/jskit/references/patterns/shell/application-shell/example/src/App.vue +11 -0
  187. package/skills/jskit/references/patterns/shell/application-shell/example/src/components/ShellLayout.vue +13 -0
  188. package/skills/jskit/references/patterns/shell/application-shell/example/src/components/menus/MenuLinkItem.vue +30 -0
  189. package/skills/jskit/references/patterns/shell/application-shell/example/src/components/menus/SurfaceAwareMenuLinkItem.vue +42 -0
  190. package/skills/jskit/references/patterns/shell/application-shell/example/src/components/menus/TabLinkItem.vue +42 -0
  191. package/skills/jskit/references/patterns/shell/application-shell/example/src/error.js +19 -0
  192. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/index.vue +80 -0
  193. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/settings/general/index.vue +37 -0
  194. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/settings/index.vue +7 -0
  195. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/settings.vue +90 -0
  196. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home.vue +20 -0
  197. package/skills/jskit/references/patterns/shell/application-shell/example/src/placement.js +56 -0
  198. package/skills/jskit/references/patterns/shell/application-shell/example/src/placementTopology.js +149 -0
  199. package/skills/jskit/references/patterns/shell/application-shell/example/tests/e2e/adaptive-shell.spec.ts +10 -0
  200. package/skills/jskit/references/patterns/ui/page-and-placement/PATTERN.md +77 -0
  201. package/skills/jskit/references/patterns/ui/page-and-placement/example/packages/main/src/client/providers/MainClientProvider.js +14 -0
  202. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/components/SyncStatusElement.vue +16 -0
  203. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports/activity.vue +7 -0
  204. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports/index.vue +7 -0
  205. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports/overview.vue +7 -0
  206. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports.vue +25 -0
  207. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/placement.js +52 -0
  208. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/placementTopology.js +29 -0
  209. package/skills/jskit/references/patterns/users/account-settings/PATTERN.md +63 -0
  210. package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsNotificationsSection.vue +67 -0
  211. package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsPreferencesSection.vue +137 -0
  212. package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsProfileSection.vue +106 -0
  213. package/skills/jskit/references/patterns/users/account-settings/example/src/pages/account/index.vue +17 -0
  214. package/skills/jskit/references/patterns/users/user-administration-server/PATTERN.md +64 -0
  215. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +42 -0
  216. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/server/UsersFeature.js +13 -0
  217. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/shared/index.js +1 -0
  218. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/shared/userResource.js +69 -0
  219. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +43 -0
  220. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/UsersWorkspaceFeature.js +22 -0
  221. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/shared/index.js +1 -0
  222. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/shared/userResource.js +56 -0
  223. package/skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md +60 -0
  224. package/skills/jskit/references/patterns/workspaces/workspace-server/example/config/roles.js +27 -0
  225. package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteEmail.js +23 -0
  226. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/PATTERN.md +65 -0
  227. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/packages/main/src/client/components/AccountPendingInvitesCue.vue +106 -0
  228. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/packages/main/src/client/components/AccountSettingsInvitesSection.vue +7 -0
  229. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/components/WorkspaceNotFoundCard.vue +42 -0
  230. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/composables/useWorkspaceNotFoundState.js +41 -0
  231. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/admin/members/index.vue +7 -0
  232. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/admin/workspace/settings/index.vue +15 -0
  233. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/admin/workspace/settings.vue +81 -0
  234. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/invite/[token].vue +7 -0
  235. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/admin/index.vue +58 -0
  236. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/admin/root.vue +20 -0
  237. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/app/index.vue +31 -0
  238. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/app/root.vue +20 -0
  239. package/skills/jskit/references/ui-operations.md +7 -4
  240. package/templates/app/AGENTS.md +12 -8
@@ -29,7 +29,8 @@ Rules:
29
29
  ownership rather than creating a parallel navigation structure.
30
30
  - For a small placeholder route inside an existing route family, keep the change scoped unless the durable route or surface plan in the app blueprint changed.
31
31
  - Live pages must be usable screens, not instructional scaffolds. Do not ship copy such as "replace this", "use this area", or "this page is ready".
32
- - Prefer a page header plus a direct `v-sheet` working region. Do not wrap every page in a generic `v-card`.
32
+ - Never add a page header, title block, welcome heading, or standalone heading copy by default. Start with the useful content and actions; add a heading only when the user explicitly asks for one.
33
+ - Prefer a direct `v-sheet` working region when the content needs a surface. Do not wrap every page in a generic `v-card`.
33
34
  - If the screen is not implemented yet, use a product-shaped empty state with one clear next action or status, not developer instructions.
34
35
  - Primary navigation links belong in semantic placements such as `shell.primary-nav` or `page.section-nav`; do not place every route into one drawer by default.
35
36
  - Compact layouts must be checked first: no horizontal overflow, no unreachable primary action, and tap targets should be at least 48 px.
@@ -38,7 +39,7 @@ UI contract:
38
39
 
39
40
  - App-facing screens are phone-first and task-first; admin/console screens may be denser but still need responsive controls.
40
41
  - Navigation uses semantic placements by default. Raw `host:position` outlets are advanced infrastructure.
41
- - Page architecture is header plus direct work region, normally `v-sheet`; do not use generic page-level `v-card` shells.
42
+ - Page architecture starts with the direct work region and actions, normally using `v-sheet` when a surface is needed; it does not include default page-heading chrome or generic page-level `v-card` shells.
42
43
  - Empty/loading/error states are product-shaped and resource-named.
43
44
  - Detail and workflow routes are not primary navigation by default.
44
45
  - Changed UI must have compact, medium, and expanded browser checks when it changes user-facing behavior.
@@ -46,6 +47,7 @@ UI contract:
46
47
  Avoid:
47
48
 
48
49
  - inventing a page and placement shape without checking the existing pattern and neighboring routes
50
+ - adding a route-name heading, welcome heading, or other page title the user did not request
49
51
  - treating a small page stub as permission to rewrite marketing copy, route architecture, or app blueprint scope
50
- - adding cards inside cards or repeating the page title inside a card title
52
+ - adding cards inside cards
51
53
  - treating Vuetify component defaults as the product architecture
@@ -37,6 +37,8 @@ not convert those choices into a generator questionnaire.
37
37
 
38
38
  - Materialize source inside the existing project without disturbing `.git` or
39
39
  any existing project/agent context.
40
+ - Pages start with useful content and actions, never a default page header or
41
+ standalone heading.
40
42
  - Inspect and resolve file collisions; never force-overwrite product source.
41
43
  - Keep placements and topology explicit and use shell public components.
42
44
  - Keep one app-owned `npm run develop` entry that runs the API on loopback and
@@ -1,16 +1,20 @@
1
1
  # App Agent Instructions
2
2
 
3
- Use current project context, JSKIT public APIs, and the installed JSKIT pattern
4
- index as the source of truth for application work.
3
+ Use current project context, JSKIT public APIs, and the official framework
4
+ documentation as the source of truth for application work.
5
5
 
6
- Recommended references:
6
+ Framework references:
7
7
 
8
- - `node_modules/@jskit-ai/agent-docs/guide/agent/index.md`
9
- - `node_modules/@jskit-ai/agent-docs/patterns/INDEX.md`
8
+ - `https://mobily-enterprises.github.io/jskit-ai/guide/`
9
+ - `https://mobily-enterprises.github.io/jskit-ai/patterns/`
10
10
 
11
- Before database, schema, CRUD, repository, or persistence work, inspect the
12
- relevant package-owned pattern from
13
- `node_modules/@jskit-ai/agent-docs/reference/autogen/PATTERN_INDEX.md`.
11
+ Before implementation, read the narrow relevant source pattern completely. If
12
+ its owner package is installed, prefer that version-matched package-owned copy.
13
+ Do not install an unrelated runtime package only to read documentation.
14
+
15
+ Pages never start with a page header, title block, welcome heading, or other
16
+ standalone heading copy. Start with the useful content and actions. If the user
17
+ wants a heading, they will ask for or add one.
14
18
 
15
19
  Copied pattern source is ordinary application source. Do not add generator
16
20
  provenance, receipts, completion ledgers, or tooling-operation history. Keep
@@ -1,2 +1 @@
1
- release: npm run db:migrate
2
1
  web: npm run start
@@ -34,7 +34,7 @@
34
34
  "dependencies": {
35
35
  "@local/main": "0.1.0",
36
36
  "@fastify/static": "^10.1.3",
37
- "@jskit-ai/kernel": "0.1.177",
37
+ "@jskit-ai/kernel": "0.1.179",
38
38
  "@tanstack/vue-query": "^5.101.0",
39
39
  "fastify": "^5.8.5",
40
40
  "json-rest-schema": "^1.0.17",
@@ -42,14 +42,13 @@
42
42
  "vue": "^3.5.38",
43
43
  "vue-router": "^5.1.0",
44
44
  "vuetify": "^4.1.2",
45
- "@jskit-ai/http-runtime": "0.1.175",
45
+ "@jskit-ai/http-runtime": "0.1.177",
46
46
  "@mdi/js": "^7.4.47",
47
- "@jskit-ai/shell-web": "0.1.181"
47
+ "@jskit-ai/shell-web": "0.1.183"
48
48
  },
49
49
  "devDependencies": {
50
- "@jskit-ai/agent-docs": "0.1.149",
51
- "@jskit-ai/config-eslint": "0.1.174",
52
- "@jskit-ai/jskit-catalog": "0.1.202",
50
+ "@jskit-ai/config-eslint": "0.1.176",
51
+ "@jskit-ai/jskit-catalog": "0.1.204",
53
52
  "@playwright/test": "1.61.1",
54
53
  "@vitejs/plugin-vue": "^6.0.7",
55
54
  "eslint": "^10.8.0",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "description": "App-local runtime composition and lightweight glue.",
11
11
  "dependencies": {
12
- "@jskit-ai/kernel": "0.1.177"
12
+ "@jskit-ai/kernel": "0.1.179"
13
13
  },
14
14
  "jskit": {
15
15
  "kind": "runtime",
@@ -29,16 +29,9 @@ const healthPending = computed(
29
29
 
30
30
  <template>
31
31
  <section class="home-surface-screen d-flex flex-column ga-4">
32
- <header class="home-surface-screen__header">
33
- <div>
34
- <p class="text-overline text-medium-emphasis mb-1">Home</p>
35
- <h1 class="home-surface-screen__title">Ready</h1>
36
- <p class="text-body-2 text-medium-emphasis mb-0">
37
- Core services are available.
38
- </p>
39
- </div>
32
+ <div class="home-surface-screen__actions">
40
33
  <v-btn color="primary" variant="flat" to="/home/settings/general">Settings</v-btn>
41
- </header>
34
+ </div>
42
35
 
43
36
  <v-sheet rounded="lg" border class="home-surface-screen__panel">
44
37
  <div class="home-surface-screen__status">
@@ -62,23 +55,12 @@ const healthPending = computed(
62
55
 
63
56
  <style scoped>
64
57
  .home-surface-screen {
65
- --home-surface-title-size: 2rem;
66
58
  --home-surface-panel-padding: 1rem;
67
59
  }
68
60
 
69
- .home-surface-screen__header {
70
- align-items: flex-start;
61
+ .home-surface-screen__actions {
71
62
  display: flex;
72
- gap: 1rem;
73
- justify-content: space-between;
74
- }
75
-
76
- .home-surface-screen__title {
77
- font-size: var(--home-surface-title-size);
78
- font-weight: 700;
79
- letter-spacing: 0;
80
- line-height: 1.1;
81
- margin: 0 0 0.4rem;
63
+ justify-content: flex-end;
82
64
  }
83
65
 
84
66
  .home-surface-screen__panel {
@@ -100,15 +82,7 @@ const healthPending = computed(
100
82
  }
101
83
 
102
84
  @media (max-width: 640px) {
103
- .home-surface-screen {
104
- --home-surface-title-size: 1.5rem;
105
- }
106
-
107
- .home-surface-screen__header {
108
- flex-direction: column;
109
- }
110
-
111
- .home-surface-screen__header :deep(.v-btn) {
85
+ .home-surface-screen__actions :deep(.v-btn) {
112
86
  min-height: 48px;
113
87
  width: 100%;
114
88
  }
@@ -16,12 +16,9 @@ const drawerDefaultOpenModel = computed({
16
16
 
17
17
  <template>
18
18
  <section class="settings-general-screen d-flex flex-column ga-4">
19
- <div>
20
- <h2 class="text-h6 mb-2">Navigation</h2>
21
- <p class="text-body-2 text-medium-emphasis mb-0">
22
- On wider screens, collapsed navigation remains available as a rail. Phone layouts close the drawer and keep primary navigation in the bottom bar.
23
- </p>
24
- </div>
19
+ <p class="text-body-2 text-medium-emphasis mb-0">
20
+ On wider screens, collapsed navigation remains available as a rail. Phone layouts close the drawer and keep primary navigation in the bottom bar.
21
+ </p>
25
22
 
26
23
  <v-switch
27
24
  v-model="drawerDefaultOpenModel"
@@ -5,12 +5,6 @@ import { RouterView } from "vue-router";
5
5
 
6
6
  <template>
7
7
  <section class="settings-shell d-flex flex-column ga-4">
8
- <header>
9
- <p class="text-overline text-medium-emphasis mb-1">Settings</p>
10
- <h1 class="settings-shell__title">Home settings</h1>
11
- <p class="text-body-2 text-medium-emphasis mb-0">Configure shell behavior for this surface.</p>
12
- </header>
13
-
14
8
  <v-sheet rounded="lg" border class="settings-shell__panel">
15
9
  <div class="settings-shell__body">
16
10
  <nav class="settings-shell__nav" aria-label="Home settings sections">
@@ -29,18 +23,9 @@ import { RouterView } from "vue-router";
29
23
 
30
24
  <style scoped>
31
25
  .settings-shell {
32
- --settings-title-size: 1.85rem;
33
26
  --settings-panel-padding: 1rem;
34
27
  }
35
28
 
36
- .settings-shell__title {
37
- font-size: var(--settings-title-size);
38
- font-weight: 650;
39
- letter-spacing: 0;
40
- line-height: 1.15;
41
- margin: 0 0 0.35rem;
42
- }
43
-
44
29
  .settings-shell__panel {
45
30
  overflow: hidden;
46
31
  }
@@ -81,10 +66,6 @@ import { RouterView } from "vue-router";
81
66
  }
82
67
 
83
68
  @media (max-width: 960px) {
84
- .settings-shell {
85
- --settings-title-size: 1.35rem;
86
- }
87
-
88
69
  .settings-shell__body {
89
70
  grid-template-columns: 1fr;
90
71
  }
@@ -11,7 +11,7 @@ test.describe("application responsive smoke", () => {
11
11
  test(`${viewport.name} home route renders without horizontal overflow`, async ({ page }) => {
12
12
  await page.setViewportSize(viewport);
13
13
  await page.goto("/home");
14
- await expect(page.getByRole("heading", { name: "Ready" })).toBeVisible();
14
+ await expect(page.getByText("Service health")).toBeVisible();
15
15
 
16
16
  const dimensions = await page.evaluate(() => ({
17
17
  clientWidth: document.documentElement.clientWidth,
@@ -12,6 +12,8 @@ and action UI.
12
12
  - Compact interactive targets are at least 48 CSS pixels.
13
13
  - Navigation uses semantic placements and explicit navigation roles.
14
14
  - Pages do not stack decorative cards inside structural cards.
15
+ - Pages do not include a header, title block, welcome heading, or standalone
16
+ heading copy unless the user explicitly requests one.
15
17
  - Shared screens own repeated chrome; app pages own product fields and domain
16
18
  sections.
17
19
 
@@ -53,7 +53,7 @@ import { loginAsExistingUser } from "@jskit-ai/auth-web/test/playwright";
53
53
  test("authenticated feature", async ({ page }) => {
54
54
  await loginAsExistingUser(page, { email: "ada@example.com" });
55
55
  await page.goto("/w/acme/admin/contacts");
56
- await expect(page.getByRole("heading", { name: "Contacts" })).toBeVisible();
56
+ await expect(page.getByRole("button", { name: "Add contact" })).toBeVisible();
57
57
  });
58
58
  ```
59
59
 
@@ -7,7 +7,7 @@ Patterns are ordinary package-owned Markdown and example files. Read the matchin
7
7
 
8
8
  Do not create or consult receipts recording that a pattern was used. Current source and verification are the evidence.
9
9
 
10
- Resolve an installed pattern from the project root as `node_modules/<package-id>/<document-path>`. Example files are beside it under the listed example path.
10
+ This documentation artifact contains a version-matched copy of every listed pattern and example. Runtime packages remain separate dependencies and should be installed only when the application selects them.
11
11
 
12
12
  ## Minimal JSKIT application foundation
13
13
 
@@ -15,9 +15,9 @@ A concrete Fastify, Vue, and JSKIT application foundation for products that do n
15
15
 
16
16
  - Id: `app/minimal-foundation`
17
17
  - Keywords: `app`, `fastify`, `foundation`, `minimal`, `server`, `vite`, `vue`
18
- - Owner: `@jskit-ai/agent-docs@0.1.149`
19
- - Read: `node_modules/@jskit-ai/agent-docs/patterns/minimal-foundation/PATTERN.md`
20
- - Examples: `node_modules/@jskit-ai/agent-docs/patterns/minimal-foundation/example/`
18
+ - Owner: `@jskit-ai/agent-docs@0.1.151`
19
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md)
20
+ - Examples: [example/](../../skills/jskit/references/patterns/app/minimal-foundation/example/)
21
21
  - Requires: `@jskit-ai/http-runtime`, `@jskit-ai/kernel`
22
22
 
23
23
  ## Adaptive-shell JSKIT application foundation
@@ -26,9 +26,9 @@ A concrete JSKIT web application foundation with responsive shell navigation, se
26
26
 
27
27
  - Id: `app/shell-foundation`
28
28
  - Keywords: `app`, `foundation`, `material`, `navigation`, `placements`, `shell`, `vite`, `vue`
29
- - Owner: `@jskit-ai/agent-docs@0.1.149`
30
- - Read: `node_modules/@jskit-ai/agent-docs/patterns/shell-foundation/PATTERN.md`
31
- - Examples: `node_modules/@jskit-ai/agent-docs/patterns/shell-foundation/example/`
29
+ - Owner: `@jskit-ai/agent-docs@0.1.151`
30
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/app/shell-foundation/PATTERN.md)
31
+ - Examples: [example/](../../skills/jskit/references/patterns/app/shell-foundation/example/)
32
32
  - Requires: `@jskit-ai/http-runtime`, `@jskit-ai/kernel`, `@jskit-ai/shell-web`
33
33
 
34
34
  ## Assistant surface and settings
@@ -37,9 +37,9 @@ Configure an assistant runtime for one application surface and expose its chat a
37
37
 
38
38
  - Id: `assistant/assistant-surface`
39
39
  - Keywords: `ai`, `assistant`, `chat`, `config`, `environment`, `page`, `placement`, `settings`, `surface`
40
- - Owner: `@jskit-ai/assistant-runtime@0.1.148`
41
- - Read: `node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/PATTERN.md`
42
- - Examples: `node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/example/`
40
+ - Owner: `@jskit-ai/assistant-runtime@0.1.150`
41
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/assistant/assistant-surface/PATTERN.md)
42
+ - Examples: [example/](../../skills/jskit/references/patterns/assistant/assistant-surface/example/)
43
43
  - Requires: `@jskit-ai/assistant-runtime`, `@jskit-ai/shell-web`
44
44
 
45
45
  ## Authentication surface
@@ -48,9 +48,9 @@ Compose JSKIT authentication routes, views, profile controls, and public surface
48
48
 
49
49
  - Id: `auth/auth-surface`
50
50
  - Keywords: `account`, `auth`, `login`, `logout`, `password`, `placement`, `profile`, `reset`, `surface`
51
- - Owner: `@jskit-ai/auth-web@0.1.177`
52
- - Read: `node_modules/@jskit-ai/auth-web/patterns/auth-surface/PATTERN.md`
53
- - Examples: `node_modules/@jskit-ai/auth-web/patterns/auth-surface/example/`
51
+ - Owner: `@jskit-ai/auth-web@0.1.179`
52
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/auth-surface/PATTERN.md)
53
+ - Examples: [example/](../../skills/jskit/references/patterns/auth/auth-surface/example/)
54
54
  - Requires: `@jskit-ai/auth-core`, `@jskit-ai/auth-web`, `@jskit-ai/shell-web`
55
55
 
56
56
  ## Supabase authentication
@@ -59,9 +59,9 @@ Add Supabase authentication through normal npm composition, explicit environment
59
59
 
60
60
  - Id: `auth/supabase-auth`
61
61
  - Keywords: `auth`, `authentication`, `oauth`, `sessions`, `supabase`
62
- - Owner: `@jskit-ai/auth-provider-supabase-core@0.1.174`
63
- - Read: `node_modules/@jskit-ai/auth-provider-supabase-core/patterns/supabase-auth/PATTERN.md`
64
- - Examples: `node_modules/@jskit-ai/auth-provider-supabase-core/patterns/supabase-auth/example/`
62
+ - Owner: `@jskit-ai/auth-provider-supabase-core@0.1.176`
63
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/auth/supabase-auth/PATTERN.md)
64
+ - Examples: [example/](../../skills/jskit/references/patterns/auth/supabase-auth/example/)
65
65
  - Requires: `@jskit-ai/auth-provider-supabase-core`
66
66
 
67
67
  ## Owner console surface
@@ -70,9 +70,9 @@ Add a protected administration surface, settings shell, and semantic navigation
70
70
 
71
71
  - Id: `console/console-surface`
72
72
  - Keywords: `admin`, `console`, `navigation`, `owner`, `placement`, `settings`, `surface`
73
- - Owner: `@jskit-ai/console-web@0.1.145`
74
- - Read: `node_modules/@jskit-ai/console-web/patterns/console-surface/PATTERN.md`
75
- - Examples: `node_modules/@jskit-ai/console-web/patterns/console-surface/example/`
73
+ - Owner: `@jskit-ai/console-web@0.1.147`
74
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/console/console-surface/PATTERN.md)
75
+ - Examples: [example/](../../skills/jskit/references/patterns/console/console-surface/example/)
76
76
  - Requires: `@jskit-ai/console-core`, `@jskit-ai/console-web`, `@jskit-ai/shell-web`
77
77
 
78
78
  ## CRUD list, view, create, and edit screens
@@ -81,9 +81,9 @@ Build a routed CRUD user interface as thin application pages over JSKIT's shared
81
81
 
82
82
  - Id: `crud/crud-screen-set`
83
83
  - Keywords: `actions`, `add`, `crud`, `delete`, `edit`, `filters`, `list`, `material`, `routes`, `view`, `vue`
84
- - Owner: `@jskit-ai/http-web@0.1.22`
85
- - Read: `node_modules/@jskit-ai/http-web/patterns/crud-screen-set/PATTERN.md`
86
- - Examples: `node_modules/@jskit-ai/http-web/patterns/crud-screen-set/example/`
84
+ - Owner: `@jskit-ai/http-web@0.1.24`
85
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/crud-screen-set/PATTERN.md)
86
+ - Examples: [example/](../../skills/jskit/references/patterns/crud/crud-screen-set/example/)
87
87
  - Requires: `@jskit-ai/http-web`, `@jskit-ai/resource-crud-core`
88
88
 
89
89
  ## JSON API CRUD resource package
@@ -92,9 +92,9 @@ Build a complete application-owned CRUD server package from a migration, resourc
92
92
 
93
93
  - Id: `crud/json-api-resource-package`
94
94
  - Keywords: `actions`, `crud`, `database`, `json-api`, `migration`, `permissions`, `provider`, `repository`, `routes`, `service`
95
- - Owner: `@jskit-ai/crud-core@0.1.188`
96
- - Read: `node_modules/@jskit-ai/crud-core/patterns/json-api-resource-package/PATTERN.md`
97
- - Examples: `node_modules/@jskit-ai/crud-core/patterns/json-api-resource-package/example/`
95
+ - Owner: `@jskit-ai/crud-core@0.1.190`
96
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md)
97
+ - Examples: [example/](../../skills/jskit/references/patterns/crud/json-api-resource-package/example/)
98
98
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/resource-crud-core`
99
99
 
100
100
  ## Owner-scoped CRUD resource contract
@@ -103,9 +103,9 @@ Define an authenticated application resource whose records belong to the current
103
103
 
104
104
  - Id: `crud/resource-contract`
105
105
  - Keywords: `authenticated`, `crud`, `database`, `owner-scoped`, `resource`, `user`
106
- - Owner: `@jskit-ai/resource-crud-core@0.1.119`
107
- - Read: `node_modules/@jskit-ai/resource-crud-core/patterns/resource-contract/PATTERN.md`
108
- - Examples: `node_modules/@jskit-ai/resource-crud-core/patterns/resource-contract/example/`
106
+ - Owner: `@jskit-ai/resource-crud-core@0.1.121`
107
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/crud/resource-contract/PATTERN.md)
108
+ - Examples: [example/](../../skills/jskit/references/patterns/crud/resource-contract/example/)
109
109
  - Requires: `@jskit-ai/resource-crud-core`
110
110
 
111
111
  ## MySQL application database
@@ -114,9 +114,9 @@ Configure a JSKIT application for MySQL with a fixed driver, ordinary environmen
114
114
 
115
115
  - Id: `database/mysql-application`
116
116
  - Keywords: `database`, `knex`, `mariadb`, `migrations`, `mysql`, `mysql2`
117
- - Owner: `@jskit-ai/database-runtime-mysql@0.1.175`
118
- - Read: `node_modules/@jskit-ai/database-runtime-mysql/patterns/mysql-application/PATTERN.md`
119
- - Examples: `node_modules/@jskit-ai/database-runtime-mysql/patterns/mysql-application/example/`
117
+ - Owner: `@jskit-ai/database-runtime-mysql@0.1.177`
118
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/database/mysql-application/PATTERN.md)
119
+ - Examples: [example/](../../skills/jskit/references/patterns/database/mysql-application/example/)
120
120
  - Requires: `@jskit-ai/database-runtime-mysql`
121
121
 
122
122
  ## PostgreSQL application database
@@ -125,9 +125,9 @@ Configure a JSKIT application for PostgreSQL with a fixed driver, ordinary envir
125
125
 
126
126
  - Id: `database/postgres-application`
127
127
  - Keywords: `database`, `knex`, `migrations`, `pg`, `postgres`, `postgresql`
128
- - Owner: `@jskit-ai/database-runtime-postgres@0.1.174`
129
- - Read: `node_modules/@jskit-ai/database-runtime-postgres/patterns/postgres-application/PATTERN.md`
130
- - Examples: `node_modules/@jskit-ai/database-runtime-postgres/patterns/postgres-application/example/`
128
+ - Owner: `@jskit-ai/database-runtime-postgres@0.1.176`
129
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/database/postgres-application/PATTERN.md)
130
+ - Examples: [example/](../../skills/jskit/references/patterns/database/postgres-application/example/)
131
131
  - Requires: `@jskit-ai/database-runtime-postgres`
132
132
 
133
133
  ## Capacitor Android application
@@ -136,9 +136,9 @@ Wrap a JSKIT web application in a Capacitor Android shell using native Capacitor
136
136
 
137
137
  - Id: `mobile/android-application`
138
138
  - Keywords: `android`, `capacitor`, `device`, `mobile`, `native`, `shell`, `webview`
139
- - Owner: `@jskit-ai/mobile-capacitor@0.1.112`
140
- - Read: `node_modules/@jskit-ai/mobile-capacitor/patterns/android-application/PATTERN.md`
141
- - Examples: `node_modules/@jskit-ai/mobile-capacitor/patterns/android-application/example/`
139
+ - Owner: `@jskit-ai/mobile-capacitor@0.1.114`
140
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/mobile/android-application/PATTERN.md)
141
+ - Examples: [example/](../../skills/jskit/references/patterns/mobile/android-application/example/)
142
142
  - Requires: `@capacitor/android`, `@capacitor/app`, `@capacitor/cli`, `@jskit-ai/mobile-capacitor`
143
143
 
144
144
  ## Realtime application
@@ -147,9 +147,9 @@ Add JSKIT realtime events with an optional Redis backplane and an explicit shell
147
147
 
148
148
  - Id: `realtime/realtime-application`
149
149
  - Keywords: `realtime`, `redis`, `socket.io`, `sockets`, `status`, `websocket`
150
- - Owner: `@jskit-ai/realtime@0.1.174`
151
- - Read: `node_modules/@jskit-ai/realtime/patterns/realtime-application/PATTERN.md`
152
- - Examples: `node_modules/@jskit-ai/realtime/patterns/realtime-application/example/`
150
+ - Owner: `@jskit-ai/realtime@0.1.176`
151
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/realtime/realtime-application/PATTERN.md)
152
+ - Examples: [example/](../../skills/jskit/references/patterns/realtime/realtime-application/example/)
153
153
  - Requires: `@jskit-ai/realtime`, `@jskit-ai/shell-web`
154
154
 
155
155
  ## App-local server feature package
@@ -158,9 +158,9 @@ Define a server feature through explicit capabilities and first-class actions, a
158
158
 
159
159
  - Id: `server/feature-package`
160
160
  - Keywords: `actions`, `feature`, `json-rest`, `knex`, `orchestration`, `package`, `provider`, `repository`, `routes`, `server`
161
- - Owner: `@jskit-ai/agent-docs@0.1.149`
162
- - Read: `node_modules/@jskit-ai/agent-docs/patterns/feature-package/PATTERN.md`
163
- - Examples: `node_modules/@jskit-ai/agent-docs/patterns/feature-package/example/`
161
+ - Owner: `@jskit-ai/agent-docs@0.1.151`
162
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/server/feature-package/PATTERN.md)
163
+ - Examples: [example/](../../skills/jskit/references/patterns/server/feature-package/example/)
164
164
  - Requires: `@jskit-ai/kernel`
165
165
 
166
166
  ## Responsive application shell
@@ -169,9 +169,9 @@ Compose the JSKIT responsive shell, semantic placements, settings navigation, an
169
169
 
170
170
  - Id: `shell/application-shell`
171
171
  - Keywords: `adaptive`, `app`, `layout`, `navigation`, `placement`, `responsive`, `settings`, `shell`
172
- - Owner: `@jskit-ai/shell-web@0.1.181`
173
- - Read: `node_modules/@jskit-ai/shell-web/patterns/application-shell/PATTERN.md`
174
- - Examples: `node_modules/@jskit-ai/shell-web/patterns/application-shell/example/`
172
+ - Owner: `@jskit-ai/shell-web@0.1.183`
173
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/shell/application-shell/PATTERN.md)
174
+ - Examples: [example/](../../skills/jskit/references/patterns/shell/application-shell/example/)
175
175
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
176
176
 
177
177
  ## Routed page, section navigation, and placed element
@@ -180,9 +180,9 @@ Add product routes and shell extensions through file routing, semantic placement
180
180
 
181
181
  - Id: `ui/page-and-placement`
182
182
  - Keywords: `component`, `navigation`, `outlet`, `page`, `placement`, `routes`, `section`, `shell`, `subpages`, `vue`
183
- - Owner: `@jskit-ai/shell-web@0.1.181`
184
- - Read: `node_modules/@jskit-ai/shell-web/patterns/page-and-placement/PATTERN.md`
185
- - Examples: `node_modules/@jskit-ai/shell-web/patterns/page-and-placement/example/`
183
+ - Owner: `@jskit-ai/shell-web@0.1.183`
184
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/ui/page-and-placement/PATTERN.md)
185
+ - Examples: [example/](../../skills/jskit/references/patterns/ui/page-and-placement/example/)
186
186
  - Requires: `@jskit-ai/kernel`, `@jskit-ai/shell-web`
187
187
 
188
188
  ## Account settings surface
@@ -191,9 +191,9 @@ Compose an account settings route and profile, preference, and notification sect
191
191
 
192
192
  - Id: `users/account-settings`
193
193
  - Keywords: `account`, `notifications`, `preferences`, `profile`, `settings`, `user`, `vue`
194
- - Owner: `@jskit-ai/users-web@0.1.195`
195
- - Read: `node_modules/@jskit-ai/users-web/patterns/account-settings/PATTERN.md`
196
- - Examples: `node_modules/@jskit-ai/users-web/patterns/account-settings/example/`
194
+ - Owner: `@jskit-ai/users-web@0.1.197`
195
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/users/account-settings/PATTERN.md)
196
+ - Examples: [example/](../../skills/jskit/references/patterns/users/account-settings/example/)
197
197
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/users-core`, `@jskit-ai/users-web`
198
198
 
199
199
  ## User administration server package
@@ -202,9 +202,9 @@ Expose user administration and workspace-scoped member operations through app-ow
202
202
 
203
203
  - Id: `users/user-administration-server`
204
204
  - Keywords: `account`, `admin`, `member`, `repository`, `resource`, `routes`, `service`, `user`, `workspace`
205
- - Owner: `@jskit-ai/users-core@0.1.190`
206
- - Read: `node_modules/@jskit-ai/users-core/patterns/user-administration-server/PATTERN.md`
207
- - Examples: `node_modules/@jskit-ai/users-core/patterns/user-administration-server/example/`
205
+ - Owner: `@jskit-ai/users-core@0.1.192`
206
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/users/user-administration-server/PATTERN.md)
207
+ - Examples: [example/](../../skills/jskit/references/patterns/users/user-administration-server/example/)
208
208
  - Requires: `@jskit-ai/crud-core`, `@jskit-ai/users-core`
209
209
 
210
210
  ## Workspace tenancy server composition
@@ -213,9 +213,9 @@ Configure roles, workspace access policy, invitations, and app-owned invitation
213
213
 
214
214
  - Id: `workspaces/workspace-server`
215
215
  - Keywords: `access`, `invite`, `membership`, `multitenancy`, `policy`, `role`, `tenancy`, `workspace`
216
- - Owner: `@jskit-ai/workspaces-core@0.1.155`
217
- - Read: `node_modules/@jskit-ai/workspaces-core/patterns/workspace-server/PATTERN.md`
218
- - Examples: `node_modules/@jskit-ai/workspaces-core/patterns/workspace-server/example/`
216
+ - Owner: `@jskit-ai/workspaces-core@0.1.157`
217
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md)
218
+ - Examples: [example/](../../skills/jskit/references/patterns/workspaces/workspace-server/example/)
219
219
  - Requires: `@jskit-ai/users-core`, `@jskit-ai/workspaces-core`
220
220
 
221
221
  ## Workspace application and administration surfaces
@@ -224,7 +224,7 @@ Compose workspace selection, invitation, member administration, settings, and re
224
224
 
225
225
  - Id: `workspaces/workspace-surfaces`
226
226
  - Keywords: `admin`, `invite`, `member`, `navigation`, `settings`, `surface`, `switcher`, `workspace`
227
- - Owner: `@jskit-ai/workspaces-web@0.1.156`
228
- - Read: `node_modules/@jskit-ai/workspaces-web/patterns/workspace-surfaces/PATTERN.md`
229
- - Examples: `node_modules/@jskit-ai/workspaces-web/patterns/workspace-surfaces/example/`
227
+ - Owner: `@jskit-ai/workspaces-web@0.1.158`
228
+ - Read: [PATTERN.md](../../skills/jskit/references/patterns/workspaces/workspace-surfaces/PATTERN.md)
229
+ - Examples: [example/](../../skills/jskit/references/patterns/workspaces/workspace-surfaces/example/)
230
230
  - Requires: `@jskit-ai/shell-web`, `@jskit-ai/workspaces-core`, `@jskit-ai/workspaces-web`
@@ -11,11 +11,14 @@ belongs to the application immediately.
11
11
 
12
12
  ## Pattern-first implementation
13
13
 
14
- Search [the generated source pattern index](references/pattern-index.md)
15
- for the requested outcome before reading broad operational guidance or
16
- inventing a local structure. Read a selected package's `PATTERN.md` completely,
17
- then use its example directly, adapt it, compose compatible patterns, or treat
18
- it as evidence for a different implementation through the same public APIs.
14
+ Search [the bundled source pattern index](references/pattern-index.md) for the
15
+ requested outcome before reading broad operational guidance or inventing a
16
+ local structure. It contains every indexed `PATTERN.md` and complete example
17
+ tree; do not install a runtime package merely to read them. Read the selected
18
+ pattern completely, then use its example directly, adapt it, compose compatible
19
+ patterns, or treat it as evidence for a different implementation through the
20
+ same public APIs. If its owner runtime package is already installed at a
21
+ different version, prefer that package's version-matched pattern.
19
22
 
20
23
  Do not write or consult receipts, provenance, completion ledgers, or other
21
24
  durable bookkeeping for pattern or authoring-tool runs. Current source,
@@ -1,6 +1,8 @@
1
+ <!-- Generated from `packages/agent-docs/site/guide/framework/application-operations.md` by `npm run agent-docs:build`. -->
2
+
1
3
  # Application operations
2
4
 
3
- Read this for establishing an application foundation, selecting package
5
+ Use this for establishing an application foundation, selecting package
4
6
  capabilities, and realizing product features from JSKIT patterns.
5
7
 
6
8
  ## Establish a new application
@@ -10,11 +12,10 @@ request, current source, and ordinary project documentation. Ask the user for
10
12
  any material missing product decision before writing application source. Do
11
13
  not run a JSKIT questionnaire and do not create a temporary scaffold app.
12
14
 
13
- Read the generated pattern index:
14
-
15
- ```text
16
- node_modules/@jskit-ai/agent-docs/reference/autogen/PATTERN_INDEX.md
17
- ```
15
+ Read the [bundled source pattern index](pattern-index.md). When the optional standalone
16
+ JSKIT Agent Skill is installed, its pattern index contains the same
17
+ version-matched pattern documents and examples. Do not install a runtime
18
+ package only to read its documentation.
18
19
 
19
20
  For a browser product, inspect one foundation:
20
21
 
@@ -74,11 +75,11 @@ mark a resource valid because a generator once wrote it.
74
75
 
75
76
  ## Verify current state
76
77
 
77
- Run verification against source, package graph, migrations, and
78
- runtime behavior. Runtime startup owns the capability/provider graph,
79
- loadability, ids, environment, and configuration. Builds own client imports;
80
- migration status and disposable rebuilds own schema state. App lint, tests,
81
- audit, browser checks, and CI own security, runtimes, and behavior.
78
+ Run verification against source, package graph, migrations, and runtime
79
+ behavior. Runtime startup owns the capability/provider graph, loadability,
80
+ ids, environment, and configuration. Builds own client imports; migration
81
+ status and disposable rebuilds own schema state. App lint, tests, audit,
82
+ browser checks, and CI own security, runtimes, and behavior.
82
83
 
83
84
  There is no supported `jskit doctor` command. Old CLI authoring-history
84
85
  warnings do not describe AI-first apps. Diagnose current contracts; never add
@@ -1,3 +1,5 @@
1
+ <!-- Generated from `packages/agent-docs/site/guide/framework/crud-operations.md` by `npm run agent-docs:build`. -->
2
+
1
3
  # CRUD operations
2
4
 
3
5
  Read this before database, schema, CRUD, repository, or persistence work.
@@ -5,12 +7,12 @@ Read this before database, schema, CRUD, repository, or persistence work.
5
7
  ## Establish the product contract
6
8
 
7
9
  Take database, surface, access, ownership, operations, and fields from product
8
- intent and current source. Ask when a material choice is missing. Do not translate the work into generator options.
10
+ intent and current source. Ask when a material choice is missing. Do not
11
+ translate the work into generator options.
9
12
 
10
- Read the narrow package-owned pattern from the generated index:
11
- `crud/resource-contract` for the resource, `crud/json-api-resource-package` for
12
- the server, and `crud/crud-screen-set` for routed UI. Child-resource and
13
- row-policy patterns own those variations.
13
+ Read the narrow package-owned pattern in the [bundled source pattern index](pattern-index.md): `crud/resource-contract` for the resource,
14
+ `crud/json-api-resource-package` for the server, and `crud/crud-screen-set`
15
+ for routed UI. Child-resource and row-policy patterns own those variations.
14
16
 
15
17
  Normal CRUD tables use one non-null integer primary key. Foreign keys are
16
18
  single-column; composite unique indexes are business constraints, not
@@ -65,7 +67,9 @@ Honor `temporalPrecision`; repositories return strict strings.
65
67
 
66
68
  ## Migration ownership
67
69
 
68
- Migrations are immutable application source owned with their resource. Never make a live table or a generator the sole source of truth. Schema inspection is for adoption and diagnosis, not compulsory authoring.
70
+ Migrations are immutable application source owned with their resource. Never
71
+ make a live table or a generator the sole source of truth. Schema inspection
72
+ is for adoption and diagnosis, not compulsory authoring.
69
73
 
70
74
  Before sign-off, rebuild from zero in a fresh disposable database, compare the
71
75
  schema, test ownership boundaries and failure cases, and run current-state