feature-foundation-project

Creates Feature or Foundation layer projects in SharpPS Sitecore solutions following wizard conventions.

Updated Jul 24, 2026
One-click install
npx skills add https://github.com/gweone/agent-plugins --skill feature-foundation-project-gweone
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: feature-foundation-project
Source: https://github.com/gweone/agent-plugins/tree/main/plugin/sharpps-sitecore/skills/feature-foundation-project
Command: npx skills add https://github.com/gweone/agent-plugins --skill feature-foundation-project-gweone

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding a new Feature or Foundation module to an existing SharpPS Sitecore solution normally requires the Visual Studio "Sitecore MVC" project template wizard, whose conventions (naming, target paths, SharpPS.config token mapping, automatic Foundation ProjectReference) are undocumented inside a generated solution. This Skill captures those conventions so a new module project can be scaffolded correctly without running the wizard. ## Core Features & Use Cases - Convention-driven scaffolding: Resolves project name ($solutionpathformat$.{Layer}.<Name>), location (src\feature\<Name> or src\foundation\<Name>), and the full list of scaffolded files (Area configs, controllers, ServiceConfiguration, Web.config variants). - SharpPS.config integration: Reads version, url, area, publishpath, framework, core, and foundationpath from the solution-root SharpPS.config instead of prompting, mirroring the wizard's LoadFromConfig behavior. - Foundation reference wiring: Feature projects automatically get a <ProjectReference> to the Foundation project and no direct NuGet packages; Foundation projects get the full package list. - Use Case: A developer needs to add a new Search Feature module to an existing SharpPS Sitecore solution without Visual Studio. The Skill guides copying a sibling Feature project, renaming namespaces per the naming convention, wiring the Foundation ProjectReference, and adding the project to the solution file. ## Quick Start Add a new Feature project named Search to this SharpPS Sitecore solution following the Sitecore MVC template conventions.

Frequently Asked Questions about feature-foundation-project

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new Feature project to a SharpPS Sitecore solution?

Name the project `$solutionpathformat$.Feature.<Name>` and place it under `src\feature\<Name>`. Copy an existing sibling Feature project's structure and adapt namespaces, then add a ProjectReference to the Foundation project and include the project in the solution file.

What is the difference between Feature and Foundation projects in SharpPS Sitecore?

Feature projects automatically reference the Foundation project and receive no direct NuGet packages, inheriting Sitecore.Mvc transitively. Foundation projects get the full package list from the template and never reference another project, since nothing else exists for them to depend on.

How does SharpPS.config affect the Sitecore project wizard?

When SharpPS.config exists at the solution root, the wizard reads keys like version, url, area, publishpath, framework, and core directly and skips the setup form entirely. If it is missing, the wizard prompts for values and writes SharpPS.config for future project additions.

Why does my Foundation project have configs under App_Config\Include\Feature?

The Sitecore MVC template hardcodes the `Include\Feature\` path segment for both config TargetFileNames regardless of layer. A Foundation-named project still gets its configs placed under `Include\Feature\`; this is the template's actual behavior, not a mistake to fix.

Can I create a SharpPS Sitecore module without the Visual Studio wizard?

Yes, but the template file contents live in the separate VS extension repo and are not available inside a generated solution. The intended approach is copying an existing sibling Feature or Foundation project and renaming tokens per the naming convention.

Why does my Feature project have no ProjectReference to Foundation?

The wizard only injects the Foundation ProjectReference when the project name contains `.Feature.` and a Foundation csproj can be found via SharpPS.config's foundationpath or a solution-wide search. If none exists, isFeatureProject is forced to false and no reference is added.