@jskit-ai/agent-docs 0.1.257 → 0.1.259
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-extras/assistant-conversation.md +88 -35
- package/guide/agent/app-extras/assistant.md +28 -28
- package/guide/agent/app-setup/authentication.md +36 -17
- package/guide/agent/app-setup/database-layer.md +116 -17
- package/guide/agent/app-setup/existing-application-migration.md +29 -25
- package/guide/agent/app-setup/multi-homing.md +94 -48
- package/guide/agent/app-setup/run-an-accounts-hub.md +6 -4
- package/guide/agent/framework/client-features.md +496 -0
- package/guide/agent/framework/crud-operations.md +5 -5
- package/guide/agent/framework/translation.md +4 -3
- package/guide/agent/framework/typed-features.md +1104 -0
- package/guide/agent/framework/ui-operations.md +2 -2
- package/guide/agent/index.md +6 -1
- package/package.json +1 -1
- package/patterns/feature-package/PATTERN.md +104 -10
- package/patterns/feature-package/example/booking-engine/package.json +9 -4
- package/patterns/feature-package/example/booking-engine/src/server/BookingEngineFeature.js +24 -0
- package/patterns/feature-package/example/booking-engine/src/server/bookingAvailability.js +10 -0
- package/patterns/feature-package/example/booking-engine/src/server/bookingEngine.js +29 -0
- package/patterns/feature-package/example/booking-engine/src/server/bookingEngineActions.js +26 -0
- package/patterns/feature-package/example/booking-engine/src/server/inputSchemas.js +1 -2
- package/patterns/feature-package/example/booking-engine/src/server/types.js +12 -0
- package/patterns/feature-package/example/variations/AvailabilityEngineFeature.js +19 -0
- package/patterns/feature-package/example/variations/InvoiceRollupFeature.js +23 -0
- package/patterns/feature-package/example/variations/availabilityEngineActions.js +26 -0
- package/patterns/feature-package/example/variations/customKnexRepository.js +32 -26
- package/patterns/feature-package/example/variations/invoiceRollupActions.js +26 -0
- package/patterns/feature-package/example/variations/orchestratorService.js +24 -19
- package/patterns/feature-package/example/variations/types.js +7 -0
- package/patterns/minimal-foundation/PATTERN.md +30 -1
- package/patterns/minimal-foundation/example/AGENTS.md +14 -0
- package/patterns/minimal-foundation/example/bin/develop.js +10 -5
- package/patterns/minimal-foundation/example/eslint.config.mjs +21 -2
- package/patterns/minimal-foundation/example/package.json +5 -4
- package/patterns/minimal-foundation/example/playwright.config.mjs +1 -1
- package/patterns/minimal-foundation/example/server/lib/envFile.js +19 -0
- package/patterns/minimal-foundation/example/server/lib/loggerOptions.js +15 -0
- package/patterns/minimal-foundation/example/server/lib/runtimeEnv.js +17 -17
- package/patterns/minimal-foundation/example/server.js +32 -29
- package/patterns/minimal-foundation/example/tests/server/smoke.test.js +2 -1
- package/patterns/shell-foundation/PATTERN.md +29 -0
- package/patterns/shell-foundation/example/AGENTS.md +14 -0
- package/patterns/shell-foundation/example/bin/develop.js +10 -5
- package/patterns/shell-foundation/example/eslint.config.mjs +21 -2
- package/patterns/shell-foundation/example/package.json +6 -5
- package/patterns/shell-foundation/example/packages/main/package.json +1 -1
- package/patterns/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +1 -0
- package/patterns/shell-foundation/example/playwright.config.mjs +1 -1
- package/patterns/shell-foundation/example/server/lib/envFile.js +19 -0
- package/patterns/shell-foundation/example/server/lib/loggerOptions.js +15 -0
- package/patterns/shell-foundation/example/server/lib/runtimeEnv.js +17 -17
- package/patterns/shell-foundation/example/server.js +32 -29
- package/patterns/shell-foundation/example/tests/server/smoke.test.js +2 -1
- package/reference/autogen/KERNEL_MAP.md +14 -8
- package/reference/autogen/PATTERN_INDEX.md +37 -37
- package/reference/autogen/README.md +2 -0
- package/reference/autogen/packages/agent-docs.md +70 -26
- package/reference/autogen/packages/agent-runtime.md +129 -0
- package/reference/autogen/packages/agent.md +149 -0
- package/reference/autogen/packages/architecture-inspector.md +97 -44
- package/reference/autogen/packages/assistant-core.md +786 -292
- package/reference/autogen/packages/assistant-runtime.md +182 -57
- package/reference/autogen/packages/assistant-voice-sherpa.md +4 -0
- package/reference/autogen/packages/assistant-voice.md +54 -8
- package/reference/autogen/packages/auth-core.md +44 -13
- package/reference/autogen/packages/auth-provider-local-core.md +86 -34
- package/reference/autogen/packages/auth-provider-local-db-core.md +1 -2
- package/reference/autogen/packages/auth-provider-oidc-core.md +10 -4
- package/reference/autogen/packages/auth-provider-supabase-core.md +52 -66
- package/reference/autogen/packages/auth-web.md +19 -11
- package/reference/autogen/packages/connectors-catalog.md +71 -43
- package/reference/autogen/packages/connectors-core.md +42 -4
- package/reference/autogen/packages/console-core.md +27 -14
- package/reference/autogen/packages/crud-core.md +178 -170
- package/reference/autogen/packages/database-runtime-mysql.md +0 -2
- package/reference/autogen/packages/database-runtime-postgres.md +0 -2
- package/reference/autogen/packages/database-runtime.md +39 -10
- package/reference/autogen/packages/http-runtime.md +79 -57
- package/reference/autogen/packages/json-rest-api-core.md +11 -8
- package/reference/autogen/packages/kernel.md +144 -83
- package/reference/autogen/packages/oidc-issuer-core.md +49 -20
- package/reference/autogen/packages/payments-core.md +20 -3
- package/reference/autogen/packages/realtime.md +47 -22
- package/reference/autogen/packages/resource-core.md +1 -1
- package/reference/autogen/packages/resource-crud-core.md +64 -26
- package/reference/autogen/packages/rewarded-core.md +47 -36
- package/reference/autogen/packages/shell-web.md +7 -10
- package/reference/autogen/packages/storage-runtime.md +6 -2
- package/reference/autogen/packages/uploads-runtime.md +10 -2
- package/reference/autogen/packages/users-core.md +73 -71
- package/reference/autogen/packages/workspaces-core.md +121 -106
- package/reference/autogen/packages/workspaces-web.md +1 -2
- package/reference/autogen/tooling/config-eslint.md +302 -0
- package/reference/autogen/tooling/jskit-catalog.md +28 -18
- package/reference/autogen/tooling/jskit-release.md +35 -20
- package/reference/autogen/tooling/testUtils.md +3 -1
- package/skills/jskit/SKILL.md +9 -8
- package/skills/jskit/references/app-operations.md +1 -1
- package/skills/jskit/references/client-features.md +491 -0
- package/skills/jskit/references/crud-form-actions.md +1 -1
- package/skills/jskit/references/crud-operations.md +7 -7
- package/skills/jskit/references/existing-application-migration.md +31 -27
- package/skills/jskit/references/heuristics/INDEX.md +5 -1
- package/skills/jskit/references/heuristics/child-cruds.md +1 -1
- package/skills/jskit/references/heuristics/client-features.md +66 -0
- package/skills/jskit/references/heuristics/client-requests.md +1 -1
- package/skills/jskit/references/heuristics/crud-authoring.md +12 -2
- package/skills/jskit/references/heuristics/crud-links.md +1 -1
- package/skills/jskit/references/heuristics/crud-repository-mapping.md +3 -3
- package/skills/jskit/references/heuristics/filters.md +1 -1
- package/skills/jskit/references/heuristics/live-actions.md +1 -1
- package/skills/jskit/references/heuristics/page-redirects.md +1 -1
- package/skills/jskit/references/heuristics/page-scaffolding.md +1 -1
- package/skills/jskit/references/heuristics/placements.md +1 -1
- package/skills/jskit/references/heuristics/row-policies.md +1 -1
- package/skills/jskit/references/heuristics/server-search.md +1 -1
- package/skills/jskit/references/heuristics/surfaces.md +1 -1
- package/skills/jskit/references/heuristics/typed-features.md +100 -0
- package/skills/jskit/references/heuristics/ui-contract.md +1 -1
- package/skills/jskit/references/heuristics/ui-testing.md +4 -4
- package/skills/jskit/references/material-3.md +2 -2
- package/skills/jskit/references/multi-homing.md +96 -50
- package/skills/jskit/references/pattern-index.md +37 -37
- package/skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md +30 -1
- package/skills/jskit/references/patterns/app/minimal-foundation/example/AGENTS.md +14 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/develop.js +10 -5
- package/skills/jskit/references/patterns/app/minimal-foundation/example/eslint.config.mjs +21 -2
- package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +5 -4
- package/skills/jskit/references/patterns/app/minimal-foundation/example/playwright.config.mjs +1 -1
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/envFile.js +19 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/loggerOptions.js +15 -0
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/runtimeEnv.js +17 -17
- package/skills/jskit/references/patterns/app/minimal-foundation/example/server.js +32 -29
- package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/server/smoke.test.js +2 -1
- package/skills/jskit/references/patterns/app/shell-foundation/PATTERN.md +29 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/AGENTS.md +14 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/bin/develop.js +10 -5
- package/skills/jskit/references/patterns/app/shell-foundation/example/eslint.config.mjs +21 -2
- package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +6 -5
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +1 -1
- package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +1 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/playwright.config.mjs +1 -1
- package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/envFile.js +19 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/loggerOptions.js +15 -0
- package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/runtimeEnv.js +17 -17
- package/skills/jskit/references/patterns/app/shell-foundation/example/server.js +32 -29
- package/skills/jskit/references/patterns/app/shell-foundation/example/tests/server/smoke.test.js +2 -1
- package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/ApplicationAiFeature.js +4 -2
- package/skills/jskit/references/patterns/auth/accounts-hub/PATTERN.md +2 -1
- package/skills/jskit/references/patterns/auth/accounts-hub/example/package.json +2 -2
- package/skills/jskit/references/patterns/auth/accounts-hub/example/server/hubPaths.js +9 -3
- package/skills/jskit/references/patterns/auth/auth-surface/PATTERN.md +25 -12
- package/skills/jskit/references/patterns/auth/auth-surface/example/tools/preview-identity +7 -1
- package/skills/jskit/references/patterns/auth/oidc-sign-in/example/package.json +2 -2
- package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +1 -1
- package/skills/jskit/references/patterns/connectors/ai-connections/PATTERN.md +16 -1
- package/skills/jskit/references/patterns/connectors/ai-connections/example/ai-model.js +12 -3
- package/skills/jskit/references/patterns/connectors/ai-connections/example/perplexity-answer.js +15 -4
- package/skills/jskit/references/patterns/connectors/api-key-connection/PATTERN.md +9 -1
- package/skills/jskit/references/patterns/connectors/api-key-connection/example/connections.js +5 -2
- package/skills/jskit/references/patterns/connectors/aws-storage-queries/PATTERN.md +13 -3
- package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/s3-transfer.js +14 -3
- package/skills/jskit/references/patterns/connectors/calendar-cli/PATTERN.md +8 -0
- package/skills/jskit/references/patterns/connectors/calendar-cli/example/knexfile.js +1 -1
- package/skills/jskit/references/patterns/connectors/calendar-cli/example/package.json +4 -4
- package/skills/jskit/references/patterns/connectors/calendar-cli/example/scripts/calendar.js +8 -4
- package/skills/jskit/references/patterns/connectors/event-delivery/PATTERN.md +1 -1
- package/skills/jskit/references/patterns/connectors/firebase-messaging/PATTERN.md +10 -0
- package/skills/jskit/references/patterns/connectors/firebase-messaging/example/server/notifications.js +8 -0
- package/skills/jskit/references/patterns/connectors/google-ads-search/PATTERN.md +18 -7
- package/skills/jskit/references/patterns/connectors/google-ads-search/example/ads-setup.js +13 -5
- package/skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md +1 -1
- package/skills/jskit/references/patterns/connectors/paddle-catalogue/PATTERN.md +11 -2
- package/skills/jskit/references/patterns/connectors/paddle-catalogue/example/create-products.js +5 -2
- package/skills/jskit/references/patterns/connectors/public-image/PATTERN.md +10 -1
- package/skills/jskit/references/patterns/connectors/public-image/example/logo-url.js +4 -1
- package/skills/jskit/references/patterns/connectors/redshift-queries/PATTERN.md +1 -1
- package/skills/jskit/references/patterns/connectors/source-scanning/PATTERN.md +13 -2
- package/skills/jskit/references/patterns/connectors/source-scanning/example/source-scanner.js +9 -0
- package/skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md +102 -23
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +3 -2
- package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/server/types.js +5 -0
- package/skills/jskit/references/patterns/crud/resource-contract/PATTERN.md +54 -1
- package/skills/jskit/references/patterns/database/mysql-application/PATTERN.md +16 -5
- package/skills/jskit/references/patterns/database/mysql-application/example/knexfile.js +2 -2
- package/skills/jskit/references/patterns/database/mysql-application/example/package.json +1 -1
- package/skills/jskit/references/patterns/database/mysql-application/example/scripts/prepare-database.js +1 -1
- package/skills/jskit/references/patterns/database/postgres-application/PATTERN.md +16 -5
- package/skills/jskit/references/patterns/database/postgres-application/example/knexfile.js +2 -2
- package/skills/jskit/references/patterns/database/postgres-application/example/package.json +1 -1
- package/skills/jskit/references/patterns/database/postgres-application/example/scripts/prepare-database.js +1 -1
- package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
- package/skills/jskit/references/patterns/rewards/google-rewarded/example/GoogleRewardedDeliveryProvider.js +1 -1
- package/skills/jskit/references/patterns/rewards/google-rewarded/example/googlePublisherTag.js +5 -11
- package/skills/jskit/references/patterns/server/feature-package/PATTERN.md +104 -10
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +9 -4
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineFeature.js +24 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingAvailability.js +10 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingEngine.js +29 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingEngineActions.js +26 -0
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/inputSchemas.js +1 -2
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/types.js +12 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineFeature.js +19 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupFeature.js +23 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/availabilityEngineActions.js +26 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/customKnexRepository.js +32 -26
- package/skills/jskit/references/patterns/server/feature-package/example/variations/invoiceRollupActions.js +26 -0
- package/skills/jskit/references/patterns/server/feature-package/example/variations/orchestratorService.js +24 -19
- package/skills/jskit/references/patterns/server/feature-package/example/variations/types.js +7 -0
- package/skills/jskit/references/patterns/users/user-administration-server/PATTERN.md +16 -1
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +3 -2
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/server/types.js +5 -0
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +4 -3
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/UsersWorkspaceFeature.js +2 -9
- package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/types.js +5 -0
- package/skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md +42 -17
- package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/WorkspaceInvitationsFeature.js +27 -0
- package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteEmail.js +11 -10
- package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteMailer.js +27 -0
- package/skills/jskit/references/translation.md +5 -4
- package/skills/jskit/references/typed-features.md +1099 -0
- package/skills/jskit/references/ui-operations.md +3 -3
- package/patterns/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +0 -33
- package/patterns/feature-package/example/booking-engine/src/server/actions.js +0 -24
- package/patterns/feature-package/example/variations/AvailabilityEngineProvider.js +0 -31
- package/patterns/feature-package/example/variations/InvoiceRollupProvider.js +0 -36
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +0 -33
- package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/actions.js +0 -24
- package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineProvider.js +0 -31
- package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupProvider.js +0 -36
|
@@ -32,17 +32,42 @@ Exports
|
|
|
32
32
|
Exports
|
|
33
33
|
- `baseConfig`
|
|
34
34
|
|
|
35
|
+
### `clientFeatures.js`
|
|
36
|
+
Exports
|
|
37
|
+
- `clientFeaturesConfig(files, severity = "error")`
|
|
38
|
+
Local functions
|
|
39
|
+
- `clientFeaturesRules(severity)`
|
|
40
|
+
- `componentRules(severity)`
|
|
41
|
+
|
|
42
|
+
### `formatter.js`
|
|
43
|
+
Exports
|
|
44
|
+
- `formatterConfig(files, { ignores = [] } = {})`
|
|
45
|
+
|
|
35
46
|
### `index.js`
|
|
36
47
|
Exports
|
|
37
48
|
- `baseConfig`
|
|
38
49
|
- `nodeConfig`
|
|
39
50
|
- `webConfig`
|
|
40
51
|
- `vueConfig`
|
|
52
|
+
- `sizeLimitsConfig`
|
|
53
|
+
- `typedFeaturesConfig`
|
|
54
|
+
- `clientFeaturesConfig`
|
|
55
|
+
- `formatterConfig`
|
|
56
|
+
- `jskitPlugin`
|
|
41
57
|
|
|
42
58
|
### `node.js`
|
|
43
59
|
Exports
|
|
44
60
|
- `nodeConfig`
|
|
45
61
|
|
|
62
|
+
### `typedFeatures.js`
|
|
63
|
+
Exports
|
|
64
|
+
- `sizeLimitRules(severity)`
|
|
65
|
+
- `sizeLimitsConfig(files, { ignores = [] } = {})`
|
|
66
|
+
- `typedFeaturesConfig(files, severity = "error")`
|
|
67
|
+
Local functions
|
|
68
|
+
- `typedFeaturesRules(severity)`
|
|
69
|
+
- `requireGlobs(name, files)`
|
|
70
|
+
|
|
46
71
|
### `vue.js`
|
|
47
72
|
Exports
|
|
48
73
|
- `vueConfig`
|
|
@@ -50,3 +75,280 @@ Exports
|
|
|
50
75
|
### `web.js`
|
|
51
76
|
Exports
|
|
52
77
|
- `webConfig`
|
|
78
|
+
|
|
79
|
+
### plugin
|
|
80
|
+
|
|
81
|
+
### `plugin/factoryResults.js`
|
|
82
|
+
Exports
|
|
83
|
+
- `CREATE_NAME`
|
|
84
|
+
- `FUNCTION_TYPES`
|
|
85
|
+
- `VUE_STATE_CALLS`
|
|
86
|
+
- `definedName(fn)`
|
|
87
|
+
- `definitionOf(sourceCode, identifier)`
|
|
88
|
+
- `enclosingFunction(sourceCode, node)`
|
|
89
|
+
- `holdsBehaviour(sourceCode, object)`
|
|
90
|
+
- `isInlineFunction(property)`
|
|
91
|
+
- `isVueStateCall(node)`
|
|
92
|
+
- `localFunction(sourceCode, identifier)`
|
|
93
|
+
- `makesVueState(sourceCode, fn)`
|
|
94
|
+
- `returnedFrom(sourceCode, node)`
|
|
95
|
+
- `returnsOnlyData(sourceCode, fn)`
|
|
96
|
+
Local functions
|
|
97
|
+
- `findVariable(scope, name)`
|
|
98
|
+
- `refersToFunction(sourceCode, property)`
|
|
99
|
+
|
|
100
|
+
### `plugin/index.js`
|
|
101
|
+
Exports
|
|
102
|
+
- `jskitPlugin`
|
|
103
|
+
|
|
104
|
+
### `plugin/packageSources.js`
|
|
105
|
+
Exports
|
|
106
|
+
- `clientSourceFiles(directory, files = [])`
|
|
107
|
+
- `createSourceMemo(read, unreadable)`
|
|
108
|
+
- `isGeneratedMirror(file)`
|
|
109
|
+
- `isServerOrSharedFile(file, packageDirectory)`
|
|
110
|
+
- `packageRootOf(file)`
|
|
111
|
+
- `packageSourceFiles(directory, files = [])`
|
|
112
|
+
- `toPosixPath(file)`
|
|
113
|
+
Local functions
|
|
114
|
+
- `isPackageDirectory(directory)`
|
|
115
|
+
|
|
116
|
+
### `plugin/rules/actionCreator.js`
|
|
117
|
+
Exports
|
|
118
|
+
- `actionCreator`
|
|
119
|
+
Local functions
|
|
120
|
+
- `isCrudCustomAction(definition)`
|
|
121
|
+
|
|
122
|
+
### `plugin/rules/actionExecuteShape.js`
|
|
123
|
+
Exports
|
|
124
|
+
- `actionExecuteShape`
|
|
125
|
+
Local functions
|
|
126
|
+
- `isPlainCallee(node)`
|
|
127
|
+
- `unwrapCall(node)`
|
|
128
|
+
- `shapeProblem(value)`
|
|
129
|
+
|
|
130
|
+
### `plugin/rules/allowCommentForm.js`
|
|
131
|
+
Exports
|
|
132
|
+
- `allowCommentForm`
|
|
133
|
+
Local functions
|
|
134
|
+
- `holdsFunction(node)`
|
|
135
|
+
- `excusedNode(sourceCode, comment)`
|
|
136
|
+
- `allowLines(comment, opening = 2)`
|
|
137
|
+
|
|
138
|
+
### `plugin/rules/appErrorCode.js`
|
|
139
|
+
Exports
|
|
140
|
+
- `appErrorCode`
|
|
141
|
+
Local functions
|
|
142
|
+
- `objectHasKey(node, name)`
|
|
143
|
+
- `hasSpread(node)`
|
|
144
|
+
- `setsOwnCode(classBody, sourceCode)`
|
|
145
|
+
- `parameterIndex(parameters, name)`
|
|
146
|
+
- `superCall(constructor)`
|
|
147
|
+
- `forwardsRest(target, superOptions)`
|
|
148
|
+
- `optionsIndex(parameters, superOptions)`
|
|
149
|
+
- `localErrorClasses(program, sourceCode)`
|
|
150
|
+
- `passesCode(node, { code, options })`
|
|
151
|
+
- `literalText(node)`
|
|
152
|
+
|
|
153
|
+
### `plugin/rules/collaboratorProps.js`
|
|
154
|
+
Exports
|
|
155
|
+
- `collaboratorProps`
|
|
156
|
+
Local functions
|
|
157
|
+
- `declaredProps(node)`
|
|
158
|
+
- `unchain(node)`
|
|
159
|
+
- `calledProp(callee, propsBinding, inTemplate)`
|
|
160
|
+
- `optionText(sourceCode, prop, name)`
|
|
161
|
+
|
|
162
|
+
### `plugin/rules/fixedResultShape.js`
|
|
163
|
+
Exports
|
|
164
|
+
- `fixedResultShape`
|
|
165
|
+
Local functions
|
|
166
|
+
- `calleeName(call)`
|
|
167
|
+
- `addsBehaviour(sourceCode, value)`
|
|
168
|
+
- `unwrapAwait(node)`
|
|
169
|
+
- `callbackFactoryCall(call)`
|
|
170
|
+
- `resultOwner(sourceCode, identifier)`
|
|
171
|
+
|
|
172
|
+
### `plugin/rules/frozenFactoryResult.js`
|
|
173
|
+
Exports
|
|
174
|
+
- `frozenFactoryResult`
|
|
175
|
+
|
|
176
|
+
### `plugin/rules/jsdocDescriptionInside.js`
|
|
177
|
+
Exports
|
|
178
|
+
- `jsdocDescriptionInside`
|
|
179
|
+
Local functions
|
|
180
|
+
- `startsItsLine(lines, comment)`
|
|
181
|
+
|
|
182
|
+
### `plugin/rules/namedRepeatedType.js`
|
|
183
|
+
Exports
|
|
184
|
+
- `namedRepeatedType`
|
|
185
|
+
Local functions
|
|
186
|
+
- `balanced(text, start, open, close)`
|
|
187
|
+
- `repeatableTypes(type)`
|
|
188
|
+
- `moduleKey(specifier, directory)`
|
|
189
|
+
- `importedNames(text, directory)`
|
|
190
|
+
- `typeKey(text, file, imports)`
|
|
191
|
+
- `commentTypes(text)`
|
|
192
|
+
|
|
193
|
+
### `plugin/rules/noDualShape.js`
|
|
194
|
+
Exports
|
|
195
|
+
- `noDualShape`
|
|
196
|
+
Local functions
|
|
197
|
+
- `unwrapChain(node)`
|
|
198
|
+
- `referenceText(sourceCode, node)`
|
|
199
|
+
- `dualShape(sourceCode, member, fallback)`
|
|
200
|
+
|
|
201
|
+
### `plugin/rules/noDuplicateHelper.js`
|
|
202
|
+
Exports
|
|
203
|
+
- `noDuplicateHelper`
|
|
204
|
+
Local functions
|
|
205
|
+
- `topLevelFunctions(program)`
|
|
206
|
+
- `isNamedNoOp(fn)`
|
|
207
|
+
- `topLevelHelpers(program, text)`
|
|
208
|
+
- `comparisonRoot(file, packageDirectory)`
|
|
209
|
+
- `compareCopies(left, right)`
|
|
210
|
+
|
|
211
|
+
### `plugin/rules/noEnvDefault.js`
|
|
212
|
+
Exports
|
|
213
|
+
- `noEnvDefault`
|
|
214
|
+
Local functions
|
|
215
|
+
- `isProcessEnv(node)`
|
|
216
|
+
|
|
217
|
+
### `plugin/rules/noFactorySpread.js`
|
|
218
|
+
Exports
|
|
219
|
+
- `noFactorySpread`
|
|
220
|
+
Local functions
|
|
221
|
+
- `unwrap(node)`
|
|
222
|
+
- `factoryCall(sourceCode, argument)`
|
|
223
|
+
- `spreadFactory(sourceCode, argument, factoryName)`
|
|
224
|
+
- `returnedApi(sourceCode, object)`
|
|
225
|
+
|
|
226
|
+
### `plugin/rules/noFrozenVueState.js`
|
|
227
|
+
Exports
|
|
228
|
+
- `noFrozenVueState`
|
|
229
|
+
Local functions
|
|
230
|
+
- `holdsVueState(sourceCode, value)`
|
|
231
|
+
|
|
232
|
+
### `plugin/rules/noIdempotency.js`
|
|
233
|
+
Exports
|
|
234
|
+
- `noIdempotency`
|
|
235
|
+
|
|
236
|
+
### `plugin/rules/noModuleRegistry.js`
|
|
237
|
+
Exports
|
|
238
|
+
- `noModuleRegistry`
|
|
239
|
+
Local functions
|
|
240
|
+
- `moduleBindings(program)`
|
|
241
|
+
|
|
242
|
+
### `plugin/rules/noModuleState.js`
|
|
243
|
+
Exports
|
|
244
|
+
- `noModuleState`
|
|
245
|
+
Local functions
|
|
246
|
+
- `moduleDeclarations(program)`
|
|
247
|
+
|
|
248
|
+
### `plugin/rules/noOptionalAfterDefault.js`
|
|
249
|
+
Exports
|
|
250
|
+
- `noOptionalAfterDefault`
|
|
251
|
+
Local functions
|
|
252
|
+
- `isPresentDefault(node)`
|
|
253
|
+
- `defaultedNames(pattern, found = [])`
|
|
254
|
+
|
|
255
|
+
### `plugin/rules/noPatchedError.js`
|
|
256
|
+
Exports
|
|
257
|
+
- `noPatchedError`
|
|
258
|
+
Local functions
|
|
259
|
+
- `calleeName(node)`
|
|
260
|
+
- `isConstructedError(node)`
|
|
261
|
+
|
|
262
|
+
### `plugin/rules/noSlotSetter.js`
|
|
263
|
+
Exports
|
|
264
|
+
- `noSlotSetter`
|
|
265
|
+
|
|
266
|
+
### `plugin/rules/noTestOnlyExport.js`
|
|
267
|
+
Exports
|
|
268
|
+
- `noTestOnlyExport`
|
|
269
|
+
Local functions
|
|
270
|
+
- `exportedNames(node)`
|
|
271
|
+
|
|
272
|
+
### `plugin/rules/oneLineAction.js`
|
|
273
|
+
Exports
|
|
274
|
+
- `oneLineAction`
|
|
275
|
+
Local functions
|
|
276
|
+
- `executeOf(definition)`
|
|
277
|
+
- `isCrudCustomAction(definition)`
|
|
278
|
+
- `definitionLiteral(element)`
|
|
279
|
+
|
|
280
|
+
### `plugin/rules/onePropertyPerLine.js`
|
|
281
|
+
Exports
|
|
282
|
+
- `onePropertyPerLine`
|
|
283
|
+
Local functions
|
|
284
|
+
- `calleeName(call)`
|
|
285
|
+
- `checkedPlace(object)`
|
|
286
|
+
- `splitObjectLines(sourceCode, object)`
|
|
287
|
+
|
|
288
|
+
### `plugin/rules/releasedListeners.js`
|
|
289
|
+
Exports
|
|
290
|
+
- `releasedListeners`
|
|
291
|
+
Local functions
|
|
292
|
+
- `calleeName(node)`
|
|
293
|
+
- `eventType(sourceCode, node)`
|
|
294
|
+
- `releasesItself(options)`
|
|
295
|
+
- `keptAs(sourceCode, node)`
|
|
296
|
+
- `listenedObject(sourceCode, node)`
|
|
297
|
+
|
|
298
|
+
### `plugin/rules/requiredCollaborators.js`
|
|
299
|
+
Exports
|
|
300
|
+
- `requiredCollaborators`
|
|
301
|
+
Local functions
|
|
302
|
+
- `positionalCollaboratorDefaults(fn, visitorKeys)`
|
|
303
|
+
|
|
304
|
+
### `plugin/rules/typedDependencies.js`
|
|
305
|
+
Exports
|
|
306
|
+
- `typedDependencies`
|
|
307
|
+
Local functions
|
|
308
|
+
- `hasParamJsdoc(sourceCode, node)`
|
|
309
|
+
|
|
310
|
+
### `plugin/rules/typedInject.js`
|
|
311
|
+
Exports
|
|
312
|
+
- `typedInject`
|
|
313
|
+
Local functions
|
|
314
|
+
- `isTypedInjection(sourceCode, call)`
|
|
315
|
+
|
|
316
|
+
### `plugin/support.js`
|
|
317
|
+
Exports
|
|
318
|
+
- `ABSENT_DEFAULT`
|
|
319
|
+
- `CLIENT_GUIDE_URL`
|
|
320
|
+
- `GUIDE_URL`
|
|
321
|
+
- `compactText(sourceCode, node)`
|
|
322
|
+
- `createReporter(context, ruleName)`
|
|
323
|
+
- `deepFreezeNames(program)`
|
|
324
|
+
- `factoryDependencies(fn, sourceCode, client = false)`
|
|
325
|
+
- `followsOptionalLink(node)`
|
|
326
|
+
- `functionName(fn)`
|
|
327
|
+
- `functionSite(fn)`
|
|
328
|
+
- `isActionDefinition(object)`
|
|
329
|
+
- `isActionExecute(node, owner)`
|
|
330
|
+
- `isActionsFile(filename)`
|
|
331
|
+
- `isFreezeCall(node)`
|
|
332
|
+
- `isFrozenValue(node, deepFreezing)`
|
|
333
|
+
- `isFactory(fn, client = false)`
|
|
334
|
+
- `isClientLint(context)`
|
|
335
|
+
- `isInAction(context, node)`
|
|
336
|
+
- `isWrittenActionDefinition(object)`
|
|
337
|
+
- `keyName(property)`
|
|
338
|
+
- `receivingFunction(context, node, name)`
|
|
339
|
+
- `ruleMeta(description, messages, section, guide = GUIDE_URL)`
|
|
340
|
+
- `walk(node, visitorKeys, visit)`
|
|
341
|
+
Local functions
|
|
342
|
+
- `enclosingFunctionLine(node)`
|
|
343
|
+
- `templateElementLine(node)`
|
|
344
|
+
- `isConstructor(fn)`
|
|
345
|
+
- `collaboratorNames(fn, names, visitorKeys)`
|
|
346
|
+
- `bodyDestructuring(fn, parameterName)`
|
|
347
|
+
- `dependenciesPattern(fn, first)`
|
|
348
|
+
|
|
349
|
+
### `plugin/vueSources.js`
|
|
350
|
+
Exports
|
|
351
|
+
- `hasJsdocBefore(sourceCode, node, tag)`
|
|
352
|
+
- `hasTypeCast(sourceCode, node)`
|
|
353
|
+
- `scriptSetupRanges(sourceCode)`
|
|
354
|
+
- `vueImportNames(program, exported)`
|
|
@@ -23,12 +23,15 @@ Local functions
|
|
|
23
23
|
- `buildCatalog({ repoRoot, packagesRoot, outputPath })`
|
|
24
24
|
- `main()`
|
|
25
25
|
|
|
26
|
+
### `scripts/files.mjs`
|
|
27
|
+
Exports
|
|
28
|
+
- `fileExists(absolutePath)`
|
|
29
|
+
- `toPosixPath(value = "")`
|
|
30
|
+
|
|
26
31
|
### `scripts/framework-packages.mjs`
|
|
27
32
|
Exports
|
|
28
33
|
- `collectSingletonPackageIds(packageJsons)`
|
|
29
34
|
- `discoverFrameworkPackages(packagesRoot)`
|
|
30
|
-
Local functions
|
|
31
|
-
- `fileExists(filePath)`
|
|
32
35
|
|
|
33
36
|
### `scripts/i18n.mjs`
|
|
34
37
|
Exports
|
|
@@ -77,7 +80,6 @@ Exports
|
|
|
77
80
|
- `parsePatternDocument(source = "", { documentPath = PATTERN_DOCUMENT_NAME } = {})`
|
|
78
81
|
Local functions
|
|
79
82
|
- `normalizeText(value = "")`
|
|
80
|
-
- `normalizePath(value = "")`
|
|
81
83
|
- `sortedUniqueStrings(values = [])`
|
|
82
84
|
- `parseCommaSeparatedValue(value = "")`
|
|
83
85
|
- `requirePatternFrontMatter(source = "", { documentPath = PATTERN_DOCUMENT_NAME } = {})`
|
|
@@ -85,6 +87,26 @@ Local functions
|
|
|
85
87
|
- `directoryExists(directoryPath)`
|
|
86
88
|
- `collectFiles(rootDirectory)`
|
|
87
89
|
|
|
90
|
+
### `scripts/project-install.mjs`
|
|
91
|
+
Exports
|
|
92
|
+
- `readOptionalFile(absolutePath)`
|
|
93
|
+
- `restoreProjectFiles(updates, packageLockPath, packageLockSnapshot)`
|
|
94
|
+
- `runNpmInstall(projectRoot)`
|
|
95
|
+
- `writeManifestUpdates(updates = [])`
|
|
96
|
+
Local functions
|
|
97
|
+
- `spawnNpmInstall(projectRoot)`
|
|
98
|
+
|
|
99
|
+
### `scripts/project-manifests.mjs`
|
|
100
|
+
Exports
|
|
101
|
+
- `discoverProjectManifests(projectRoot, additionalManifests = [])`
|
|
102
|
+
- `readJsonRecord(absolutePath)`
|
|
103
|
+
- `serializePackageJson(value, originalContents = "")`
|
|
104
|
+
Local functions
|
|
105
|
+
- `normalizeWorkspacePatterns(value)`
|
|
106
|
+
- `globToRegExp(pattern = "")`
|
|
107
|
+
- `createWorkspaceMatcher(workspaces)`
|
|
108
|
+
- `collectNestedPackageJsonPaths(directory, results = [])`
|
|
109
|
+
|
|
88
110
|
### `scripts/project-packages.mjs`
|
|
89
111
|
Exports
|
|
90
112
|
- `CATALOG_PACKAGE_ID`
|
|
@@ -95,30 +117,17 @@ Exports
|
|
|
95
117
|
- `checkInstalledGraph({ catalog, manifestPaths = [], sourcePackages = {} } = {})`
|
|
96
118
|
- `resolveInstalledPackage(consumerDirectory, packageId)`
|
|
97
119
|
- `collectLockInstallations(packageLock = {})`
|
|
98
|
-
- `discoverProjectManifests
|
|
120
|
+
- `discoverProjectManifests`
|
|
99
121
|
- `normalizeCatalog(catalog = {})`
|
|
100
122
|
- `updateProject({ projectRoot = process.cwd(), catalog, install = true, installProject = runNpmInstall, additionalManifests = [] } = {})`
|
|
101
123
|
Local functions
|
|
102
|
-
- `toPosixPath(value = "")`
|
|
103
|
-
- `normalizeWorkspacePatterns(value)`
|
|
104
|
-
- `globToRegExp(pattern = "")`
|
|
105
|
-
- `createWorkspaceMatcher(workspaces)`
|
|
106
|
-
- `fileExists(absolutePath)`
|
|
107
|
-
- `readJsonRecord(absolutePath)`
|
|
108
|
-
- `collectNestedPackageJsonPaths(directory, results = [])`
|
|
109
|
-
- `serializePackageJson(value, originalContents = "")`
|
|
110
124
|
- `collectManifestDeclarations(manifests, projectRoot)`
|
|
111
125
|
- `collectLocalPackageNames(manifests)`
|
|
112
126
|
- `resolveLockPackageName(packagePath = "", record = {})`
|
|
113
127
|
- `collectJskitOverridePaths(value, currentPath = "overrides", results = [])`
|
|
114
|
-
- `writeManifestUpdates(updates = [])`
|
|
115
|
-
- `readOptionalFile(absolutePath)`
|
|
116
|
-
- `restoreProjectFiles(updates, packageLockPath, packageLockSnapshot)`
|
|
117
128
|
- `removeJskitDependencyRecords(dependencies = {}, localPackageNames = new Set())`
|
|
118
129
|
- `alignLockManifestRecord(lockRecord, manifest, localPackageNames)`
|
|
119
130
|
- `preparePackageLockForInstall(projectRoot, manifests, packageLockPath)`
|
|
120
|
-
- `spawnNpmInstall(projectRoot)`
|
|
121
|
-
- `runNpmInstall(projectRoot)`
|
|
122
131
|
|
|
123
132
|
### `scripts/verify-packages.mjs`
|
|
124
133
|
Exports
|
|
@@ -129,9 +138,10 @@ Exports
|
|
|
129
138
|
- `validateProviderList(packageRecord, side)`
|
|
130
139
|
- `validateSingletonPeerDependencies(packages)`
|
|
131
140
|
Local functions
|
|
132
|
-
- `fileExists(filePath)`
|
|
133
141
|
- `requireStringArray(value, label)`
|
|
134
142
|
- `requireArchitectureId(value, label)`
|
|
135
143
|
- `validateCapabilityMap(value, label)`
|
|
136
144
|
- `validateProviderDefinition(value, label)`
|
|
145
|
+
- `validateMigrationsAfter(packageJson)`
|
|
146
|
+
- `validateMigrationDirectory(packageName, absoluteDirectory, relativeDirectory, migrationOwners)`
|
|
137
147
|
- `validatePackage(packageRecord, localVersions, migrationOwners)`
|
|
@@ -14,6 +14,31 @@ Use this on demand; do not load the full index at startup.
|
|
|
14
14
|
|
|
15
15
|
### src
|
|
16
16
|
|
|
17
|
+
### `src/manifests.mjs`
|
|
18
|
+
Exports
|
|
19
|
+
- `DEPENDENCY_FIELDS`
|
|
20
|
+
- `bumpPatch(version)`
|
|
21
|
+
- `collectPatternPackageJsonPaths(packageRoot, nestedManifests = ["patterns", "examples"])`
|
|
22
|
+
- `collectPublishDependencies(packageJson, localNames)`
|
|
23
|
+
- `collectVersionMismatches(packageJson, versions, source)`
|
|
24
|
+
- `currentVersionMap(records)`
|
|
25
|
+
- `discoverManifests(repoRoot)`
|
|
26
|
+
- `discoverReleasePackages(repoRoot)`
|
|
27
|
+
- `fileExists(absolutePath)`
|
|
28
|
+
- `prepareManifests(records, versions, repoRoot, config)`
|
|
29
|
+
- `readJsonFile(absolutePath)`
|
|
30
|
+
- `releaseConfig(repoRoot)`
|
|
31
|
+
- `serializeJson(value)`
|
|
32
|
+
- `toPosixPath(value)`
|
|
33
|
+
- `topologicalPublishOrder(records)`
|
|
34
|
+
- `updatePackageDependencyVersions(packageJson, versions, changes = [])`
|
|
35
|
+
- `updatePatternPackageJsonContents(contents, versions)`
|
|
36
|
+
- `validateReleaseState(records, repoRoot)`
|
|
37
|
+
Local functions
|
|
38
|
+
- `followVersion(declared, version)`
|
|
39
|
+
- `expandWorkspacePattern(repoRoot, pattern)`
|
|
40
|
+
- `versionFilePaths(record)`
|
|
41
|
+
|
|
17
42
|
### `src/npm-publication.mjs`
|
|
18
43
|
Exports
|
|
19
44
|
- `createPublicationInspection({ directory, registry, configPath = "", env = process.env })`
|
|
@@ -30,31 +55,21 @@ Local functions
|
|
|
30
55
|
### `src/release.mjs`
|
|
31
56
|
Exports
|
|
32
57
|
- `assertMainReleaseCheckout(repoRoot)`
|
|
33
|
-
- `bumpPatch
|
|
34
|
-
- `collectPublishDependencies
|
|
35
|
-
- `collectPatternPackageJsonPaths
|
|
36
|
-
- `collectVersionMismatches
|
|
58
|
+
- `bumpPatch`
|
|
59
|
+
- `collectPublishDependencies`
|
|
60
|
+
- `collectPatternPackageJsonPaths`
|
|
61
|
+
- `collectVersionMismatches`
|
|
37
62
|
- `commitAndPush(repoRoot, message)`
|
|
38
|
-
- `discoverManifests
|
|
39
|
-
- `discoverReleasePackages
|
|
63
|
+
- `discoverManifests`
|
|
64
|
+
- `discoverReleasePackages`
|
|
40
65
|
- `main(argv = process.argv.slice(2))`
|
|
41
66
|
- `parseArgs(argv = [])`
|
|
42
|
-
- `topologicalPublishOrder
|
|
43
|
-
- `updatePackageDependencyVersions
|
|
44
|
-
- `updatePatternPackageJsonContents
|
|
45
|
-
- `validateReleaseState
|
|
67
|
+
- `topologicalPublishOrder`
|
|
68
|
+
- `updatePackageDependencyVersions`
|
|
69
|
+
- `updatePatternPackageJsonContents`
|
|
70
|
+
- `validateReleaseState`
|
|
46
71
|
Local functions
|
|
47
72
|
- `normalizeRegistryUrl(value)`
|
|
48
|
-
- `fileExists(absolutePath)`
|
|
49
|
-
- `readJsonFile(absolutePath)`
|
|
50
|
-
- `serializeJson(value)`
|
|
51
|
-
- `toPosixPath(value)`
|
|
52
|
-
- `followVersion(declared, version)`
|
|
53
|
-
- `expandWorkspacePattern(repoRoot, pattern)`
|
|
54
|
-
- `releaseConfig(repoRoot)`
|
|
55
|
-
- `currentVersionMap(records)`
|
|
56
|
-
- `prepareManifests(records, versions, repoRoot, config)`
|
|
57
|
-
- `versionFilePaths(record)`
|
|
58
73
|
- `runCommand(command, args, { cwd, env = process.env } = {})`
|
|
59
74
|
- `compareVersions(left, right)`
|
|
60
75
|
- `assertNoNewerVersions(records, inspection)`
|
|
@@ -24,4 +24,6 @@ Exports
|
|
|
24
24
|
|
|
25
25
|
### `fakeFastify.mjs`
|
|
26
26
|
Exports
|
|
27
|
-
- `createFakeFastifyPolicyRuntime({ csrfHandler
|
|
27
|
+
- `createFakeFastifyPolicyRuntime({ csrfHandler = passCsrfProtection } = {})`
|
|
28
|
+
Local functions
|
|
29
|
+
- `passCsrfProtection(_request, _reply, done)`
|
package/skills/jskit/SKILL.md
CHANGED
|
@@ -38,11 +38,12 @@ manifests, migrations, tests, and runtime behaviour are the evidence.
|
|
|
38
38
|
1. Read the request and nearest `AGENTS.md`.
|
|
39
39
|
2. Inspect `package.json`, `package-lock.json`, installed package metadata, the
|
|
40
40
|
existing tree, and the current diff when reviewing changes.
|
|
41
|
-
3. Read the project's product documentation and current source
|
|
42
|
-
|
|
41
|
+
3. Read the project's product documentation and current source; JSKIT owns no
|
|
42
|
+
second project brain or agent orchestrator.
|
|
43
43
|
4. Load only relevant references:
|
|
44
44
|
- [port guide](references/existing-application-migration.md) for existing apps.
|
|
45
45
|
- [heuristics index](references/heuristics/INDEX.md) for recurring traps.
|
|
46
|
+
- Before writing server code, read [typed features](references/typed-features.md) and its heuristic; client code, [client features](references/client-features.md). `npm run lint` checks both.
|
|
46
47
|
- [multi-homing](references/multi-homing.md) for workspaces or invitations.
|
|
47
48
|
- [translation](references/translation.md) for languages, translated texts
|
|
48
49
|
or error codes.
|
|
@@ -90,8 +91,8 @@ schema work—never valuable data. For UI, respect surface/placements, compact
|
|
|
90
91
|
layout, all operational states, permissions/ownership, and browser
|
|
91
92
|
verification.
|
|
92
93
|
Check every page for meaningful Back navigation: previous page by default,
|
|
93
|
-
with justified omissions or explicitly named fixed destinations.
|
|
94
|
-
|
|
94
|
+
with justified omissions or explicitly named fixed destinations. UI operations
|
|
95
|
+
has navigation seams, placement and direct-entry fallback.
|
|
95
96
|
|
|
96
97
|
## Caller-owned verification
|
|
97
98
|
|
|
@@ -104,10 +105,10 @@ unless requested in the current task.
|
|
|
104
105
|
|
|
105
106
|
For review-only work, report without editing. Check dead or duplicated code,
|
|
106
107
|
accidental abstraction, incomplete states, missed high-level JSKIT seams,
|
|
107
|
-
invalid ownership or migration choices, UI quality, and verification.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
navigation.
|
|
108
|
+
invalid ownership or migration choices, UI quality, and verification. Server
|
|
109
|
+
code follows typed features, client code client features; `npm run lint` is
|
|
110
|
+
clean. Run the Material 3 audit for affected UI, Back included; a hardcoded
|
|
111
|
+
parent link is not previous-page navigation. Findings first by severity and file.
|
|
111
112
|
|
|
112
113
|
## Verify
|
|
113
114
|
|