use-case-2.0
Use Case 2.0 methodology by Ivar Jacobson. Covers use case slices, lightweight documentation, user story derivation, and value-driven prioritization. Modern approach to use case modeling for agile teams.
What this skill does
# Use Case 2.0
A modern, lightweight approach to use case modeling that integrates with agile practices while preserving the benefits of structured requirements.
## When to Use This Skill
**Keywords:** use case, use case 2.0, Ivar Jacobson, use case slice, narrative, basic flow, alternate flow, exception, actor, goal, scenario, precondition, postcondition, trigger, user story from use case
**Use this skill when:**
- Modeling system behavior from user perspective
- Deriving user stories from use cases
- Planning releases using use case slices
- Documenting complex interactions with multiple paths
- Understanding actor goals and system responses
- Creating testable requirements from narratives
## What is Use Case 2.0?
Use Case 2.0 modernizes classic use cases for agile contexts while retaining their power for:
- Capturing functional requirements comprehensively
- Understanding system boundaries and actors
- Identifying all paths through a scenario (happy path + alternatives + exceptions)
- Creating traceable, testable specifications
### Key Principles
| Principle | Description |
|-----------|-------------|
| **Slice-based** | Use cases are implemented in slices, not all at once |
| **Lightweight** | Start simple, add detail only when needed |
| **Story-compatible** | User stories can be derived from use case slices |
| **Test-first** | Each slice is testable before implementation |
| **Value-driven** | Slices prioritized by business value |
## Use Case 2.0 Lifecycle
```text
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ FIND │ → │ SLICE │ → │ PREPARE │
│ Use Cases │ │ Use Cases │ │ Use Case │
│ │ │ │ │ Slices │
└──────────────┘ └──────────────┘ └──────────────┘
│
┌──────────────┐ ┌──────┴───────┐
│ INSPECT │ ← │ ANALYZE │
│ & ADAPT │ │ Slices │
└──────────────┘ └──────────────┘
```
### Phase Details
```yaml
use_case_lifecycle:
find:
purpose: "Identify use cases from goals and actors"
activities:
- "Identify actors (primary, supporting, offstage)"
- "Capture actor goals"
- "Name use cases (verb-noun)"
- "Create use case diagram"
output: "Use case model (diagram + brief descriptions)"
slice:
purpose: "Break use cases into implementable slices"
activities:
- "Identify basic flow (happy path)"
- "Identify alternative flows"
- "Identify exception flows"
- "Group flows into slices"
output: "Sliced use cases with prioritization"
prepare:
purpose: "Detail slices for implementation"
activities:
- "Write narrative for selected slice"
- "Define test cases"
- "Identify special requirements"
output: "Ready-for-development slice"
analyze:
purpose: "Verify slice is implementable"
activities:
- "Review with stakeholders"
- "Validate test cases"
- "Confirm acceptance criteria"
output: "Validated slice"
inspect_adapt:
purpose: "Learn and improve"
activities:
- "Review implemented slices"
- "Update use case model"
- "Refine remaining slices"
output: "Updated backlog"
```
## Use Case Elements
### Actor Types
```yaml
actor_types:
primary_actor:
definition: "Actor whose goal the use case satisfies"
examples:
- "Customer placing an order"
- "Administrator managing users"
notation: "Stick figure connected to use case"
supporting_actor:
definition: "Actor that provides a service to the system"
examples:
- "Payment Gateway processing payment"
- "Email Service sending notifications"
notation: "Stick figure connected to use case (labeled)"
offstage_actor:
definition: "Actor with interest but no direct interaction"
examples:
- "Auditor requiring transaction logs"
- "Regulator requiring compliance"
notation: "Listed in stakeholders section"
```
### Use Case Brief
Lightweight initial documentation:
```yaml
use_case_brief:
template:
id: "UC-{domain}-{number}"
name: "{Verb} {Noun}"
primary_actor: "{Actor name}"
goal: "{What the actor wants to achieve}"
brief_description: "{1-2 sentences}"
example:
id: "UC-ORD-001"
name: "Place Order"
primary_actor: "Customer"
goal: "Purchase products from the catalog"
brief_description: "Customer selects products, provides shipping and payment information, and submits order for processing."
```
### Use Case Narrative
Full documentation format:
```markdown
## Use Case: {Name}
**ID:** UC-{XXX}-{NNN}
**Version:** {N.N}
### Overview
| Element | Description |
|---------|-------------|
| **Primary Actor** | {Actor name} |
| **Goal** | {What the actor wants to achieve} |
| **Scope** | {System boundary} |
| **Level** | {User goal / Subfunction / Summary} |
| **Trigger** | {What starts the use case} |
### Stakeholders and Interests
- **{Stakeholder 1}**: {Interest/concern}
- **{Stakeholder 2}**: {Interest/concern}
### Preconditions
- {Condition that must be true before use case can start}
- {Another precondition}
### Success Guarantee (Postconditions)
- {Condition guaranteed to be true after successful completion}
- {Another postcondition}
### Basic Flow (Main Success Scenario)
1. {Actor} {action}
2. System {response}
3. {Actor} {action}
4. System {response}
5. ...
6. System {final response indicating success}
### Alternative Flows
#### {Alternative Name} (at step {N})
**Condition:** {When this alternative applies}
{N}a. {Alternative action}
{N}b. System {alternative response}
{N}c. Return to step {M} / Use case ends
#### {Another Alternative} (at step {N})
...
### Exception Flows
#### {Exception Name} (at step {N})
**Condition:** {When this exception occurs}
{N}a. System {error detection}
{N}b. System {error handling}
{N}c. Use case ends in failure / Return to step {M}
### Special Requirements
- {Non-functional requirement affecting this use case}
- {Performance, security, usability requirement}
### Technology and Data Variations
- {Step N}: {Variation in technology or data format}
### Related Information
- **Frequency:** {How often this use case occurs}
- **Related Use Cases:** {Links to included/extended use cases}
- **Business Rules:** {BR-xxx, BR-yyy}
```
## Use Case Slicing
### What is a Slice?
```yaml
use_case_slice:
definition: "A subset of a use case that delivers value and is independently testable"
characteristics:
- "Implements part of use case flows"
- "Can be developed in one iteration"
- "Has clear acceptance criteria"
- "Delivers incremental value"
slice_types:
basic_flow_slice:
description: "Happy path only (simplest implementation)"
example: "Place Order - basic checkout with existing customer"
flow_variation_slice:
description: "Basic flow + one alternative"
example: "Place Order - with new customer registration"
exception_slice:
description: "Basic flow + exception handling"
example: "Place Order - payment declined handling"
complete_slice:
description: "Full use case with all paths"
example: "Place Order - complete implementation"
```
### Slicing Strategies
```yaml
slicing_strategies:
by_actor:
description: "Different slices for different actors"
example: "Customer checkout vs. Admin override checkout"
by_data_variation:
description: "Different data types or volumes"
example: "Single item order vs. bulk order"
by_business_rule:
description: "Different rules applied"
example: "Standard pricing vs. promotional pricing"
by_interface:
description: "Different UI or integration points"
example: "Web checkout vs. API checkout"
by_quality:
description: "Different quality attributes"
example: "Basic validatRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.