AI Dev SDK Skills and Agents
Edit on GitHubThe AiDev module is experimental and not stable. There is no backward compatibility promise for this module. We welcome your feedback and contributions as we continue to develop and improve this module.
Overview
The AI Dev SDK ships a set of skills and agents that codify common Spryker workflows. They reach your project in two ways:
- Via the
ai-dev:setupconsole command — copies the skills and agents into your project’s AI-tool directories (.claude/skills/+.claude/agents/,.windsurf/skills/+.windsurf/agents/, and so on). Works for every AI tool listed on the AI Dev SDK Overview that supports an agents directory. Codex CLI is the one exception — it has no agents directory, so agents are skipped for that tool. - Via the Claude Code plugin — for Claude Code users, the Claude Code Plugin installs the same skills and agents through the official marketplace, no console command required.
Both delivery paths read from the same source files — the plugin just packages them for marketplace installation.
What’s the difference between a skill and an agent?
- Skills load into the active chat on demand. Use them when you want the assistant to follow a specific workflow (write a product requirement document, refresh caches, run QA).
- Agents are isolated sub-conversations the assistant delegates to. Use them when you want focused, single-purpose work done in its own context window (verify a behavior, diagnose a failure).
You do not need to remember the names — the assistant picks the right skill or agent from your prompt. The tables below explain what each one does so you know what to expect.
How to invoke
In most cases you do not need to call a skill or agent by name. Describe what you want — “build this feature”, “verify the new fee shows on the cart”, “write a product requirement document for…” — and the assistant matches your wording to the right skill or agent from the set installed in your project.
If you want to invoke one explicitly:
- Claude Code plugin — every skill is also available as a slash command. Type
/<skill-name>(for example/spryker-customization) and the skill loads into the current chat. The full list of commands is on the Claude Code Plugin page. - Other AI tools — invocation follows the tool’s own convention for skills and agents. In Cursor, Windsurf, Copilot, OpenCode, and Codex CLI, the skills and agents land in the tool-specific directories (
.cursor/,.windsurf/, etc.) and are picked up automatically by your assistant. The AI Dev SDK Overview lists the output paths per tool. - Agents (subagents) are not invoked by the user directly — they are spawned by the assistant or by a parent skill when the work calls for an isolated context. You can suggest one by name in your prompt (“use the spryker-verifier to…”), but the assistant decides when to spawn.
Skills
Skills are delivered through ai-dev:setup (all supported AI tools) or the Claude Code plugin.
| Skill | Purpose | Benefits |
|---|---|---|
ai-dev-setup |
Generate rules, an agents/context file, and skills for the project and the chosen AI tool | One command sets up consistent AI tooling for the whole team |
code-review |
Review staged or PR changes against Spryker coding standards | Catches Spryker-specific issues before they reach a pull request |
propel-schema |
Create and modify Propel ORM schema files | Follows Spryker schema conventions automatically |
data-import |
Create and modify data import CSV files and importers | Generates importers that fit Spryker’s data-import path |
codecept-functional |
Generate Codeception functional tests | Tests follow Spryker test patterns out of the box |
static-validation |
Run and interpret static analysis tools (PHPStan, PHP CS Fixer) | Quick diagnosis of style and type issues without context-switching |
payment-template |
Scaffold payment method integration | Follows Spryker payment module patterns end-to-end |
yves-atomic-frontend |
Create atomic design components for the Yves storefront | Components match the project’s atomic conventions |
product-requirement-document |
Turn a feature idea into a research-grounded product requirement document before any code is written | Spec-before-code; assigns a real Spryker actor to every story; cuts ambiguity before implementation |
spryker-customization |
Walk a product requirement document or set of acceptance criteria through to a committed branch | One workflow drives the full build; quality bar (PoC or MVP) chosen up-front; delegates focused work to the agents below; never auto-commits |
spryker-refresher |
Run the right post-change console and composer commands after edits | Owns the file-to-command mapping (codegen, caches, frontend builds, class-resolver); no missed cache rebuilds |
spryker-qa-coverage |
Turn acceptance criteria into a four-bucket test plan executed against the live app | Coverage goes beyond literal ACs — happy / negative / authorization / corner cases; reports pass/fail with real evidence |
spryker-docs-research |
Look up the right answer in official Spryker documentation | Grounds AI work in documented behavior rather than the model’s memory; falls back gracefully when MCP tools are unavailable |
spryker-runtime |
Drive the running Spryker application — Yves, Back Office, Merchant Portal, console, HTTP | Real authenticated sessions; read-only DB / Redis / queue inspection; reusable building block for higher-level skills and agents |
ai-runtime-debugging |
Inspect Spryker runtime state safely from an AI session | [AI-DEBUG] tagged-log pattern plus optional XDebug step-debug; built-in cleanup of debug instrumentation before commit |
Agents
Agents are delivered through ai-dev:setup (every supported AI tool with an agents directory) or the Claude Code plugin.
| Agent | Purpose | Benefits |
|---|---|---|
spryker-code-reviewer |
Review code against Spryker’s coding standards and architectural rules | Deeper, Spryker-aware review than a generic linter; catches layer-architecture and module-convention issues |
spryker-feature-expert |
Answer “how does feature X work in this project / in Spryker” | Pushes back when the user’s framing reinvents an existing primitive; surfaces canonical patterns first; never edits code |
spryker-verifier |
Verify that a specific behavior holds in the running Spryker environment | Returns PASS / FAIL / BLOCKED per acceptance criterion with raw evidence; never lies green; never tries to fix |
spryker-issue-diagnoser |
Investigate why something failed and return a root cause | Reads logs, DB state, queue, search, browser console — returns a suggested direction; never attempts the fix itself |
spryker-data-seeder |
Create small additive test data through Spryker’s existing import path | Safe and incremental — CSV + data:import only; never edits code, never writes directly to the database |
spryker-screenshot-collector |
Capture screenshots and GIFs of pages and flows for demos and documentation | Pure capture — never asserts whether something works, never investigates failures, never edits |
Related
Thank you!
For submitting the form