Skip to content
Agentmart
Submit a tool

ddd-application-slice

Use this skill when adding or extending functionality in a DDD project so the implementation fits the intended layers: controllers, application services…

Skill by David Orolin

IndexedMIT
Write a review

Chalk Labs

Need help deploying ddd-application-slice?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/linksofteu-ddd-application-slice

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use this skill when adding or extending functionality in a DDD project so the implementation fits the intended layers: controllers, application services, mediator-style commands, queries, or events, handlers, domain services, and repositories.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/ddd-application-slice

What's inside

Skill name
ddd-application-slice
Description
Use this skill when adding or extending functionality in a DDD project so the implementation fits the intended layers: controllers, application services, mediator-style commands, queries, or events, handlers, domain services, and repositories.
License
MIT
Metadata
author: David Orolin · version: 1.0.0
Instructions
164 lines in SKILL.md · view on GitHub

Files (4)

  • README.md
  • SKILL.md
  • evals.json · evals/
  • slice-planning-checklist.md · references/

SKILL.md (first lines)

## Purpose

Use this skill to design or implement one coherent DDD application slice in a standardized structure:

- entrypoint (`controller`, `endpoint`, or `application service`)
- mediator-style message (`query`, `command`, or `event`/fire-and-forget message)
- handler
- optional domain service
- repository and mapping

Keep the skill technology-agnostic. The mediator library can vary. Preserve the architectural responsibilities.

## Core model

Treat each new use case as one of these three flows:

1. **Query for data**
   - use a request/response read model such as a query + query handler
   - keep it side-effect free
   - usually inject repository directly in the handler and map/return the result

2. **Trigger a change and wait for a result**
   - use a command-style request handled synchronously from the caller's perspective
   - return only the data the caller actually needs
   - for simple changes, handler-to-repository is acceptable
   - for business rules, orchestration, invariants, or multi-entity logic, call a domain service that uses repositories

3. **Trigger a change and do not wait for a result**
   - use an event, notification, local message, queued command, or equivalent fire-and-forget concept from the chosen stack
   - use this for follow-up work, integration reactions, notifications, cache invalidation, workflows, or other side effects that should not shape the immediate response contract

## Workflow

### 1. Identify the entrypoint

Start from the caller-facing surface:

- controller
- HTTP endpoint
- application service
- background entrypoint

Keep the entrypoint thin.

It should mainly:

- accept input
- enforce coarse authorization or transport concerns if needed
- create the mediator message
- dispatch it
- return the result

Do not place business rules or repository orchestration in the entrypoint unless the existing project convention explicitly requires it.

### 2. Choose the message type before writing code

Ask:

- Is this only reading data? Use a **query**.
- Is this changing state and the caller needs completion or returned data? Use a **command**.
- Is this changing state or reacting to a change without the caller waiting for completion? Use an **event** or other fire-and-forget message.

If a single request both mutates state and kicks off secondary reactions, split the responsibilities:

- command handles the primary state change
- event or fire-and-forget message handles follow-up reactions

### 3. Design the handler responsibilities

Handlers should coordinate one use case, not become a dumping ground.

Default handler responsibilities:

- load required data
- perform simple guard checks that are specific to the use case
- map transport DTOs to domain/application models where needed
- delegate business logic to the right place
- persist through repositories, directly or via domain service
- map the result to the response type
- publish follow-up events when appropriate

### 4. Decide between direct repository usage and domain service

Use this default decision rule:

**Use repository directly from the handler when** the action is simple, localized, and has little business logic.

Examples:

- straightforward lookup
- simple create, update, or delete
- toggling or saving user preferences
- fetching and mapping data for a query

**Use a domain service when** the use case includes meaningful business behavior.

Typical signals:

- invariants or business rules
- multiple validation steps
- multiple entities or aggregates involved
- workflow or stage transitions
- derived values or generated identifiers
- repeated logic likely to be reused
- domain events or follow-up reactions tied to domain behavior

The preferred chain for complex writes is:

`entrypoint -> mediator message -> handler -> domain service -> repository`

### 5. Shape the output deliberately

For queries:

- return DTOs or read models
- optimize for read concerns and mapping clarity
- do not return domain entities directly unless the project standard explicitly does so

For commands:

From Linksofteu/LinkSoft_Skills, MIT.

Signals

Stars
0
Forks
1
Open issues
0
Last commit (this folder)
Mar 26, 2026 (7 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.0.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from David Orolin

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get ddd-application-slice running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying ddd-application-slice?

CallGet help
Cite this page

ddd-application-slice skill. Agent Mart. https://agentmart.dev/skills/linksofteu-ddd-application-slice (last updated 2026-10-24)