atelier-spec-architect_skill

This skill helps design features using domain-driven design and hexagonal architecture, aligning functional core and edge components for clear responsibilities.
  • JavaScript

4

GitHub Stars

1

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill martinffx/claude-code-atelier --skill atelier-spec-architect

  • SKILL.md7.9 KB

Overview

This skill guides feature design using Domain-Driven Design and hexagonal architecture with a functional core pattern. It prescribes a clear separation: a pure, testable functional core for business rules and an effectful edge for IO and integration. Use it to drive spec-first implementations, keep business logic deterministic, and make components easy to test and reason about.

How this skill works

The skill defines responsibility boundaries: Entities and Services live in a pure functional core; Routers, Repositories, Clients, Producers and Consumers form the effectful edge. The core exposes interfaces that the edge implements (dependency inversion). Tasks are ordered bottom-up—implement entities, then repositories, then services, then routers—so each layer has concrete inputs to work against.

When to use it

  • Designing new features that require clear business-rule encapsulation
  • Modeling domain objects, validations, and invariants
  • Breaking a feature into testable implementation tasks
  • Defining where to stub vs run real integrations in tests
  • Refactoring code to isolate side effects from logic

Best practices

  • Keep all business logic and validation in pure Entities and Services—no IO or framework code
  • Define repository and client interfaces in the core, implement them in the edge
  • Write unit tests for core functions and integration tests for edge implementations
  • Follow bottom-up task ordering: Entity → Repository (interface) → Service → Router
  • Return explicit success/error results from services instead of throwing side-effectful exceptions

Example use cases

  • Designing an Order feature: Order entity, InventoryRepository interface, OrderService orchestration, HTTP order routes
  • Adding a payment flow: pure Payment rules in core and a payment client implementation in the edge
  • Creating event-driven features: domain events in core, event consumer/producer implementations in the edge
  • Refining a legacy module by extracting pure validation and business rules into the functional core
  • Planning tests: property and unit tests for entities; stub-driven service tests; integration tests for repositories and external clients

FAQ

Put deterministic business rules, validation, and data transforms in the core. Put anything that interacts with IO—databases, HTTP, file systems, external APIs—in the edge.

Should services ever perform IO directly?

No. Services should call repository/client interfaces defined in the core; the edge provides concrete implementations. This keeps services pure for testing and reasoning.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational