@jskit-ai/agent-docs 0.1.149 → 0.1.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/guide/agent/app-setup/existing-application-migration.md +8 -6
- package/guide/agent/app-setup/initial-scaffolding.md +9 -7
- package/guide/agent/app-setup/quickstart.md +9 -6
- package/guide/agent/framework/application-operations.md +91 -0
- package/guide/agent/framework/crud-operations.md +83 -0
- package/guide/agent/framework/material-3.md +112 -0
- package/guide/agent/framework/ui-operations.md +78 -0
- package/guide/agent/index.md +13 -3
- package/package.json +1 -1
- package/patterns/feature-package/example/booking-engine/package.json +1 -1
- package/patterns/minimal-foundation/example/AGENTS.md +8 -8
- package/patterns/minimal-foundation/example/package.json +4 -5
- package/patterns/shell-foundation/example/AGENTS.md +8 -8
- package/patterns/shell-foundation/example/package.json +5 -6
- package/patterns/shell-foundation/example/packages/main/package.json +1 -1
- package/reference/autogen/PATTERN_INDEX.md +61 -61
- package/skills/jskit/SKILL.md +8 -5
- package/skills/jskit/references/app-operations.md +12 -11
- package/skills/jskit/references/crud-operations.md +10 -6
- package/skills/jskit/references/existing-application-migration.md +9 -12
- package/skills/jskit/references/material-3.md +2 -0
- package/skills/jskit/references/pattern-index.md +61 -61
- package/skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md +105 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/.nvmrc +1 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/AGENTS.md +17 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/Procfile +2 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/app.json +14 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/develop.js +71 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/server.js +8 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/config/public.js +40 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/config/server.js +1 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/config/surfaceAccessPolicies.js +3 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/eslint.config.mjs +19 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/favicon.svg +7 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/gitignore +9 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/index.html +13 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/jsconfig.json +8 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +62 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/packages/main/package.json +42 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/packages/main/src/shared/index.js +10 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/packages/main/src/shared/schemas/index.js +22 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/playwright.config.mjs +31 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/runtimeEnv.js +45 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/surfaceRuntime.js +10 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server.js +195 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/src/App.vue +13 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/src/main.js +85 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/src/pages/home/index.vue +48 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/src/pages/home.vue +13 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/src/views/NotFound.vue +13 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/client/smoke.vitest.js +7 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/e2e/base-shell.spec.ts +23 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/server/smoke.test.js +16 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/vite.config.mjs +80 -0
- package/skills/jskit/references/patterns/app/shell-foundation/PATTERN.md +111 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/.nvmrc +1 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/AGENTS.md +17 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/Procfile +2 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/app.json +14 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/bin/develop.js +71 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/bin/server.js +8 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/config/public.js +40 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/config/server.js +1 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/config/surfaceAccessPolicies.js +3 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/eslint.config.mjs +19 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/favicon.svg +7 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/gitignore +9 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/index.html +13 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/jsconfig.json +8 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +64 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +56 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/index.js +9 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +18 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/shared/index.js +10 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/shared/schemas/index.js +22 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/playwright.config.mjs +31 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/runtimeEnv.js +45 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/surfaceRuntime.js +10 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/server.js +195 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/App.vue +11 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/ShellLayout.vue +12 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/menus/MenuLinkItem.vue +30 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/menus/SurfaceAwareMenuLinkItem.vue +42 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/menus/TabLinkItem.vue +42 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/error.js +19 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/main.js +85 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/index.vue +116 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings/general/index.vue +40 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings/index.vue +7 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings.vue +109 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home.vue +20 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/placement.js +56 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/placementTopology.js +149 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/src/views/NotFound.vue +13 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/tests/client/smoke.vitest.js +7 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/tests/e2e/adaptive-shell.spec.ts +10 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/tests/e2e/base-shell.spec.ts +23 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/tests/server/smoke.test.js +16 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/vite.config.mjs +80 -0
- package/skills/jskit/references/patterns/assistant/assistant-surface/PATTERN.md +77 -0
- package/skills/jskit/references/patterns/assistant/assistant-surface/example/config/public.js +19 -0
- package/skills/jskit/references/patterns/assistant/assistant-surface/example/config/server.js +9 -0
- package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/pages/admin/assistant/index.vue +7 -0
- package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/pages/admin/settings/assistant/index.vue +7 -0
- package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/placement.js +38 -0
- package/skills/jskit/references/patterns/auth/auth-surface/PATTERN.md +90 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/src/pages/auth/login.vue +17 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/src/pages/auth/reset-password.vue +17 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/src/pages/auth/signout.vue +17 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/src/runtime/authGuardRuntime.js +7 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/src/runtime/authHttpClient.js +1 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/src/runtime/useSignOut.js +1 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/src/views/auth/LoginView.vue +7 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/src/views/auth/ResetPasswordView.vue +7 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/src/views/auth/SignOutView.vue +7 -0
- package/skills/jskit/references/patterns/auth/auth-surface/example/tools/preview-identity +5 -0
- package/skills/jskit/references/patterns/auth/supabase-auth/PATTERN.md +67 -0
- package/skills/jskit/references/patterns/auth/supabase-auth/example/.env.example +4 -0
- package/skills/jskit/references/patterns/auth/supabase-auth/example/config/server.js +11 -0
- package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +7 -0
- package/skills/jskit/references/patterns/console/console-surface/PATTERN.md +58 -0
- package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console/index.vue +62 -0
- package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console/settings/index.vue +17 -0
- package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console/settings.vue +95 -0
- package/skills/jskit/references/patterns/console/console-surface/example/src/pages/console.vue +20 -0
- package/skills/jskit/references/patterns/crud/crud-screen-set/PATTERN.md +88 -0
- package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookEditPage.vue +54 -0
- package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookFormFields.vue +52 -0
- package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookListPage.vue +54 -0
- package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookNewPage.vue +45 -0
- package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/BookViewPage.vue +50 -0
- package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/formFields.js +31 -0
- package/skills/jskit/references/patterns/crud/crud-screen-set/example/books/listExtensions.js +9 -0
- package/skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md +160 -0
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/migrations/20260815000000_books.cjs +22 -0
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +41 -0
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/server/BooksFeature.js +13 -0
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/shared/bookResource.js +83 -0
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/shared/index.js +1 -0
- package/skills/jskit/references/patterns/crud/resource-contract/PATTERN.md +102 -0
- package/skills/jskit/references/patterns/crud/resource-contract/example/bookResource.js +87 -0
- package/skills/jskit/references/patterns/database/mysql-application/PATTERN.md +80 -0
- package/skills/jskit/references/patterns/database/mysql-application/example/.env.example +5 -0
- package/skills/jskit/references/patterns/database/mysql-application/example/.github/workflows/verify.yml +39 -0
- package/skills/jskit/references/patterns/database/mysql-application/example/knexfile.js +11 -0
- package/skills/jskit/references/patterns/database/mysql-application/example/package.json +13 -0
- package/skills/jskit/references/patterns/database/mysql-application/example/scripts/prepare-database.js +3 -0
- package/skills/jskit/references/patterns/database/postgres-application/PATTERN.md +80 -0
- package/skills/jskit/references/patterns/database/postgres-application/example/.env.example +5 -0
- package/skills/jskit/references/patterns/database/postgres-application/example/.github/workflows/verify.yml +38 -0
- package/skills/jskit/references/patterns/database/postgres-application/example/knexfile.js +11 -0
- package/skills/jskit/references/patterns/database/postgres-application/example/package.json +13 -0
- package/skills/jskit/references/patterns/database/postgres-application/example/scripts/prepare-database.js +3 -0
- package/skills/jskit/references/patterns/mobile/android-application/PATTERN.md +71 -0
- package/skills/jskit/references/patterns/mobile/android-application/example/capacitor.config.json +10 -0
- package/skills/jskit/references/patterns/realtime/realtime-application/PATTERN.md +69 -0
- package/skills/jskit/references/patterns/realtime/realtime-application/example/.env.example +1 -0
- package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +8 -0
- package/skills/jskit/references/patterns/realtime/realtime-application/example/src/placement.js +17 -0
- package/skills/jskit/references/patterns/server/feature-package/PATTERN.md +108 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +48 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +33 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/actions.js +26 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/inputSchemas.js +19 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineProvider.js +31 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupProvider.js +36 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/customKnexRepository.js +34 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/orchestratorService.js +23 -0
- package/skills/jskit/references/patterns/shell/application-shell/PATTERN.md +66 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/expected-existing/src/App.vue +13 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/expected-existing/src/pages/home/index.vue +48 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/expected-existing/src/pages/home.vue +13 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/App.vue +11 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/components/ShellLayout.vue +13 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/components/menus/MenuLinkItem.vue +30 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/components/menus/SurfaceAwareMenuLinkItem.vue +42 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/components/menus/TabLinkItem.vue +42 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/error.js +19 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/index.vue +106 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/settings/general/index.vue +40 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/settings/index.vue +7 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/settings.vue +109 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home.vue +20 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/placement.js +56 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/src/placementTopology.js +149 -0
- package/skills/jskit/references/patterns/shell/application-shell/example/tests/e2e/adaptive-shell.spec.ts +10 -0
- package/skills/jskit/references/patterns/ui/page-and-placement/PATTERN.md +76 -0
- package/skills/jskit/references/patterns/ui/page-and-placement/example/packages/main/src/client/providers/MainClientProvider.js +14 -0
- package/skills/jskit/references/patterns/ui/page-and-placement/example/src/components/SyncStatusElement.vue +16 -0
- package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports/activity.vue +8 -0
- package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports/index.vue +7 -0
- package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports/overview.vue +8 -0
- package/skills/jskit/references/patterns/ui/page-and-placement/example/src/pages/home/reports.vue +33 -0
- package/skills/jskit/references/patterns/ui/page-and-placement/example/src/placement.js +52 -0
- package/skills/jskit/references/patterns/ui/page-and-placement/example/src/placementTopology.js +29 -0
- package/skills/jskit/references/patterns/users/account-settings/PATTERN.md +61 -0
- package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsNotificationsSection.vue +81 -0
- package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsPreferencesSection.vue +151 -0
- package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsProfileSection.vue +120 -0
- package/skills/jskit/references/patterns/users/account-settings/example/src/pages/account/index.vue +17 -0
- package/skills/jskit/references/patterns/users/user-administration-server/PATTERN.md +64 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +42 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/server/UsersFeature.js +13 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/shared/index.js +1 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/shared/userResource.js +69 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +43 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/UsersWorkspaceFeature.js +22 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/shared/index.js +1 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/shared/userResource.js +56 -0
- package/skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md +60 -0
- package/skills/jskit/references/patterns/workspaces/workspace-server/example/config/roles.js +27 -0
- package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteEmail.js +23 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/PATTERN.md +63 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/packages/main/src/client/components/AccountPendingInvitesCue.vue +106 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/packages/main/src/client/components/AccountSettingsInvitesSection.vue +7 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/components/WorkspaceNotFoundCard.vue +53 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/composables/useWorkspaceNotFoundState.js +41 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/admin/members/index.vue +7 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/admin/workspace/settings/index.vue +23 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/admin/workspace/settings.vue +95 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/pages/invite/[token].vue +7 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/admin/index.vue +85 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/admin/root.vue +20 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/app/index.vue +46 -0
- package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/surfaces/app/root.vue +20 -0
- package/skills/jskit/references/ui-operations.md +5 -3
- package/templates/app/AGENTS.md +8 -8
|
@@ -50,12 +50,14 @@ generic CRUD merely to make the structure look uniform.
|
|
|
50
50
|
|
|
51
51
|
## 2. Plan one coordinated dependency and capability graph
|
|
52
52
|
|
|
53
|
-
Use the
|
|
54
|
-
smallest complete package set.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
Use the [JSKIT source pattern library](/patterns/) and installed package
|
|
54
|
+
metadata to select the smallest complete package set. Do not install an
|
|
55
|
+
unrelated runtime package only to read its pattern. Plan the top-level
|
|
56
|
+
dependencies and their ordinary npm closure before changing the lockfile, then
|
|
57
|
+
install that planned closure once. Review `package.json` and the lockfile as
|
|
58
|
+
source changes. Adopt the supported package-graph scripts and run `npm run
|
|
59
|
+
jskit:update` before changing application source; see the **Upgrade JSKIT**
|
|
60
|
+
guide in the agent docs.
|
|
59
61
|
The updater aligns root and workspace declarations to one published release
|
|
60
62
|
cohort, installs once at the project root, and verifies the resulting lockfile.
|
|
61
63
|
It does not regenerate or synchronize application source.
|
|
@@ -13,7 +13,8 @@ agent can copy, adapt, compose, or use as evidence.
|
|
|
13
13
|
|
|
14
14
|
## The adaptive-shell foundation
|
|
15
15
|
|
|
16
|
-
`app/shell-foundation` is the normal
|
|
16
|
+
[`app/shell-foundation`](/patterns/app/shell-foundation) is the normal
|
|
17
|
+
browser-product baseline. It includes:
|
|
17
18
|
|
|
18
19
|
- Fastify server and health endpoint
|
|
19
20
|
- Vue/Vite client bootstrap
|
|
@@ -29,15 +30,16 @@ when it is wrong for the product.
|
|
|
29
30
|
|
|
30
31
|
## The minimal foundation
|
|
31
32
|
|
|
32
|
-
`app/minimal-foundation` keeps the same
|
|
33
|
-
does not install the full adaptive shell.
|
|
34
|
-
unusual products, not as a temporary hurdle
|
|
35
|
-
known to be required.
|
|
33
|
+
[`app/minimal-foundation`](/patterns/app/minimal-foundation) keeps the same
|
|
34
|
+
server/client/package boundaries but does not install the full adaptive shell.
|
|
35
|
+
Use it for deliberately small or unusual products, not as a temporary hurdle
|
|
36
|
+
before installing what was already known to be required.
|
|
36
37
|
|
|
37
38
|
## Safe realization inside an existing repository
|
|
38
39
|
|
|
39
|
-
Read the entire selected `PATTERN.md` first.
|
|
40
|
-
|
|
40
|
+
Read the entire selected `PATTERN.md` first. Each public pattern page links its
|
|
41
|
+
complete example source tree. Copy or author files directly in the initialized
|
|
42
|
+
project. Always preserve `.git`; when present, also preserve
|
|
41
43
|
existing project and agent context, including roots such as:
|
|
42
44
|
|
|
43
45
|
```text
|
|
@@ -17,19 +17,22 @@ cd exampleapp
|
|
|
17
17
|
git init -b main
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
normal language. The opening conversation should make the product direction
|
|
20
|
+
Give your agent the [JSKIT framework guide](/guide/) and describe the product
|
|
21
|
+
in normal language. The opening conversation should make the product direction
|
|
22
22
|
and any material technology choice clear. Explicitly choose JSKIT and any
|
|
23
23
|
database integration you actually need. JSKIT does not ask the same questions
|
|
24
|
-
again through a framework questionnaire.
|
|
24
|
+
again through a framework questionnaire. An agent host may offer its own
|
|
25
|
+
optional skills, but JSKIT does not require one.
|
|
25
26
|
|
|
26
27
|
## Select an application foundation
|
|
27
28
|
|
|
28
|
-
The
|
|
29
|
+
The [public source pattern library](/patterns/) exposes two initial
|
|
29
30
|
foundations:
|
|
30
31
|
|
|
31
|
-
- `app/shell-foundation` for the normal
|
|
32
|
-
|
|
32
|
+
- [`app/shell-foundation`](/patterns/app/shell-foundation) for the normal
|
|
33
|
+
responsive application shell
|
|
34
|
+
- [`app/minimal-foundation`](/patterns/app/minimal-foundation) for an
|
|
35
|
+
intentionally smaller foundation
|
|
33
36
|
|
|
34
37
|
The agent reads `PATTERN.md` and its complete `example/` tree. It copies or
|
|
35
38
|
adapts the pattern into this existing repository, preserving `.git` and any
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<!-- Generated by `npm run agent-docs:build` from `packages/agent-docs/site/guide/framework/application-operations.md`. Do not edit manually. -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
title: Application operations
|
|
5
|
+
description: Establish a JSKIT application, select capabilities, and realize product features from source patterns.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Application operations
|
|
9
|
+
|
|
10
|
+
Use this for establishing an application foundation, selecting package
|
|
11
|
+
capabilities, and realizing product features from JSKIT patterns.
|
|
12
|
+
|
|
13
|
+
## Establish a new application
|
|
14
|
+
|
|
15
|
+
Start with an initialized Git repository and a clear product request. Use the
|
|
16
|
+
request, current source, and ordinary project documentation. Ask the user for
|
|
17
|
+
any material missing product decision before writing application source. Do
|
|
18
|
+
not run a JSKIT questionnaire and do not create a temporary scaffold app.
|
|
19
|
+
|
|
20
|
+
Read the [source pattern library](/patterns/). When the optional standalone
|
|
21
|
+
JSKIT Agent Skill is installed, its pattern index contains the same
|
|
22
|
+
version-matched pattern documents and examples. Do not install a runtime
|
|
23
|
+
package only to read its documentation.
|
|
24
|
+
|
|
25
|
+
For a browser product, inspect one foundation:
|
|
26
|
+
|
|
27
|
+
- `app/shell-foundation` for the normal adaptive application shell
|
|
28
|
+
- `app/minimal-foundation` when the product deliberately does not need that
|
|
29
|
+
shell yet
|
|
30
|
+
|
|
31
|
+
Inspect the complete pattern before copying. Copy or author the useful files
|
|
32
|
+
directly into the existing project. Preserve `.git` plus all unrelated project
|
|
33
|
+
and agent context. Resolve every real destination collision explicitly.
|
|
34
|
+
Rename the concrete example application in ordinary source and metadata.
|
|
35
|
+
Retain the foundation's npm workspace declaration. App-local packages use
|
|
36
|
+
their own exact versions in dependency declarations; do not replace them with
|
|
37
|
+
`file:` links.
|
|
38
|
+
|
|
39
|
+
The copied files immediately belong to the application. Do not add pattern
|
|
40
|
+
receipts, generator provenance, completion ledgers, or hidden operation state.
|
|
41
|
+
|
|
42
|
+
## Install and compose capabilities
|
|
43
|
+
|
|
44
|
+
Plan the complete capability set before changing dependencies. Use the package
|
|
45
|
+
catalogue and package-owned patterns to identify the required runtime packages,
|
|
46
|
+
configuration, resources, and public APIs. Add one coherent package closure,
|
|
47
|
+
then run `npm install` once for that planned change.
|
|
48
|
+
|
|
49
|
+
Install the explicitly selected top-level packages through npm. Use one
|
|
50
|
+
installation for the planned closure so npm can resolve their ordinary package
|
|
51
|
+
dependencies together:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm install --save-exact @jskit-ai/<selected-package>@latest [...]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Review the resulting `package.json` and lockfile as ordinary source changes.
|
|
58
|
+
The installed package graph supplies runtime providers, migrations, patterns,
|
|
59
|
+
and public APIs directly; no JSKIT synchronization or mutation command follows
|
|
60
|
+
the npm installation.
|
|
61
|
+
|
|
62
|
+
Do not add auth, users, workspaces, console, sample data, databases, or AI
|
|
63
|
+
capabilities unless the product choice requires them.
|
|
64
|
+
|
|
65
|
+
## Author database-backed CRUD
|
|
66
|
+
|
|
67
|
+
Use a chosen database pattern plus a package-owned CRUD resource pattern. The
|
|
68
|
+
normal order is:
|
|
69
|
+
|
|
70
|
+
1. confirm the product resource, ownership, operations, and fields
|
|
71
|
+
2. author a migration as normal application source
|
|
72
|
+
3. author the shared resource contract through `resource-crud-core`
|
|
73
|
+
4. use framework APIs for standard repository/service/action/route mechanics
|
|
74
|
+
5. author product-specific screens from the relevant UI pattern
|
|
75
|
+
6. run migrations and direct verification
|
|
76
|
+
|
|
77
|
+
The database connection and schema are runtime evidence, not a questionnaire
|
|
78
|
+
that owns source generation. Never patch fields into generated ASTs and never
|
|
79
|
+
mark a resource valid because a generator once wrote it.
|
|
80
|
+
|
|
81
|
+
## Verify current state
|
|
82
|
+
|
|
83
|
+
Run verification against source, package graph, migrations, and runtime
|
|
84
|
+
behavior. Runtime startup owns the capability/provider graph, loadability,
|
|
85
|
+
ids, environment, and configuration. Builds own client imports; migration
|
|
86
|
+
status and disposable rebuilds own schema state. App lint, tests, audit,
|
|
87
|
+
browser checks, and CI own security, runtimes, and behavior.
|
|
88
|
+
|
|
89
|
+
There is no supported `jskit doctor` command. Old CLI authoring-history
|
|
90
|
+
warnings do not describe AI-first apps. Diagnose current contracts; never add
|
|
91
|
+
metadata to satisfy an old tool.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<!-- Generated by `npm run agent-docs:build` from `packages/agent-docs/site/guide/framework/crud-operations.md`. Do not edit manually. -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
title: CRUD operations
|
|
5
|
+
description: Implement JSKIT database resources, repositories, services, actions, and CRUD screens through public framework seams.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# CRUD operations
|
|
9
|
+
|
|
10
|
+
Read this before database, schema, CRUD, repository, or persistence work.
|
|
11
|
+
|
|
12
|
+
## Establish the product contract
|
|
13
|
+
|
|
14
|
+
Take database, surface, access, ownership, operations, and fields from product
|
|
15
|
+
intent and current source. Ask when a material choice is missing. Do not
|
|
16
|
+
translate the work into generator options.
|
|
17
|
+
|
|
18
|
+
Read the narrow package-owned pattern in the [source pattern
|
|
19
|
+
library](/patterns/): `crud/resource-contract` for the resource,
|
|
20
|
+
`crud/json-api-resource-package` for the server, and `crud/crud-screen-set`
|
|
21
|
+
for routed UI. Child-resource and row-policy patterns own those variations.
|
|
22
|
+
|
|
23
|
+
Normal CRUD tables use one non-null integer primary key. Foreign keys are
|
|
24
|
+
single-column; composite unique indexes are business constraints, not
|
|
25
|
+
identities. Only direct `workspace_id` and `user_id` columns imply ownership.
|
|
26
|
+
Match visibility to real ownership and test allowed plus cross-owner cases.
|
|
27
|
+
|
|
28
|
+
## Author the resource normally
|
|
29
|
+
|
|
30
|
+
For a conventional resource:
|
|
31
|
+
|
|
32
|
+
1. Write an immutable app-owned migration.
|
|
33
|
+
2. Define the shared resource contract through `defineCrudResource()`.
|
|
34
|
+
3. Use `defineCrudJsonApiFeature()` for standard repository, service, action,
|
|
35
|
+
permission, resource-host, and route mechanics.
|
|
36
|
+
4. Customize through `decorateRepository`, `decorateService`,
|
|
37
|
+
`operationLifecycle`, and named `actions`; do not copy the standard CRUD
|
|
38
|
+
repository/action/route stack.
|
|
39
|
+
5. Build routed screens from the matching `http-web`/CRUD UI pattern.
|
|
40
|
+
|
|
41
|
+
The resource is canonical for fields, operations, validation, transport,
|
|
42
|
+
messages, and route parameters. Do not duplicate its schema or serializers.
|
|
43
|
+
Prefer `useCrudListScreen()`, `useCrudViewScreen()`, and
|
|
44
|
+
`useCrudAddEditScreen()`; use `useCommand()` or `useEndpointResource()` for
|
|
45
|
+
non-standard operations.
|
|
46
|
+
|
|
47
|
+
Additional resource service methods are normal. Add them with
|
|
48
|
+
`decorateService`; expose commands such as `confirm`, `publish`, or `cancel`
|
|
49
|
+
through named `actions`. With `operationLifecycle`, mutation `before`,
|
|
50
|
+
`execute`, and `after` share one repository transaction, `execute` receives
|
|
51
|
+
`standard(nextInput)`, and `afterCommit` follows commit. Repositories persist;
|
|
52
|
+
services and hooks orchestrate them. Durable external work uses a transactional
|
|
53
|
+
outbox.
|
|
54
|
+
|
|
55
|
+
## Record deletion
|
|
56
|
+
|
|
57
|
+
Deletion requires an explicit shared `DELETE` operation and confirmation
|
|
58
|
+
decision. Use `CrudDeleteAction` and `useCrudDeleteAction()` through the view
|
|
59
|
+
actions slot; do not rebuild their confirmation, request, invalidation, and
|
|
60
|
+
navigation flow.
|
|
61
|
+
|
|
62
|
+
## Strict temporal values
|
|
63
|
+
|
|
64
|
+
With `json-rest-schema` 1.0.17, temporal resource values are strings:
|
|
65
|
+
|
|
66
|
+
- `date`: `YYYY-MM-DD`
|
|
67
|
+
- `time`: offset-free `HH:MM[:SS[.fraction]]`
|
|
68
|
+
- `dateTime`: RFC 3339 with seconds and `Z` or a numeric offset
|
|
69
|
+
|
|
70
|
+
Convert JavaScript `Date` objects at the boundary, normally with
|
|
71
|
+
`toISOString()`. Numeric epochs use `epochMilliseconds` or `epochSeconds`.
|
|
72
|
+
Honor `temporalPrecision`; repositories return strict strings.
|
|
73
|
+
|
|
74
|
+
## Migration ownership
|
|
75
|
+
|
|
76
|
+
Migrations are immutable application source owned with their resource. Never
|
|
77
|
+
make a live table or a generator the sole source of truth. Schema inspection
|
|
78
|
+
is for adoption and diagnosis, not compulsory authoring.
|
|
79
|
+
|
|
80
|
+
Before sign-off, rebuild from zero in a fresh disposable database, compare the
|
|
81
|
+
schema, test ownership boundaries and failure cases, and run current-state
|
|
82
|
+
verification. Do not create a workboard entry, ownership receipt, generation
|
|
83
|
+
record, or historical proof that tooling ran.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<!-- Generated by `npm run agent-docs:build` from `packages/agent-docs/site/guide/framework/material-3.md`. Do not edit manually. -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
title: Material 3
|
|
5
|
+
description: JSKIT's Vue and Vuetify Material 3 implementation and review contract.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Material 3
|
|
9
|
+
|
|
10
|
+
Read completely before any JSKIT Vue/Vuetify UI task.
|
|
11
|
+
|
|
12
|
+
## Authority
|
|
13
|
+
|
|
14
|
+
JSKIT uses Vue and the installed Vuetify 4 release. Material 3 is the UI
|
|
15
|
+
contract; packages, shared screens, placements, shell components, and
|
|
16
|
+
app-owned Vuetify configuration are its implementation seams.
|
|
17
|
+
Use the installed public APIs rather than adding `@material/web`, another UI
|
|
18
|
+
framework, or a parallel theme/component system.
|
|
19
|
+
|
|
20
|
+
The request and Blueprint own brand, content, routes, and behavior. Material 3
|
|
21
|
+
does not authorize a redesign.
|
|
22
|
+
An established JSKIT prop or component wins over generic Material advice.
|
|
23
|
+
|
|
24
|
+
## Implement through owned seams
|
|
25
|
+
|
|
26
|
+
Use this order:
|
|
27
|
+
|
|
28
|
+
1. Reuse the JSKIT package, source pattern, shared screen, shell, placement, or
|
|
29
|
+
high-level composable that owns the behavior.
|
|
30
|
+
2. Use the matching Vuetify component and its public props, variants, slots,
|
|
31
|
+
density, responsive, theme, and accessibility behavior.
|
|
32
|
+
3. Adapt app-owned wrappers or the central `createVuetify(...)` configuration.
|
|
33
|
+
4. Add scoped CSS only for product layout or a documented gap. Never style
|
|
34
|
+
Vuetify internals or duplicate a component system in CSS.
|
|
35
|
+
|
|
36
|
+
Do not replace a shared screen to restyle it. Use its public seams.
|
|
37
|
+
|
|
38
|
+
## Theme and visual hierarchy
|
|
39
|
+
|
|
40
|
+
- Define palettes and theme selection once through the established Vuetify
|
|
41
|
+
bootstrap. Preserve promised light, dark, or system behavior.
|
|
42
|
+
- Prefer semantic roles such as primary, secondary, surface, surface variant,
|
|
43
|
+
on-surface, outline, success, warning, and error. Use Vuetify theme props,
|
|
44
|
+
classes, and `--v-theme-*` variables instead of repeated visual literals.
|
|
45
|
+
- Keep contrast and meaning in every supported theme. Never communicate
|
|
46
|
+
status, selection, validation, or permission through color alone.
|
|
47
|
+
- Use Vuetify 4 Material 3 display, headline, title, body, and label roles. Do
|
|
48
|
+
not recreate the old Material 2 type scale or a page-local typography system.
|
|
49
|
+
- Use Vuetify spacing utilities and established JSKIT dimensions before raw
|
|
50
|
+
values. Preserve JSKIT shell widths, target sizes, and spacing props.
|
|
51
|
+
- Use elevation `0` through `5`, shape props, and component variants instead of
|
|
52
|
+
arbitrary shadows and radii. Prefer a page header and direct `v-sheet` work
|
|
53
|
+
region; add cards or dialogs only for genuinely grouped or elevated objects.
|
|
54
|
+
|
|
55
|
+
## Components, state, and feedback
|
|
56
|
+
|
|
57
|
+
- Choose components by purpose. Prefer standard buttons, fields, lists,
|
|
58
|
+
tables, sheets, dialogs, menus, navigation, progress, alerts, snackbars, and
|
|
59
|
+
tooltips over custom imitations.
|
|
60
|
+
- Give one primary action emphasis. Distinguish destructive, secondary, and
|
|
61
|
+
icon-only actions without relying on color; give icon controls accessible
|
|
62
|
+
names and fields meaningful labels, errors, and autocomplete behavior.
|
|
63
|
+
- Preserve visible focus, logical tab order, keyboard operation, and at least
|
|
64
|
+
48 CSS-pixel interactive targets unless a tested dense operator surface owns
|
|
65
|
+
another contract.
|
|
66
|
+
- Represent loading, empty, error, retry, disabled, selected, hover, focus,
|
|
67
|
+
pressed, and success states through shared JSKIT behavior. All user-visible
|
|
68
|
+
loading uses Material skeletons that reserve the final content geometry;
|
|
69
|
+
never use a generic spinner or circular progress indicator, and never let
|
|
70
|
+
content jump when data arrives. An action without a loading content region
|
|
71
|
+
uses a stable disabled/pending label and shared feedback, not a spinner.
|
|
72
|
+
- Keep failures at their semantic owner. A resource that cannot render uses a
|
|
73
|
+
stable in-page error and retry state; field validation stays beside the
|
|
74
|
+
field. A user-triggered command uses JSKIT's shared action
|
|
75
|
+
feedback/snackbar path. Never insert a transient command-error alert above
|
|
76
|
+
page content where it shifts the working layout.
|
|
77
|
+
- Use established transitions and honor reduced motion. Do not claim
|
|
78
|
+
unsupported Material 3 Expressive parity.
|
|
79
|
+
|
|
80
|
+
## Adaptive layout
|
|
81
|
+
|
|
82
|
+
Start compact, then verify medium and expanded layouts. Use Vuetify display
|
|
83
|
+
APIs and the JSKIT adaptive shell rather than copying breakpoint numbers.
|
|
84
|
+
Keep primary tasks reachable without incidental chrome. Let navigation,
|
|
85
|
+
tables, filters, supporting content, and action groups change presentation;
|
|
86
|
+
do not merely shrink an expanded screen. Prevent overflow, clipped labels,
|
|
87
|
+
overlapping actions, duplicate navigation, and unreachable dialogs. Persist
|
|
88
|
+
screen context in the route when it must survive navigation.
|
|
89
|
+
|
|
90
|
+
## Material 3 audit
|
|
91
|
+
|
|
92
|
+
Run this behavior-preserving audit over every affected screen:
|
|
93
|
+
|
|
94
|
+
1. Identify the owning JSKIT surface, shared screen, shell, placement, theme,
|
|
95
|
+
and Vuetify components before judging local markup.
|
|
96
|
+
2. Find parallel components, duplicated state chrome, page-local themes,
|
|
97
|
+
transient command errors that shift page content, content loaders using
|
|
98
|
+
generic spinners instead of geometry-preserving skeletons, raw visual
|
|
99
|
+
constants, CSS against Vuetify internals, nested generic cards, legacy
|
|
100
|
+
typography, elevation outside `0`-`5`, and desktop-only layout.
|
|
101
|
+
3. Check hierarchy, token use, component purpose, responsive presentation,
|
|
102
|
+
interaction states, keyboard/focus behavior, labels, targets, contrast, and
|
|
103
|
+
reduced motion.
|
|
104
|
+
4. Correct issues at the narrowest established owner. Consolidate only truly
|
|
105
|
+
repeated policy; avoid pass-through wrappers and speculative abstractions.
|
|
106
|
+
5. Run focused tests and Playwright at compact, medium, and expanded widths.
|
|
107
|
+
Navigate away and back with warm query data when the screen persists state.
|
|
108
|
+
|
|
109
|
+
Do not declare Material 3 compliance from visual resemblance alone. Report any
|
|
110
|
+
unverified responsive, theme, accessibility, interaction, or browser behavior.
|
|
111
|
+
For a missing or version-sensitive API, verify the installed Vuetify major and
|
|
112
|
+
official docs; implement Material intent through supported JSKIT/Vuetify seams.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<!-- Generated by `npm run agent-docs:build` from `packages/agent-docs/site/guide/framework/ui-operations.md`. Do not edit manually. -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
title: UI operations
|
|
5
|
+
description: Build JSKIT routes, surfaces, placements, responsive UI, and browser verification through framework-owned seams.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# UI operations
|
|
9
|
+
|
|
10
|
+
Read this for routes, pages, surfaces, placements, responsive UI, and browser
|
|
11
|
+
verification. Also read the complete [Material 3 contract](./material-3).
|
|
12
|
+
|
|
13
|
+
## Pages, surfaces, and placements
|
|
14
|
+
|
|
15
|
+
Take the surface and navigation role from the request, product context, and
|
|
16
|
+
current app. They control routes, access, placement visibility, and often
|
|
17
|
+
ownership. Inspect `app/shell-foundation` plus the narrow matching entry in
|
|
18
|
+
the [source pattern library](/patterns/) before authoring source.
|
|
19
|
+
|
|
20
|
+
Create route files and placement declarations as normal application code.
|
|
21
|
+
Use semantic placement ids and shell public helpers; use concrete outlet ids
|
|
22
|
+
only when defining or diagnosing topology. Resolve current dynamic parameters
|
|
23
|
+
to an absolute URL or route object for sibling/child links—never bind a route
|
|
24
|
+
template or relative string raw to Vue Router `to`.
|
|
25
|
+
|
|
26
|
+
## Application-owned files
|
|
27
|
+
|
|
28
|
+
Pattern source is ordinary customizable application source. When replacing a
|
|
29
|
+
starter route, adapt its smoke test to the new canonical route instead of
|
|
30
|
+
discarding browser coverage. Do not retain a generated-file marker, template
|
|
31
|
+
hash, pattern receipt, or tool-owned source declaration.
|
|
32
|
+
|
|
33
|
+
## Screen behavior
|
|
34
|
+
|
|
35
|
+
- Keep screens phone/task-first with drawer-independent primary actions and
|
|
36
|
+
at least 48 CSS-pixel targets.
|
|
37
|
+
- Use a page header and direct surfaces instead of needless nested cards.
|
|
38
|
+
- Render all meaningful loading, empty, error, permission, and retry states.
|
|
39
|
+
- Use structure-matching Material skeletons for visible loading; never use a
|
|
40
|
+
generic spinner or circular progress indicator.
|
|
41
|
+
- Keep read failures local when the screen cannot render. Present transient
|
|
42
|
+
command success/failure through shared toast/snackbar feedback so the page
|
|
43
|
+
does not jump.
|
|
44
|
+
- Extend shared CRUD screens through public slots and composables.
|
|
45
|
+
- Keep row actions and filters near the screen unless the framework owns them.
|
|
46
|
+
- Import neutral request and CRUD UI APIs from `@jskit-ai/http-web`. Install
|
|
47
|
+
`users-web` only for actual account/profile/user UI.
|
|
48
|
+
|
|
49
|
+
## Adaptive shell drawer
|
|
50
|
+
|
|
51
|
+
Use Vuetify Material navigation. Compact close dismisses the temporary drawer;
|
|
52
|
+
wide layouts default to `desktopDrawerClosedMode="rail"`. Use `hidden` only
|
|
53
|
+
when another navigation affordance remains.
|
|
54
|
+
|
|
55
|
+
The drawer omits the app bar's surface label. Open and rail icons share a
|
|
56
|
+
centreline. It uses a 12px outer item inset; `navigationItemSpacing` controls
|
|
57
|
+
icon/label and label/end gaps. The normal 80px rail centres 48px targets;
|
|
58
|
+
`railWidth` and `drawerWidth` are public density/width controls. Do not override
|
|
59
|
+
the shell's private implementation CSS.
|
|
60
|
+
|
|
61
|
+
## Browser verification
|
|
62
|
+
|
|
63
|
+
Exercise user-facing changes with Playwright at compact, medium, and expanded
|
|
64
|
+
widths. Check overflow, clipped text, duplicate navigation, route placement,
|
|
65
|
+
actions, skeleton replacement, error feedback, and target sizes. Use relative
|
|
66
|
+
URLs. When `PLAYWRIGHT_BASE_URL` is provided, start no duplicate server.
|
|
67
|
+
|
|
68
|
+
Vibe64 owns its managed browser and may provide
|
|
69
|
+
`VIBE64_PLAYWRIGHT_STORAGE_STATE`; never print or commit that value, bypass it,
|
|
70
|
+
or install another browser. For explicitly enabled direct-local auth, use
|
|
71
|
+
`loginAsExistingUser()` from `@jskit-ai/auth-web/test/playwright`; never expose
|
|
72
|
+
the exchange secret to browser code, URLs, or client environment.
|
|
73
|
+
|
|
74
|
+
Run the narrow test directly:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npx playwright test <test-file> -g "<changed behavior>"
|
|
78
|
+
```
|
package/guide/agent/index.md
CHANGED
|
@@ -19,6 +19,14 @@ apply or adapt. It does not prescribe an agent host or project orchestrator.
|
|
|
19
19
|
- [Multi-homing](/guide/app-setup/multi-homing)
|
|
20
20
|
- [Console](/guide/app-setup/console)
|
|
21
21
|
|
|
22
|
+
## Framework reference
|
|
23
|
+
|
|
24
|
+
- [Application operations](/guide/framework/application-operations)
|
|
25
|
+
- [CRUD operations](/guide/framework/crud-operations)
|
|
26
|
+
- [UI operations](/guide/framework/ui-operations)
|
|
27
|
+
- [Material 3](/guide/framework/material-3)
|
|
28
|
+
- [Complete source pattern library](/patterns/)
|
|
29
|
+
|
|
22
30
|
## Optional capabilities
|
|
23
31
|
|
|
24
32
|
- [Mobile Capacitor](/guide/app-extras/mobile-capacitor)
|
|
@@ -28,9 +36,11 @@ apply or adapt. It does not prescribe an agent host or project orchestrator.
|
|
|
28
36
|
## How to use the guide
|
|
29
37
|
|
|
30
38
|
Begin with the Quickstart and one application-foundation pattern. Add only the
|
|
31
|
-
capabilities selected by the product.
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
capabilities selected by the product. The public pattern library contains every
|
|
40
|
+
published `PATTERN.md` and links its complete example tree. If a runtime package
|
|
41
|
+
is installed, its package-owned copy is the version-matched implementation
|
|
42
|
+
reference. The optional standalone JSKIT Agent Skill bundles the same pattern
|
|
43
|
+
documents and examples, but no agent host is required to install it.
|
|
34
44
|
|
|
35
45
|
There are no source-generator chapters. Package-owned patterns replace their
|
|
36
46
|
useful source examples; questionnaire, mutation, and provenance machinery is
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
# App Agent Instructions
|
|
2
2
|
|
|
3
|
-
Use current project context, JSKIT public APIs, and the
|
|
4
|
-
|
|
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
|
-
|
|
6
|
+
Framework references:
|
|
7
7
|
|
|
8
|
-
- `
|
|
9
|
-
- `
|
|
8
|
+
- `https://mobily-enterprises.github.io/jskit-ai/guide/`
|
|
9
|
+
- `https://mobily-enterprises.github.io/jskit-ai/patterns/`
|
|
10
10
|
|
|
11
|
-
Before
|
|
12
|
-
|
|
13
|
-
|
|
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
14
|
|
|
15
15
|
Copied pattern source is ordinary application source. Do not add generator
|
|
16
16
|
provenance, receipts, completion ledgers, or tooling-operation history. Keep
|
|
@@ -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.
|
|
37
|
+
"@jskit-ai/kernel": "0.1.178",
|
|
38
38
|
"@tanstack/vue-query": "^5.101.0",
|
|
39
39
|
"fastify": "^5.8.5",
|
|
40
40
|
"json-rest-schema": "^1.0.17",
|
|
@@ -42,12 +42,11 @@
|
|
|
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.
|
|
45
|
+
"@jskit-ai/http-runtime": "0.1.176"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@jskit-ai/
|
|
49
|
-
"@jskit-ai/
|
|
50
|
-
"@jskit-ai/jskit-catalog": "0.1.202",
|
|
48
|
+
"@jskit-ai/config-eslint": "0.1.175",
|
|
49
|
+
"@jskit-ai/jskit-catalog": "0.1.203",
|
|
51
50
|
"@playwright/test": "1.61.1",
|
|
52
51
|
"@vitejs/plugin-vue": "^6.0.7",
|
|
53
52
|
"eslint": "^10.8.0",
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
# App Agent Instructions
|
|
2
2
|
|
|
3
|
-
Use current project context, JSKIT public APIs, and the
|
|
4
|
-
|
|
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
|
-
|
|
6
|
+
Framework references:
|
|
7
7
|
|
|
8
|
-
- `
|
|
9
|
-
- `
|
|
8
|
+
- `https://mobily-enterprises.github.io/jskit-ai/guide/`
|
|
9
|
+
- `https://mobily-enterprises.github.io/jskit-ai/patterns/`
|
|
10
10
|
|
|
11
|
-
Before
|
|
12
|
-
|
|
13
|
-
|
|
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
14
|
|
|
15
15
|
Copied pattern source is ordinary application source. Do not add generator
|
|
16
16
|
provenance, receipts, completion ledgers, or tooling-operation history. Keep
|
|
@@ -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.
|
|
37
|
+
"@jskit-ai/kernel": "0.1.178",
|
|
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.
|
|
45
|
+
"@jskit-ai/http-runtime": "0.1.176",
|
|
46
46
|
"@mdi/js": "^7.4.47",
|
|
47
|
-
"@jskit-ai/shell-web": "0.1.
|
|
47
|
+
"@jskit-ai/shell-web": "0.1.182"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@jskit-ai/
|
|
51
|
-
"@jskit-ai/
|
|
52
|
-
"@jskit-ai/jskit-catalog": "0.1.202",
|
|
50
|
+
"@jskit-ai/config-eslint": "0.1.175",
|
|
51
|
+
"@jskit-ai/jskit-catalog": "0.1.203",
|
|
53
52
|
"@playwright/test": "1.61.1",
|
|
54
53
|
"@vitejs/plugin-vue": "^6.0.7",
|
|
55
54
|
"eslint": "^10.8.0",
|