webiny-skill-creator
Generate, refresh, and maintain Webiny MCP server skills from source documentation and codebase. Use this skill when you need to create new Webiny skills, update existing skills after framework changes, regenerate the entire skill library, or create a skill for a specific Webiny feature. Trigger this whenever someone says "create a skill", "update skills", "refresh skills", "add a new skill for X", or "regenerate the skill library". This is the meta-skill that produces all other Webiny MCP skills.
Best use case
webiny-skill-creator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generate, refresh, and maintain Webiny MCP server skills from source documentation and codebase. Use this skill when you need to create new Webiny skills, update existing skills after framework changes, regenerate the entire skill library, or create a skill for a specific Webiny feature. Trigger this whenever someone says "create a skill", "update skills", "refresh skills", "add a new skill for X", or "regenerate the skill library". This is the meta-skill that produces all other Webiny MCP skills.
Teams using webiny-skill-creator should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/webiny-skill-creator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How webiny-skill-creator Compares
| Feature / Agent | webiny-skill-creator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate, refresh, and maintain Webiny MCP server skills from source documentation and codebase. Use this skill when you need to create new Webiny skills, update existing skills after framework changes, regenerate the entire skill library, or create a skill for a specific Webiny feature. Trigger this whenever someone says "create a skill", "update skills", "refresh skills", "add a new skill for X", or "regenerate the skill library". This is the meta-skill that produces all other Webiny MCP skills.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
SKILL.md Source
# Webiny Skill Creator
This skill generates and maintains the set of skills served by the Webiny MCP server. It operates in two modes:
1. **Full regeneration** -- Reads all source documentation and the codebase, then generates/updates the complete skill library.
2. **Single skill creation** -- Creates or updates one skill for a specific Webiny feature.
## Skill Output Format
Every skill lives in its own folder as `<skill-name>/SKILL.md` with YAML frontmatter. The MCP server recursively scans for `SKILL.md` files and auto-generates the catalog from front-matter metadata -- no README index is needed.
```
webiny/my-skills/
├── <skill-name>/
│ └── SKILL.md
├── <skill-name>/
│ └── SKILL.md
└── ...
```
### Skill File Structure
Each `<skill-name>/SKILL.md` file follows this template:
```markdown
---
name: webiny-<topic>
description: >
What this skill covers and when to use it.
Be specific about trigger phrases and developer intents.
Err on the side of being "pushy" -- describe scenarios broadly
so the MCP server surfaces this skill when relevant.
---
# Title
## TL;DR
One paragraph actionable summary.
## Pattern / Core Concept
The main code pattern with a generic template.
## Reference Tables
Tables for methods, properties, types, imports.
## Full Examples
2-3 complete, working code examples showing real use cases.
## Quick Reference
Import paths, interfaces, registration, deploy commands.
## Related Skills
Links to other skills that complement this one.
```
### Writing Guidelines
These guidelines ensure skills are effective when served by the MCP server to AI agents:
1. **TL;DR first** -- Every skill starts with a one-paragraph actionable summary. An agent should be able to read just this and know if the skill is relevant.
2. **Generic pattern before examples** -- Show the abstract pattern template first, then concrete examples. This helps agents generalize rather than copy-paste.
3. **Complete, working code** -- Every code block must be copy-paste ready. Include all imports, class definitions, and export statements. Never show partial snippets that require guessing.
4. **Reference tables for APIs** -- Use markdown tables for method signatures, field types, validators, injectable services, etc. Tables are dense and scannable.
5. **Exact import paths** -- Always show the full import path. Webiny uses feature-based imports (e.g., `"webiny/api/cms/model"` not `"@webiny/api-headless-cms"`). Getting the import wrong breaks everything.
6. **The universal DI pattern** -- Every API extension uses `createImplementation({ implementation, dependencies })`. Reinforce this in every skill that covers an API extension type.
7. **Registration in webiny.config.tsx** -- Always show how to register the extension. Include the JSX element and the `src` path convention.
8. **Deploy command** -- Always end with which deploy command to run (`yarn webiny deploy api`, `admin`, or `core`).
9. **Related skills** -- Cross-link to complementary skills. Developers rarely need just one skill.
10. **Description frontmatter** -- The `description` field is the primary trigger mechanism. Include:
- What the skill does
- Specific developer intents that should trigger it
- Keywords and phrases developers might use
- Be slightly aggressive about claiming relevance
## Source Documentation
When generating or updating skills, read from these sources in priority order:
### 1. Existing Skills (`<root>/packages/mcp/src/skills/`)
Read the current skills first to understand what exists and what needs updating.
### 2. Learn Webiny Lessons (`learn-webiny/content/lessons/`)
The tutorial content organized by topic:
| Directory | Topics Covered |
| ------------------------- | -------------------------------------------------------------------------------------- |
| `foundation/` | Webiny overview, framework, apps, multi-tenancy, infrastructure |
| `developing-with-webiny/` | Project structure, extensions, SDK overview, local dev, debugging, white-labeling |
| `headless-cms/` | Content models, versioning, lifecycle events, reading/writing data, list customization |
| `website-builder/` | Setup, editor components, theming, CMS integration |
| `getting-started/` | Installation, CLI overview, deployment |
### 3. Legacy Skills (`skills-bak/`)
The previous generation of skills. Good reference for structure and patterns but may have outdated imports or APIs.
### 4. Webiny Codebase (`webiny/`)
The actual development instance:
| Path | What to Look At |
| ------------------- | -------------------------------------------------------------- |
| `webiny.config.tsx` | Real extension registration examples |
| `extensions/` | Working extension implementations |
| `ai-context/` | Core features reference with import paths and type definitions |
| `packages/` | Package source code for verifying APIs |
### 5. Webiny AI Context (`webiny/ai-context/`)
Contains `core-features-reference.md` with verified import paths and type definitions for:
- Core features (TenantContext, IdentityContext, EventPublisher, etc.)
- Headless CMS features (content entries, models, repositories)
- Tenancy features (CRUD operations)
This is the most reliable source for import paths and interfaces.
## Full Regeneration Workflow
When asked to regenerate all skills:
1. **Inventory current skills** -- Read `webiny/my-skills/` to see what exists.
2. **Read source documentation** -- Use subagents to read in parallel:
- All MDX files in `learn-webiny/content/lessons/` (exclude archived)
- All files in `skills-bak/`
- Key files: `webiny/webiny.config.tsx`, `webiny/ai-context/core-features-reference.md`
- Extension examples in `webiny/extensions/`
3. **Identify gaps** -- Compare source content against existing skills. Look for:
- New features not yet covered by skills
- Outdated import paths or APIs
- Missing code examples
- New extension types or patterns
4. **Generate/update skills** -- Write each skill following the format above. For each skill:
- Read the corresponding source files
- Extract all code patterns, imports, and APIs
- Write complete, working examples
- Cross-reference import paths against `ai-context/core-features-reference.md`
- Add related skills links
5. **Verify consistency** -- Check that:
- All import paths are consistent across skills
- The DI pattern is shown correctly everywhere
- Registration examples match `webiny.config.tsx` conventions
- Deploy commands are correct for each extension type
## Single Skill Creation Workflow
When asked to create a skill for a specific feature:
1. **Understand the feature** -- Ask the developer:
- What Webiny feature does this cover?
- What should a developer be able to do after reading this skill?
- Are there existing extensions or code examples?
2. **Research** -- Read relevant source files:
- The feature's lesson in `learn-webiny/content/lessons/`
- Any related files in `skills-bak/`
- Actual implementation code in `webiny/extensions/` or `webiny/packages/`
- Import paths from `webiny/ai-context/core-features-reference.md`
3. **Draft the skill** -- Create `<skill-name>/SKILL.md` following the structure above.
4. **Review with developer** -- Present the skill for feedback before finalizing.
## Current Skill Library
The following skills should exist in `webiny/my-skills/`:
| Skill Folder | Covers |
| -------------------------------- | --------------------------------------------------------- |
| `project-structure/SKILL.md` | Project layout, webiny.config.tsx, extension registration |
| `content-models/SKILL.md` | ModelFactory, fields, validators, layout |
| `custom-graphql-api/SKILL.md` | GraphQLSchemaFactory, resolvers, DI |
| `lifecycle-events/SKILL.md` | CMS entry hooks, security events |
| `admin-ui-extensions/SKILL.md` | White-labeling, custom columns, forms, Lexical |
| `infrastructure-extensions/SKILL.md` | Pulumi handlers, declarative infra components |
| `cli-extensions/SKILL.md` | CliCommandFactory, custom CLI commands |
| `dependency-injection/SKILL.md` | Universal DI pattern, injectable services |
| `webiny-sdk/SKILL.md` | External app integration, Result pattern |
| `website-builder/SKILL.md` | Editor components, theming, CMS integration |
| `local-development/SKILL.md` | Deploy, watch, environments, debugging |
### When to Add New Skills
Add a new skill when:
- A new Webiny feature is released that doesn't fit existing skills
- An existing skill grows beyond ~500 lines and should be split
- A developer asks for help with something not covered
- The `webiny/packages/` directory shows new extension types
### Naming Convention
- Folder name: `<skill-name>/` in kebab-case (e.g., `content-models/`, not `cms/`)
- Skill file: always named `SKILL.md` inside the folder
- Frontmatter `name` field: `webiny-<skill-name>` (e.g., `webiny-content-models`)
- No README index needed -- the MCP server auto-discovers skills from front-matter
## MCP Server Integration
Skills are served via the Webiny MCP server:
```json
// .mcp.json
{
"mcpServers": {
"webiny": {
"command": "npx",
"args": ["webiny", "mcp-server", "--additional-skills", "./my-skills"]
}
}
}
```
The MCP server exposes two tools:
- `list_webiny_skills` -- Returns all skill names and descriptions
- `get_webiny_skill` -- Returns the full content of a specific skill
Agents call `list_webiny_skills` first to find relevant skills, then `get_webiny_skill` to load the full content before writing code.
## Suggestions for MCP Server Enhancement
Beyond skills, consider these additional inputs for the MCP server to improve developer experience:
### 1. Live Schema Context
Expose the actual content models defined in the project (from `webiny.config.tsx` and `extensions/`) so agents know what models exist, their fields, and relationships without having to read source files.
### 2. Extension Registry
Provide a tool that lists all registered extensions (API, Admin, Infra, CLI) with their file paths and types. This helps agents understand what's already built.
### 3. Environment Info
Expose `yarn webiny info` output (API URLs, Admin URL, CloudFront endpoint) as an MCP tool so agents can configure SDK clients or test endpoints without running CLI commands.
### 4. GraphQL Schema Introspection
Expose the auto-generated GraphQL schema so agents can see exact query/mutation signatures, field types, and filter options for each content model.
### 5. Code Templates
Bundle scaffolding templates for common patterns (new model, new hook, new GraphQL schema, new editor component) that agents can use as starting points, reducing the chance of structural errors.
### 6. Validation Tool
An MCP tool that validates extension code before deployment -- checking import paths, DI dependency order, and webiny.config.tsx registration. Catches errors before `yarn webiny deploy`.Related Skills
webiny-v5-to-v6-migration
Migration patterns for converting v5 Webiny code to v6 architecture. Use this skill when migrating existing v5 plugins to v6 features, converting context plugins to DI services, adapting v5 event subscriptions to v6 EventHandlers, or understanding how v5 patterns translate to v6. Targeted at AI agents performing migrations.
webiny-api-permissions
Schema-based permission system for API features. Use this skill when implementing authorization in use cases, defining permission schemas with createPermissionSchema, creating injectable permissions via createPermissionsAbstraction/createPermissionsFeature, checking read/write/delete/publish permissions, handling own-record scoping, or testing permission scenarios. Covers the full pattern from schema definition to use case integration to test matrices.
webiny-admin-permissions
Admin-side permission UI registration and DI-backed permission checking. Use this skill when adding permission controls to the admin UI — schema-based auto-generated forms, injectable permissions via createPermissionsAbstraction/ createPermissionsFeature, typed hooks (createUsePermissions), the HasPermission component (createHasPermission), and the Security.Permissions component props. Covers both simple apps and complex multi-entity permission schemas.
webiny-sdk
Using @webiny/sdk to read and write CMS data from external applications. Use this skill when the developer is building a Next.js, Vue, Node.js, or any external app that needs to fetch or write content to Webiny, set up the SDK, use the Result pattern, list/get/create/update/publish entries, filter and sort queries, use TypeScript generics for type safety, work with the File Manager, or create API keys programmatically. Covers read vs preview mode, the `values` wrapper requirement, correct method names, and the `fields` required parameter.
webiny-project-structure
Webiny project layout, webiny.config.tsx anatomy, and extension registration. Use this skill when the developer asks about folder structure, where custom code goes, how to register extensions, what webiny.config.tsx does, or how the project is organized. Also use when they need to understand the relationship between extensions/, webiny.config.tsx, and the different extension types (Api, Admin, Infra, CLI).
webiny-local-development
Deploying, developing locally, managing environments, and debugging Webiny projects. Use this skill when the developer asks about deployment commands (deploy, destroy, info), local development with watch mode (API or Admin), the Local Lambda Development system, environment management (long-lived vs short-lived, production vs dev modes), build parameters, state files, debugging API/Admin/Infrastructure errors, or the redeploy-after-watch requirement.
webiny-infrastructure-extensions
Modifying AWS infrastructure using Pulumi handlers and declarative Infra components. Use this skill when the developer wants to customize AWS infrastructure, add Pulumi handlers, configure OpenSearch, VPC, resource tags, regions, custom domains, blue-green deployments, environment-conditional config, or manage production vs development infrastructure modes. Covers CorePulumi.Interface, all <Infra.*> declarative components, and <Infra.Env.Is>.
webiny-infra-catalog
Infrastructure — 33 abstractions. Infrastructure extensions.
webiny-extensions-catalog
extensions — 5 abstractions.
webiny-cli-command-catalog
cli/command — 1 abstractions.
webiny-cli-catalog
cli — 2 abstractions.
webiny-api-tenant-manager-catalog
API — Tenant Manager — 2 abstractions. Tenant management event handlers and use cases.