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
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.
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.
About
Reviews
Write a reviewNo 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.
More from Linksofteu/LinkSoft_Skills
- 0.570score
openspec-workitem-enrichment
David Orolin
Use this skill when creating a new OpenSpec spec whose name follows `wi-<azure-devops-work-item-id>-<change-name>` so the spec can be enriched from Azure…
SkillAFreshness: AClaude Code +9 - 0.570score
sonar-findings
David Orolin
Use this skill when retrieving SonarQube issues and security hotspots for a project, branch, or pull request without changing findings or code.
SkillAFreshness: AClaude Code +9 - 0.529score
abp-automapper-to-mapperly
Martin Koudelka
Use this skill when migrating an ABP Framework application or module from AutoMapper profiles to ABP's Mapperly integration, including registration, mappings…
SkillBFreshness: BClaude Code +9 - 0.414score
creating-linksoft-skills
David Orolin
Create or improve Agent Skills that follow the Agent Skills specification and LinkSoft repository conventions.
SkillDFreshness: DClaude Code +9 - 0.414score
opening-in-ide
David Orolin
Opens a file or folder in a supported IDE using the nearest workspace or project context when available.
SkillDFreshness: DClaude Code +9 - 0.225score
test-skill
David Orolin
Use this skill when the user asks whether LinkSoft Skills are working, including minor wording variations or typos.
SkillDFreshness: DClaude Code +9
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
- Repository
- github.com/Linksofteu/LinkSoft_Skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from David Orolin
- 0.570score
openspec-workitem-enrichment
David Orolin
Use this skill when creating a new OpenSpec spec whose name follows `wi-<azure-devops-work-item-id>-<change-name>` so the spec can be enriched from Azure…
SkillAFreshness: AClaude Code +9 - 0.570score
sonar-findings
David Orolin
Use this skill when retrieving SonarQube issues and security hotspots for a project, branch, or pull request without changing findings or code.
SkillAFreshness: AClaude Code +9 - 0.414score
creating-linksoft-skills
David Orolin
Create or improve Agent Skills that follow the Agent Skills specification and LinkSoft repository conventions.
SkillDFreshness: DClaude Code +9 - 0.414score
opening-in-ide
David Orolin
Opens a file or folder in a supported IDE using the nearest workspace or project context when available.
SkillDFreshness: DClaude Code +9
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.
Cite this page
ddd-application-slice skill. Agent Mart. https://agentmart.dev/skills/linksofteu-ddd-application-slice (last updated 2026-10-24)