dotnet10-csharp14
Project-agnostic .NET 10 and C# 14 best practices: field keyword, null-conditional assignment, extension members, unbound generic nameof, runtime…
Skill by lucy-camilo
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/camiloandresgtruniandes-dotnet10-csharp14
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/dotnet10-csharp14
What's inside
- Skill name
dotnet10-csharp14- Description
- Project-agnostic .NET 10 and C# 14 best practices: field keyword, null-conditional assignment, extension members, unbound generic nameof, runtime improvements, ASP.NET Core, and EF Core guidance. Trigger: When using .NET 10, C# 14, ASP.NET Core 10, EF Core 10, or deciding whether to adopt new language/runtime features.
- License
- Apache-2.0
- Metadata
- author: lucy-camilo · version: 1.1
- Instructions
- 221 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# .NET 10 + C# 14 Best Practices
## When to Use
Use this skill when:
- Writing or reviewing .NET 10 / C# 14 code
- Deciding whether to adopt a new C# 14 feature
- Modernizing .NET projects without rewriting stable code unnecessarily
- Reviewing ASP.NET Core 10, EF Core 10, or runtime-related changes
Always combine this with the repo's own `docs/STANDARDS.md` and the generic `csharp-dotnet` skill when broader .NET architecture guidance is needed.
## Adoption Rule
> Use .NET 10 / C# 14 features only when they improve clarity, safety, maintainability, or performance. Do not rewrite working code just to use new syntax.
Before adopting new features, verify:
- [ ] The project targets .NET 10 and LangVersion supports C# 14
- [ ] CI/build images have the .NET 10 SDK installed
- [ ] Team/editor tooling supports the syntax
- [ ] Existing tests still pass
- [ ] The feature fits the project's architecture and style guide
## C# 14 Features Worth Using
### 1. `field` keyword — validated properties without explicit backing field
Use when a property needs simple validation or normalization in the setter.
```csharp
public string Name
{
get;
set => field = string.IsNullOrWhiteSpace(value)
? throw new ArgumentException("Name is required.", nameof(value))
: value.Trim();
}
```
Good fits:
- Small invariants on DTOs or domain objects
- Normalization such as trimming strings
- Replacing trivial private backing fields
Avoid when:
- Validation belongs in FluentValidation or another validation layer
- The setter becomes complex
- The class already has a member named `field`; use `@field` or rename to avoid confusion
### 2. Null-conditional assignment — `?.=`
Use when assigning only if the target exists; right-hand side is not evaluated if the receiver is null.
```csharp
currentUser?.LastSeenAt = clock.UtcNow;
```
Good fits:
- Optional state updates
- Defensive assignments in mapping code
- Optional telemetry/log enrichment
Avoid when:
- Null should be treated as an error
- Assignment hides an unexpected missing dependency
- Increment/decrement is needed (`++` / `--` are not supported)
### 3. Extension members — extension properties and static extension methods
Use for tiny, broadly useful helpers where fluent/readable syntax matters.
```csharp
public static class CollectionExtensions
{
extension<T>(IReadOnlyCollection<T> source)
{
public bool IsEmpty => source.Count == 0;
}
}
```
Good fits:
- Small collection/string/result helpers
- Domain-specific readability improvements
- Avoiding repeated utility boilerplate
Avoid when:
- The extension hides expensive work
- A normal method would be clearer
- It encourages an anemic domain model by moving real behavior out of domain types
### 4. `nameof(List<>)` — unbound generic `nameof`
Use when referring to generic type names without inventing a type argument.
```csharp
var collectionType = nameof(List<>); // "List"
var mapType = nameof(Dictionary<,>); // "Dictionary"
```
Good fits:
- Diagnostics and exception messages
- Metadata or validation involving generic type definitions
- Source generators/analyzers
### 5. Partial constructors and partial events
Use to split generated and handwritten code safely.
```csharp
public partial class ReportBuilder
{
partial void OnBuildFailed(Exception exception);
}
```
Good fits:
- Source generators
- Separating generated code from custom hooksFrom CamiloAndresGTRUniandes/lucy-ai, Apache-2.0.
More from CamiloAndresGTRUniandes/lucy-ai
- 0.605score
igniteui-angular-components
imported-and-adapted-by-lucy-camilo
Ignite UI for Angular non-grid UI components: setup, forms, layouts, feedback, data display, directives, charts, Dock/Layout/Tile managers.
SkillBFreshness: B★ 19Claude Code +9 - 0.605score
igniteui-angular-theming
imported-and-adapted-by-lucy-camilo
Ignite UI for Angular theming: palettes, Sass themes, typography, elevations, component tokens, dark/light themes, spacing, sizing, and roundness.
SkillBFreshness: B★ 19Claude Code +9 - 0.605score
igniteui-angular-generate-from-image-design
imported-and-adapted-by-lucy-camilo
Implement Angular views from design images using Ignite UI Angular components and theming.
SkillBFreshness: B★ 19Claude Code +9 - 0.605score
igniteui-angular-grids
imported-and-adapted-by-lucy-camilo
Ignite UI for Angular data grids: flat, tree, hierarchical, pivot, grid lite, columns, editing, selection, grouping, export, remote data, paging, state, sizing.
SkillBFreshness: B★ 19Claude Code +9 - 0.605score
azure-devops-cli
imported-and-adapted-by-lucy-camilo
Manage Azure DevOps resources via CLI including projects, repos, pipelines, builds, pull requests, work items, artifacts, and service endpoints.
SkillBFreshness: B★ 19Claude Code +9 - 0.604score
lucy-agent
lucy-ai
Lucy-ai's own agent ecosystem installer, updater, and verifier.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
ado-effort-estimation
imported-and-adapted-by-lucy-camilo
Estimate Azure Boards work with a mandatory clarifying-question gate and story-point guardrails.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
issue-creation
imported-and-adapted-by-lucy-camilo
Create clear issue drafts with reproducible context, acceptance criteria, and definition of done.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
find-skills
imported-and-adapted-by-lucy-camilo
Discover, evaluate, and install agent skills when the user asks for new capabilities, asks whether a skill exists, shares a skill archive, or wants help…
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
csharp-dotnet
lucy-camilo
C# and .NET patterns for OpenClaw.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
git-commit
imported-and-adapted-by-lucy-camilo
Create git commits with conventional commit message analysis, safe staging, and logical grouping.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
judgment-day
imported-and-adapted-by-lucy-camilo
Run high-rigor adversarial review cycles until implementation quality is accepted or escalated.
SkillBFreshness: B★ 19Claude Code +9
Signals
- Stars
- 19
- Forks
- 2
- Open issues
- 0
- Last commit (this folder)
- Jul 29, 2026 (3 months ago)
- Last release
- Jul 31, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.1
- License
- Apache-2.0
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from lucy-camilo
- 0.603score
csharp-dotnet
lucy-camilo
C# and .NET patterns for OpenClaw.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
orchestrator-doctrine
lucy-camilo
Master orchestration doctrine for Lucy/OpenClaw: how to combine SDD, sub-agents, decision critique, mentoring, reviews, git/PR workflow, and specialist skills…
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
pr-review
lucy-camilo
Comprehensive, project-agnostic pull request review workflow.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
sdd
lucy-camilo
Spec-Driven Development workflow for OpenClaw.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
security
lucy-camilo
Project-agnostic application security review guidance based on OWASP risks and secure engineering practices.
SkillBFreshness: B★ 19Claude Code +9
Cite this page
dotnet10-csharp14 skill. Agent Mart. https://agentmart.dev/skills/camiloandresgtruniandes-dotnet10-csharp14 (last updated 2026-10-24)