Token导航 LogoToken导航TokenDH.com
开发只读github未标认证来源可访问许可证需确认审计通过

eventmodeling-validating-event-models-checklist事件建模验证事件模型清单

Agent Skill

eventmodeling-validating-event-models-checklist 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

470

周安装

19

GitHub Stars

公开资料未说明

下载量

147
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:eventmodeling-validating-event-models-checklist(事件建模验证事件模型清单)
来源仓库:https://github.com/trogonstack/agentskills
仓库路径:skills/eventmodeling-validating-event-models-checklist
安装命令:
npx skills add https://github.com/trogonstack/agentskills --skill eventmodeling-validating-event-models-checklist
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/trogonstack/agentskills --skill eventmodeling-validating-event-models-checklist

简介

eventmodeling-validating-event-models-checklist 提供 16 项架构检查点的标准化清单。

  • 覆盖七个建模阶段的完整性、一致性与安全性要求。
  • 自动识别 anti-patterns,给出修复建议与参考资料。
  • 适用于任意领域的 event-sourcing 项目质量管控。
  • 每次建模完成后必须逐项勾选,确保无遗漏高风险项。

SKILL.md

Event Model Validation Checklist Skill

Purpose: Validate any event-sourced CQRS event model against 16 architectural checks across 7 phases. Identifies anti-patterns and confirms compliance with event sourcing principles.

Applies To: Any domain - e-commerce, banking, SaaS, marketplace, healthcare, etc.

When to Use:

  • After completing Step 2 (Event Plot) of 7-step event modeling
  • After completing Step 7 (Scenarios) before declaring model complete
  • When reviewing an existing event model for production readiness
  • When suspicious of architectural issues in event design

What It Does:

  1. Systematically applies 16 validation checks across 7 phases
  2. Identifies violations of event sourcing principles (domain-agnostic)
  3. Flags anti-patterns (calculations as events, non-entity streams, etc.)
  4. Verifies read model/event distinction
  5. Confirms stream independence and business rule enforcement
  6. Returns pass/fail verdict with evidence

Validation Phases (Domain-Agnostic)

Phase 1: Event Stream & Command Handler State Validation (3 checks)

  • Check 1.1: Each event belongs to exactly one stream
  • Check 1.2: Each command handler owns its own [CommandHandler]State class
  • Check 1.3: No hard dependencies between command handlers (orchestrated via events only)

Anti-pattern to catch: Sharing state across handlers or treating state as persistent aggregate

Phase 2: Event Quality Validation (3 checks)

  • Check 2.1: Events represent domain facts, not calculations
  • Check 2.2: Event data is immutable after creation
  • Check 2.3: Event names use past tense (what actually happened)

Anti-pattern to catch: Storing computed/aggregated data as events

Phase 3: Read Model vs Event Distinction (2 checks)

  • Check 3.1: Each read model is NOT an event stream
  • Check 3.2: Read model has natural query pattern

Anti-pattern to catch: Confusing projections/calculations with domain facts

Phase 4: Business Rules Validation (2 checks)

  • Check 4.1: Constraints enforced in command handler decision logic (encapsulated in [CommandHandler]State)
  • Check 4.2: Event preconditions are explicit (what state must exist before command is valid)

Anti-pattern to catch: Business rules scattered across handlers or encoded in event stream structure

Phase 5: Data Traceability (1 check)

  • Check 5.1: Input → Event → Read Model traceability is complete

Anti-pattern to catch: Command inputs that disappear or read model fields without source

Phase 6: Event Flow Validation (1 check)

  • Check 6.1: No impossible event sequences (state machine is sound)

Anti-pattern to catch: Events that can occur in invalid state combinations

Phase 7: Stream Independence (1 check)

  • Check 7.1: Each stream can be versioned/restored independently

Anti-pattern to catch: Hard dependencies between streams

Final Questions (3 checks)

  • Question 1: Could an architect unfamiliar with this domain understand the model in 15 minutes?
  • Question 2: Could you change your core algorithm/calculation without changing event history?
  • Question 3: Could this be implemented in your target technology stack (e.g., TypeScript + PostgreSQL)?

Output Format

