business-rules-analysis
SKILL.md
Business Rules Analysis
Comprehensive framework for eliciting, documenting, and validating business rules during requirements discovery.
When to Use This Skill
Keywords: business rules, policies, constraints, calculations, derivations, inferences, decision tables, decision logic, rule templates, validation rules, authorization rules, computation rules, condition-action, if-then rules
Use this skill when:
- Identifying business policies and constraints
- Documenting calculation and derivation rules
- Creating decision tables for complex logic
- Eliciting authorization and validation rules
- Translating policies into requirement statements
- Analyzing rule interactions and conflicts
- Validating rule completeness and consistency
Business Rule Categories
Structural Rules (Facts)
Define the nature of things and relationships:
structural_rules:
definition: "Rules that define terms, concepts, and their relationships"
types:
terms:
description: "Definitions of business concepts"
example: "A 'Premium Customer' is a customer who has spent more than $10,000 in the last 12 months"
facts:
description: "Assertions about the business domain"
example: "Each Order must have exactly one Customer"
relationships:
description: "How concepts relate to each other"
example: "A Customer may have zero or more Orders"
documentation_template:
term: "{Term} is defined as {definition}"
fact: "{Subject} {verb} {object}"
relationship: "{Entity A} {cardinality} {Entity B}"
Derivation Rules (Computations)
Calculate or derive values from other data:
derivation_rules:
definition: "Rules that compute values from other information"
types:
calculations:
description: "Mathematical computations"
example: "Order Total = Sum of (Line Item Quantity × Unit Price)"
aggregations:
description: "Summary calculations across sets"
example: "Monthly Revenue = Sum of all Order Totals for the month"
transformations:
description: "Data conversions"
example: "Full Name = First Name + ' ' + Last Name"
documentation_template:
calculation: "{Result} = {formula}"
with_conditions: "IF {condition} THEN {Result} = {formula}"
Constraint Rules (Restrictions)
Limit what can happen or exist:
constraint_rules:
definition: "Rules that restrict or mandate conditions"
types:
mandatory:
description: "Must always be true"
example: "Every Order must have at least one Line Item"
prohibited:
description: "Must never occur"
example: "An Order cannot be shipped to a country on the embargo list"
conditional:
description: "Restrictions that apply under certain conditions"
example: "IF Customer is under 18 THEN alcohol products cannot be ordered"
range:
description: "Numeric or value boundaries"
example: "Order Quantity must be between 1 and 999"
documentation_template:
must: "{Subject} must {condition}"
must_not: "{Subject} must not {condition}"
if_then: "IF {condition} THEN {subject} {must/must not} {action}"
Action Rules (Behaviors)
Define what should happen when conditions are met:
action_rules:
definition: "Rules that trigger actions based on conditions"
types:
authorization:
description: "Who can do what"
example: "Only Managers can approve orders over $5,000"
triggers:
description: "Events that initiate actions"
example: "When inventory falls below reorder point, create purchase order"
workflows:
description: "Sequences of actions"
example: "After order is placed, send confirmation email, then notify warehouse"
documentation_template:
authorization: "{Role} may/must/must not {action} {object} [when {condition}]"
trigger: "WHEN {event} THEN {action}"
workflow: "AFTER {event}, {action1}, THEN {action2}"
Inference Rules (Deductions)
Derive new facts from existing information:
inference_rules:
definition: "Rules that infer new information from existing facts"
types:
classification:
description: "Categorize based on criteria"
example: "IF Customer lifetime value > $50,000 THEN Customer is 'VIP'"
status:
description: "Determine state based on conditions"
example: "IF all line items shipped THEN Order status is 'Complete'"
eligibility:
description: "Determine if conditions are met"
example: "Customer is eligible for discount IF loyalty points > 1000"
documentation_template:
inference: "IF {conditions} THEN {conclusion}"
classification: "{Entity} is classified as {category} WHEN {criteria}"
Decision Tables
For complex rules with multiple conditions:
decision_table:
structure:
conditions: "Rows listing input conditions"
actions: "Rows listing possible actions"
rules: "Columns combining conditions and actions"
example:
name: "Order Discount Rules"
conditions:
C1: "Customer Type"
C2: "Order Amount"
C3: "Payment Method"
actions:
A1: "Apply Discount %"
A2: "Free Shipping"
rules:
R1:
C1: "VIP"
C2: "> $500"
C3: "Any"
A1: "20%"
A2: "Yes"
R2:
C1: "Regular"
C2: "> $100"
C3: "Credit Card"
A1: "10%"
A2: "No"
R3:
C1: "Any"
C2: "Any"
C3: "Any"
A1: "0%"
A2: "No"
Decision Table Template
┌─────────────────────────────────────────────────────────────┐
│ Decision Table: {Name} │
├─────────────────┬───────┬───────┬───────┬───────┬───────────┤
│ CONDITIONS │ R1 │ R2 │ R3 │ R4 │ Default │
├─────────────────┼───────┼───────┼───────┼───────┼───────────┤
│ {Condition 1} │ Y │ Y │ N │ N │ - │
│ {Condition 2} │ Y │ N │ Y │ N │ - │
├─────────────────┼───────┼───────┼───────┼───────┼───────────┤
│ ACTIONS │ │ │ │ │ │
├─────────────────┼───────┼───────┼───────┼───────┼───────────┤
│ {Action 1} │ X │ │ X │ │ │
│ {Action 2} │ │ X │ X │ │ X │
└─────────────────┴───────┴───────┴───────┴───────┴───────────┘
Rule Documentation Templates
Standard Rule Template
rule_template:
id: "BR-{domain}-{number}"
name: "{descriptive name}"
category: "constraint|derivation|inference|action|structural"
statement: "{clear, unambiguous rule statement}"
source:
origin: "{stakeholder, document, regulation}"
date: "{when identified}"
authority: "{who can change this rule}"
conditions:
- "{condition 1}"
- "{condition 2}"
actions:
- "{action if conditions met}"
exceptions:
- "{exception case}"
examples:
positive:
- "{example where rule applies}"
negative:
- "{example where rule does not apply}"
related_rules:
- "{BR-xxx}"
validation:
testable: true
test_approach: "{how to verify}"
metadata:
priority: "high|medium|low"
volatility: "stable|volatile"
enforcement: "automatic|manual"
SBVR-Style Template
Semantics of Business Vocabulary and Business Rules (OMG standard):
sbvr_template:
vocabulary:
term: "{term}"
definition: "{meaning in business context}"
structural_rule:
format: "It is obligatory/permitted/forbidden that {statement}"
example: "It is obligatory that each order has at least one line item"
operative_rule:
format: "If {condition} then {consequence}"
example: "If order total exceeds $1000 then manager approval is required"
Elicitation Techniques
Rule Discovery Questions
discovery_questions:
constraints:
- "What must always be true?"
- "What must never happen?"
- "What limits or boundaries exist?"
- "What conditions must be met before X?"
calculations:
- "How is X calculated?"
- "What formula determines Y?"
- "What data is needed to compute Z?"
authorizations:
- "Who can approve this?"
- "What permissions are needed?"
- "Who has the authority to change this?"
triggers:
- "What causes this to happen?"
- "What happens when X occurs?"
- "What events initiate this process?"
exceptions:
- "Are there any special cases?"
- "What happens if conditions aren't met?"
- "What overrides this rule?"
Document Analysis
document_sources:
primary:
- "Policy manuals"
- "Regulatory documents"
- "Contracts and agreements"
- "Procedure documents"
secondary:
- "Exception logs"
- "Help desk tickets"
- "Training materials"
- "System documentation"
indicators:
must_words: ["must", "shall", "required", "mandatory"]
prohibition_words: ["must not", "cannot", "prohibited", "forbidden"]
condition_words: ["if", "when", "unless", "except", "provided that"]
calculation_words: ["equals", "calculated", "derived", "sum of"]
Rule Validation
Completeness Checks
completeness_validation:
questions:
- "Are all conditions specified?"
- "Is the default case defined?"
- "Are exceptions documented?"
- "Is the rule source identified?"
- "Can the rule be tested?"
checklist:
- "[ ] All terms defined in glossary"
- "[ ] All conditions explicit"
- "[ ] Actions clearly specified"
- "[ ] Exceptions documented"
- "[ ] Examples provided"
- "[ ] Source and authority identified"
Consistency Checks
consistency_validation:
rule_conflicts:
- "Do any rules contradict each other?"
- "Are there overlapping conditions with different outcomes?"
terminology:
- "Are terms used consistently across rules?"
- "Do definitions match glossary?"
coverage:
- "Are there gaps in the decision logic?"
- "Is the rule set complete for all scenarios?"
Rule Traceability
traceability:
upstream:
- "Source document/stakeholder"
- "Business objective supported"
- "Regulation/policy reference"
downstream:
- "Requirements implementing this rule"
- "Test cases validating this rule"
- "System components enforcing this rule"
matrix:
format: "Rule ID → Requirement ID → Test ID → Component ID"
Output Format
Business Rules Catalog
rules_catalog:
domain: "{domain}"
version: "1.0"
last_updated: "{ISO-8601}"
glossary:
- term: "Premium Customer"
definition: "Customer with lifetime value > $50,000"
rules:
- id: "BR-ORD-001"
name: "Minimum Order Quantity"
category: "constraint"
statement: "Order quantity must be at least 1"
enforcement: "automatic"
priority: "high"
- id: "BR-ORD-002"
name: "VIP Discount Calculation"
category: "derivation"
statement: "VIP customers receive 20% discount on orders over $100"
formula: "Discount = OrderTotal × 0.20 IF CustomerType = 'VIP' AND OrderTotal > 100"
decision_tables:
- name: "Shipping Method Selection"
conditions: [...]
actions: [...]
rules: [...]
validation_summary:
total_rules: 25
by_category:
constraint: 12
derivation: 5
inference: 4
action: 4
conflicts_found: 0
gaps_identified: 2
Integration Points
With Other Elicitation Commands
# Discover rules during interviews
/requirements-elicitation:interview --focus "business-rules"
# Extract rules from documents
/requirements-elicitation:extract --source "policies.pdf" --type "rules"
# Validate rules with stakeholders
/requirements-elicitation:simulate --domain "orders" --focus "rule-validation"
Rule-to-Requirement Transformation
transformation:
constraint_to_requirement:
rule: "Order quantity must be between 1 and 999"
requirement: "System shall validate that order quantity is within range 1-999"
derivation_to_requirement:
rule: "Order Total = Sum of (Quantity × Unit Price)"
requirement: "System shall calculate order total as sum of line item amounts"
authorization_to_requirement:
rule: "Only Managers can approve orders over $5,000"
requirement: "System shall require Manager role for approval of orders exceeding $5,000"
References
For detailed techniques:
Version History
- v1.0.0 (2025-12-26): Initial release - Business Rules Analysis skill
Last Updated: 2025-12-26
Weekly Installs
4
Repository
melodic-software/claude-code-pluginsInstalled on
antigravity3
windsurf2
trae2
opencode2
codex2
claude-code2