AtomiCloud.Diene.CoreUtils
1.0.0
dotnet add package AtomiCloud.Diene.CoreUtils --version 1.0.0
NuGet\Install-Package AtomiCloud.Diene.CoreUtils -Version 1.0.0
<PackageReference Include="AtomiCloud.Diene.CoreUtils" Version="1.0.0" />
<PackageVersion Include="AtomiCloud.Diene.CoreUtils" Version="1.0.0" />
<PackageReference Include="AtomiCloud.Diene.CoreUtils" />
paket add AtomiCloud.Diene.CoreUtils --version 1.0.0
#r "nuget: AtomiCloud.Diene.CoreUtils, 1.0.0"
#:package AtomiCloud.Diene.CoreUtils@1.0.0
#addin nuget:?package=AtomiCloud.Diene.CoreUtils&version=1.0.0
#tool nuget:?package=AtomiCloud.Diene.CoreUtils&version=1.0.0
AtomiCloud.Diene.CoreUtils
Diene's reproducible development environment is managed by Nix. Run direnv allow once, then use pls tasks from the loaded shell.
This branch is the workspace baseline inherited by every downstream sample: split CI/CD, secrets, release configuration, validators, standards, and vendored agent-skill synchronization.
Commands
pls setup— synchronize installed diene package skills.pls lint— run every pre-commit gate.pls secret:scan— scan tracked content for secrets.pls skills:sync— rebuild.claude/skills/vendor/from installed packages.
Standards
- CI/CD workflows
- conventional commits
- Infisical and secrets
- linting and pre-commit
- Nix flakes and development shells
- release automation
- service-tree identity
- shell scripts
- Taskfile conventions
Shared standards
- Authorization
- Contributor documentation
- Date and time
- Domain-driven design
- Functional practices
- Software design philosophy
- SOLID principles
- Stateless OOP and dependency injection
- Testing
- Three-layer architecture
- Utility libraries
- Data validation
Domain-specific documentation belongs under docs/domain/.
The docs/standards/contracts/ location is reserved for the separately owned C0
contracts standard.
.NET 10 foundation
This branch adds the .NET 10 toolchain, the App/Lib/UnitTest/IntTest
sample, merged multi-project coverage, strict and LLM dead-code modes. See the .NET baseline.
Common commands:
pls build,pls dev,pls run, andpls previewpls test,pls test:unit,pls test:int, and the coverage variantspls deadcodefor the non-blocking review; CI owns strict dn-inspect
The wire contract, slug parity rules, and key-matching rule are documented in docs/domain/core-utils.md. Production observability is intentionally absent until the observability add-back.
Publishable library packages
This repository publishes one package, AtomiCloud.Diene.CoreUtils. It holds the
three things the .NET family could not take from the BCL: the C0 §1 wire codecs,
slug and namespaced-key helpers that are byte-parity with the TypeScript sibling,
and the canonical key-matching rule the Config lib consumes.
There is deliberately no TestHelper companion — every member is a
deterministic value function with no port to fake and no assertion worth
re-shipping. pls test:meta is a no-op here and no empty meta flag is uploaded.
The shipped usage skill carries the how-to-add-one-later guidance.
dotnet add package AtomiCloud.Diene.CoreUtils
using System.Text.Json;
using AtomiCloud.Diene.CoreUtils;
using AtomiCloud.Diene.CoreUtils.Json;
// One registration puts every temporal, decimal, and int64 on the wire in C0 form.
var json = JsonSerializer.Serialize(receipt, AtomiJson.DefaultOptions);
// {"shippedOn":"2026-07-25","confirmedAt":"2026-07-25T22:30:00Z",
// "transitTime":"PT1H30M","originZone":"Asia/Singapore","declaredValue":"1249.50"}
// Result-returning codecs for the call sites that are not JSON.
Wire.ParseTimeZone("Singapore Standard Time"); // Err — IANA ids only
Wire.Format(TimeSpan.FromMinutes(90)); // "PT1H30M"
Slug.NamespacedKey("AtomiCloud", "Express Parcel"); // Ok("atomicloud:express-parcel")
KeyNormalizer.KeysMatch("error_portal", "ErrorPortal"); // true
This package consumes the published AtomiCloud.Diene.Result and
AtomiCloud.Diene.Interfaces packages from nuget.org — never a project
reference. The root NuGet.config clears every source but nuget.org so that
stays true.
Run nix develop .#ci -c ./scripts/ci/pkg-validate.sh to pack the package,
validate metadata and symbols, and restore it into a scratch consumer. See
the library baseline for release and
promotion guidance.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- AtomiCloud.Diene.Interfaces (>= 1.0.0)
- AtomiCloud.Diene.Result (>= 1.0.0)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on AtomiCloud.Diene.CoreUtils:
| Package | Downloads |
|---|---|
|
AtomiCloud.Diene.AuthEngine
Logto-compatible token validation, policy checks, credential acquisition, management, and deferred app handoff for Diene services. |
|
|
AtomiCloud.Diene.Problems
Typed RFC 9457 problems, catalogs, exports, and ASP.NET Core integration for Diene services. |
|
|
AtomiCloud.Diene.Config
The sole config merger and validator for the Diene .NET family: layered YAML sources, prefixed environment overrides, ValidateOnStart option registration, and generated JSON schema. |
|
|
AtomiCloud.Diene.Otel
The AtomiCloud OpenTelemetry engine: the canonical Otel config block, semconv resource mapping, OTEL_* environment precedence, host wiring, and the trace emit seam. |
|
|
AtomiCloud.Diene.ApiEngine
The typed backend-client engine for Diene services: an LPSM client tree over generated SDKs, per-backend token attachment, retry-once-on-network-error transport, and full response classification into Result<T, Problem>. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 498 | 7/26/2026 |