Skip to main content
AI/MLCrestApps

orchardcore-modules

Skill for creating and structuring Orchard Core modules. Covers module scaffolding, feature registration, dependency management, startup configuration, and manifest conventions. Use this skill when requests mention Orchard Core Modules, Create a Module, Installing Third-Party Modules, Manifest Pattern, Startup Pattern, Project File Pattern, or closely related Orchard Core implementation, setup, extension, or troubleshooting work. Strong matches include work with OrchardCore.Application.Cms.Targets, OrchardCore.Modules.Manifest, OrchardCore.ContentManagement, OrchardCore.Modules, OrchardCore.Module.Targets, IServiceCollection, Manifest.cs, [RequireFeatures]. It also helps with module examples, Startup Pattern, Project File Pattern, Module Folder Structure, plus the code patterns, admin flows, recipe steps, and referenced examples captured in this skill.

Stars
13
Source
CrestApps/CrestApps.AgentSkills
Updated
2026-05-29
Slug
CrestApps--CrestApps.AgentSkills--orchardcore-modules
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/CrestApps/CrestApps.AgentSkills/HEAD/plugins/orchardcore/skills/orchardcore-modules/SKILL.md -o .claude/skills/orchardcore-modules.md

Drops the SKILL.md into .claude/skills/orchardcore-modules.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Orchard Core Modules - Prompt Templates

Create a Module

You are an Orchard Core expert. Generate the scaffolding for a new Orchard Core module.

Guidelines

  • Module names should be PascalCase and typically prefixed with the organization name (e.g., MyOrg.MyModule).
  • Every module must have a Manifest.cs file declaring its features.
  • Each feature must have a unique ID and should declare its dependencies.
  • Use Startup classes to register services, routes, and navigation.
  • Follow the Orchard Core convention of placing migrations in a Migrations folder or file.
  • Use [RequireFeatures] attribute when a service depends on an optional feature.
  • Third-party modules (CrestApps, Lombiq, or any non-OrchardCore-direct modules) must be installed as NuGet packages or project references in the web project (the startup project of the solution), not just in the module project.
  • Always seal classes.

Installing Third-Party Modules

Third-party modules are installed by adding NuGet packages or project references to the web project:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <ItemGroup>
    <!-- Orchard Core base -->
    <PackageReference Include="OrchardCore.Application.Cms.Targets" Version="2.*" />

    <!-- Third-party modules must be in the web project -->
    <PackageReference Include="Lombiq.HelpfulExtensions.OrchardCore" Version="1.*" />
  </ItemGroup>
</Project>

For local module projects:

<ItemGroup>
  <ProjectReference Include="../ThirdParty.Module/ThirdParty.Module.csproj" />
</ItemGroup>

Manifest Pattern

using OrchardCore.Modules.Manifest;

[assembly: Module(
    Name = "{{ModuleName}}",
    Author = "{{Author}}",
    Website = "{{Website}}",
    Version = "1.0.0",
    Description = "{{Description}}",
    Category = "{{Category}}"
)]

[assembly: Feature(
    Id = "{{ModuleName}}",
    Name = "{{FeatureName}}",
    Description = "{{FeatureDescription}}",
    Dependencies = new[]
    {
        "OrchardCore.ContentManagement"
    },
    Category = "{{Category}}"
)]

Startup Pattern

using Microsoft.Extensions.DependencyInjection;
using OrchardCore.Modules;

namespace {{ModuleName}}
{
    public sealed class Startup : StartupBase
    {
        public override void ConfigureServices(IServiceCollection services)
        {
            // Register services here
        }
    }
}

Project File Pattern

<Project Sdk="Microsoft.NET.Sdk.Razor">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <AddRazorSupportForMvc>true</AddRazorSupportForMvc>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="OrchardCore.Module.Targets" Version="2.*" />
  </ItemGroup>

</Project>

Module Folder Structure

MyModule/
├── Manifest.cs
├── Startup.cs
├── MyModule.csproj
├── Controllers/
├── Drivers/
├── Handlers/
├── Migrations/
├── Models/
├── Services/
├── ViewModels/
├── Views/
└── wwwroot/