用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/spryker-sdk/ai-dev --skill data-import命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use this skill whenever the user wants to onboard a Spryker project onto a project-owned Cypress E2E baseline in place of Spryker's internal demo-shop test suites. Trigger on phrases like "migrate off spryker/cypress-tests", "remove the demo-shop cypress/robot suites", "set up project-owned cypress testing", "bootstrap cypress-boilerplate for this project", "onboard this project onto cypress", "integrate cypress-boilerplate", or any request to replace `spryker/cypress-tests` / `spryker/robotframework-suite-tests` with a project's own Cypress setup. This is a one-time setup/migration skill — it removes the old suites, vendors in the already-adapted `tests/cypress-boilerplate/` implementation from the spryker-shop/b2b-demo-marketplace repository (the proven reference implementation), wires up CI, and generates the companion day-to-day `cypress-tests` skill for the target project. It is written to be project-agnostic for the *target* project: every step discovers the target's actual conventions (hostnames, fixtu
Use whenever the user wants to implement a Spryker customization from a PRD or acceptance criteria. Triggers include "build this", "implement this", "here is a PRD - build it", "add X for the demo", "build this PoC", "production-quality build". Drives the full workflow from intake to commit, choosing a quality bar (PoC or MVP) at the start and delegating focused work (research, verification, debugging, test-data setup, refresh, Cypress E2E coverage, demo-artifact capture) to the spryker-* subagents and skills. Never auto-commits; the user always confirms.
Use at the very start of a new customer project, on an unmodified (booted or not) clone of a Spryker b2b/b2b-marketplace demoshop — 'turn this demoshop into our project', 'start the project setup', 'run the project starter'. Also the trigger for 'give me the setup questionnaire' / 'here are my filled setup answers — run it autonomously', and the resume entry when a prior run left .ai-dev/project-setup.md. Collects the nine setup decisions either from a pre-filled questionnaire (references/questionnaire.md — no interview) or a live batched interview, then orchestrates the other project-start skills in autonomous or collaborative mode.
基于 SOC 职业分类
正在显示 SKILL.md
| name | data-import |
| description | Use the skill to create, update, fix, or implement data import. |
I need to create a data import for my new entity '{ENTITY_NAME}'. Main AC: Create a new Spryker module named {MODULE_NAME}.
Create a new module {MODULE_NAME} in Zed Layer:
Create a new module {MODULE_NAME}DataImport in Zed Layer:
{MODULE_NAME}DataImportConfig extending DataImportConfig:
IMPORT_TYPE_{ENTITY_NAME_UPPER} constant.get{ENTITY_NAME}DataImporterConfiguration(): DataImporterConfigurationTransfer.{ENTITY_NAME}DataSetInterface with CSV column key constants.{ENTITY_NAME}RequiredFieldValidatorStep — validates required CSV fields.{ENTITY_NAME}WriterStep — reads DataSet, upserts entity via Propel query, saves.{Reference}To{Id}Step resolver steps with internal ID cache.{MODULE_NAME}DataImportBusinessFactory extending DataImportBusinessFactory:
get{ENTITY_NAME}DataImport(): DataImporterInterface — wires CSV importer + transaction-aware step broker with all steps.{MODULE_NAME}DataImportFacadeInterface and {MODULE_NAME}DataImportFacade:
import{ENTITY_NAME}s(?DataImporterConfigurationTransfer $dataImporterConfigurationTransfer = null): DataImporterReportTransfer{ENTITY_NAME}DataImportPlugin in Communication/Plugin implementing DataImportPluginInterface:
getImportType() returns the IMPORT_TYPE constant value.import() delegates to facade.DataImportDependencyProvider::getDataImporterPlugins().data/import/*.yml file:
- data_entity: {import-type}
source: data/import/common/common/{entity_name}.csv
Use Spryker best practices. Use native PHP types. No extra DocBlocks. Use current branch. Do not run propel:install or transfer:generate — write code only.
I need to create a data import for my new entity 'picker'. Main AC: Create a new Spryker module named Picker.
Create a new module Picker in Zed Layer:
Create a new module PickerDataImport in Zed Layer:
PickerDataImportConfig with IMPORT_TYPE_PICKER = 'picker' and getPickerDataImporterConfiguration().PickerDataSetInterface — constants: FIRST_NAME = 'first_name', LAST_NAME = 'last_name', etc.PickerRequiredFieldValidatorStep — validates first_name, last_name.PickerWriterStep — upserts SpyPickerQuery using DataSet values.PickerDataImportBusinessFactory::getPickerDataImport() — CSV importer + transaction-aware broker with validator → writer steps.importPickers(?DataImporterConfigurationTransfer $dataImporterConfigurationTransfer = null): DataImporterReportTransferPickerDataImportPlugin implementing DataImportPluginInterface.DataImportDependencyProvider.data/import/common/minimal.yml:
- data_entity: picker
source: data/import/common/common/picker.csv
data/import/common/common/picker.csv:
first_name,last_name,middle_name,rating,date_of_birth
John,Doe,,5,1990-01-15
PickerDataImport/
├── src/Pyz/Zed/PickerDataImport/
│ ├── PickerDataImportConfig.php
│ ├── PickerDataImportDependencyProvider.php
│ ├── Business/
│ │ ├── DataSet/
│ │ │ └── PickerDataSetInterface.php
│ │ ├── DataImport/
│ │ │ └── PickerDataImportStep/
│ │ │ ├── PickerRequiredFieldValidatorStep.php
│ │ │ └── PickerWriterStep.php
│ │ ├── PickerDataImportBusinessFactory.php
│ │ ├── PickerDataImportFacadeInterface.php
│ │ └── PickerDataImportFacade.php
│ └── Communication/
│ └── Plugin/
│ └── PickerDataImportPlugin.php
└── data/import/common/common/
└── picker.csv