# Config Shared Core Rs

> Gerenciar o Shared Kernel Rust (Entity, ValueObject, Result, UseCase). Usar quando o pedido envolver classes base transversais, Result tipado ou traits de aplicação no workspace Cargo.

- Skill: `eskcti/config-shared-core-rs` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add eskcti/config-shared-core-rs`
- Raw SKILL.md: https://api.skillmd.com/api/skills/eskcti/config-shared-core-rs/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: EskCti (https://skillmd.com/u/eskcti)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/eskcti/config-shared-core-rs

---


# Config Shared Core (Rust)

## Overview

Manter o crate `shared-kernel` com abstrações DDD reutilizáveis por todos os Bounded Contexts.

## Localização

- `crates/shared-kernel/src/`

## Estrutura

```
shared-kernel/
├── Cargo.toml
└── src/
    ├── lib.rs
    ├── entity.rs       # trait Entity { fn id(&self) -> &EntityId; }
    ├── value_object.rs # trait ValueObject
    ├── result.rs       # Result<T, E = DomainError>
    ├── error.rs        # DomainError, AppError
    └── use_case.rs     # trait UseCase<Input, Output>
```

## Workflow

1. Ler `references/rust-namespace-layout.md` — namespaces dos **módulos de BC** não repetem nomes de tipos.
2. Implementar ou estender tipos no kernel sem dependências de Axum/sqlx.
3. Publicar API estável via `lib.rs` (`pub use`).
4. Rodar `cargo test -p shared-kernel`.

## References

- `references/rust-namespace-layout.md` — layout modular obrigatório
- `references/shared-patterns-rs.md` — Result, Entity, VO
- `../config-project-rs/assets/project-template-rs/crates/shared-kernel/` — template real do kernel copiado pelo bootstrap (`config-project-rs`)

## Global Standards

- Consultar `../skills-standards.md` seção **Rust Stack Standards**.

