skills/ddd-application-slice/SKILL.md
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.
npx skillsauth add linksofteu/linksoft_skills ddd-application-sliceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to design or implement one coherent DDD application slice in a standardized structure:
controller, endpoint, or application service)query, command, or event/fire-and-forget message)Keep the skill technology-agnostic. The mediator library can vary. Preserve the architectural responsibilities.
Treat each new use case as one of these three flows:
Query for data
Trigger a change and wait for a result
Trigger a change and do not wait for a result
Start from the caller-facing surface:
Keep the entrypoint thin.
It should mainly:
Do not place business rules or repository orchestration in the entrypoint unless the existing project convention explicitly requires it.
Ask:
If a single request both mutates state and kicks off secondary reactions, split the responsibilities:
Handlers should coordinate one use case, not become a dumping ground.
Default handler responsibilities:
Use this default decision rule:
Use repository directly from the handler when the action is simple, localized, and has little business logic.
Examples:
Use a domain service when the use case includes meaningful business behavior.
Typical signals:
The preferred chain for complex writes is:
entrypoint -> mediator message -> handler -> domain service -> repository
For queries:
For commands:
For fire-and-forget messages:
Avoid these common mistakes:
Check that:
Get...Query, Create...Command, ...Event, ...Handler or equivalent project naming)references/slice-planning-checklist.md when you need a more explicit planning sequence, a responsibility matrix, or a concrete implementation checklist for a new slice.testing
Use this skill when the user asks whether LinkSoft Skills are working, including minor wording variations or typos. Reply only with the fixed verification message.
development
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 DevOps work item REST API data, including parent hierarchy and comments, instead of manual re-entry.
tools
Opens a file or folder in a supported IDE using the nearest workspace or project context when available. Use when the user asks to open code in Rider, WebStorm, VS Code, Cursor, Windsurf, or a generic IDE from the CLI.
testing
Create or improve Agent Skills that follow the Agent Skills specification and LinkSoft repository conventions. Use this skill when designing a new skill, tightening scope, writing descriptions, structuring references or scripts, adding evals, or reviewing an existing skill for clarity, discoverability, and reuse.