Identifies business workflows with actors, steps, preconditions, and outcomes. Translates method chains into natural language business processes like "When customer places order, system validates inventory..."
From accnpx claudepluginhub dykyi-roman/awesome-claude-code --plugin accThis skill uses the workspace's default tool permissions.
Identifies and documents business processes implemented in code. Translates technical method chains, event flows, and service orchestrations into natural language descriptions with actors, steps, preconditions, and outcomes.
# Find use cases and command handlers (primary business operations)
Grep: "class.*UseCase|class.*Handler" --glob "**/Application/**/*.php"
Grep: "function (execute|handle|__invoke)" --glob "**/Application/**/*.php"
# Read the handler to trace the full process
# Each handler method = one business process
# Application services that orchestrate domain operations
Grep: "class.*Service" --glob "**/Application/**/*.php"
Grep: "function (create|update|delete|process|execute|handle)" --glob "**/Application/**/*.php"
# Domain services with business logic
Grep: "class.*Service" --glob "**/Domain/**/*.php"
# Events that trigger subsequent processes
Grep: "class.*Event" --glob "**/Domain/**/*.php"
Grep: "dispatch|publish|raise|record" --glob "**/*.php"
# Event handlers (reaction to events)
Grep: "#\\[AsMessageHandler\\]|implements.*Handler" --glob "**/*.php"
Grep: "function.*handle.*Event" --glob "**/*.php"
For each Use Case / Command Handler:
Handler::handle(Command)
→ Repository::find(id) // Load data
→ Entity::performAction(args) // Domain logic
→ Repository::save(entity) // Persist changes
→ EventBus::dispatch(event) // Side effects
Translate to:
"When [actor] performs [action], the system [step 1], then [step 2], and finally [step 3]."
| Technical Term | Business Term |
|---|---|
CreateOrderHandler | "Place an order" |
Repository::find() | "Look up the [entity]" |
Entity::validate() | "Verify that [conditions]" |
Repository::save() | "Record the [entity]" |
EventBus::dispatch() | "Notify relevant parties" |
throw InvalidArgumentException | "Reject if [condition]" |
Transaction::begin/commit | "Ensure all-or-nothing" |
For each identified process:
### Process: [Business Name]
**Trigger:** [What starts this process]
**Actor:** [Who initiates — Customer, Admin, System, Scheduler]
**Preconditions:**
- [What must be true before starting]
- [Required state/permissions]
**Steps:**
1. **[Actor]** [initiates action] (e.g., "submits order form")
2. **System** [validates/checks] (e.g., "validates order data")
3. **System** [performs domain logic] (e.g., "calculates total with discounts")
4. **System** [persists changes] (e.g., "saves the new order")
5. **System** [triggers side effects] (e.g., "sends confirmation email")
**Outcomes:**
- **Success:** [What happens on success]
- **Failure:** [What happens on failure — specific error scenarios]
**Side Effects:**
- [Events dispatched]
- [Notifications sent]
- [External systems called]
**Business Rules Applied:**
- [Rule references from extract-business-rules]
## Business Processes
### Overview
| # | Process | Actor | Trigger | Domain |
|---|---------|-------|---------|--------|
| 1 | Place Order | Customer | Submit order form | Order |
| 2 | Process Payment | System | Order confirmed | Payment |
| 3 | Ship Order | Warehouse | Payment received | Shipping |
| 4 | Cancel Order | Customer/Admin | User request | Order |
### Process 1: Place Order
**Trigger:** Customer submits order through API or web form
**Actor:** Customer (authenticated)
**Preconditions:**
- Customer is authenticated
- Shopping cart is not empty
- All items are in stock
**Steps:**
1. **Customer** submits order with items and delivery address
2. **System** validates order data (items exist, quantities available)
3. **System** checks customer's eligibility (account active, no blocks)
4. **System** calculates total price including taxes and shipping
5. **System** applies available discounts (loyalty, promotional)
6. **System** reserves inventory for ordered items
7. **System** creates the order record with "pending" status
8. **System** initiates payment process
**Outcomes:**
- **Success:** Order created with status "pending", confirmation sent
- **Failure (validation):** Error returned with specific field errors
- **Failure (stock):** "Items out of stock" with affected items listed
- **Failure (payment):** Order created but marked "payment_failed"
**Side Effects:**
- OrderCreated event → triggers confirmation email
- OrderCreated event → triggers inventory reservation
- OrderCreated event → triggers analytics tracking
**Business Rules:**
- INV-1: Order amount must be positive
- INV-2: Order must have at least one item
- POL-1: Free shipping for orders over $100
### Process Interaction Map
[Place Order] ──triggers──→ [Process Payment] │ success ←──┘──→ failure │ │ v v [Ship Order] [Cancel Order] │ v [Deliver Order]
| Indicator | Simple | Medium | Complex |
|---|---|---|---|
| Steps | 1-3 | 4-7 | 8+ |
| Actors | 1 | 2 | 3+ |
| Branches | 0-1 | 2-3 | 4+ |
| Side effects | 0-1 | 2-3 | 4+ |
| Domain events | 0 | 1-2 | 3+ |
This skill is used by:
business-logic-analyst — documents all business processesextract-business-rules — references rules in processestrace-request-lifecycle — technical trace for each processProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.