Skip to content
cccskills
FreePublished on GitHub

csharp-conventions

Kern project C# conventions, namespace rules, DI/VContainer patterns, and assembly layer boundaries. Use when writing, editing, or reviewing any C# file — MonoBehaviours, ScriptableObjects, services, contracts, factories, or editor scripts. Triggers on: namespace, nullable, asmdef, VContainer, RegisterComponent, IObjectResolver, composition root, Kern.Contracts, primary constructor, record struct, SA1513, _camelCase, PascalCase, asmref, MonoScript.GetClass.

The English summary is being prepared. Showing the original description.

MinesReborn/Fodislop4 stars(GitHub 4 + cccskills 0)

Run score Not tested

See how to install

Files included (1)

  • SKILL.md3.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

C# and structure

Language and nullable

  • #nullable enable is enabled; annotate reference types explicitly as nullable or non-null.
  • Use C# 12 features (primary constructors, readonly record struct, collection expressions) where appropriate.

Namespaces

  • Regular types use file-scoped namespaces.
  • Types deriving from MonoBehaviour, ScriptableObject, ScriptableRendererFeature, or VolumeComponent use block namespaces — otherwise MonoScript.GetClass() may return null.

Style

  • Allman braces, mandatory {}, SA1513/SA1508.
  • Trailing comma in multi-line initializers.
  • Non-public instance fields — _camelCase; non-public static fields — s_camelCase; constants (including local constants), public fields, types, namespaces, methods, properties, events, enum members, delegates, and local functions — PascalCase.
  • Interfaces — I + PascalCase; generic type parameters — T + PascalCase; locals and parameters — camelCase.
  • Use Is/Has/Can for boolean meaning, Count for quantities, Index for positions, and Id for identity. Use meaningful plural collection names and ById for identity lookup.
  • Async operations use the Async suffix; event handlers use Handle + event name. Use Id, Uv, and Ms; keep CPU, LUT, FPS, M3G, GPU, LRU, and RLE uppercase in compound identifiers; retain names required by external APIs and contracts.
  • Use Credits rather than Creds for project-owned currency identifiers. Keep immutable external packet/API names at the integration boundary.
  • Include units when otherwise ambiguous (durationSeconds, gpuTimeMs, radiusPixels, distanceMeters).
  • Prefer private [SerializeField] fields with public properties. Preserve Unity callback names and shader parameter contracts exactly. When renaming serialized fields, preserve values with [FormerlySerializedAs]; migrate existing symbols by subsystem rather than mass replacement.
  • .editorconfig enforces naming at warning severity. Shader and asset names follow their domain contracts; C# naming rules do not rename shader bindings or assets.
  • Unity script file name must match the class name.

DI / VContainer

  • Do not create managers via AddComponent in Configure.
  • Register scene components via RegisterComponent; create prefabs/entities via ISceneObjectFactory.
  • IObjectResolver is permitted only in composition roots and factories.
  • RegisterInstance does not inject manually created objects.
  • Do not resolve the container in Awake, OnEnable, or Start.

Assembly layers

  • Kern.Contracts is the bottom layer: it does not reference any Kern.* assembly.
  • Module contracts live next to the module in a Contracts/ folder with Kern.Contracts.asmref; without it the type lands in the module assembly and breaks everyone below.
  • Do not place types that depend on implementation details in Contracts/.
  • Guarded by ContractsAssemblyBoundaryTests.

Documents

  • Files in docs/ must be self-contained HTML with inline <style>, no Markdown, no external dependencies.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Refactor bloated AGENTS.md, CLAUDE.md, or similar agent instruction files to follow progressive disclosure principles. Splits monolithic files into organized, linked documentation.

The English summary is being prepared. Showing the original description.

MinesReborn/Fodislop4Updated Oct 26, 2026

Build and operate a live game using Unity Services. Use when the user needs to implement, connect, or debug backend-driven features — battle passes, achievements, player progression, cloud saves, leaderboards, matchmaking, virtual economies, server-authoritative logic, anti-cheat, player accounts and authentication, remote configuration, feature flags, A/B testing, analytics, or cloud resource deployment. Triggers on live-ops, live service, backend, server authority, cloud code, cloud save, remote config, player data, retention, monetization loop, season pass, ranking, multiplayer sessions, lobbies, or any Unity Services integration.

The English summary is being prepared. Showing the original description.

MinesReborn/Fodislop4Updated Oct 26, 2026

Kern engine critical invariants: coordinate system, UI Toolkit positioning, RenderTexture blit, LifetimeScope/scene structure, VolumeProfile editor API, camera pixel-grid alignment, performance analysis rules, profiler interpretation, and the no-fallback policy. Use when touching coordinates, WorldToScreen, UI element anchoring, RenderTexture, LifetimeScope, VolumeProfile, camera, FPS analysis, Profiler markers, or any code near an "invariant" comment. Triggers on: CoordinateUtils, MapManager.WorldHeight, RuntimePanelUtils, CameraTransformWorldToPanel, WorldToLocal, PositionWriteEpsilon, CameraPixelGridAligner, LifetimeScope, RegisterComponent, VolumeProfile, AssetDatabase.AddObjectToAsset, EditorLoop, VSync, fallback, paper white, FPS, frame time.

The English summary is being prepared. Showing the original description.

MinesReborn/Fodislop4Updated Oct 26, 2026

Synchronize and compile FMOD Studio banks into StreamingAssets

The English summary is being prepared. Showing the original description.

MinesReborn/Fodislop4Updated Oct 26, 2026

Kern HDR/color pipeline contract: scene-referred linear working space, paper white units, radiance format rules, URP output transform ownership, DisplayFinal perceptual/linear space, UI brightness, HDR calibration screen, safe-start HDR switch, and HDROutputController usage. Use when touching lighting shaders, glow, bloom, tonemapping, post-processing, color grading, LUT, display output, UI colors, calibration, or any code with DisplaySettings / HDROutput / PaperWhite / Tonemapping / CompositeFinal / DisplayFinal / VisualTuning. Triggers on: saturate on radiance, clamp color, sRGB in shader, UNorm light buffer, ARGBHalf, paper white, HDROutputReconciler, VisualTuning, BT2390, detectPaperWhite, HDRCalibrationScreen, HDRSwitchPending, HDROutputSettings.

The English summary is being prepared. Showing the original description.

MinesReborn/Fodislop4Updated Oct 26, 2026

Implement, configure, and debug Unity In-App Purchases (IAP) — store connection, product catalog, consumable/non-consumable/subscription purchases, two-step pending-confirm flow, receipt validation, entitlement checking, restore transactions, Apple extensions (promotional purchases, Ask-to-Buy, code redemption), and Google Play extensions (subscription upgrade/downgrade), D2C Capabilities(direct to customer), 3rd party payment provider (Stripe/Coda) via Unity IAP/Unity Cloud. Use when the user needs to add, modify, debug, or migrate from native Android/iOS billing, 3rd party packages(RevenueCat/Adapty/Essential Kit/Unipay supported) to IAP. Triggers on microtransactions (MTX), monetization, real-money purchases, store purchases, buying items, support D2C, purchase via Stripe/Coda, migrate from native billing(Google's BillingClient or Apple's StoreKit/SKPaymentQueue/SKProduct)/RevenueCat/Adapty/EssentialKit/Unipay.

The English summary is being prepared. Showing the original description.

MinesReborn/Fodislop4Updated Oct 26, 2026

See all skills by MinesReborn

Report a problem with this skill