一键导入
preflight
Webiny-only. Run all checks required before packages are ready for publish: deps, build, lint, format, tests.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Webiny-only. Run all checks required before packages are ready for publish: deps, build, lint, format, tests.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Building a New Entry Wizard for the Headless CMS. Use this skill when the developer wants to show a custom wizard UI before the entry form when creating new CMS entries -- collecting fields like title, slug, or category upfront, then pre-filling the entry form. Covers ContentEntryEditorConfig.NewEntryWizard, createFeature, FormModelFactory, createReactiveComponent, useContentEntryFormPresenter, and the dirty-flag on setData.
Building forms with the FormModel system — field types, renderers, layout, validation, conditional rules, computed fields, and dynamic zones. Use this skill when the developer needs to define form fields with the builder API, choose renderers, build layouts with tabs/rows/separators, add validation (Zod or imperative), use conditional visibility/disable rules, create computed fields, or work with object fields and templates (dynamic zones).
api — 21 abstractions.
api/webhooks — 15 abstractions.
Admin-side architecture patterns for Webiny extensions. Use this skill when building frontend features with headless features (UseCase/Repository/Gateway), presentation features (Presenter/ViewModel/hooks/components), MobX-based presenters, RegisterFeature, and Admin BuildParams. Covers the admin/ directory structure for both features/ and presentation/ layers.
Covers the PreviewUrlModifier extension point in Website Builder. Use when a user wants to inject custom query parameters into live preview URLs — e.g. signed tokens, tenant identifiers, feature flags — from their Webiny project. Handles the full registration pattern: implementing the interface, wiring via createFeature + RegisterFeature, and registering via webiny.config.tsx. Supports async modifier methods (e.g. remote token fetch).
| name | preflight |
| description | Webiny-only. Run all checks required before packages are ready for publish: deps, build, lint, format, tests. |
Webiny-only skill. Run all checks required before packages are ready for publish.
rg "^\s*(it|test|it\.each|test\.each)\s*\(" packages/<name>/__tests__ -t ts --count-matches | awk -F: '{s+=$2} END {print s}'shards = ceil(count / 32). If shards is 1, no --shard flag needed./dev/null or pipe through tail as needed.yarn > /dev/null 2>&1
webiny packageyarn webiny-scripts generate-webiny-package
yarn webiny sync-dependencies
Verify packages/cli/files/duplicates.json is an empty array ([]). If it contains entries, there are duplicate dependency versions that must be resolved before continuing.
node scripts/generateTsConfigsInPackages.js
node scripts/checkPackageNodeModules.js
yarn adio
Must output "All dependencies in order!" to pass.
yarn format:fix > /dev/null 2>&1
This auto-fixes formatting issues. No manual intervention needed.
yarn eslint
This only checks — it does not auto-fix. If eslint reports errors, fix them manually, then restart from step 1.
yarn build --no-cache 2>&1 | tail -10
node scripts/checkDistPaths.js
Verifies no src/ paths remain in built output.
Run yarn test for each package below, sequentially. Count active tests first and shard at 32.
Packages that need yarn test:
apiapi-acoapi-audit-logsapi-coreapi-file-managerapi-file-manager-acoapi-headless-cmsapi-headless-cms-acoapi-headless-cms-bulk-actionsapi-headless-cms-ddbapi-headless-cms-import-exportapi-headless-cms-schedulerapi-headless-cms-tasksapi-headless-cms-workflowsapi-mailerapi-record-lockingapi-schedulerapi-sync-systemapi-website-builderapi-website-builder-schedulerapi-websocketsapi-workflowsapp-admincognitodb-dynamodbformhandlerhandler-awshandler-graphqllexical-converterpluginsreact-compositionreact-propertiesreact-rich-text-lexical-renderertasksutils# 1. Count active tests
count=$(rg "^\s*(it|test|it\.each|test\.each)\s*\(" packages/<name>/__tests__ -t ts --count-matches | awk -F: '{s+=$2} END {print s}')
shards=$(( (count + 31) / 32 ))
# 2a. If shards <= 1, run without sharding
yarn test packages/<name> 2>&1 | grep "Test Files"
# 2b. If shards > 1, run each shard sequentially
yarn test packages/<name> --shard=1/$shards 2>&1 | grep "Test Files"
yarn test packages/<name> --shard=2/$shards 2>&1 | grep "Test Files"
# ... etc
Run yarn test:os for each package below, sequentially. Count active tests first and shard at 32.
Packages that need BOTH yarn test (step 11) AND yarn test:os:
api-acoapi-audit-logsapi-file-managerapi-file-manager-acoapi-headless-cmsapi-headless-cms-acoapi-headless-cms-bulk-actionsapi-headless-cms-import-exportapi-mailerapi-schedulerapi-workflowstasksPackages that need ONLY yarn test:os (not in step 11):
api-dynamodb-to-elasticsearchapi-elasticsearch-tasksapi-headless-cms-ddb-esapi-headless-cms-es-tasksapi-opensearchyarn test:os packages/<name> 2>&1 | grep "Test Files"
git status
Report any unexpected uncommitted changes from the steps above.
If the lists seem stale, re-derive them:
# All testable packages (have vitest.config.ts)
find packages -maxdepth 2 -name "vitest.config.ts" | sed 's|packages/||;s|/vitest.config.ts||' | sort
# Packages with ddb-os support
grep -rl "ddb-os" --include="ci.config.json" packages/ | sed 's|packages/||;s|/ci.config.json||' | sort
# Check if a package has standalone ddb tests too
grep -o '"ddb"' packages/<name>/ci.config.json