Our review
This skill defines architectural, naming, and dependency rules for a .NET monorepo with shared libraries (dotcore) and runnable applications (dotapps).
Strengths
- Clear separation of reusable libraries from applications.
- Strict dependency rules preventing cycles and app-to-app references.
- Standardized naming and project paths simplify navigation.
- Integration with Cursor rules for automated assistance.
Limitations
- Requires strict adherence to folder hierarchy and conventions.
- Does not describe publishing or versioning mechanisms.
- May be overly rigid for very small or very large projects outside the monorepo model.
Use this skill when working on a .NET monorepo with shared libraries and multiple runnable applications.
Do not use it for simple .NET projects or when the structure is already established differently.
Security analysis
SafeThis skill contains only advisory documentation for project layout and naming conventions, with no executable commands, file operations, or external interactions. There are no security risks.
No concerns found
Examples
Add a new shared library called DotCore.Caching under dotcore/. Follow the naming and dependency rules: it should reference only DotCore.Foundations and DotCore.Common.Create a new runnable application called MyApp under dotapps/. It should reference DotCore.Foundations and DotCore.Utils. Also add a sub-app characteristic library MyAppCore under dotapps/MyApp/.Move the class SharedHelper from dotapps/Cli/Helpers/ to dotcore/DotCore.Utils/ because it is used by multiple apps.name: dot description: When working on dotcore (shared .NET libs = public class libraries = pycore counterpart) or dotapps (runnable apps), follow layout, naming, and dependency rules. All shared libraries live in dotcore; apps reference only dotcore.
Dot Stack Skill (dotcore + dotapps)
Use this skill when editing or adding code under dotcore/ or dotapps/.
- dotcore = .NET public class libraries (公共类库) = counterpart of pycore. All shared libraries used by more than one app (DotCore.Foundations, DotCore.Common, DotCore.Utils, DotCore.Infrastructure, DotCore.UIInspect, DotCore.UITheme, etc.) live here.
- dotapps = runnable applications; they reference dotcore and, when needed, their own sub-app characteristic library (子APP的特征类库) under dotapps/<App>/ (e.g. dotapps/d3check/D3CheckCore/). No app-to-app references.
Canonical spec: development-guides/DOT_ARCHITECTURE.md. Cursor rule: .cursor/rules/dot.mdc. UI (WPF/MAUI/Blazor/Avalonia): canonical spec development-guides/DOT_UI_PROJECT_SPECIFICATION.md, .cursor/rules/dot-ui.mdc. Progress and pycore↔dotcore mapping: dotcore/DOT_PUBLIC_LIBRARY_PROGRESS.md.
When to Use
- Editing or adding code under
dotcore/(any DotCore.* project or tests). - Editing or adding code under
dotapps/(SimpleUi, Cli, CallModule, d3check, or any new app). - Adding a new shared library (as a new DotCore.* under dotcore) or a new app (under dotapps).
- Choosing where to put types, utilities, or config used by multiple apps (dotcore, not dotapps).
Instructions
1. Layout: all shared libs in dotcore, apps in dotapps
- dotcore/ = shared class libraries only. Every subfolder is one library (e.g.
DotCore.Foundations). All code used by more than one app, or shared infrastructure, belongs here. Sub-app characteristic libs (子APP的特征类库) belong under dotapps/<App>/ (e.g. dotapps/d3check/D3CheckCore/), not in dotcore. No runnable apps under dotcore. - dotapps/ = runnable applications only. Every subfolder is one app (e.g.
SimpleUi,Cli,CallModule,d3check). Apps reference dotcore and, when needed, a project under the same app (e.g. d3check → D3CheckCore); no app-to-app project references. - Tests live under
dotcore/tests/(e.g.DotCore.Foundations.Tests).
2. Naming and code language
- Language: All code, comments, and user-facing strings in English. ASCII only in source code.
- Libraries: Folder and project name
DotCore.<Name>(e.g.DotCore.Utils). NamespaceDotCore.*. - Apps: Folder and assembly name match (e.g.
SimpleUi). Root namespace DotApps.<AppName> (e.g.DotApps.SimpleUi).
3. Dependencies
- Direction: Apps → Libraries only. Libraries do not reference apps. Libraries may reference other libraries only in a DAG (no cycles).
- DotCore.Foundations: No project refs; BCL/minimal NuGet only.
- DotCore.Common: Foundations only.
- DotCore.Utils / DotCore.Infrastructure: Foundations + Common (and optional third-party).
- DotCore.UIInspect: Optional third-party (e.g. FlaUI) only; no dotcore project refs if not needed.
- Apps: Reference only the
DotCore.*projects they need (e.g. Cli uses Foundations, Common, Utils; SimpleUi uses UIInspect).
4. Project reference paths
- From app (dotapps/<AppName>/):
..\..\dotcore\DotCore.<Name>\DotCore.<Name>.csproj - From library (dotcore/):
..\DotCore.<Name>\DotCore.<Name>.csproj - From test (dotcore/tests/...):
..\..\DotCore.<Name>\DotCore.<Name>.csproj
5. Adding a new library
- Create
dotcore/DotCore.<Name>/withDotCore.<Name>.csproj. - Obey dependency rule: only reference DotCore.* projects that are allowed (see §3).
- Add the project to
dotcore/dotcore.sln. - Update DOT_ARCHITECTURE.md and dotcore/DESIGN.md project list.
6. Adding a new app
- Create
dotapps/<AppName>/with<AppName>.csprojand entry point (e.g.Program.cs). - Set
RootNamespacetoDotApps.<AppName>,AssemblyNameto<AppName>. - Add ProjectReference only to required
dotcorelibs (path..\..\dotcore\DotCore.<Name>\DotCore.<Name>.csproj). - Add the project to
dotcore/dotcore.sln. - Optionally use
dotapps/start.ps1menu "Create new app" to scaffold.
7. Build and run
- From repo root:
dotnet build dotcore/dotcore.sln - Run app:
dotnet run --project dotapps/<AppName>/<AppName>.csproj(with optional args after--). - Menu:
.\dotapps\start.ps1(from repo root or fromdotapps/) for "Create new app" or "Run existing app".
8. Updating this skill / rules
- Canonical project spec: development-guides/DOT_ARCHITECTURE.md.
- Rule file: .cursor/rules/dot.mdc. Keep skill and rule in sync; avoid duplicate wording; reference by section (e.g. §3) where possible.
- UI rule: For WPF/MAUI/Blazor/Avalonia apps, also follow development-guides/DOT_UI_PROJECT_SPECIFICATION.md and .cursor/rules/dot-ui.mdc.
- When adding a new library or app, update DOT_ARCHITECTURE.md and DESIGN.md; optionally extend this SKILL.md Instructions.
Summary
| Need | Where | |------|--------| | Shared types / utilities used by more than one app | dotcore/DotCore.* | | Sub-app characteristic library (single-app domain types) | dotapps/<AppName>/<SubLib>/ (e.g. dotapps/d3check/D3CheckCore/) | | Runnable app | dotapps/<AppName>/ | | Canonical layout and naming | DOT_ARCHITECTURE.md | | Cursor rule (globs dotcore/, dotapps/) | .cursor/rules/dot.mdc | | UI layer (Clean Architecture + MVVM + Fluent 2) | DOT_UI_PROJECT_SPECIFICATION.md, .cursor/rules/dot-ui.mdc | | Build | dotnet build dotcore/dotcore.sln | | Run app | dotnet run --project dotapps/... or start.ps1 |
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.