The skill returns a validation report with:

For Each Check

 Check 1.2: Stream Root is Business Entity, Not Calculation
Status: PASS
Evidence: [Specific examples from your model]

Anti-Patterns Identified (if any)

CRITICAL: [Anti-pattern description]
Problem: [Why it violates event sourcing]
Violates: [Which checks fail]
Fix: [Recommended action]

Final Verdict

Status:  PASS (or  PASS WITH WARNINGS or  FAIL)
Implementation Ready: YES (or NO - fix issues first)
Confidence: [percentage]

Common Anti-Patterns (Domain-Agnostic)

1. Calculation Events

 ANTI-PATTERN:
CalculationPerformed {
  metric: 4.5  ← Mutable/recalculated
  timestamp: T
}

 CORRECT:
- Event: SomeActionOccurred (immutable fact)
- ReadModel: MetricView (recalculated from events)

Why: Calculations change multiple times as source data changes. Events are immutable.

2. Shared vs Handler-Owned State

 ANTI-PATTERN:
One shared "OrderAggregate" class used by all handlers
- ConfirmOrderHandler shares OrderAggregate state
- ShipOrderHandler modifies same OrderAggregate
- Result: Tight coupling, hard to parallelize

 CORRECT:
Each handler owns its own [CommandHandler]State class
- ConfirmOrderState (only ConfirmOrderHandler uses)
- ShipOrderState (only ShipOrderHandler uses)
- CancelOrderState (only CancelOrderHandler uses)
- All reconstruct state from same events, but independently

Why: Each handler is a micro-slice. Separate state classes maintain isolation, enable parallel teams, prevent merge conflicts.

3. Circular Dependencies

 ANTI-PATTERN:
StreamA → EventA → affects
StreamB → EventB → affects
StreamA (circular!)

 CORRECT:
StreamA → EventA → Event Bus
StreamB → EventB → Event Bus
ReadModels ← consume (one-way only)
No feedback loops

Why: Circular dependencies make the system hard to reason about and test.

4. Persistent State vs Ephemeral State

 ANTI-PATTERN:
Treat [CommandHandler]State as persistent entity
- Save SubmitReviewState to database after command
- Load it again next time
- Result: Duplicates event sourcing, loses audit trail

 CORRECT:
