| name | scaffold |
| description | Scaffold a new .NET project or module with correct structure for the Conjecture solution. Use this skill whenever the user wants to add a new project, test project, module, or set up the solution from scratch — even if they don't say "scaffold" explicitly. Triggers on phrases like "add a new project", "create a module for", "set up a test project for", "add X to the solution", or any request to create new .NET structural components in the repo.
|
Scaffold a new .NET project or module with correct structure.
Input
One of:
solution — create the solution file and core projects
project <name> — add a new class library project
test <name> — add a test project for an existing project
module <project> <name> — add a new module (namespace folder + initial files) to an existing project
Steps
solution
- Create
src/Conjecture.slnx
- Create
src/Conjecture.Core/Conjecture.Core.csproj (class library, net10.0)
- Create
src/Conjecture.Tests/Conjecture.Tests.csproj (xunit, net10.0)
- Add project references and ensure
Directory.Packages.props is used (no version attrs in csproj)
- Verify
dotnet build src/ succeeds
project <name>
- Create
src/<name>/<name>.csproj targeting net10.0
- Add to
Conjecture.slnx
- Verify build
test <name>
- Create
src/<name>.Tests/<name>.Tests.csproj with xunit + project reference to src/<name>
- Add to solution
- Add a placeholder test that passes
- Verify
dotnet test succeeds
module <project> <name>
- Create folder
src/<project>/<Name>/
- Add an initial public class or interface file with file-scoped namespace
- Add corresponding test file in the test project
Guidelines
- Always use central package management (
Directory.Packages.props) — never add version attributes directly in csproj files.
- Follow
.editorconfig conventions.
- Target the version specified in
global.json.
- Use file-scoped namespaces throughout.