Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/lexler/skill-factory --skill event-modeling명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | event-modeling |
| description | Designs systems using Event Modeling. |
STARTER_CHARACTER = 🗺️
A set of vertical slices that fully describe a system's behavior. Each slice is independently implementable and testable. The model uses business language throughout — no infrastructure or technical terms.
┌─────────────────────────────────────┐
│ Event Model │
│ │
│ ┌───────────┐ ┌───────────┐ │
│ │ Slice 1 │ │ Slice 2 │ ... │
│ │ STATE_ │ │ STATE_ │ │
│ │ CHANGE │ │ VIEW │ │
│ └───────────┘ └───────────┘ │
│ │ ▲ │
│ │ (events) │ │
│ └──────────────┘ │
└─────────────────────────────────────┘
Three types. Every behavior in the system fits one:
STATE_CHANGE — user does something
STATE_VIEW — system shows something
AUTOMATION — system reacts to something
See references/slice-types.md for element rules, dependency patterns, and naming conventions.
Work with the user through these phases. Move at the user's pace — they might want to go deep on one slice before seeing the full picture.
Identify aggregates (core business entities), actors, and high-level use cases. Ask about the business processes, not technical implementation.
Draft all slices without field details. Show the flow between them — which events feed which read models, which screens lead to which commands. This is the "map" of the system.
Format as a markdown document with one section per slice. Include slice type, aggregate, elements, and how slices connect.
Walk through one slice at a time. For each:
Turn specifications into approval fixture files using the bdd-with-approvals skill. That skill teaches how to:
Read that skill when it's time to design fixtures. The event model specs (Given events / When command / Then events) map naturally to the approved fixture pattern.
When working with an existing codebase instead of greenfield:
Produce markdown, not JSON. Design for human readability — someone should look at the model and understand the system.
Write model artifacts to files. Ask the user where they want them (e.g., docs/event-model.md). Update the files as the model evolves through conversation.
One document showing all slices and their relationships:
# [System Name] Event Model
## Aggregates
- Owner — pet owners who use the clinic
- Pet — animals registered to owners
## Slices
### Register Owner [STATE_CHANGE]
Aggregate: Owner
Screen: Owner Registration Form
Command: Register Owner → Event: Owner Registered
Error: → Owner Registration Failed
### View Owner Profile [STATE_VIEW]
Aggregate: Owner
Events: Owner Registered, Pet Registered → Read Model: Owner Profile
Screen: Owner Profile
### Notify Vet of New Patient [AUTOMATION]
Trigger: Pet Registered → Processor: New Patient Notifier
Command: Send Notification → Event: Vet Notified
Per-slice detail includes fields and specifications:
## Register Owner [STATE_CHANGE]
Aggregate: Owner
### Command: Register Owner
firstName: String — "George"
lastName: String — "Franklin"
address: String — "110 W. Liberty St."
city: String — "Madison"
telephone: String — "6085551023"
### Event: Owner Registered
ownerId: UUID — <generated>
firstName: String — "George"
lastName: String — "Franklin"
address: String — "110 W. Liberty St."
city: String — "Madison"
telephone: String — "6085551023"
### Event: Owner Registration Failed
errors: Map — {"lastName": "required"}
### Specifications
#### Successfully register with valid data
Given: (no prior state)
When: Register Owner
firstName: George, lastName: Franklin
address: 110 W. Liberty St., city: Madison
telephone: 6085551023
Then: Owner Registered
ownerId: <generated>, firstName: George, lastName: Franklin
#### Fail when required fields missing
Given: (no prior state)
When: Register Owner
firstName: George, city: Madison
Then: Owner Registration Failed
errors: {address: required, telephone: required}
#### Business rules
- All fields mandatory: firstName, lastName, address, city, telephone
- Telephone must be numeric, max 10 digits
These are defaults. Adapt the format to the domain — what matters is that a person can scan it and quickly validate correctness.
bdd-with-approvals skillapproval-tests skillFind where a codebase actually costs time by mining its git history (Tornhill hotspot analysis). Produces ranked refactoring targets with evidence, change-coupling seams, and a do-not-refactor list; re-run after refactoring to verify it paid off.
Reference for writing and editing skills well — the vocabulary and principles that make a skill predictable.
Demos working software: first proves every claimed behavior by exercising the real artifact, then replays the proof as a slow, voice-narrated walkthrough. Use when the user asks for a demo or to be shown that something works.
SOC 직업 분류 기준