AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Build Csharp Project

skill-gaelic-ghost-socket-build-csharp-project · by gaelic-ghost

Build or modify idiomatic C# .NET projects using nullable-aware APIs, records/classes, async/task behavior, analyzer conventions, tests, and repo-local validation.

No reviews yet
0 installs
26 views
0.0% view→install

Install

$ agentstack add skill-gaelic-ghost-socket-build-csharp-project

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-gaelic-ghost-socket-build-csharp-project)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Build Csharp Project? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Build C# Project

Purpose

Implement or modify a C# .NET project in C#'s own shape while keeping F# as an equal peer elsewhere in the plugin.

The practical goal is clear nullable-aware APIs, focused types, useful async boundaries, tests that cover changed behavior, and validation through the repository's .NET commands.

When To Use

  • Use this skill when the chosen language is C#.
  • Use this skill when an existing .csproj needs new source, tests, or package-facing API.
  • Use this skill when a mixed solution has a C# host, app, API, or interop surface.
  • Use this skill when the user asks for C# implementation specifically.

Source Check

Use repo-local .NET files, checked-out dependency sources, Dash MCP or Dash HTTP for installed .NET docsets, and then official Microsoft documentation when Dash/local coverage is missing or stale:

Inspect the repository before editing:

rg --files -g '*.cs' -g '*.csproj' -g '*.sln' -g '*.slnx' -g 'global.json' -g '.editorconfig'

Implementation Workflow

  1. Read the existing project file and analyzer/style settings.
  2. Check nullable reference type behavior.
  3. Identify the public API or app behavior being changed.
  4. Use records for value-like data when that matches the domain.
  5. Use classes for identity, behavior, mutable state, or framework integration.
  6. Use interfaces only when there is a real alternate implementation, test boundary, or public contract.
  7. Keep async APIs async only when they perform asynchronous work or match an existing contract.
  8. Add or update tests around the behavior changed.
  9. Run the narrowest useful validation command.

Nullable And Analyzer Behavior

Respect existing repo configuration first.

When nullable reference types are enabled:

  • avoid ! unless the invariant is real and local
  • prefer explicit null handling at boundaries
  • keep public method contracts clear

When analyzers or warnings-as-errors are configured:

  • fix warnings instead of suppressing them by default
  • add suppressions only with a concrete reason
  • avoid adding new style rules inside a feature change unless the user asked for tooling work

API Shape

For library APIs:

  • keep public types small and purposeful
  • prefer immutable inputs and outputs unless mutation is part of the model
  • keep exceptions for exceptional failure and use result-like values only when the repo already has that convention

For apps:

  • keep process, environment, filesystem, and network effects explicit
  • keep business rules testable without shelling out
  • write human-friendly errors that name what failed and likely cause

Testing

Use the repository's existing test framework and command if present.

When no convention exists yet, use xUnit as the recommended scaffold default and keep command guidance centered on dotnet test. Preserve existing repo choices instead of migrating test frameworks casually.

Output Shape

Return:

  1. C# change: what type, method, project, or behavior changed.
  2. Contracts: nullable, async, public API, or analyzer choices.
  3. Tests: what behavior is covered.
  4. Validation: exact dotnet commands and result.
  5. F# boundary: if relevant, how this C# code interacts with F# projects.

Guardrails

  • Do not treat C# as the automatic .NET default in user-facing explanations.
  • Do not add interfaces, services, factories, or managers without naming the concrete caller or pain they address.
  • Do not disable nullable or analyzers to make a change pass.
  • Do not skip tests for behavior changes when the repo has a test surface.
  • Do not rewrite a mixed F#/C# boundary without explaining the practical effect.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.