Individual skill
orchardcore-recipes
Skill for authoring Orchard Core recipes and custom recipe steps. Covers recipe discovery, recipe manifests, setup recipes with issetuprecipe and step ordering, variables and the js and file expressions (uuid, variables, parameters, configuration, file text), execution and cancellation, built-in step contracts and their registered names, the command, media, ReloadTenant and DataPipelines steps, nested recipes, migration recipes, the OpenApiPkce, OpenApiGeneration and MediaApiPkce recipes, and end-to-end IRecipeStepHandler development. Use this skill when requests mention Orchard Core Recipes, Create a Recipe, Setup Recipe, Recipe Steps, Recipe Variables, Recipe Discovery, IRecipeHarvester, IRecipeExecutor, IRecipeMigrator, AddRecipeExecutionStep, RecipeExecutionException, or Custom Recipe Step Handlers. Strong matches include OrchardCore.Recipes, IRecipeStepHandler, NamedRecipeStepHandler, RecipeExecutionContext, RecipeDescriptor, RecipePermissions, ContentDefinition, WorkflowType, and recipe.schema.json.
src/CrestApps.AgentSkills/orchardcore/orchardcore-recipes/SKILL.md
Source commit d86d04f234b1b2bd8145368a2544490f9d557596
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Instructions only
- Last checked
- Nov 6, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 13
- Repository last updated
- Oct 21, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- agent-skills Repository topic
- ai Repository topic
- ai-agents-framework Repository topic
- dotnet Repository topic
- mcp Repository topic
- mcp-server Repository topic
- orchardcore Repository topic
- engineering Derived category
- testing Derived category
- testing-browser Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 19,178 bytesSKILL.mdcore · 19,178 bytesreferences/recipe-schemas/A2AConnection.schema.jsonasset · 6,169 bytesreferences/recipe-schemas/AIDataSource.schema.jsonasset · 2,880 bytesreferences/recipe-schemas/AIDeployment.schema.jsonasset · 7,440 bytesreferences/recipe-schemas/AIPersonas.schema.jsonasset · 3,068 bytesreferences/recipe-schemas/AIProfile.schema.jsonasset · 26,030 bytesreferences/recipe-schemas/AIProfileTemplate.schema.jsonasset · 32,868 bytesreferences/recipe-schemas/AIProviderConnections.schema.jsonasset · 6,560 bytesreferences/recipe-schemas/AIToolInstances.schema.jsonasset · 16,128 bytesreferences/recipe-schemas/AdminMenu.schema.jsonasset · 789,564 bytesreferences/recipe-schemas/AdminTemplates.schema.jsonasset · 880 bytesreferences/recipe-schemas/AgentStateReasonCode.schema.jsonasset · 2,537 bytesreferences/recipe-schemas/AsteriskSettings.schema.jsonasset · 5,558 bytesreferences/recipe-schemas/AzureADSettings.schema.jsonasset · 777 bytesreferences/recipe-schemas/ContactCenterAgentEntitlement.schema.jsonasset · 4,094 bytesreferences/recipe-schemas/ContactCenterBusinessHoursCalendar.schema.jsonasset · 3,711 bytesreferences/recipe-schemas/ContactCenterDialerProfile.schema.jsonasset · 9,900 bytesreferences/recipe-schemas/ContactCenterEntryPoint.schema.jsonasset · 12,469 bytesreferences/recipe-schemas/ContactCenterQueue.schema.jsonasset · 11,304 bytesreferences/recipe-schemas/ContactCenterQueueGroup.schema.jsonasset · 1,692 bytesreferences/recipe-schemas/ContactCenterSkill.schema.jsonasset · 1,776 bytesreferences/recipe-schemas/ContactCenterVoiceMedia.schema.jsonasset · 4,260 bytesreferences/recipe-schemas/ContentDefinition.schema.jsonasset · 83,623 bytesreferences/recipe-schemas/CreateAIProfileFromTemplate.schema.jsonasset · 25,900 bytesreferences/recipe-schemas/CreateOrUpdateIndexProfile.schema.jsonasset · 1,119 bytesreferences/recipe-schemas/Currencies.schema.jsonasset · 1,410 bytesreferences/recipe-schemas/Customers.schema.jsonasset · 7,853 bytesreferences/recipe-schemas/DeleteAIDeployments.schema.jsonasset · 600 bytesreferences/recipe-schemas/DeleteContentDefinition.schema.jsonasset · 611 bytesreferences/recipe-schemas/DynamicDataTranslations.schema.jsonasset · 1,579 bytesreferences/recipe-schemas/ElasticIndexSettings.schema.jsonasset · 567 bytesreferences/recipe-schemas/FacebookCoreSettings.schema.jsonasset · 1,011 bytesreferences/recipe-schemas/FacebookLoginSettings.schema.jsonasset · 432 bytesreferences/recipe-schemas/FeatureProfiles.schema.jsonasset · 1,571 bytesreferences/recipe-schemas/GitHubAuthenticationSettings.schema.jsonasset · 673 bytesreferences/recipe-schemas/IndexUsers.schema.jsonasset · 711 bytesreferences/recipe-schemas/Layers.schema.jsonasset · 248,708 bytesreferences/recipe-schemas/McpConnection.schema.jsonasset · 7,669 bytesreferences/recipe-schemas/McpPrompt.schema.jsonasset · 3,855 bytesreferences/recipe-schemas/McpResource.schema.jsonasset · 9,285 bytesreferences/recipe-schemas/MediaProfiles.schema.jsonasset · 1,924 bytesreferences/recipe-schemas/MicrosoftAccountSettings.schema.jsonasset · 653 bytesreferences/recipe-schemas/OmnichannelCadence.schema.jsonasset · 3,091 bytesreferences/recipe-schemas/OmnichannelCampaign.schema.jsonasset · 5,471 bytesreferences/recipe-schemas/OmnichannelCampaignGroup.schema.jsonasset · 1,751 bytesreferences/recipe-schemas/OmnichannelChannelEndpoint.schema.jsonasset · 3,661 bytesreferences/recipe-schemas/OmnichannelDisposition.schema.jsonasset · 2,889 bytesreferences/recipe-schemas/OmnichannelLeadStatus.schema.jsonasset · 2,288 bytesreferences/recipe-schemas/OmnichannelMessageTemplate.schema.jsonasset · 1,786 bytesreferences/recipe-schemas/OmnichannelOpportunityStage.schema.jsonasset · 2,380 bytesreferences/recipe-schemas/OmnichannelSubjectAction.schema.jsonasset · 3,256 bytesreferences/recipe-schemas/OpenIdApplication.schema.jsonasset · 3,769 bytesreferences/recipe-schemas/OpenIdClientSettings.schema.jsonasset · 2,627 bytesreferences/recipe-schemas/OpenIdScope.schema.jsonasset · 760 bytesreferences/recipe-schemas/OpenIdServerSettings.schema.jsonasset · 4,864 bytesreferences/recipe-schemas/OpenIdValidationSettings.schema.jsonasset · 953 bytesreferences/recipe-schemas/Placements.schema.jsonasset · 4,222 bytesreferences/recipe-schemas/Queries.schema.jsonasset · 5,069 bytesreferences/recipe-schemas/README.mddoc · 2,283 bytesreferences/recipe-schemas/RebuildIndex.schema.jsonasset · 603 bytesreferences/recipe-schemas/ReplaceContentDefinition.schema.jsonasset · 83,637 bytesreferences/recipe-schemas/ResetIndex.schema.jsonasset · 595 bytesreferences/recipe-schemas/Roles.schema.jsonasset · 12,256 bytesreferences/recipe-schemas/Settings.schema.jsonasset · 90,532 bytesreferences/recipe-schemas/ShortcodeTemplates.schema.jsonasset · 1,301 bytesreferences/recipe-schemas/Sitemaps.schema.jsonasset · 15,922 bytesreferences/recipe-schemas/Stock.schema.jsonasset · 1,613 bytesreferences/recipe-schemas/StripeSettings.schema.jsonasset · 2,896 bytesreferences/recipe-schemas/TelephonyExtension.schema.jsonasset · 2,755 bytesreferences/recipe-schemas/TelnyxSettings.schema.jsonasset · 7,514 bytesreferences/recipe-schemas/TelnyxSmsSettings.schema.jsonasset · 1,887 bytesreferences/recipe-schemas/Templates.schema.jsonasset · 844 bytesreferences/recipe-schemas/TimeZoneMaps.schema.jsonasset · 1,370 bytesreferences/recipe-schemas/Translations.schema.jsonasset · 1,350 bytesreferences/recipe-schemas/TwitterSettings.schema.jsonasset · 737 bytesreferences/recipe-schemas/UrlRewriting.schema.jsonasset · 5,903 bytesreferences/recipe-schemas/Users.schema.jsonasset · 3,011 bytesreferences/recipe-schemas/WorkflowType.schema.jsonasset · 267,985 bytesreferences/recipe-schemas/azureai-index-create.schema.jsonasset · 566 bytesreferences/recipe-schemas/azureai-index-rebuild.schema.jsonasset · 632 bytesreferences/recipe-schemas/azureai-index-reset.schema.jsonasset · 624 bytesreferences/recipe-schemas/command.schema.jsonasset · 491 bytesreferences/recipe-schemas/content.schema.jsonasset · 2,355 bytesreferences/recipe-schemas/custom-settings.schema.jsonasset · 320 bytesreferences/recipe-schemas/custom-user-settings.schema.jsonasset · 1,578 bytesreferences/recipe-schemas/deployment.schema.jsonasset · 58,282 bytesreferences/recipe-schemas/elastic-index-rebuild.schema.jsonasset · 628 bytesreferences/recipe-schemas/elastic-index-reset.schema.jsonasset · 620 bytesreferences/recipe-schemas/feature.schema.jsonasset · 37,080 bytesreferences/recipe-schemas/index.jsonasset · 8,806 bytesreferences/recipe-schemas/lucene-index-rebuild.schema.jsonasset · 612 bytesreferences/recipe-schemas/lucene-index-reset.schema.jsonasset · 604 bytesreferences/recipe-schemas/lucene-index.schema.jsonasset · 542 bytesreferences/recipe-schemas/media.schema.jsonasset · 1,261 bytesreferences/recipe-schemas/move-attached-media-fields.schema.jsonasset · 566 bytesreferences/recipe-schemas/recipe.schema.jsonasset · 2,516,056 bytesreferences/recipe-schemas/recipes.schema.jsonasset · 918 bytesreferences/recipe-schemas/themes.schema.jsonasset · 818 bytes
Read excerpt
# Orchard Core Recipes
Recipes are JSON documents that configure a tenant through ordered steps. Use a recipe for repeatable setup, environment provisioning, deployment imports, or migration updates. Steps are processed in order and their names are case-insensitive at handler dispatch, but use the registered casing below and in the schemas.
## Recipe location, discovery, and execution
- Place an extension recipe at `Recipes/<name>.recipe.json` in a module or theme. The extension's manifest makes that extension discoverable; there is no separate recipe manifest file.
- `RecipeHarvester` iterates enabled extensions and reads each extension's `Recipes` folder. The application recipe harvester also contributes application-level recipes.
- Set `issetuprecipe` to `true` only for recipes intended to appear during tenant setup.
- Run a discovered recipe from **Configuration → Recipes**, during setup, or from another recipe using the `Recipes` step. A data migration may execute a recipe in its module/theme `Migrations` folder through `IRecipeMigrator`.
- Programmatic execution uses `IRecipeExecutor.ExecuteAsync(executionId, recipeDescriptor, environment, cancellationToken)`. A `RecipeDescriptor` carries the recipe metadata, base path, file provider, and recipe file.
- The cancellation token also bounds the `[js: ...]` expressions of each step: cancelling while a step's script runs stops the script and fails that step with a `RecipeExecutionException` wrapping the `OperationCanceledException`. Only setup passes a cancellable token (the application stopping token). The recipe `variables()` are not bounded by cancellation.
- Running recipes from the admin requires `RecipePermissions.ManageRecipes`.
- Uploaded and imported recipe archives are extracted under the tenant-scoped temporary directory (`ITempDirectoryProvider`, `OrchardCore:TempDirectory:Path`), not `Path.GetTempPath()`.