Skip to content
Back to skills

Ddd Discover

ASecurity

Collaborative domain discovery via event storming, producing event streams, command/event candidates, hotspots, ambiguity lists, and preliminary context-boundary clues for downstream subdomain classification. Use when doing domain discovery — identifying domain events and commands, aligning core business flows and exception paths, or re-running discovery after bounded-context term conflicts. NOT for: facilitating live EventStorming workshops (formats and facilitation patterns are separate ref...

  • 3 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added October 25, 2026
ai-agents

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 25, 2026

npx -y skills add NinjaSln-labs/agent-skills --skill ddd-discover --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ddd Discover?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ddd Discover
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ninjasln-labs-ddd-discover/badge)](https://www.skillsdirectory.com/skills/ninjasln-labs-ddd-discover)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ddd-discover
description: >-
  Collaborative domain discovery via event storming, producing event streams,
  command/event candidates, hotspots, ambiguity lists, and preliminary
  context-boundary clues for downstream subdomain classification. Use when doing
  domain discovery — identifying domain events and commands, aligning core business
  flows and exception paths, or re-running discovery after bounded-context term
  conflicts. NOT for: facilitating live EventStorming workshops (formats and
  facilitation patterns are separate reference material), designing aggregate
  boundaries, or partitioning/classifying subdomains — deliverables, not facilitation.
risk: safe
source: self
tags: "[ddd, discovery, event-storming]"
date_added: "2026-05-08"
slug: ddd-discover
version: 1.1.0
displayName: ddd-discover
---

# DDD Discover

> English version: [English](SKILL.en.md)

## 使用时机

- 需要快速对齐核心业务流程与领域边界线索。
- 需求已明确(来自 `ddd-scope` 或用户直接提供),需要探索领域内部发生了什么。
- `ddd-contexts` 报告"术语冲突不可调和"时,作为回溯目标重新执行。

## 输入要求

- **必需**:业务场景描述(用户故事、PRD、工单、或 `ddd-scope` 的输出均可)。
- **可选**:关键参与方与外部系统、业务约束与非目标(来自 `ddd-scope`)。

## 流程

1. **列举事件**:以"已发生的事实"为视角,用**过去时**命名领域事件(如 OrderPlaced, PaymentReceived)。
2. **补全命令**:为每个事件补充触发它的命令、发起者、关键输入数据。
3. **排列时序**:将事件按时间线组织,识别分支、回滚、异常路径(至少覆盖 1 条主路径 + 2 条异常路径)。
4. **标注热点**:标记高频事件、强一致性点、跨系统边界、性能敏感点、合规检查点。
5. **生成歧义清单**:记录术语冲突、状态不明确、职责归属模糊的问题,标注"谁必须确认"。
6. **输出边界线索**:从事件聚类与热点分布中提取初步的能力分组与上下文边界候选。

## 输出

| 工件         | 结构要求                                                            |
| :----------- | :------------------------------------------------------------------ |
| 事件流表     | 表格:序号、事件名(过去时)、触发命令、参与者、输入/输出、异常分支 |
| 命令候选清单 | 表格:命令、发起者、期望结果、幂等性要求                            |
| 事件候选清单 | 表格:事件、关键字段、是否跨上下文、是否对外发布                    |
| 热点标注     | 列表:一致性热点、集成热点、性能热点、合规热点                      |
| 歧义清单     | 表格:歧义点、影响范围、需确认方、建议决策                          |
| 边界线索     | 列表:初步能力分组与潜在上下文边界                                  |

## 校验清单

- [ ] 事件使用过去时命名,业务可理解
- [ ] 至少覆盖 1 条主路径 + 2 条异常/回滚路径
- [ ] 热点中明确标注了跨系统边界与强一致性点
- [ ] 歧义清单中每条都标注了"谁必须确认"
- [ ] 边界线索可被 `ddd-subdomains` 直接消费

## 回溯触发

- 本 Skill 被 `ddd-contexts` 触发回溯:当 > 5 个术语存在不可调和的跨上下文冲突时,说明领域理解不足,需重新发现。

## 示例

```text
@ddd-discover
基于以下 scope 输出,帮我做领域发现:
- 问题:订单售后流程混乱
- 目标:支持退款、换货、投诉处理
- 非目标:不涉及正向下单流程
请输出事件流表、命令/事件候选、热点标注与歧义清单。
```

### 第二个示例(含产出摘录)

**前置**:`ddd-scope` 已产出范围(问题/目标/非目标),或用户直接给了一段业务描述;无既成事件清单。

**调用句**:

```text
「对工单系统做领域发现:用户提交工单 → 客服分派 → 工程师处理 → 用户评价。
重点关心超时未响应和跨部门转派的场景。」
```

**产出摘录**(事件流表节选——完整输出含全部 6 类工件):

```markdown
## 事件流表(节选)
| 序号 | 事件名 | 触发命令 | 参与者 | 异常分支 |
|------|--------|---------|--------|---------|
| 1 | TicketSubmitted | SubmitTicket | 用户 | 附件超限 → TicketRejected |
| 2 | TicketAssigned | AssignTicket | 客服主管 | 无人可派 → AssignmentEscalated |
| 3 | TicketResolved | ResolveTicket | 工程师 | 跨部门转派 → TicketTransferred |

## 热点标注
- 强一致性点:TicketAssigned(重复分派防护)
- 集成热点:TicketTransferred(跨部门 = 跨上下文边界线索)

## 歧义清单(节选)
| 歧义点 | 需确认方 |
|--------|---------|
| 「转派后 SLA 是否重置」 | 客服负责人 |
```

反例对照:只回一段「这个系统包含工单、客服、工程师……」的叙述散文、无表格无清单 → 不合格(六类工件缺一即视为未完成输出)。

## 失败出口与边界处置(可观察)

| 情形 | 可观察出口 |
|------|-----------|
| 无必需输入(用户没给业务场景、也没有 `ddd-scope` 输出) | 停下向用户要「业务场景描述(用户故事/PRD/工单任一)」;**不**凭空编造事件流 |
| 输入只有一句话(信息量不足) | 先输出「假设 + 歧义清单」并标「待确认」,继续产出初版六件套;假设不得伪装成事实 |
| 用户要求现场引导 EventStorming 工作坊 | 不在范围(description NOT for),说明后停;不冒充工作坊引导 |
| 用户直接要聚合边界或子域分类 | 指向 `ddd-aggregates` / `ddd-subdomains`,本件只产出**线索** |
| `ddd-contexts` 回溯触发时拿不到冲突清单 | 向用户索取冲突术语列表(>5 个不可调和冲突才算触发条件);列不出则不回溯 |

## 错法 → 改法

| 错法 | 改法 |
|------|------|
| 事件用现在时命名(如 SubmitOrder) | 一律过去时(OrderSubmitted)——事件是「已发生的事实」 |
| 只写主路径,不写异常分支 | 至少 1 主 + 2 异常/回滚路径(校验清单硬项) |
| 事件流水准直接当限界上下文边界 | 边界线索只是候选,交给 `ddd-subdomains` 分类后再定 |
| 歧义不标确认人,写完就丢 | 每条歧义标「谁必须确认」,否则下游无法收敛 |
| 模型自主对大改动直接跑发现 | 本件面向用户显式请求;发现结论影响领域模型,须人在环确认歧义清单 |
| 输出散文叙述代替六类工件 | 六类工件(表格/清单)齐全才算完成——结构要求见「输出」节 |

Files in this skill

  • SKILL.en.md4.4 KB
  • SKILL.md6.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.