@wix/agent-skills 1.33.0 → 1.34.0
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/README.md +23 -0
- package/package.json +2 -2
- package/skills/wix-app/references/DASHBOARD_PAGE.md +1 -1
- package/skills/wix-export/SKILL.md +83 -0
- package/skills/wix-harmony-editor/.publish-manifest.json +8 -0
- package/skills/wix-harmony-editor/COPY-SITE.md +494 -0
- package/skills/wix-harmony-editor/SKILL.md +317 -0
- package/skills/wix-harmony-editor/scripts/copy/build-description.mjs +249 -0
- package/skills/wix-harmony-editor/scripts/copy/check-description.mjs +225 -0
- package/skills/wix-harmony-editor/scripts/copy/check-mirror.mjs +89 -0
- package/skills/wix-harmony-editor/scripts/copy/compare-preview.mjs +76 -0
- package/skills/wix-harmony-editor/scripts/copy/deploy-description.mjs +212 -0
- package/skills/wix-harmony-editor/scripts/copy/desc-hash.mjs +44 -0
- package/skills/wix-harmony-editor/scripts/copy/editor-run.mjs +45 -0
- package/skills/wix-harmony-editor/scripts/copy/export-page.mjs +53 -0
- package/skills/wix-harmony-editor/scripts/copy/find-interactions.mjs +76 -0
- package/skills/wix-harmony-editor/scripts/copy/hide-scrollbars.mjs +16 -0
- package/skills/wix-harmony-editor/scripts/copy/import-media.mjs +150 -0
- package/skills/wix-harmony-editor/scripts/copy/link-url.mjs +27 -0
- package/skills/wix-harmony-editor/scripts/copy/lint-api.mjs +56 -0
- package/skills/wix-harmony-editor/scripts/copy/measure-source.mjs +211 -0
- package/skills/wix-harmony-editor/scripts/copy/merge-mirrors.mjs +29 -0
- package/skills/wix-harmony-editor/scripts/copy/mirror-site.mjs +92 -0
- package/skills/wix-harmony-editor/scripts/copy/mobile-stage.mjs +56 -0
- package/skills/wix-harmony-editor/scripts/copy/preview-widths.mjs +73 -0
- package/skills/wix-harmony-editor/scripts/copy/render-plate.mjs +67 -0
- package/skills/wix-harmony-editor/scripts/copy/serve-mirror.mjs +102 -0
- package/skills/wix-harmony-editor/scripts/copy/snapshot-capabilities.mjs +40 -0
- package/skills/wix-harmony-editor/scripts/copy/split-sections.mjs +191 -0
- package/skills/wix-harmony-editor/scripts/copy/upload-media-manager.mjs +61 -0
- package/skills/wix-harmony-editor/scripts/launch.sh +359 -0
- package/skills/wix-headless/SKILL.md +7 -2
- package/skills/wix-headless/references/CAPABILITIES.md +6 -1
- package/skills/wix-headless/references/DISCOVERY.md +2 -1
- package/skills/wix-headless/references/SDK_HANDOFF.md +6 -1
- package/skills/wix-headless/references/SEED.md +3 -2
- package/skills/wix-headless/references/SETUP.md +1 -0
- package/skills/wix-headless/references/inline-recipes/experience-donations.md +102 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-donations.md +146 -0
- package/skills/wix-headless/references/inline-recipes/setup-donations.md +15 -0
- package/skills/wix-headless/references/managed/CREATE.md +1 -1
- package/skills/wix-headless-kit/SKILL.md +110 -21
- package/skills/wix-headless-kit/guides/api-run.md +15 -13
- package/skills/wix-headless-kit/guides/existing-site.md +31 -0
- package/skills/wix-headless-kit/guides/migration.md +49 -17
- package/skills/wix-headless-kit/install/agents-md.mjs +1 -1
- package/skills/wix-headless-kit/install/context.mjs +61 -6
- package/skills/wix-headless-kit/install/pins.json +1 -1
- package/skills/wix-headless-kit/install/setup.mjs +107 -12
- package/skills/wix-headless-replatform/.publish-manifest.json +8 -0
- package/skills/wix-headless-replatform/SKILL.md +116 -0
- package/skills/wix-headless-replatform/agents/openai.yaml +6 -0
- package/skills/wix-headless-replatform/references/control-and-visual-fidelity-contract.md +43 -0
- package/skills/wix-headless-replatform/references/extraction-schema.md +187 -0
- package/skills/wix-headless-replatform/references/interaction-runtime-contract.md +137 -0
- package/skills/wix-headless-replatform/references/layout-blueprint-contract.md +41 -0
- package/skills/wix-headless-replatform/references/output-contract.md +93 -0
- package/skills/wix-headless-replatform/references/post-build-gap-contract.md +125 -0
- package/skills/wix-headless-replatform/references/qa-checklist.md +83 -0
- package/skills/wix-headless-replatform/references/safety.md +19 -0
- package/skills/wix-headless-replatform/references/ui-normalization-contract.md +70 -0
- package/skills/wix-headless-replatform/references/workflow.md +157 -0
- package/skills/wix-headless-replatform/registry/README.md +20 -0
- package/skills/wix-headless-replatform/registry/approvals/button/shadcn-default-ac60ef5.json +28 -0
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/button.tsx +54 -0
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/capabilities.json +60 -0
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/contract.md +48 -0
- package/skills/wix-headless-replatform/registry/licenses/shadcn-ui-ac60ef5-MIT.txt +21 -0
- package/skills/wix-headless-replatform/registry/registry.json +36 -0
- package/skills/wix-headless-replatform/resources/rp-facelift/SKILL.md +32 -0
- package/skills/wix-headless-replatform/resources/rp-project-context/SKILL.md +62 -0
- package/skills/wix-headless-replatform/resources/rp-qa-gap-loop/SKILL.md +64 -0
- package/skills/wix-headless-replatform/resources/rp-source-evidence/SKILL.md +42 -0
- package/skills/wix-headless-replatform/resources/rp-ui-implementation/SKILL.md +73 -0
- package/skills/wix-headless-replatform/schemas/build-plan.schema.json +10 -0
- package/skills/wix-headless-replatform/schemas/candidate.schema.json +19 -0
- package/skills/wix-headless-replatform/schemas/common.schema.json +33 -0
- package/skills/wix-headless-replatform/schemas/decision-patch.schema.json +10 -0
- package/skills/wix-headless-replatform/schemas/decision-request.schema.json +10 -0
- package/skills/wix-headless-replatform/schemas/extraction-gap.schema.json +28 -0
- package/skills/wix-headless-replatform/schemas/extraction-manifest.schema.json +34 -0
- package/skills/wix-headless-replatform/schemas/final-report.schema.json +10 -0
- package/skills/wix-headless-replatform/schemas/foundation.schema.json +11 -0
- package/skills/wix-headless-replatform/schemas/metadata.schema.json +11 -0
- package/skills/wix-headless-replatform/schemas/observation-packet.schema.json +17 -0
- package/skills/wix-headless-replatform/schemas/page-capture.schema.json +11 -0
- package/skills/wix-headless-replatform/schemas/page-resolution.schema.json +33 -0
- package/skills/wix-headless-replatform/schemas/shared-chrome.schema.json +11 -0
- package/skills/wix-headless-replatform/schemas/unit.schema.json +40 -0
- package/skills/wix-headless-replatform/scripts/assemble-extraction.mjs +844 -0
- package/skills/wix-headless-replatform/scripts/benchmark-extraction.mjs +163 -0
- package/skills/wix-headless-replatform/scripts/browser-extraction-preflight.mjs +42 -0
- package/skills/wix-headless-replatform/scripts/build-extracted-homepage.mjs +228 -0
- package/skills/wix-headless-replatform/scripts/clear-wix-starter.mjs +87 -0
- package/skills/wix-headless-replatform/scripts/create-wix-project.mjs +505 -0
- package/skills/wix-headless-replatform/scripts/discover-urls.mjs +142 -0
- package/skills/wix-headless-replatform/scripts/extract-assets.mjs +140 -0
- package/skills/wix-headless-replatform/scripts/extract-design-system.mjs +637 -0
- package/skills/wix-headless-replatform/scripts/extract-interactions.mjs +1903 -0
- package/skills/wix-headless-replatform/scripts/extract-page.mjs +2461 -0
- package/skills/wix-headless-replatform/scripts/extract-seo.mjs +25 -0
- package/skills/wix-headless-replatform/scripts/extract-tokens.mjs +63 -0
- package/skills/wix-headless-replatform/scripts/finalize-extraction-report.mjs +126 -0
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.mjs +180 -0
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.test.mjs +98 -0
- package/skills/wix-headless-replatform/scripts/finalize-migration-website.mjs +103 -0
- package/skills/wix-headless-replatform/scripts/generate-control-state-contract.mjs +176 -0
- package/skills/wix-headless-replatform/scripts/generate-design-md.mjs +261 -0
- package/skills/wix-headless-replatform/scripts/generate-extraction-validators.mjs +25 -0
- package/skills/wix-headless-replatform/scripts/generate-invoice-download-backend.mjs +342 -0
- package/skills/wix-headless-replatform/scripts/generate-layout-blueprint.mjs +140 -0
- package/skills/wix-headless-replatform/scripts/generate-repeater-cms.mjs +22 -0
- package/skills/wix-headless-replatform/scripts/generate-route-plan.mjs +143 -0
- package/skills/wix-headless-replatform/scripts/generate-scene-contract.mjs +288 -0
- package/skills/wix-headless-replatform/scripts/generate-ui-normalization.mjs +266 -0
- package/skills/wix-headless-replatform/scripts/generate-visual-assets.mjs +111 -0
- package/skills/wix-headless-replatform/scripts/lib/browser-tooling.mjs +570 -0
- package/skills/wix-headless-replatform/scripts/lib/common.mjs +329 -0
- package/skills/wix-headless-replatform/scripts/lib/component-capabilities.mjs +121 -0
- package/skills/wix-headless-replatform/scripts/lib/component-registry.mjs +282 -0
- package/skills/wix-headless-replatform/scripts/lib/content-boundary.mjs +61 -0
- package/skills/wix-headless-replatform/scripts/lib/extraction-contract.mjs +374 -0
- package/skills/wix-headless-replatform/scripts/lib/extraction-detectors.mjs +243 -0
- package/skills/wix-headless-replatform/scripts/lib/extraction-validators.generated.mjs +1139 -0
- package/skills/wix-headless-replatform/scripts/lib/font-contract.mjs +326 -0
- package/skills/wix-headless-replatform/scripts/lib/frontend-automation-state.mjs +184 -0
- package/skills/wix-headless-replatform/scripts/lib/gap-analysis.mjs +396 -0
- package/skills/wix-headless-replatform/scripts/lib/html-extract.mjs +168 -0
- package/skills/wix-headless-replatform/scripts/lib/interaction-bootstrap.mjs +10 -0
- package/skills/wix-headless-replatform/scripts/lib/interaction-runtime.mjs +194 -0
- package/skills/wix-headless-replatform/scripts/lib/interaction-timeline.mjs +348 -0
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/classifiers.mjs +141 -0
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/geometry.mjs +43 -0
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/vocabulary.mjs +18 -0
- package/skills/wix-headless-replatform/scripts/lib/ui-normalization.css +64 -0
- package/skills/wix-headless-replatform/scripts/optimize-svg.mjs +31 -0
- package/skills/wix-headless-replatform/scripts/post-build-gap.mjs +358 -0
- package/skills/wix-headless-replatform/scripts/provision-repeater-cms.mjs +25 -0
- package/skills/wix-headless-replatform/scripts/record-gap-decision.mjs +39 -0
- package/skills/wix-headless-replatform/scripts/replay-extraction.mjs +107 -0
- package/skills/wix-headless-replatform/scripts/resolve-home-page.mjs +96 -0
- package/skills/wix-headless-replatform/scripts/site-clone.mjs +658 -0
- package/skills/wix-headless-replatform/scripts/validate-font-contract.mjs +29 -0
- package/skills/wix-headless-replatform/scripts/verify-interactions.mjs +669 -0
- package/skills/wix-headless-replatform/scripts/visual-qa.mjs +370 -0
- package/skills/wix-headless-templates/donations/INSTRUCTIONS.md +37 -24
- package/skills/wix-headless-templates/donations/app/components/donations/DonateForm.tsx +49 -23
- package/skills/wix-headless-templates/donations/app/components/donations/DonationReceipt.tsx +6 -5
- package/skills/wix-headless-templates/donations/app/components/donations/GoalProgress.tsx +5 -5
- package/skills/wix-headless-templates/donations/app/wix/donations/campaigns.ts +4 -4
- package/skills/wix-headless-templates/donations/app/wix/donations/donate.ts +7 -3
- package/skills/wix-headless-templates/donations/app/wix/donations/donation-store.ts +2 -2
- package/skills/wix-headless-templates/donations/app/wix/donations/donations-core.ts +12 -9
- package/skills/wix-headless-templates/donations/project/src/components/donations/DonateForm.tsx +49 -23
- package/skills/wix-headless-templates/donations/project/src/components/donations/DonationReceipt.tsx +6 -5
- package/skills/wix-headless-templates/donations/project/src/components/donations/GoalProgress.tsx +5 -5
- package/skills/wix-headless-templates/donations/project/src/wix/donations/campaigns.ts +4 -4
- package/skills/wix-headless-templates/donations/project/src/wix/donations/donate.ts +7 -3
- package/skills/wix-headless-templates/donations/project/src/wix/donations/donation-store.ts +2 -2
- package/skills/wix-headless-templates/donations/project/src/wix/donations/donations-core.ts +12 -9
- package/skills/wix-headless-templates/donations/rest/campaigns.ts +4 -4
- package/skills/wix-headless-templates/donations/rest/donate.ts +7 -3
- package/skills/wix-headless-templates/donations/seed/SEED.md +12 -7
- package/skills/wix-headless-templates/donations/tests/donation-contract.test.mjs +71 -0
- package/skills/wix-headless-templates/donations/tests/donation-form.test.cjs +137 -0
- package/skills/wix-headless-templates/restaurants/INSTRUCTIONS.md +28 -14
- package/skills/wix-headless-templates/restaurants/app/components/restaurants/OrderCartDrawer.tsx +87 -5
- package/skills/wix-headless-templates/restaurants/app/hooks/restaurants/useOrderCart.ts +9 -1
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/order-store.ts +33 -4
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/ordering-core.ts +100 -5
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/ordering.ts +101 -15
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/types.ts +35 -1
- package/skills/wix-headless-templates/restaurants/project/src/components/restaurants/OrderCartDrawer.tsx +87 -5
- package/skills/wix-headless-templates/restaurants/project/src/hooks/restaurants/useOrderCart.ts +9 -1
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/order-store.ts +33 -4
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/ordering-core.ts +100 -5
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/ordering.ts +101 -15
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/types.ts +35 -1
- package/skills/wix-headless-templates/restaurants/rest/ordering.ts +91 -14
- package/skills/wix-import/SKILL.md +90 -0
- package/skills/wix-manage/SKILL.md +38 -10
- package/skills/wix-manage/references/automations/actions.md +11 -11
- package/skills/wix-manage/references/automations/activation-status.md +6 -9
- package/skills/wix-manage/references/automations/api-catalog.md +48 -32
- package/skills/wix-manage/references/automations/automation-model.md +97 -22
- package/skills/wix-manage/references/automations/bracket-expressions.md +7 -7
- package/skills/wix-manage/references/automations/build-and-manage-automations.md +140 -309
- package/skills/wix-manage/references/automations/conditions.md +187 -0
- package/skills/wix-manage/references/automations/schemas-and-scheduling.md +191 -0
- package/skills/wix-manage/references/automations/special-actions.md +210 -0
- package/skills/wix-manage/references/automations/triggers.md +47 -10
- package/skills/wix-manage/references/automations/validation-and-verification.md +320 -0
- package/skills/wix-manage/references/custom-apps/use-app-tools.md +124 -0
- package/skills/wix-manage/references/dashboard-navigation/dashboard-navigation.md +2 -1
- package/skills/wix-manage/references/dashboard-navigation/routes.json +249 -0
- package/skills/wix-manage/references/donations/create-and-update-donation-campaigns.md +139 -0
- package/skills/wix-manage/references/events/create-wix-event.md +136 -73
- package/skills/wix-manage/references/events/events-dashboard-navigation.md +81 -0
- package/skills/wix-manage/references/events/manage-event-guests.md +366 -0
- package/skills/wix-manage/references/events/manage-event-tickets.md +293 -0
- package/skills/wix-manage/references/events/manage-wix-events.md +313 -55
- package/skills/wix-manage/references/sites/manage-oauth-apps.md +1 -0
- package/skills/wix-manage/references/sites/upload-static-site.md +127 -8
- package/skills/wix-manage/references/stores/update-product-with-options.md +58 -2
- package/skills/wix-replatform/.publish-manifest.json +5 -5
- package/skills/wix-replatform/CLI.md +162 -0
- package/skills/wix-replatform/README.md +52 -0
- package/skills/wix-replatform/SKILL.md +229 -684
- package/skills/wix-replatform/console/account.css +1 -0
- package/skills/wix-replatform/console/app.css +1 -0
- package/skills/wix-replatform/console/app.js +117 -0
- package/skills/wix-replatform/console/index.html +4 -0
- package/skills/wix-replatform/console/json.css +11 -0
- package/skills/wix-replatform/lib/agent-adapters/index.js +71 -0
- package/skills/wix-replatform/lib/app-page-routing.js +75 -0
- package/skills/wix-replatform/lib/artifact-freshness.js +11 -1
- package/skills/wix-replatform/lib/blocked-data-requests.js +427 -0
- package/skills/wix-replatform/lib/census-reconciliation.js +426 -0
- package/skills/wix-replatform/lib/completion-report.js +1393 -13
- package/skills/wix-replatform/lib/config-env.js +85 -11
- package/skills/wix-replatform/lib/confirmed-pictures.js +212 -0
- package/skills/wix-replatform/lib/dependency-readiness.js +423 -0
- package/skills/wix-replatform/lib/dependency-recovery.js +21 -0
- package/skills/wix-replatform/lib/destination-choice.js +163 -0
- package/skills/wix-replatform/lib/destination-handoff.js +62 -0
- package/skills/wix-replatform/lib/destination-http.js +81 -0
- package/skills/wix-replatform/lib/destination-route.js +98 -0
- package/skills/wix-replatform/lib/destination.js +919 -0
- package/skills/wix-replatform/lib/discovered-census.js +231 -0
- package/skills/wix-replatform/lib/discovered-set-status.js +255 -0
- package/skills/wix-replatform/lib/document-url-guard.js +203 -0
- package/skills/wix-replatform/lib/entity-qa-attestation.js +339 -0
- package/skills/wix-replatform/lib/entity-verification.js +18 -0
- package/skills/wix-replatform/lib/execution-capability.js +120 -0
- package/skills/wix-replatform/lib/execution-log.js +170 -0
- package/skills/wix-replatform/lib/execution-manifest.js +20 -2
- package/skills/wix-replatform/lib/execution-state.js +22 -0
- package/skills/wix-replatform/lib/expectations-ledger.js +96 -0
- package/skills/wix-replatform/lib/generated-plugin-handoff.js +140 -0
- package/skills/wix-replatform/lib/import-readiness-contract.js +23 -0
- package/skills/wix-replatform/lib/import-recovery.js +800 -6
- package/skills/wix-replatform/lib/imported-redirect-targets.js +608 -0
- package/skills/wix-replatform/lib/internal-link-reconciliation.js +166 -0
- package/skills/wix-replatform/lib/link-audit.js +173 -0
- package/skills/wix-replatform/lib/link-census.js +194 -0
- package/skills/wix-replatform/lib/link-plan.js +148 -0
- package/skills/wix-replatform/lib/link-verification.js +274 -0
- package/skills/wix-replatform/lib/link-write-journal.js +42 -0
- package/skills/wix-replatform/lib/local-state.js +869 -30
- package/skills/wix-replatform/lib/member-completion.js +658 -0
- package/skills/wix-replatform/lib/member-crosswalk.js +69 -0
- package/skills/wix-replatform/lib/member-outcome-registry.js +265 -0
- package/skills/wix-replatform/lib/migration-completion.js +311 -0
- package/skills/wix-replatform/lib/operator-identity.js +47 -0
- package/skills/wix-replatform/lib/orchestration-decisions.js +248 -0
- package/skills/wix-replatform/lib/orchestration-preflight.js +401 -19
- package/skills/wix-replatform/lib/orchestration-router.js +608 -32
- package/skills/wix-replatform/lib/orchestration-state.js +188 -12
- package/skills/wix-replatform/lib/order-reference-readiness.js +30 -0
- package/skills/wix-replatform/lib/payments-outcome-registry.js +200 -0
- package/skills/wix-replatform/lib/plugin-cms-fallback.js +618 -0
- package/skills/wix-replatform/lib/preservation-approval-stamp.js +54 -0
- package/skills/wix-replatform/lib/product-media-deferral.js +96 -0
- package/skills/wix-replatform/lib/progress-log.js +19 -3
- package/skills/wix-replatform/lib/read-back-approval.js +184 -0
- package/skills/wix-replatform/lib/read-back-comparison.js +136 -0
- package/skills/wix-replatform/lib/read-back-contract.js +243 -0
- package/skills/wix-replatform/lib/read-back-extract.js +118 -0
- package/skills/wix-replatform/lib/read-back-gate.js +734 -0
- package/skills/wix-replatform/lib/read-back-reads.js +94 -0
- package/skills/wix-replatform/lib/read-back-state.js +107 -0
- package/skills/wix-replatform/lib/read-back-summary.js +81 -0
- package/skills/wix-replatform/lib/rerun-conflicts.js +334 -0
- package/skills/wix-replatform/lib/run-controller.js +401 -0
- package/skills/wix-replatform/lib/seo-outcome-registry.js +45 -0
- package/skills/wix-replatform/lib/setup-verification.js +148 -0
- package/skills/wix-replatform/lib/source-access.js +231 -0
- package/skills/wix-replatform/lib/source-coverage.js +1130 -0
- package/skills/wix-replatform/lib/source-secrets.js +277 -0
- package/skills/wix-replatform/lib/structured-link-patch.js +59 -0
- package/skills/wix-replatform/lib/task-state.js +110 -0
- package/skills/wix-replatform/lib/url-preservation-report.js +319 -0
- package/skills/wix-replatform/lib/url-preservation-state.js +349 -1
- package/skills/wix-replatform/lib/url-redirect-plan.js +728 -0
- package/skills/wix-replatform/lib/url-verification.js +315 -0
- package/skills/wix-replatform/lib/user-action-effects.js +42 -0
- package/skills/wix-replatform/lib/user-actions.js +264 -0
- package/skills/wix-replatform/lib/website-handoff.js +1220 -0
- package/skills/wix-replatform/lib/wix-client-callers.js +54 -0
- package/skills/wix-replatform/lib/wix-dashboard-url.js +35 -0
- package/skills/wix-replatform/lib/write-verification-state.js +92 -0
- package/skills/wix-replatform/lib/write-verification.js +274 -0
- package/skills/wix-replatform/resources/rp-destination/SKILL.md +137 -0
- package/skills/wix-replatform/resources/rp-discovery/SKILL.md +189 -16
- package/skills/wix-replatform/resources/rp-discovery/scripts/promote-source-coverage.js +47 -0
- package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +869 -29
- package/skills/wix-replatform/resources/rp-execute-import/scripts/shipping-estimate-audit.js +70 -0
- package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +195 -29
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/execute-setup.js +442 -0
- package/skills/wix-replatform/resources/rp-execution-policy/SKILL.md +112 -0
- package/skills/wix-replatform/resources/rp-execution-policy/lib/coupon-currency-plan-report.js +143 -0
- package/skills/wix-replatform/resources/rp-execution-policy/lib/payments-report.js +244 -0
- package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +2082 -38
- package/skills/wix-replatform/resources/rp-mapper/SKILL.md +528 -11
- package/skills/wix-replatform/resources/rp-mapper/lib/structure-bridge-planning.js +303 -0
- package/skills/wix-replatform/resources/rp-mapper/scripts/coverage-reconcile.js +88 -0
- package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +6 -5
- package/skills/wix-replatform/resources/rp-preflight/SKILL.md +40 -0
- package/skills/wix-replatform/resources/rp-project-intake/SKILL.md +55 -0
- package/skills/wix-replatform/resources/rp-quick-runtime/SKILL.md +60 -0
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/import-progress.js +89 -0
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/limit-recovery.js +36 -0
- package/skills/wix-replatform/resources/rp-quick-shopify/SKILL.md +123 -0
- package/skills/wix-replatform/resources/rp-quick-shopify/quick-mode.json +124 -0
- package/skills/wix-replatform/resources/rp-quick-shopify/scripts/quick-mode.js +522 -0
- package/skills/wix-replatform/resources/rp-quick-woocommerce/SKILL.md +56 -0
- package/skills/wix-replatform/resources/rp-quick-woocommerce/quick-mode.json +91 -0
- package/skills/wix-replatform/resources/rp-quick-woocommerce/scripts/quick-mode.js +255 -0
- package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +80 -10
- package/skills/wix-replatform/resources/rp-setup-discovery/scripts/quick-setup-plan.js +44 -0
- package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +3 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
- package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +21 -1
- package/skills/wix-replatform/resources/rp-source-inputs/SKILL.md +66 -0
- package/skills/wix-replatform/resources/rp-source-sfcc/SKILL.md +153 -0
- package/skills/wix-replatform/resources/rp-source-shopify/SKILL.md +394 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/discovery-reads.js +200 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/import-findings.js +34 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk-sqlite-worker.js +44 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk.js +1470 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-cli.js +446 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-gift-cards.js +474 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-protected-fields.js +879 -0
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-session.js +426 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/articles.graphql +24 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/blogs.graphql +18 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/collections.graphql +40 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/customers.graphql +76 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/delivery-profiles.graphql +51 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/discounts.graphql +35 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/files.graphql +20 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/gift-cards.graphql +18 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/inventory.graphql +31 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/locations.graphql +21 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/menus.graphql +21 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/metaobjects.graphql +30 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-core.graphql +150 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-fulfillments.graphql +36 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-refunds.graphql +48 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/pages.graphql +20 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-address.graphql +8 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-email.graphql +6 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-name.graphql +8 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-phone.graphql +8 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-address.graphql +12 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-email.graphql +6 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-name.graphql +13 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-phone.graphql +13 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/products.graphql +73 -0
- package/skills/wix-replatform/resources/rp-source-shopify/queries/url-redirects.graphql +13 -0
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-discovery.js +693 -0
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-extract.js +283 -0
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-gift-card-remedy.js +191 -0
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-session-check.js +115 -0
- package/skills/wix-replatform/resources/rp-source-shopify/source-schema.example.json +201 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/PLUGIN-READ-PLANS.md +146 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +736 -22
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/blocked-data-handlers.js +73 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.js +115 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.test-fixture.js +91 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/coupon-discovery.js +440 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/currency-gate.js +125 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.js +252 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.json +183 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-summary.mjs +333 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/invoice-discovery.js +426 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-disposition.js +400 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-entity-read-plan.js +633 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-knowledge.js +1127 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.js +194 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.json +100 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/sampled-ids-batch.js +157 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/secret-value-guard.js +234 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/store-currency.js +101 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/structure-bridge-reader.js +755 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.js +1074 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.test-fixture.js +149 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/woo-inventory.js +25 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +204 -9
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-image-url.js +186 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-plugin-detect.js +1422 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-redirect-sources.js +343 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +262 -26
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/yoast-product-seo-evidence.js +272 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/README.md +373 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/advanced-custom-fields.json +101 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/back-in-stock-notifier-for-woocommerce.json +81 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/capabilities-pending-decision.json +128 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/cms-fallback-eligible.json +18 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/contact-form-7.json +104 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/facebook-for-woocommerce.json +44 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/fingerprint-aliases.json +49 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/free-gifts-for-woocommerce.json +94 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/index.json +863 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mailpoet.json +52 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/membership-for-woocommerce.json +161 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mwb-bookings-for-woocommerce.json +180 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/no-migration-needed.json +286 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pricing-deals-for-woocommerce.json +79 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/product-extras-for-woocommerce.json +120 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pw-woocommerce-gift-cards.json +128 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/requires-development.json +88 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seo-by-rank-math.json +80 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seriously-simple-podcasting.json +46 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/strong-testimonials.json +55 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/subscriptions-for-woocommerce.json +99 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/tablepress.json +55 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/the-events-calendar.json +160 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/ti-woocommerce-wishlist.json +81 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-checkout-field-editor-pro.json +60 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-discount-rules.json +74 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-product-bundle.json +75 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-gift-cards.json +60 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-other-payment-gateway.json +44 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-pdf-invoices-packing-slips.json +57 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-product-addon.json +141 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-progressive-discounts.json +54 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wordpress-seo.json +158 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpc-composite-products.json +97 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpforms-lite.json +86 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/capture-store-settings.js +90 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge-validate.js +51 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge.js +103 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +1668 -33
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-plugin-inventory.js +273 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/secret-value-patterns.v1.json +11 -0
- package/skills/wix-replatform/resources/rp-source-wordpress/sub-parts.json +13 -0
- package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +446 -32
- package/skills/wix-replatform/resources/rp-target-wix/app-page-routing-capabilities.json +36 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +38 -2
- package/skills/wix-replatform/resources/rp-target-wix/domains/SERVICE-PLUGINS.md +322 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/docs-survey.json +70 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +19 -9
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +42 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +54 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +66 -10
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +38 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/docs-survey.json +332 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/domain.json +75 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/booking.json +181 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service-add-on.json +130 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service.json +180 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/docs-survey.json +161 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +15 -4
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +39 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +47 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +7 -1
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/docs-survey.json +204 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +17 -4
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +159 -15
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +80 -12
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +48 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/docs-survey.json +306 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +30 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/delivery-profile.json +171 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/discount-rule.json +182 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-applied-discount.json +129 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-invoice-document.json +192 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item-options.json +123 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +60 -12
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-merchant-note.json +112 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-payment.json +191 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +140 -13
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +383 -18
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/pickup-location.json +122 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/shipping-option.json +98 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/wishlist-item.json +86 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/docs-survey.json +128 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/domain.json +38 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/category.json +73 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/event.json +107 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/registration-form.json +89 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/rsvp.json +118 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/ticket-definition.json +93 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/docs-survey.json +86 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/domain.json +56 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form-submission.json +121 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form.json +134 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/docs-survey.json +41 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/domain.json +50 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card-product.json +87 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card.json +130 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +914 -24
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/docs-survey.json +41 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +14 -4
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +45 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +41 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/docs-survey.json +119 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +13 -3
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +41 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/custom-field.json +82 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member-about.json +77 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +165 -13
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/docs-survey.json +41 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/domain.json +46 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan-order.json +137 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan.json +133 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/docs-survey.json +7 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/domain.json +36 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/amazon-shop-connect.json +71 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/ebay-shop-connect.json +67 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/google-youtube-connect.json +72 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/meta-catalog-connect.json +74 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/pinterest-catalog-connect.json +69 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/tiktok-catalog-connect.json +61 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +28 -1
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/docs-survey.json +109 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/domain.json +73 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/item-seo-tags.json +148 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/seo-pattern.json +91 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/site-seo-tags.json +79 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/docs-survey.json +32 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/domain.json +49 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/entities/business-contact.json +103 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/docs-survey.json +203 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +27 -10
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/back-in-stock-request.json +119 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/brand.json +111 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +52 -8
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +214 -10
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +93 -13
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-customization.json +111 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +52 -10
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +145 -14
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/promotion.json +84 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/review.json +178 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/subscription-product.json +87 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/docs-survey.json +106 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/domain.json +64 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/manual-tax-mapping.json +119 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-group.json +94 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-region.json +113 -0
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-settings.json +65 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-author-attribution.js +165 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-client.js +60 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-duplicates.js +201 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-ledger.js +306 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-report.js +229 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-stage.js +55 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build.js +715 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-media.js +567 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/bulk-results.js +73 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-extended-fields.js +194 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-import.js +133 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +13 -4
- package/skills/wix-replatform/resources/rp-target-wix/lib/coupon-redemption-drift.js +491 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/customer-member.js +104 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/data-extension-schema.js +673 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +453 -2
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-balance-reconciliation.js +119 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-build.js +566 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-redemption-build.js +249 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-applied-discount-build.js +63 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-buyer.js +187 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-channel-build.js +64 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-history.js +1027 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-invoice-contract.js +90 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-payment-mapping.js +420 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/pricing-plan-definition.js +177 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-import.js +151 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-seo.js +723 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/seo-redirects.js +353 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-build.js +1437 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-option-stage.js +354 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/store-config-build.js +134 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-category-attach.js +221 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-inventory.js +248 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +86 -3
- package/skills/wix-replatform/resources/rp-target-wix/lib/tax-build.js +231 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/url-mapper-transport.js +28 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/value-utils.js +14 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/variant-correlation.js +34 -0
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +166 -15
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +19 -2
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +4079 -257
- package/skills/wix-replatform/resources/rp-target-wix/lib/write-verification.js +3 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/docs-survey-sync.js +150 -0
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +40 -2
- package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +6 -1
- package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +148 -8
- package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +83 -15
- package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +1119 -215
- package/skills/wix-replatform/resources/rp-telemetry/lib/transcript-digest.js +318 -0
- package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +2 -2
- package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +106 -4
- package/skills/wix-replatform/resources/rp-website-continuation/SKILL.md +94 -0
- package/skills/wix-replatform/scripts/census-reconciliation.js +25 -0
- package/skills/wix-replatform/scripts/cms-fallback.js +89 -0
- package/skills/wix-replatform/scripts/discovered-census.js +26 -0
- package/skills/wix-replatform/scripts/discovered-set-status.js +33 -0
- package/skills/wix-replatform/scripts/entity-qa-attestation.js +130 -0
- package/skills/wix-replatform/scripts/execution-health-check.js +415 -0
- package/skills/wix-replatform/scripts/execution-manifest-validate.js +1 -1
- package/skills/wix-replatform/scripts/execution-state-prepare.js +1 -1
- package/skills/wix-replatform/scripts/expectations-ledger.js +44 -0
- package/skills/wix-replatform/scripts/import-contract-verify.js +183 -0
- package/skills/wix-replatform/scripts/internal-link-audit.js +90 -0
- package/skills/wix-replatform/scripts/item-seo-tags-verify.js +205 -0
- package/skills/wix-replatform/scripts/migration-completion.js +76 -0
- package/skills/wix-replatform/scripts/orchestration-preflight.js +21 -2
- package/skills/wix-replatform/scripts/orchestration-route.js +32 -1
- package/skills/wix-replatform/scripts/orchestration-state.js +146 -10
- package/skills/wix-replatform/scripts/read-back-gate.js +175 -0
- package/skills/wix-replatform/scripts/replatform-console.js +146 -0
- package/skills/wix-replatform/scripts/replatform.js +436 -0
- package/skills/wix-replatform/scripts/source-secrets.js +77 -0
- package/skills/wix-replatform/scripts/url-redirects.js +286 -0
- package/skills/wix-replatform/scripts/user-action.js +58 -0
- package/skills/wix-replatform/scripts/website-handoff-generate.js +64 -0
- package/skills/wix-replatform/scripts/wix-dashboard-url.js +54 -0
- package/skills/wix-replatform/scripts/wix-destination.js +143 -0
- package/skills/wix-replatform/scripts/wix-headless-scaffold.js +762 -0
- package/skills/wix-vibe-headless/SKILL.md +7 -3
- package/skills/wix-vibe-headless/install/deploy.cjs +61 -34
- package/skills/wix-vibe-headless/platforms/base44.md +1 -0
- package/skills/wix-vibe-headless/references/donations/INSTRUCTIONS.md +88 -0
- package/skills/wix-vibe-headless/references/donations/app/rest/wix-donations.js +112 -0
- package/skills/wix-vibe-headless/references/donations/seed/SEED.md +11 -0
- package/skills/wix-vibe-headless/references/donations/tests/donations.test.mjs +258 -0
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +5 -2
- package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +4 -1
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-ordering.js +67 -3
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-client.js +4 -3
- package/skills/wix-manage/references/custom-apps/use-app-skills-and-app-tools.md +0 -208
- package/skills/wix-replatform/resources/rp-target-wix/SPEC-product-reviews-and-blog-authorship.md +0 -330
|
@@ -19,6 +19,7 @@ This skill translates source entities and fields into Wix targets. It should def
|
|
|
19
19
|
- `migrations/<project>/source-profile.md` when available
|
|
20
20
|
- `migrations/<project>/orchestration/checkpoints.json`
|
|
21
21
|
- `migrations/<project>/orchestration/decisions.json`
|
|
22
|
+
- `migrations/<project>/discovery/source-coverage.json` (capabilities discovery could not capture)
|
|
22
23
|
- any existing Wix target-model constraints supplied by the user
|
|
23
24
|
|
|
24
25
|
Read **only** these canonical artifacts by default. Do not ingest the raw discovery dump
|
|
@@ -46,15 +47,60 @@ before:
|
|
|
46
47
|
In addition to the project artifacts above, consult the relevant bundled adapter resource
|
|
47
48
|
when the mapping depends on platform behavior that should not be guessed:
|
|
48
49
|
|
|
49
|
-
- source-side read/entity semantics from `replatform/resources/rp-source-<platform>/SKILL.md`
|
|
50
|
-
- Wix target constraints and domain behavior from `replatform/resources/rp-target-wix/SKILL.md`
|
|
50
|
+
- source-side read/entity semantics from `wix-replatform/resources/rp-source-<platform>/SKILL.md`
|
|
51
|
+
- Wix target constraints and domain behavior from `wix-replatform/resources/rp-target-wix/SKILL.md`
|
|
51
52
|
- Wix target entity suitability from
|
|
52
|
-
`replatform/resources/rp-target-wix/scripts/domain-knowledge.js`
|
|
53
|
+
`wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js`
|
|
53
54
|
|
|
54
55
|
Treat those adapter resources as the authoritative home for platform knowledge. Do not
|
|
55
56
|
copy source/Wix behavioral rules into the mapping plan as if they originated there; cite
|
|
56
57
|
and apply them there.
|
|
57
58
|
|
|
59
|
+
## Read-back field contract before mapping approval
|
|
60
|
+
|
|
61
|
+
For the gated Wix targets `order`, `member`, `contact` and `product`, every field-mapping row
|
|
62
|
+
must declare the exact `sourcePaths[]` it reads, canonical `writePath`, and `readPath` or a
|
|
63
|
+
specific `unverifiableReason`. Write array positions as `[]`. A populated `false` or `0` is
|
|
64
|
+
real data. In `mapping/entity-decisions/<entity>.json`, account for every populated source leaf
|
|
65
|
+
and intended target path with `fieldDispositions[]`: `{ kind: source | intended, path,
|
|
66
|
+
status: mapped | notMigrated, mappingRef }`. A mapped disposition names the actual mapping-row
|
|
67
|
+
ID or index; it cannot claim a path that row does not read or write.
|
|
68
|
+
|
|
69
|
+
Prepare a pure project-local module exporting `buildWrite(record)` from the mapping transforms;
|
|
70
|
+
it makes no request or write and is the same builder the generated importer will reuse.
|
|
71
|
+
Use an existing complete extract, or obtain it through the source adapter's read-only extraction
|
|
72
|
+
path before the review. These commands run from the installed skill directory:
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
node scripts/read-back-gate.js contract <projectDir> --entity <entity>
|
|
76
|
+
node scripts/read-back-gate.js inventory <projectDir> --entity <entity> --extract <extractPath> --builder <builderModule> --source-key id
|
|
77
|
+
node scripts/read-back-gate.js validate <projectDir> --entity <entity>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
`contract` merges the checked-in intended fields, projection and domain digest into the same
|
|
81
|
+
entity decision's `readBackContract`; do not invent or relax that contract. `inventory` streams
|
|
82
|
+
NDJSON or a JSON array once and stores only source IDs, paths and counts in
|
|
83
|
+
`execution/read-back-inventory/<entity>.json`. A dotted source key is supported. Missing extracts
|
|
84
|
+
report `not-run`, never a pass. Exit `2` requires correction; before approval the only permissible
|
|
85
|
+
unresolved validation item is the missing identified approval for an explicitly reviewed
|
|
86
|
+
`notMigrated` path. All other contract, mapping, history and inventory failures must be fixed.
|
|
87
|
+
|
|
88
|
+
Before any Wix write, request mapping approval with the exact current SHA-256 references from
|
|
89
|
+
`lib/read-back-contract.js` `bindings(projectDir, entity)` for **all four** artifacts:
|
|
90
|
+
`mapping/mapping-plan.json`, `mapping/entity-decisions/<entity>.json`,
|
|
91
|
+
`mapping/mapping-resolution.json` and `execution/read-back-inventory/<entity>.json`.
|
|
92
|
+
The review shows left-out paths and affected record counts, never source values. Record approval
|
|
93
|
+
through the existing mapping user action so both answer entrypoints use the shared identified
|
|
94
|
+
approval writer. Populated omissions require a named signed-in human; explicit 1-click mode
|
|
95
|
+
cannot approve them automatically. After approval, rerun validation; it must pass before writes
|
|
96
|
+
and on every resume. Changes to any pinned artifact require fresh review. A previously attempted
|
|
97
|
+
unresolved path or observed loss cannot become an approved omission. Approved omissions produce
|
|
98
|
+
a separate merchant-acknowledgement action that must be completed before launch.
|
|
99
|
+
|
|
100
|
+
For every other target entity, declare `verificationKind` and a concrete `reason` through
|
|
101
|
+
`lib/read-back-gate.js`'s `declaration`; it is outside these four field gates and must never
|
|
102
|
+
be described as having passed them.
|
|
103
|
+
|
|
58
104
|
## Deterministic first — resolve before you reason
|
|
59
105
|
|
|
60
106
|
**Do not author field mappings by hand when a vendor overlay already knows them.** Run the
|
|
@@ -122,9 +168,17 @@ overcharges every discounted product.
|
|
|
122
168
|
5. Mark gaps where native Wix entities are insufficient — the resolver's `unsupportedTargets`
|
|
123
169
|
already names them with reasons; carry those into the faithfulness ledger rather than restating.
|
|
124
170
|
6. Identify requirements for custom collections, extended fields, references, media handling, and rich content normalization.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
171
|
+
Every `extendedFields` write needs a matching `kind: "extendedFieldSchema"` setup requirement
|
|
172
|
+
with compact field intents (`key`, `fieldType`, `maxLength`, `permissionsPreset:
|
|
173
|
+
"migration-internal"`), never hand-written JSON Schema. Migration-owned fields use
|
|
174
|
+
`_user_fields`. Admitted targets: orders, products, and contacts (default `contacts-v5`; legacy
|
|
175
|
+
`contacts-v4` only by explicit choice). Other objects and nested subrecords go to CMS. Provisioning
|
|
176
|
+
a field does not decide whether a source field may be kept; that is a separate retention decision.
|
|
177
|
+
7. Save the mapping plan, including the reviewed dependency associations below.
|
|
178
|
+
8. Detect authored `blockedSourceDependencies` on the selected target entities, aggregate them
|
|
179
|
+
by `sourceEntityRef`, and write the blocked-data request state and review artifact below.
|
|
180
|
+
9. Write a concise user-review summary after the plan is complete.
|
|
181
|
+
10. Pause for a mapping review checkpoint before downstream setup/codegen work begins.
|
|
128
182
|
|
|
129
183
|
## Artifacts to create or update
|
|
130
184
|
|
|
@@ -135,9 +189,83 @@ overcharges every discounted product.
|
|
|
135
189
|
- `migrations/<project>/mapping/review/mapping-gaps.json`
|
|
136
190
|
- `migrations/<project>/mapping/review/mapping-plan.md`
|
|
137
191
|
- `migrations/<project>/mapping/review/mapping-summary.md`
|
|
192
|
+
- `migrations/<project>/mapping/review/blocked-data-requests.md`
|
|
193
|
+
- `migrations/<project>/state/blocked-data-requests/<sourceEntityRef-slug>.json`
|
|
138
194
|
- `migrations/<project>/orchestration/checkpoints.json`
|
|
139
195
|
- `migrations/<project>/orchestration/approvals.json`
|
|
140
196
|
|
|
197
|
+
## Target dependency associations
|
|
198
|
+
|
|
199
|
+
For every target dependency consumed by an import, emit
|
|
200
|
+
`dependencyBindings: [{ ref, censusIds: string[] }]` in `mapping/mapping-plan.json`.
|
|
201
|
+
Use canonical `domain/entity` refs and every contributing decision row in the current
|
|
202
|
+
discovered census, including excluded rows. Entity decisions retain their explicit
|
|
203
|
+
`targetRef` and `censusIds`, or the census's implicit `entity:<sourceEntity>` link.
|
|
204
|
+
Show these associations in the mapping review. Missing, ambiguous, duplicate or incomplete
|
|
205
|
+
associations return to mapping; never infer a target from a plugin name or a comment.
|
|
206
|
+
|
|
207
|
+
An excluded dependency is not ready merely because its entity was omitted from the plan.
|
|
208
|
+
Readiness uses the existing census reconciliation and its current identified human approval.
|
|
209
|
+
Every contributing row must be excluded and owner-approved for a whole target ref to be
|
|
210
|
+
`excluded-approved`. Mixed planned/excluded contributions remain mixed. Agent/provisional
|
|
211
|
+
acceptance and finalized-run review do not authorize new writes.
|
|
212
|
+
|
|
213
|
+
When a specific dependent field may be omitted or must defer for an excluded contribution,
|
|
214
|
+
put `dependencyFieldRules: [{ dependentRef, dependencyRef, path, action: "omit" | "defer" }]`
|
|
215
|
+
on that contribution's existing census-linked mapping gap. Render the exact rules in the
|
|
216
|
+
existing review and bind them to its existing hash-based approval. Entity exclusion alone
|
|
217
|
+
never authorizes dropping a field; absent or stale approval defers the affected record.
|
|
218
|
+
|
|
219
|
+
Shipping/tax setup prerequisites remain whole-task prerequisites. Map a single source
|
|
220
|
+
shipping line's title, cost and available delivery details. More than one line defers the
|
|
221
|
+
order with `order-multiple-shipping-lines` and a blocker gap. Select reference omission or
|
|
222
|
+
verified setup references only from the bundled field-level verification conclusions;
|
|
223
|
+
unverified shipping/tax fidelity keeps the affected order deferred. Never invent target
|
|
224
|
+
IDs, combine source lines without an approved disposition, or backfill existing orders.
|
|
225
|
+
|
|
226
|
+
## Blocked source dependencies
|
|
227
|
+
|
|
228
|
+
Read only authored `blockedSourceDependencies[]` from selected target entity knowledge; never
|
|
229
|
+
infer a request from `db-only`, `admin-page-only`, or another channel by itself. Use the shared
|
|
230
|
+
`lib/blocked-data-requests.js` builder to aggregate one request per `sourceEntityRef`, appending
|
|
231
|
+
all dependent target entity/field rows. Resolve each source entity's `blocked[].fulfillment`
|
|
232
|
+
through `rp-source-wordpress/lib/blocked-data-handlers.js`; offer it only when its fixture
|
|
233
|
+
self-test passes. `structure-bridge-plugin` (wix-wp-plugin-v2) has no
|
|
234
|
+
manifest or readiness flag to check beyond that -- authorization is live (denylist +
|
|
235
|
+
`DESCRIBE`) at request time, not a build-time gate. This readiness check is the only
|
|
236
|
+
thing this stage does with a `structure-bridge-plugin` fulfillment: unlike `csv-upload`,
|
|
237
|
+
its actual data is never resolved through this file's `attemptFulfillment()`/snapshot
|
|
238
|
+
mechanism (that path is for a small, static, one-shot document) -- `rp-import-codegen`
|
|
239
|
+
generates a normal incremental reader for it instead, reusing the same `table`/
|
|
240
|
+
`sampleStructureRequest` metadata. See `rp-import-codegen`'s "`structure-bridge-plugin`
|
|
241
|
+
entities" section. Which credential that reader authenticates with depends on whether the
|
|
242
|
+
source site has WooCommerce (Application Password requires it; the migration key does not)
|
|
243
|
+
— `rp-source-wordpress/plugins/README.md`'s "Resolving a db-only capability" section.
|
|
244
|
+
|
|
245
|
+
**Plan structure-bridge-plugin entities with `lib/structure-bridge-planning.js`** before building blocked-data requests. Pass the canonical source entities as
|
|
246
|
+
`sourceEntities` as well as profiles to `planStructureBridgeEntities({ plugins, sourceEntities,
|
|
247
|
+
dataDir })`. Bound entities do not need a profile. Preserve their canonical reference and
|
|
248
|
+
`sourceMeta.extractionPlan` unchanged; do not reconstruct bindings from legacy sidecars.
|
|
249
|
+
For object-shaped source entities retain each object's key/reference while making the array.
|
|
250
|
+
`planStructureBridgeEntities({ plugins, sourceEntities, dataDir })`
|
|
251
|
+
turns each such entity that has `candidateTargetRefs[]` into an entity decision (target,
|
|
252
|
+
readiness, read variant, discovery artifacts). An entity without a candidate target is
|
|
253
|
+
returned in `blockedFieldSources` and stays on the blocked-data path above. Pass the selected
|
|
254
|
+
target entities through `partitionBlockedSourceDependencies(targets, decisions)` and give its
|
|
255
|
+
`targetEntities` to the blocked-data builder, so a planned entity is never also requested as
|
|
256
|
+
a blocked field. Then `writeStructureBridgePlanning(projectDir, decisions)` writes
|
|
257
|
+
`mapping/entity-decisions/<entity>.json` and the `mapping/mapping-plan.json` row. It refuses
|
|
258
|
+
after the mapping review is approved. A rerun refreshes only the fields planning owns and
|
|
259
|
+
keeps field mappings, transformations, relationships and other edits already on the row. An
|
|
260
|
+
EAV read plan that fails its integrity check is a pending reason. A `pending` decision goes to
|
|
261
|
+
the review gate like any other pending row.
|
|
262
|
+
|
|
263
|
+
Persist the request under `state/` as the authority and render
|
|
264
|
+
`mapping/review/blocked-data-requests.md` as a passive review section. This adds no new blocking
|
|
265
|
+
prompt. At an interactive mapping pause, set `askedInteractively: true` only if the request is
|
|
266
|
+
actually shown and a human can decline it. In 1-click mode set it to `false`; an unanswered
|
|
267
|
+
request remains `missing`, never `declined`, because the run did not pause to ask.
|
|
268
|
+
|
|
141
269
|
## Minimum contents of the mapping plan
|
|
142
270
|
|
|
143
271
|
Include for each source entity:
|
|
@@ -149,6 +277,10 @@ Include for each source entity:
|
|
|
149
277
|
- selected `targetRef`, `targetDomain`, `targetEntity`, `targetClassification`,
|
|
150
278
|
`importReliability`, `preferredWrite`, and `knowledgeEvidence` when the decision uses a
|
|
151
279
|
bundled domain entity record
|
|
280
|
+
- when `targetClassification` is `manual-mapping`: the entity's `manualSteps`
|
|
281
|
+
verbatim (prerequisite, actor-tagged steps, mechanism, evidence) instead of field
|
|
282
|
+
mappings/transformation/validation rules below — there is no transform to author, only a
|
|
283
|
+
runbook to carry over unchanged
|
|
152
284
|
- primary key and deduplication strategy
|
|
153
285
|
- field mapping table
|
|
154
286
|
- transformation rules
|
|
@@ -224,6 +356,31 @@ Do not leave safe-mode contact replacement coverage implicit in field tables or
|
|
|
224
356
|
JSON. A reviewer should be able to confirm from the review markdown which outbound
|
|
225
357
|
email/phone fields will be replaced in safe mode.
|
|
226
358
|
|
|
359
|
+
## Variant inventory is part of the catalog plan
|
|
360
|
+
|
|
361
|
+
For each source variant, plan either explicit stock (`inventoryTracked`, `inventoryQuantity`,
|
|
362
|
+
`inStock` canonical fields) or a named inventory gap. Use the source adapter's stock mapper;
|
|
363
|
+
stock flags, quantities, and backorders are different policies. Count every intended variant
|
|
364
|
+
before filtering gaps or failed product mappings. Carry that denominator into inventory
|
|
365
|
+
verification as `expectedCount`. A product count never stands in for inventory coverage.
|
|
366
|
+
Default-location stock is supported; any shared pool, multi-location allocation, preorder,
|
|
367
|
+
or fallback availability needs an explicit mapping decision. The target builder has no
|
|
368
|
+
implicit in-stock default. A legacy explicit `inStock` fallback must not override known
|
|
369
|
+
variant stock. Inventory verification remains required for deliberately excluded stock:
|
|
370
|
+
record the expected destination state and the gap rather than exempting the catalog audit.
|
|
371
|
+
|
|
372
|
+
## Shipping delivery estimate from the merchant
|
|
373
|
+
|
|
374
|
+
When the merchant states a delivery time for a shipping zone in their own words, record it:
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
node skills/wix-replatform/scripts/orchestration-state.js decide --project-dir <projectDir> --key shipping-delivery-estimate:<zoneId> --value "<text>" --source user
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Record it only from the merchant's own words. Never infer it, and never record it with
|
|
381
|
+
`deterministic_inference` or `prior_artifact`: the shipping stage ignores those and lists them,
|
|
382
|
+
so an inferred value can never become a checkout promise.
|
|
383
|
+
|
|
227
384
|
## Identity and deduplication rules
|
|
228
385
|
|
|
229
386
|
Be explicit about the difference between a **source ID** and a **Wix target ID**.
|
|
@@ -243,6 +400,35 @@ Be explicit about the difference between a **source ID** and a **Wix target ID**
|
|
|
243
400
|
field that stores the source ID. Otherwise say the source ID is **tracked** or
|
|
244
401
|
**crosswalked**.
|
|
245
402
|
|
|
403
|
+
### When the destination already exists, map against its LIVE schema
|
|
404
|
+
|
|
405
|
+
`WIX_SITE_STRATEGY=existing` means the target is not an empty site provisioned to this
|
|
406
|
+
mapping's shape — it is a site in use, with its own collections, fields and records. Map
|
|
407
|
+
against what is actually there:
|
|
408
|
+
|
|
409
|
+
- **Read the destination's current schema before proposing a target shape.** A collection
|
|
410
|
+
the site already has, with fields the owner added, is the target — not a new collection
|
|
411
|
+
that happens to fit the source better. Two collections holding the same entity is the
|
|
412
|
+
failure mode here, and it is one the owner has to untangle by hand.
|
|
413
|
+
- **A field that exists but does not match is a GAP, not a migration.** Record it in the
|
|
414
|
+
faithfulness ledger and surface it in the mapping summary; do not plan a schema change
|
|
415
|
+
to a live site, and never plan to drop or retype an existing field.
|
|
416
|
+
- **Every entity needs a natural key, not just a crosswalk entry.** The local crosswalk is
|
|
417
|
+
empty on the first import into a site that already has data, so dedupe has to fall back
|
|
418
|
+
to something the site itself carries — SKU, handle, slug, email. State that key per
|
|
419
|
+
entity in the mapping plan; without it the import cannot tell "already there" from "new"
|
|
420
|
+
and will duplicate the owner's catalog.
|
|
421
|
+
- **Ask whether to set `cmsMirror: "download-and-upload"`; do not set it unconditionally.**
|
|
422
|
+
CMS `ImportCrosswalk` stays optional even on an existing destination — it
|
|
423
|
+
requires the user to opt into site-local reference data, because Wix CMS quotas are
|
|
424
|
+
plan-based and shared across every custom collection on the site, and a mirror the size of
|
|
425
|
+
a large migration's crosswalk can consume a meaningful share of a lower-tier plan's quota.
|
|
426
|
+
When the user does opt in, note that the on-site `ImportCrosswalk` becomes the only record
|
|
427
|
+
of prior imports visible to a run that does not share this project's local state — that is
|
|
428
|
+
the reason to offer it, not a reason to default to it.
|
|
429
|
+
- **Say so in the mapping summary.** The user reviewing the plan must see that it targets a
|
|
430
|
+
site they already own, and which of their existing entities it expects to match.
|
|
431
|
+
|
|
246
432
|
## URL preservation policy
|
|
247
433
|
|
|
248
434
|
For every in-scope source entity that appears on the public website, include an explicit
|
|
@@ -266,6 +452,16 @@ Minimum `urlPolicy` fields:
|
|
|
266
452
|
validation or collision handling forces a change.
|
|
267
453
|
- `redirectMode`: `record-if-different`, `manual-review`, or `none`.
|
|
268
454
|
|
|
455
|
+
When recording a base-path `manual_review` outcome, persist its concrete `reasonCodes`
|
|
456
|
+
and evidence in the existing base-path state, not only the status or an unexplained note.
|
|
457
|
+
If the sole issue is waiting for a destination route, use `target_route_unknown` (or the
|
|
458
|
+
existing `target_url_missing`, `pending_target_route`, `final_route_missing` reason).
|
|
459
|
+
The redirect planner can settle that uncertainty per exact source entity/final route.
|
|
460
|
+
Keep privacy, explicit operator restrictions and other causes distinct; a final destination
|
|
461
|
+
does not clear those. Include every applicable reason. Do not reclassify an unexplained
|
|
462
|
+
historical hold as routing-only merely because a convenient target exists; establish the
|
|
463
|
+
original reason from evidence or report the missing explanation for review.
|
|
464
|
+
|
|
269
465
|
If the same source entity type has multiple public route shapes, record each observed
|
|
270
466
|
route class separately instead of guessing one base path. Slugs are identity and SEO data,
|
|
271
467
|
but slug preservation alone is not URL preservation; route/base-path intent must be
|
|
@@ -277,6 +473,24 @@ Mapping review artifacts must include a short `URL preservation` section listing
|
|
|
277
473
|
- whether base paths should be preserved
|
|
278
474
|
- entities whose target route is deferred to the website-builder phase
|
|
279
475
|
- known slug normalization, collision, route, or redirect risks
|
|
476
|
+
- detected redirect providers (Redirection, Rank Math, Yoast Premium, server/CDN rules) with
|
|
477
|
+
their coverage status from `state/url-preservation/source-redirect-coverage.json`; an
|
|
478
|
+
`unreadable` or `unsupported` provider is an extraction gap the operator must see, never
|
|
479
|
+
an empty map
|
|
480
|
+
|
|
481
|
+
Source-authored redirect rules are URL obligations in their own right: an old address can
|
|
482
|
+
still receive traffic without being the address of any current page. Do not drop them
|
|
483
|
+
because they have no current entity, and do not reactivate disabled ones.
|
|
484
|
+
|
|
485
|
+
## Product SEO
|
|
486
|
+
|
|
487
|
+
Map WooCommerce/Yoast product SEO to `product.seoEvidence` (per-field `override` / `inherit` /
|
|
488
|
+
`unknown`), never to `product.seoTitle`/`seoDescription`. Rendered `yoast_head_json`, `og_*`
|
|
489
|
+
and excerpts are not evidence and are never a fallback. Title and description are decided
|
|
490
|
+
separately. Unknown evidence is held for an explicit owner choice (acquire evidence, omit, or
|
|
491
|
+
materialize); the mapping never picks one. Canonical, robots, schema, social tags and focus
|
|
492
|
+
keyphrases are not written; list them in the mapping review as not migrated. SEO patterns are
|
|
493
|
+
never inferred from repeated rendered output.
|
|
280
494
|
|
|
281
495
|
## Verifying Wix APIs
|
|
282
496
|
|
|
@@ -291,16 +505,18 @@ product/media field should be sent as an external URL for Wix-side ingestion.
|
|
|
291
505
|
For entity suitability, do not grep or paste whole domain files into the plan. Use:
|
|
292
506
|
|
|
293
507
|
```bash
|
|
294
|
-
node skills/replatform/resources/rp-target-wix/scripts/domain-knowledge.js summarize-entities --refs <domain/entity,...>
|
|
508
|
+
node skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js summarize-entities --refs <domain/entity,...>
|
|
295
509
|
```
|
|
296
510
|
|
|
297
511
|
Load full entity records only for selected candidates that materially affect the current
|
|
298
512
|
project.
|
|
299
513
|
|
|
300
514
|
- Verify enum **values**, not just names: every `Field.type` you assign must be a real
|
|
301
|
-
member of the Create Data Collection `Type` enum.
|
|
302
|
-
|
|
303
|
-
`
|
|
515
|
+
member of the Create Data Collection `Type` enum. Never assign a guessed enum value and
|
|
516
|
+
flag it `unverified`; resolve it or omit it. (`SLUG` **does** exist in that enum — it is
|
|
517
|
+
documented for dynamic page URLs. Prefer `TEXT` when the field carries a *preserved source*
|
|
518
|
+
slug as identity/SEO data, and `SLUG` only when the target itself generates the dynamic-page
|
|
519
|
+
URL from it; both are real choices, so do not record `SLUG` as unavailable.)
|
|
304
520
|
- If a Wix tool surface such as Wix MCP is available in the runtime, use it as a fast
|
|
305
521
|
verification aid for entity, field, enum, app, and setup names.
|
|
306
522
|
- If no Wix tool surface is available, rely on `rp-target-wix`'s verified contracts plus
|
|
@@ -336,6 +552,174 @@ will not migrate cleanly, including:
|
|
|
336
552
|
the missing writer. Use CMS only when no suitable native Wix entity exists, or when the
|
|
337
553
|
native entity is rejected for fidelity/side-effect reasons.
|
|
338
554
|
|
|
555
|
+
**Mandatory trigger — plugin coverage.** Every row in `discovery/plugin-coverage.json` whose
|
|
556
|
+
status is not `migration-planned` must produce a `mapping/review/mapping-gaps.json` entry
|
|
557
|
+
carrying the capability, the status, and the row's user-facing impact line — and so must a
|
|
558
|
+
`migration-planned` row that is lossy or carries `blocked[]` entries. This is what makes
|
|
559
|
+
plugin loss visible: a capability the pipeline discovered but could not deliver has to reach
|
|
560
|
+
the execution-plan report, and the ledger is the only path there.
|
|
561
|
+
|
|
562
|
+
Each such entry must also carry a `severity`, because a plugin-heavy site produces far more
|
|
563
|
+
rows than it has real problems — on a 55-plugin store, 26 rows were "we don't recognise this
|
|
564
|
+
plugin", which would bury the entries that matter if they all read alike. Use the same
|
|
565
|
+
vocabulary as profile pitfalls:
|
|
566
|
+
|
|
567
|
+
| `severity` | Means | Typical rows |
|
|
568
|
+
| --- | --- | --- |
|
|
569
|
+
| `blocker` | data the user would care about is not coming across | `requires-development`; a `blocked[]` entry still unresolved or declined |
|
|
570
|
+
| `warning` | it migrates lossily, or we are not sure yet | `pending` (including `cannot-tell`); `migration-planned · via cms` where the source is semantically richer |
|
|
571
|
+
| `info` | accounted for, nothing lost that we know of | `no-need-to-migrate` with `basis: proposed`; `migration-planned · proposed` with no known loss |
|
|
572
|
+
|
|
573
|
+
The execution-plan report leads with `blocker` and `warning` and summarizes `info` as a count
|
|
574
|
+
with a pointer. Severity is a **rendering** aid, not permission to omit: every row still gets
|
|
575
|
+
an entry, so the audit trail stays complete and a mis-severitied row can be found later.
|
|
576
|
+
|
|
577
|
+
**Mandatory trigger — source coverage.** Every row in `discovery/source-coverage.json` needs
|
|
578
|
+
**exactly one** disposition, and `scripts/coverage-reconcile.js check <project>` exits 2 until it
|
|
579
|
+
has one (the router holds the run at mapping meanwhile):
|
|
580
|
+
|
|
581
|
+
- a `mapping/review/mapping-gaps.json` entry carrying the row's `coverageId` (the usual case:
|
|
582
|
+
severity `blocker` for an in-scope capability, with `recommendedHandling`); or
|
|
583
|
+
- a `sourceCoverage:<coverageId>` decision — `provided` when discovery was re-run and the entity
|
|
584
|
+
now exists in `source-schema.json`, `declined` when the user skipped it. Record it only with
|
|
585
|
+
`scripts/coverage-reconcile.js decide <project> --coverage-id <id> --value provided|declined`,
|
|
586
|
+
which also removes that row's gap entry in the same write; or
|
|
587
|
+
- for a quick adapter only, its own declared exclusion (already on the row).
|
|
588
|
+
|
|
589
|
+
Two dispositions for one row (two gap entries, a gap plus a decision, a declared exclusion plus
|
|
590
|
+
anything) fail as `disposition_conflict`; there is no precedence rule. A `provided` decision whose
|
|
591
|
+
entity is not in `source-schema.json` fails as `disposition_stale`. A gap may cite an existing
|
|
592
|
+
human gate, never create one: `gate: "exclusion"` with `gateEvidence: { register:
|
|
593
|
+
"no-migration-needed", capability }` only on an `adapter-excluded` row whose signed register entry
|
|
594
|
+
names that row's own capability, or `gate: "loss-accepted"` with `gateEvidence` naming a signed
|
|
595
|
+
register entry (`register`, `capability`) or the approved mapping review (`approval: "mapping"`).
|
|
596
|
+
Any other pairing fails as `gate_reason_mismatch`; a cited gate that does not exist fails as
|
|
597
|
+
`gate_missing`. Every outcome reaches the completion report; see `rp-execute-import`.
|
|
598
|
+
|
|
599
|
+
Additional plugin rules:
|
|
600
|
+
|
|
601
|
+
- Resolve targets from `sourceMeta.candidateTargetRefs[]` first, then
|
|
602
|
+
`domain-knowledge.js resolve-source`, then the target knowledge base's capability index
|
|
603
|
+
keyed on `sourceMeta.capability`.
|
|
604
|
+
- **Derived entities (`sourceMeta.recognized: false`) may only be mapped to a native Wix
|
|
605
|
+
entity when the domain knowledge confirms the capability.** Otherwise map them to CMS. The
|
|
606
|
+
proposed capability from discovery is recorded with `confidence: proposed`, never a
|
|
607
|
+
target decision — treating a guess as native is how a silent, lossy write happens.
|
|
608
|
+
- **Every capability, recognized or derived, needs its pairing written down: plugin details
|
|
609
|
+
against Wix details.** In `mapping/review/mapping-plan.md`, per capability: the source
|
|
610
|
+
entity and the fields it actually carries, the target entity and the fields it expects,
|
|
611
|
+
which source field lands in which target field, and which carry nowhere. In
|
|
612
|
+
`mapping/review/mapping-summary.md`, one line naming the source, the target, and the single
|
|
613
|
+
consequence that matters. For a derived capability, say in both that the mapping is
|
|
614
|
+
**proposed** rather than confirmed — a reviewer must be able to tell a guess from an
|
|
615
|
+
authored match. Without the pairing the user is approving a target name, not a mapping.
|
|
616
|
+
- A `no-need-to-migrate` row with `basis: proposed` (the agent's own reading, not a list
|
|
617
|
+
entry) is also listed in `mapping-summary.md` — automation deciding there is nothing to
|
|
618
|
+
move is a decision worth seeing.
|
|
619
|
+
- Carry each plugin entity's profile `pitfalls[]` into the plan, and surface `blocker`
|
|
620
|
+
severities in `mapping/review/mapping-summary.md`.
|
|
621
|
+
- **A capability read through a plugin-specific credential is disclosed up front.** When a
|
|
622
|
+
profile declares `credentials[]` (a plugin's own API key or secret, beyond the platform
|
|
623
|
+
admin credential — e.g. Subscriptions For WooCommerce's plugin-generated
|
|
624
|
+
`consumer_secret`), the capability's row in `mapping/review/mapping-plan.md` states the
|
|
625
|
+
credential prerequisite (what key, where the user finds or enables it in the source
|
|
626
|
+
admin), and `mapping-summary.md` carries one line listing every capability that will ask
|
|
627
|
+
for such a key. The user learns this at the mapping review, not first as a surprise
|
|
628
|
+
`blocked: credential` ask mid-run; the run-time collection still goes through the
|
|
629
|
+
standard batched blocked-and-recoverable ask.
|
|
630
|
+
- Any capability landing in CMS adds two setup implications to the summary: the **Wix Data app
|
|
631
|
+
install**, and **creating each collection** (no verified writer yet, so it is manual). A CMS
|
|
632
|
+
row presented without them reads as more automatic than it is.
|
|
633
|
+
- `requires-development` and `pending` rows belong in the summary's gaps section in plain
|
|
634
|
+
language, even though there is no mapping to make for them.
|
|
635
|
+
- A `targetClassification: "manual-mapping"` entity becomes a checklist item in
|
|
636
|
+
`mapping-summary.md`'s `Manual steps you need to complete` section (see "The manual-steps
|
|
637
|
+
section"), not a section of its own — one consolidated list is what makes the handover
|
|
638
|
+
readable, and a per-entity section splits it. Carry over its `manualSteps.steps[]` as a
|
|
639
|
+
numbered list under that item, not a one-line summary; the point is to hand over a runbook,
|
|
640
|
+
not to compress it. **Do not** put these rows in the pending/gaps section: unlike `pending`,
|
|
641
|
+
a manual-mapping row is a complete, decided mapping the moment it is authored with real
|
|
642
|
+
evidence — there is nothing left for a human to decide, only steps for the merchant to
|
|
643
|
+
execute. It needs no verdict at the review gate below.
|
|
644
|
+
|
|
645
|
+
**Mandatory step — pending rows are decided at the review gate.** The mapping review is the
|
|
646
|
+
single human gate and **the only exit from Pending**: every `pending` row is put to the user
|
|
647
|
+
for a decision, none may survive the gate undecided. Four verdicts, each with a producer:
|
|
648
|
+
|
|
649
|
+
- **"We can migrate it"** — record the chosen target and move the row to *Migration planned*
|
|
650
|
+
in the plan (its `confidence` stays `proposed` until a profile is authored) — when the
|
|
651
|
+
capability has no REST route, follow `rp-source-wordpress/plugins/README.md`'s "Resolving
|
|
652
|
+
a db-only capability" order (try wix-wp-plugin-v2's structure-bridge-plugin before
|
|
653
|
+
defaulting to a `user-file`/csv-upload ask) before authoring the profile.
|
|
654
|
+
- **"Nothing to move"** — the row becomes *No need to migrate* with `basis: decision` and the
|
|
655
|
+
user's stated reason as its `rationale`.
|
|
656
|
+
- **"Wix has no surface — build it first"** — the row becomes *Requires development*: write it
|
|
657
|
+
to `mapping/review/mapping-gaps.json` with severity `blocker`, emit an `api_gap` telemetry
|
|
658
|
+
event, and record the verdict in the human-signed register
|
|
659
|
+
(`plugins/requires-development.json`, `decidedBy` = the user) citing the recorded search.
|
|
660
|
+
- **"The surface exists, we did not know it"** — telemetry only (`source_plugin_coverage`
|
|
661
|
+
carries the decision); the profile or domain entity is authored between runs, never during
|
|
662
|
+
this one.
|
|
663
|
+
|
|
664
|
+
Record each decision in `orchestration/decisions.json`; blocked-row asks batched at discovery
|
|
665
|
+
use the key `pluginBlocker:<capability>:<kind>` with value `provided` or `declined`.
|
|
666
|
+
|
|
667
|
+
**Mandatory step — the CMS-fallback ask (recognized capabilities).** A profile never names a
|
|
668
|
+
CMS target. CMS is reachable for a recognized capability only when a human signed it as an
|
|
669
|
+
*eligible* fallback (`plugins/cms-fallback-eligible.json`) **and** this migration's merchant
|
|
670
|
+
approves it. Such a row arrives `pending` with `cmsFallback.eligible: true` and one of these
|
|
671
|
+
reasons; each is one more closed question on that pending row at the same review:
|
|
672
|
+
|
|
673
|
+
- `cms-fallback-awaiting-approval` / `cms-fallback-decision-stale` — ask: *approve archiving
|
|
674
|
+
these records in Wix CMS*, or *decline*. Show the row's record counts, the proposed
|
|
675
|
+
collection(s) (`cmsFallback.proposedTargetRefsByEntity`) and the `cmsFallback.featureLoss`
|
|
676
|
+
sentence **verbatim**. Never present CMS archival as restoring the plugin's feature. A stale
|
|
677
|
+
row's earlier answer (`cmsFallback.staleDecision`, or `invalidDecision` for a hand-edited or
|
|
678
|
+
malformed entry) no longer applies; ask again.
|
|
679
|
+
- `cms-fallback-declined` — already answered; nothing goes to CMS. It stays `pending`: offer
|
|
680
|
+
the ordinary pending verdicts above if the merchant wants to settle it another way.
|
|
681
|
+
Declining CMS is never recorded as accepted data loss, `no-need-to-migrate` or
|
|
682
|
+
`requires-development`.
|
|
683
|
+
- `cms-fallback-target-knowledge-unavailable` — not askable: Wix target knowledge failed to
|
|
684
|
+
load, so "nothing native fits" is unproven. Report it; rerun once it loads.
|
|
685
|
+
|
|
686
|
+
Record the answer only with the dedicated writer (the generic `decide` rejects the key):
|
|
687
|
+
|
|
688
|
+
```bash
|
|
689
|
+
node skills/wix-replatform/scripts/orchestration-state.js decide-cms-fallback \
|
|
690
|
+
--project-dir <project> --capability <capability> --value approved|declined \
|
|
691
|
+
--approved-by "<the name or role the person gave>"
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
It writes `pluginCmsFallback:<capability>` bound to the proposal on the coverage row
|
|
695
|
+
(`proposalDigest`), resets the mapping approval to pending, and the router then reclassifies
|
|
696
|
+
coverage and sends you back here to regenerate the plan. **One-click and unattended runs never
|
|
697
|
+
record this answer**: an agent-accepted mapping checkpoint leaves these rows pending, nothing is
|
|
698
|
+
written to CMS for them, and completion reports them. The writer itself refuses (exits
|
|
699
|
+
non-zero) whenever `automationMode` is `one_click`; do not work around it. A row that is `migration-planned · via cms`
|
|
700
|
+
with `cmsFallback.functionalityRestored: false` is CMS-by-approval; map it to exactly
|
|
701
|
+
`targetRefs` (the register's refs), and add the CMS setup implications below plus one
|
|
702
|
+
`mapping-summary.md` line with the `featureLoss` sentence.
|
|
703
|
+
|
|
704
|
+
`mapping-gaps.json` severities for these rows: every pending CMS-fallback row (awaiting, stale,
|
|
705
|
+
declined, target knowledge unavailable) is `warning`; an approved row is also `warning` (lossy by
|
|
706
|
+
definition) and carries the `featureLoss` sentence. Each `plugin-coverage.json`
|
|
707
|
+
`cmsFallbackDecisionIssues[]` entry (a malformed answer for a capability with no row) is one
|
|
708
|
+
`info` item. A row carrying `cmsFallbackDecisionIgnored` (a native target now resolves, or the
|
|
709
|
+
eligibility was removed) is reported with that reason so the earlier answer is visibly retired.
|
|
710
|
+
|
|
711
|
+
**Mandatory step — bind the plan to the coverage it was built from.** After writing
|
|
712
|
+
`mapping/mapping-plan.json`, stamp it (a no-op when the project has no plugin coverage):
|
|
713
|
+
|
|
714
|
+
```bash
|
|
715
|
+
node skills/wix-replatform/scripts/cms-fallback.js stamp-plan --project-dir <project> --plan mapping
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
This copies `discovery/plugin-coverage.json` `inputs.cmsFallbackDigest` into
|
|
719
|
+
`mapping-plan.json` `inputs.cmsFallbackDigest`. The router treats a plan without it, or with a
|
|
720
|
+
different one, as stale (`mapping_plan_stale_cms_fallback`) and routes back here, including on
|
|
721
|
+
one-click runs.
|
|
722
|
+
|
|
339
723
|
**Mandatory trigger — hierarchical source taxonomy → flat Wix target.** When a source
|
|
340
724
|
entity carries `"hierarchical": true` (or any `parent` self-relation) in
|
|
341
725
|
`source-schema.json` and maps to a flat Wix target such as Blog categories, you **must**
|
|
@@ -354,6 +738,46 @@ Every selected entity whose domain knowledge includes `IMPORT_UNRELIABLE` must c
|
|
|
354
738
|
`mapping/review/mapping-gaps.json` entry with the same fixed flag string, the selected
|
|
355
739
|
`targetRef`, a project-specific summary, and the chosen fallback or review action.
|
|
356
740
|
|
|
741
|
+
**Mandatory check — every in-scope entity's dependencies are also in scope.** Run it directly, do
|
|
742
|
+
not re-derive it by reading prose:
|
|
743
|
+
|
|
744
|
+
```bash
|
|
745
|
+
node skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js \
|
|
746
|
+
--check-scope <comma-separated domain/entity refs in the mapping plan>
|
|
747
|
+
```
|
|
748
|
+
|
|
749
|
+
Pass only the plan's own selected refs — `checkScope` walks the `dependsOn` transitive closure
|
|
750
|
+
itself starting from that list, so do not pre-expand it by hand. It fails closed on three distinct,
|
|
751
|
+
named problems, any one of which is a gap the user must resolve at the gate before proceeding:
|
|
752
|
+
|
|
753
|
+
- **Unknown ref** — something in your selected list doesn't resolve to a real `domain/entity`
|
|
754
|
+
file (typo, stale ref). Fix the ref.
|
|
755
|
+
- **Missing dependency** — a reachable `dependsOn` has no selected producer. Resolve it
|
|
756
|
+
through an import task, bound setup steps, or the reviewed census exclusion path above. The structural scope checker must receive the full canonical dependency inventory, including refs assigned to setup or exclusion; including a ref in that inventory does not select an import entity or approve a disposition. Producer binding and current owner approval are checked separately before codegen/run.
|
|
757
|
+
Record the association and exact field rule where needed; a prose best-effort exception
|
|
758
|
+
cannot make an unresolved reference writable.
|
|
759
|
+
- **Unreviewed** — an entity reachable from your selection has never had `dependsOn` authored at
|
|
760
|
+
all (distinct from "reviewed, no dependencies"). `--list-missing-deps` shows the same backlog
|
|
761
|
+
outside the context of any one plan.
|
|
762
|
+
|
|
763
|
+
A clean `--check-scope` result means only this plan's own reachable set is fully reviewed and
|
|
764
|
+
in scope — it says nothing about entities outside that reachable set. `checkScope` walks from
|
|
765
|
+
your selected refs, not from the whole domain tree, so an unrelated entity with no `dependsOn`
|
|
766
|
+
authored at all stays invisible to this gate until some plan actually reaches it. Run
|
|
767
|
+
`--list-missing-deps` (unscoped, whole-repo) separately to see the standing backlog.
|
|
768
|
+
|
|
769
|
+
**As of this pass, only 19 of 62 entities in this repo have `dependsOn` authored** — expect to hit
|
|
770
|
+
**Unreviewed** on most real plans today, not just as an edge case. That is not this gate failing;
|
|
771
|
+
it is the gate doing its job on a knowledge base that is still mid-backfill. When it happens:
|
|
772
|
+
author `dependsOn` on the reachable entity now, as part of the mapping work you are already
|
|
773
|
+
doing — deciding a mapping plan already means knowing what that entity depends on, so this is
|
|
774
|
+
recording that decision, not new research — then re-run `--check-scope`. Do not treat Unreviewed as
|
|
775
|
+
a reason to skip the gate or fall back to reading prose by hand for that entity.
|
|
776
|
+
|
|
777
|
+
Do not expand the selection to the full transitively-reachable set by hand before calling
|
|
778
|
+
`--check-scope`. `checkScope` performs the walk itself; pass it your plan's actual selection and
|
|
779
|
+
nothing more.
|
|
780
|
+
|
|
357
781
|
## Default media scope
|
|
358
782
|
|
|
359
783
|
Default to importing only media referenced by in-scope entities such as posts, products,
|
|
@@ -377,6 +801,9 @@ review without forcing the user through the full plan.
|
|
|
377
801
|
The summary should:
|
|
378
802
|
|
|
379
803
|
- explicitly say that full details live in `mapping/review/mapping-plan.md`
|
|
804
|
+
- **carry a `Manual steps you need to complete` section — required, always present, placed
|
|
805
|
+
immediately after the opening and ahead of the entity mappings.** See "The manual-steps
|
|
806
|
+
section" below; it is the one place the user learns what stays their job
|
|
380
807
|
- list each in-scope source entity and its planned Wix target
|
|
381
808
|
- call out the main gaps, lossy transformations, skipped entities, and `unverified`
|
|
382
809
|
target paths from the faithfulness ledger
|
|
@@ -396,7 +823,11 @@ shape" from this file alone, then consult `mapping/review/mapping-plan.md` only
|
|
|
396
823
|
Recommended structure:
|
|
397
824
|
|
|
398
825
|
- one-sentence purpose / pointer to `mapping/review/mapping-plan.md`
|
|
826
|
+
- **`Manual steps you need to complete`** — required, in this position, never further down
|
|
399
827
|
- `Source -> Wix targets`
|
|
828
|
+
- `Plugin coverage` (when the source reported plugins): one line per capability that is not
|
|
829
|
+
`migration-planned · confirmed`, in the user's terms, plus anything they must supply or
|
|
830
|
+
accept losing
|
|
400
831
|
- `URL preservation`
|
|
401
832
|
- `Main gaps / lossiness`
|
|
402
833
|
- `Important setup implications`
|
|
@@ -406,6 +837,65 @@ Recommended structure:
|
|
|
406
837
|
Do not restate full field tables or detailed transformation rules here unless a specific
|
|
407
838
|
field-level issue is central to the approval decision.
|
|
408
839
|
|
|
840
|
+
## The manual-steps section
|
|
841
|
+
|
|
842
|
+
The user can otherwise approve a migration without understanding what they still have to do
|
|
843
|
+
themselves. Payment setup, a domain/DNS cutover, add-on work, app installs and permissions
|
|
844
|
+
are scattered across setup notes, gaps and per-entity runbooks — or missing altogether. This
|
|
845
|
+
section is the single consolidated list, and it is **not** optional.
|
|
846
|
+
|
|
847
|
+
Write it as a **numbered checklist**, each item carrying:
|
|
848
|
+
|
|
849
|
+
- a clear **action title** and short instructions — what to do and where to do it
|
|
850
|
+
- **who must act**, when that is someone other than the user
|
|
851
|
+
- any **prerequisite**
|
|
852
|
+
- **what stays unavailable until it is done**
|
|
853
|
+
- **when it is needed**, which is also the sort order: before import → before launch →
|
|
854
|
+
optional follow-up
|
|
855
|
+
|
|
856
|
+
Mark an item optional only when skipping it genuinely is acceptable. Necessary redirect work
|
|
857
|
+
is not optional by default.
|
|
858
|
+
|
|
859
|
+
**Where the items come from.** Gather from the plan and the mapping inputs already in hand —
|
|
860
|
+
`manualSteps` on target entities, `setupRequirements`, `reconfigure-in-wix` hints in
|
|
861
|
+
`no-migration-needed.json`, actionable rows in the faithfulness ledger, and known
|
|
862
|
+
domain/launch requirements. Notification, consent and redirect follow-up belong here when it
|
|
863
|
+
is known at mapping time and needs the user to act.
|
|
864
|
+
|
|
865
|
+
**Coverage prompts, not a checklist to copy.** Include only work actually still needed for
|
|
866
|
+
this source, destination and plan:
|
|
867
|
+
|
|
868
|
+
| Manual action | What the user needs to know |
|
|
869
|
+
| --- | --- |
|
|
870
|
+
| Set up payments | Connect and activate the payment provider in Wix before taking payments. Payment setup is currently manual. |
|
|
871
|
+
| Connect the domain / change DNS | Follow the destination's domain-connection instructions at the domain provider when ready to switch the live site. Say that this changes where visitors go — never present it as an immediate pre-import task. |
|
|
872
|
+
| Finish product add-ons | Name the actual add-on behaviour that stays manual, the affected products or groups, and the agreed work to make it available. "Configure the add-on plugin" alone is not an instruction. |
|
|
873
|
+
| Complete other required setup | Applicable app installs, permission scopes, plans, CMS collections, sales-channel connections and other reconfiguration found during mapping. |
|
|
874
|
+
|
|
875
|
+
Where an action's details are not yet known, say what must be confirmed. Never invent a
|
|
876
|
+
setting, a screen or a step.
|
|
877
|
+
|
|
878
|
+
**Keep every step of an existing runbook.** A `manual-mapping` entity's `manualSteps.steps[]`
|
|
879
|
+
is carried in full under its checklist item — `prerequisite` as its own "before you start"
|
|
880
|
+
line, `mechanism` as "how it behaves once connected". A compressed runbook is not actionable.
|
|
881
|
+
List a shared setup action **once**, naming every capability it covers.
|
|
882
|
+
|
|
883
|
+
**Manual actions are not unresolved gaps.** A known manual procedure belongs here. An
|
|
884
|
+
unsupported feature, or an approach nobody has agreed yet, stays in the gaps/questions
|
|
885
|
+
section until there is an agreed action — detecting a plugin does not prove its behaviour can
|
|
886
|
+
be recreated by hand in Wix. If it needs development, say so in the gaps section; list a
|
|
887
|
+
manual workaround only once it is agreed. A gap that does have an actionable workaround may
|
|
888
|
+
link to its checklist item.
|
|
889
|
+
|
|
890
|
+
**Check the list before the summary goes to the user.** Reconcile it against the mapping plan,
|
|
891
|
+
the manual runbooks, `setupRequirements`, the actionable gaps and the known launch
|
|
892
|
+
requirements. Work the agent will perform automatically is **not** a user task and must not
|
|
893
|
+
appear. Refresh the section whenever the mapping changes.
|
|
894
|
+
|
|
895
|
+
**An empty list still gets the heading**, followed by exactly: `No manual steps identified for
|
|
896
|
+
this mapping.` A summary that omits the section, or leaves a known manual action only in
|
|
897
|
+
scattered setup or gap notes, fails review.
|
|
898
|
+
|
|
409
899
|
## Mapping review checkpoint
|
|
410
900
|
|
|
411
901
|
Once both mapping artifacts exist, reset `orchestration/approvals.json` so
|
|
@@ -414,10 +904,27 @@ Once both mapping artifacts exist, reset `orchestration/approvals.json` so
|
|
|
414
904
|
|
|
415
905
|
- this is a semantic review of what will be migrated where
|
|
416
906
|
- the full technical detail remains in `mapping/review/mapping-plan.md`
|
|
907
|
+
- **what the user will still have to do by hand**, pointing at the summary's
|
|
908
|
+
`Manual steps you need to complete` section
|
|
417
909
|
- downstream setup discovery and code generation will wait for acceptance
|
|
418
910
|
|
|
911
|
+
**Before presenting the checkpoint, run `scripts/coverage-reconcile.js check <project>`** and
|
|
912
|
+
resolve every failure it names; do not ask for approval of a plan it rejects.
|
|
913
|
+
|
|
914
|
+
**Before presenting the checkpoint, run the manual-steps coverage check** described in "The
|
|
915
|
+
manual-steps section": the section exists, every applicable manual action from the plan, the
|
|
916
|
+
runbooks, `setupRequirements` and the actionable gaps appears in it, nothing the agent
|
|
917
|
+
automates appears in it, and an empty set carries the explicit empty statement. A summary
|
|
918
|
+
presented for approval without that section is not ready for review, and this applies in
|
|
919
|
+
`1-click mode` too — the checkpoint is recorded as agent-accepted there, but the section is
|
|
920
|
+
still written.
|
|
921
|
+
|
|
419
922
|
Do not proceed to `rp-setup-discovery` or `rp-import-codegen` until the user accepts this
|
|
420
|
-
mapping review checkpoint, unless the user explicitly asks to continue provisionally.
|
|
923
|
+
mapping review checkpoint, unless the user explicitly asks to continue provisionally. In
|
|
924
|
+
explicit user-requested `1-click mode` (`automationMode=one_click`, `source=user`), still
|
|
925
|
+
write the same review artifacts, but record the checkpoint as accepted by the agent and
|
|
926
|
+
continue immediately. A missing mode or a non-user-authored `one_click` value is normal
|
|
927
|
+
interactive mode and must pause here; file upload does not imply one-click.
|
|
421
928
|
|
|
422
929
|
## Guardrails
|
|
423
930
|
|
|
@@ -428,3 +935,13 @@ mapping review checkpoint, unless the user explicitly asks to continue provision
|
|
|
428
935
|
- Keep business rules explicit so `rp-import-codegen` can implement them deterministically.
|
|
429
936
|
- Do not guess Wix field, enum, or app names when you cannot verify them. Mark them
|
|
430
937
|
`unverified` and surface the risk before execution.
|
|
938
|
+
|
|
939
|
+
## Discovered-set review and legacy approvals
|
|
940
|
+
|
|
941
|
+
Before presenting a standard-mode mapping review, run `node scripts/discovered-census.js build <projectDir>` and `node scripts/census-reconciliation.js build <projectDir>`. Fix structural errors only for the named census IDs. Each discovered entity, registered sub-part, capability and unlinked plugin needs exactly one assignment: plan `censusIds[]` or a gap `censusId` plus `disposition`. A parent entity never silently covers its sub-parts. Show the generated **Discovered set** section, including its unknown counts, exclusions and pending questions. Ask the owner each pending question; record answers as closed states, rebuild, and present that rebuilt review. Approving this review approves the listed exclusions; provisional and explicit 1-click agent approvals do not establish owner approval of exclusions.
|
|
942
|
+
|
|
943
|
+
The mapping approval user action must reference `{ "kind": "census-reconciliation", "path": "mapping/review/census-reconciliation.json", "sha256": "<current file SHA-256>" }` along with the summary. Let the approval scripts bind and persist the reference; never write a digest or approval directly. A stale answer must produce a fresh request. In explicit 1-click mode use `auto-approve`, leave cannot-tell rows pending, and report them as not decided after import.
|
|
944
|
+
|
|
945
|
+
For `mapping_approval_missing_census` or `mapping_approval_stale_census`, reset with `node scripts/orchestration-state.js approve --project-dir <projectDir> --type mapping --status pending`, rebuild from the existing discovery files, and present again. Explain once that this fresh review accounts for the complete discovered set; do not rerun discovery or imported records.
|
|
946
|
+
|
|
947
|
+
**When the router returns `reviewOnly: true`, the site must not change.** Keep the plan, gap list and `decisions.json` frozen, including on rejection; never run `coverage-reconcile.js decide`. Write assignments only in `mapping/review/finalized-census-assignments.json` (`planLinks` names existing plan rows; `gaps` names new decisions), then rebuild the census/reconciliation and approve through the normal scripts. A request to import newly discovered scope is `pending` with `reasonCode: import-after-finalization`; it stays open for a separate human decision and performs no import. Do not create a new plan version. Any `review_only_*` or `finalized_receipt_unverified` hold requires the Import Operator to inspect the named input; never route around it.
|