Reconstruct [CommandHandler]State on-demand
- Load events from stream
- Replay via evolve() to rebuild state
- Process command, emit outcome events
- Discard state (it's ephemeral, not persisted)

Why: State is derived from events, never stored. Events are source of truth. This enables consistent replay, audit trails, and time-travel debugging.


Questions to Ask During Validation

For each event stream:

  1. "Do all events in this stream share the same identity (streamId)?"
  2. "Could these events occur in any order, or is sequence important?"
  3. "Is every event in this stream an immutable fact that actually happened?"

For each command handler:

  1. "Does this handler own its own [CommandHandler]State class?"
  2. "Is the state ephemeral (reconstructed per command, not persisted)?"
  3. "Can I trace the state reconstruction: events → evolve() → decision?"

For each read model:

  1. "Is this calculated from events via a projection?"
  2. "Does it answer a specific query need?"
  3. "Could its data change due to new events or state changes?"

For system architecture:

  1. "Does each command handler operate independently (communicate via events only)?"
  2. "Could I run two handlers' code in parallel without merge conflicts?"
  3. "Are the only shared artifacts the event definitions?"

Success Criteria

Model is validated when:

  • All 16 checks pass (or have documented workarounds)
  • No critical anti-patterns identified
  • All 3 final questions answer YES
  • Event sourcing principles clearly upheld
  • Ready to proceed to code generation

Model needs fixes when:

  • Any check fails with clear evidence
  • Anti-patterns identified with specific violations
  • Final questions have NO answers
  • Fixes are straightforward and targeted

Model should be redesigned when:

  • Multiple phases fail
  • Architectural assumptions are fundamentally flawed
  • Anti-patterns are systemic and pervasive
  • Would require rewriting core event structure

Example Validation Patterns

Pattern: Calculation vs Event

When you see something like "CalculationDone" or "ReviewRatingUpdated":

  • Ask: "Is this immutable and caused by a user/system action?"
  • If NO → It's a read model, not an event
  • Fix: Remove from events, create read model projection instead

Pattern: Shared vs Isolated State

When you see "ReviewAggregate" used by multiple handlers:

  • Ask: "Could SubmitReviewHandler and ApproveReviewHandler work on separate files?"
  • If NO → State classes aren't properly isolated
  • Fix: Create SubmitReviewState and ApproveReviewState, each handler owns one

Pattern: Persistent vs Ephemeral State

When state is saved to database after a command:

  • Ask: "Is this state only needed during command processing?"
  • If YES → It's ephemeral, reconstruct from events instead
  • Fix: Load events, replay via evolve(), process command, discard state

Pattern: Data That Doesn't Trace

When a read model field appears without source:

  • Ask: "Where did this come from?"
  • If no event source → Add event or remove field
  • If sourced from calculation → Verify it's in projection, not event

Integration with Event Modeling Process

Recommended timing:

Step 1: Brainstorm Events
Step 2: The Plot (Sequence)
  ↓
→ RUN eventmodeling-validating-event-models-checklist (catch structural issues early)
  ↓
Fix any violations
  ↓
Step 3-7: Complete remaining steps
  ↓
→ RUN eventmodeling-validating-event-models-checklist again (final validation)
  ↓
PASS → Code generation
FAIL → Fix identified issues

Running the checklist after Step 2 prevents wasting time on later steps if core events are flawed.


Checklist Questions by Domain

The skill applies the same 16 checks regardless of domain. Here's how to think about it in different contexts:

E-commerce domain:

  • Events: OrderCreated, OrderConfirmed, PaymentAuthorized, OrderShipped
  • NOT events: OrderTotal, InventoryLevel, ShippingCost (these are read models)

Banking domain:

  • Events: AccountOpened, DepositReceived, WithdrawalProcessed, FundsTransferred
  • NOT events: AccountBalance, InterestCalculated (these are read models)

SaaS domain:

  • Events: SubscriptionCreated, PaymentProcessed, PlanUpgraded, SubscriptionCancelled
  • NOT events: MonthlyRecurringRevenue, ChurnRate (these are read models)

Healthcare domain:

  • Events: PatientRegistered, AppointmentScheduled, ProcedureCompleted, BillGenerated
  • NOT events: PatientAge, AverageCost (these are read models)

The principle is the same across all domains: immutable facts as events, calculated results as read models.


Tips for Best Results

  1. Be specific: List actual event names, command handler names, and state classes from your model
  2. Reference your documentation: Link to or quote from your step 1-7 documents and micro-slice plans
  3. Provide context: Explain what your domain is and how handlers will be parallelized
  4. Ask follow-ups: If a check flags an issue, ask "How do I fix this specifically?" or "Can this handler be isolated?"
  5. Iterate: Run again after making fixes to confirm all checks pass and handlers are properly isolated

Quality Checklist

  • All 16 checks evaluated — no check skipped without documented justification
  • Every FAIL result includes the specific event, handler, or stream that violated the check
  • Anti-patterns identified by name with the exact model element that triggered the flag
  • Final verdict is one of: PASS / PASS WITH WARNINGS / FAIL — no ambiguous outcomes
  • All 3 final architectural questions answered YES before declaring model ready for implementation
  • Any FAIL result has a recommended fix, not just a problem statement

Related Skills

  • eventmodeling-orchestrating-event-modeling: Main skill coordinating the 7-step event modeling process
  • eventmodeling-brainstorming-events: Extract events from requirements (Step 1)
  • eventmodeling-plotting-events: Sequence events chronologically (Step 2)
  • eventmodeling-designing-event-models: Design your complete event model
  • eventmodeling-validating-event-models: Detailed validator with deep analysis

Validation Checklist Reference

The 16-point checklist is defined in the Validation Phases section above. Each check includes the anti-pattern to catch and questions to ask when evaluating your model.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.41%
按下载量换算52

Claude

32.35%
按下载量换算48

Cursor

19.37%
按下载量换算28

Gemini CLI

10.07%
按下载量换算15

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills