Diene's reproducible development environment is managed by Nix. Run direnv allow once, then use pls tasks from the loaded shell.
This repository inherits the all-features workspace baseline: split CI/CD, secrets, release configuration, validators, standards, and vendored agent-skill synchronization.
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.
github.com/AtomiCloud/diene.go-api-engine is the Go family's outbound API
client engine: a multi-backend client tree, 3-case response classification
mapped onto (T, error) with problem-typed errors through
github.com/AtomiCloud/diene.go-errors-problems, per-backend credentials
resolved through the github.com/AtomiCloud/diene.go-auth-engine retriever
seam, an engine-owned config block, and a retry-once-on-network-error
resilience profile — shipped with a consumer-facing testhelper package.
It is client only. It hosts nothing: middleware, controllers, health and readiness endpoints, and error-info publishing belong to the base template's hosting layer or to the error portal, never here.
go get github.com/AtomiCloud/diene.go-api-engine@latestusers, err := apiengine.Execute[[]User](ctx, client, apiengine.Request{Path: "/v1/users"})Packages:
lib/apiengine— the client tree, the per-backend client, the 3-case classifier, the engine-owned config block, and the problem catalog.lib/wire— the C0 §1 wire codecs: ISO 8601 durations, RFC 3339 UTC instants, and IANA timezone identifiers.testhelper— fake backends for the client tree, canned Problem-envelope responses, and outcome assertions.
The three cases, the multi-backend model, and the resilience profile are
documented on the packages themselves and in the shipped usage skill
skills/diene-go-api-engine-usage/SKILL.md.
pls build— build every package in the module.pls typecheck— compile every source package without running tests.pls test/pls test:coverage— run unit, integration, and active meta tiers.pls deadcode— run strict whole-repository and production passes plus the LLM-lax report.pls up/pls down— start or stop local infrastructure (this library binds none)../scripts/ci/pkg-validate.sh all— run module-path, vet, API, docs, and example validators.
See the Go baseline for the language contract and template-maintenance boundary. See the Go library baseline for promotion, testing, compatibility, and publication policy.
- 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
- 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.