# libs

**Kind:** Module

**Source:** [`libs`](https://github.com/sherkety/atloria/blob/main/libs#L1)

.NET project in solution

The `libs` module is a .NET project within the solution that contains shared library code intended for reuse by other projects. It centralizes common domain logic, utilities, and abstractions so application projects can reference a consistent implementation.

## Diagram

```mermaid
graph TD
    Solution[".NET Solution"] --> Libs["libs<br/>Shared .NET Project"]
    Libs --> SharedLogic["Shared Domain Logic"]
    Libs --> Utilities["Utilities & Helpers"]
    Libs --> Contracts["Shared Contracts / Models"]
    Application["Application Projects"] --> Libs
```

## Usage

```ts
import { execFileSync } from "node:child_process";

// Build the shared .NET library before building or running
// projects that reference it.
execFileSync(
  "dotnet",
  ["build", "libs/libs.csproj", "--configuration", "Release"],
  { stdio: "inherit" }
);
```

## AI Coding Instructions

- Keep reusable, application-agnostic logic in `libs`; avoid placing host-specific configuration or UI concerns here.
- Preserve public API compatibility when changing shared models, interfaces, or utility methods because multiple projects may reference this project.
- Add the `libs` project as a project reference from consuming `.csproj` files rather than copying shared source files.
- Run `dotnet build` for the solution after changes to catch dependency and compilation issues across all consumers.

## Referenced By

- `atloria` (MODULE_DECLARES)
