# Enhanced Skill Matrix with Templates and Interaction Types
Production-ready 4×3 matrix with interaction type mapping for LLM classification and UI implementation
Version 2.0 - Production ready skill matrix with comprehensive UI interaction mapping for the quiz platform
## Core Architecture
### 4×3 Matrix Structure
**PERCEPTION (A):** Pattern recognition, signal interpretation, quality assessment
**STRATEGY (S):** Approach selection, strategy comparison, optimal choice
**RISK (R):** Position sizing, risk assessment, trade viability
**EXECUTION (E):** Order mechanics, execution planning, policy optimization
**Apply:** Single rule on single input
**Analyze:** Compare/synthesize ≥2 inputs
**Evaluate:** Choose best option with justified trade-offs
## Interaction Type Matrix
Each cell maps to primary and secondary interaction types for optimal user experience
### PERCEPTION Domain
| Cell | Primary Interaction | Secondary | Implementation Notes |
|------|-------------------|-----------|---------------------|
| **PERCEPTION–Apply** | Chart Drawing Selection | Multi-Select | Visual identification of features/patterns |
| **PERCEPTION–Analyze** | Multi-Select | Chart Selection | Synthesis across views with multi-view guidance |
| **PERCEPTION–Evaluate** | Single Choice | Multi-Select | Evaluate quality vs noise with justification |
### STRATEGY Domain
| Cell | Primary Interaction | Secondary | Implementation Notes |
|------|-------------------|-----------|---------------------|
| **STRATEGY–Apply** | Single Choice | Sequencing | Match setup to playbook |
| **STRATEGY–Analyze** | Sequencing | Single Choice | Compare playbooks/contexts with ordering |
| **STRATEGY–Evaluate** | Single Choice | Multi-Select | Choose best play with trade-offs |
### RISK Domain
| Cell | Primary Interaction | Secondary | Implementation Notes |
|------|-------------------|-----------|---------------------|
| **RISK–Apply** | Single Choice | Multi-Select | Pre-computed sized options (no numeric input) |
| **RISK–Analyze** | Multi-Select | Single Choice | Assess multiple risk factors and interactions |
| **RISK–Evaluate** | Single Choice | Multi-Select | Decision thresholding with rationale |
### EXECUTION Domain
| Cell | Primary Interaction | Secondary | Implementation Notes |
|------|-------------------|-----------|---------------------|
| **EXECUTION–Apply** | Chart Drawing Completion | Single Choice | Point-click completion of order parameters |
| **EXECUTION–Analyze** | Single Choice | Multi-Select | Compare execution options with chart context |
| **EXECUTION–Evaluate** | Single Choice | Sequencing | Optimize for slippage vs fill probability |
## Available Interaction Types
**Use:** Decisions, classifications, selections
**Format:** 3-5 options with one correct answer
**Cells:** S1, S3, R3, E2, E3
**Use:** Multiple factor identification, comprehensive analysis
**Format:** 5-8 options with 2+ correct answers
**Cells:** A2, R2
**Use:** Process flows, priority ordering, procedures
**Format:** 4-7 items to order correctly
**Cells:** S2
**Use:** Pattern identification, support/resistance marking
**Format:** Click/select specific chart areas
**Cells:** A1
**Use:** Order placement, stop/target positioning
**Format:** Complete partially drawn chart elements
**Cells:** E1
## Parameter Pools & Context System
### Asset Pools (Rotating)
Diversified Asset Selection
```javascript
ASSET_POOLS = {
"equities": ["AAPL", "NVDA", "MSFT", "AMZN", "GOOGL",
"META", "TSLA", "JPM", "BAC", "XOM"],
"indices": ["SPY", "QQQ", "IWM", "DIA", "VTI",
"EEM", "XLF", "XLE"],
"forex": ["EURUSD", "GBPUSD", "USDJPY", "AUDUSD"],
"crypto": ["BTCUSD", "ETHUSD", "SOLUSD", "BNBUSD"],
"commodities": ["GC", "CL", "NG", "SI", "ZC", "ZS"]
}
```
### Market Context Parameters
trending_up, trending_down, ranging, volatile_expanding, volatile_contracting
pre_earnings, post_earnings, pre_fomc, post_fomc, pre_cpi, normal
normal_correlation, decorrelated, high_correlation, breakdown
low_sub15, normal_15to20, elevated_20to30, high_above30
## Template Examples
### PERCEPTION–Apply: Chart Drawing Selection
A1 Template Structure
```javascript
function generate_A1_chart_selection(complexity="basic") {
const patterns = {
"basic": {
"pattern": "support_touch",
"instruction": "Click all points where price touches support",
"chart_elements": ["support_line", "price_candles"],
"correct_zones": [(x1, y1), (x2, y2)]
},
"advanced": {
"pattern": "divergence_signals",
"instruction": "Mark areas showing price/indicator divergence",
"chart_elements": ["price_chart", "RSI_panel", "trend_lines"],
"correct_zones": [(x1, y1, x2, y2), (x3, y3, x4, y4)]
}
};
return {
"interaction_type": "chart_drawing_selection",
"prompt": `On the chart below, ${params.instruction}`,
"chart_config": {
"interactive": true,
"selection_mode": "multiple_points"
},
"correct_selections": params.correct_zones,
"tolerance_pixels": 10
};
}
```
### STRATEGY–Analyze: Sequencing
S2 Template Structure
```javascript
function generate_S2_sequencing() {
const scenario = {
"context": "Trading AAPL before earnings with high IV",
"considerations": [
"Assess implied vs historical volatility spread",
"Check expected move from options pricing",
"Review past earnings reactions",
"Determine position sizing based on risk",
"Select strategy (straddle, condor, directional)",
"Set exit plan for post-announcement"
],
"correct_order": [1, 2, 3, 4, 5, 6]
};
return {
"interaction_type": "sequencing",
"prompt": `Context: ${scenario.context}. Order these steps:`,
"items": shuffled_items,
"correct_sequence": ordered_items,
"scoring_method": "kendall_tau"
};
}
```
### RISK–Apply: Computed Position Sizing
R1 Template with Pre-computed Options
```javascript
function generate_R1_computed_choice() {
// Calculate correct position size
const risk_amount = account * (risk_pct / 100);
const stop_distance = Math.abs(entry - stop);
const correct_shares = Math.floor(risk_amount / stop_distance);
// Generate plausible distractors
const distractors = [
Math.floor(correct_shares * 0.5), // Too conservative
Math.floor(correct_shares * 2), // Too aggressive
Math.floor(correct_shares * 1.3) // Slightly over
];
return {
"interaction_type": "single_choice",
"prompt": `Account: $${account} | Risk: ${risk_pct}%
Entry: $${entry} | Stop: $${stop}
Select correct position size:`,
"options": [`${shares} shares` for shares in options],
"correct_answer": `${correct_shares} shares`,
"show_calculation": true
};
}
```
## Gap Mitigation Strategies
### Numeric Input Limitation
Since numeric input isn't available, we implement these solutions for RISK domain:
Present calculated position sizes as multiple choice answers
Offer ranges like "100-150 shares" or "151-200 shares"
Express as account percentages: "2% position", "5% position"
Future enhancement for continuous value selection
### Multi-Chart Analysis
For PERCEPTION-Analyze requiring multiple chart comparisons:
Show 2-4 charts simultaneously
Quick switching between chart views
Superimpose indicators on single chart
Static reference with interactive main
## Validation System
### Interaction Validator
Validation Requirements
```javascript
VALID_INTERACTIONS = {
"single_choice": {
"required_fields": ["prompt", "options", "correct_answer"],
"options_range": [3, 5],
"supports_justification": true
},
"multi_select": {
"required_fields": ["prompt", "options", "correct_answers"],
"options_range": [5, 8],
"min_correct": 2,
"supports_partial_credit": true
},
"chart_drawing_selection": {
"required_fields": ["prompt", "chart_config", "correct_selections"],
"requires_visual": true,
"supports_tolerance": true
}
}
```
### Cell-Interaction Matching
The validator ensures interaction types match expected patterns:
- A_1: chart_drawing_selection, multi_select
- A_2: multi_select, chart_drawing_selection
- A_3: single_choice, multi_select
- S_1: single_choice, sequencing
- S_2: sequencing, single_choice
- And so on...
## Complexity Measurement
### Objective Complexity Metrics
- 2 numerical values
- 1 calculation step
- 0 conditional branches
- Whole numbers only
- 4 numerical values
- 2 calculation steps
- 1 conditional branch
- 2 decimal places
- 6+ numerical values
- 3+ calculation steps
- 2+ conditional branches
- 4 decimal places
### Complexity Scoring
Objective Complexity Formula
```javascript
function calculate_objective_complexity(question_data) {
const metrics = {
numerical_values: count_numbers(question_data.prompt),
calculation_steps: count_operations(question_data.calculation),
conditional_branches: count_conditionals(question_data.logic),
interaction_complexity: score_interaction(question_data.interaction_type)
};
// Score each metric (total 100 points)
let score = 0;
score += Math.min(16.67, metrics.numerical_values * 3.33);
score += Math.min(16.67, metrics.calculation_steps * 5.56);
score += Math.min(16.67, metrics.conditional_branches * 8.33);
score += Math.min(16.67, metrics.interaction_complexity * 5.56);
const level = score <= 33 ? "basic" :
score <= 66 ? "intermediate" : "advanced";
return {score, level, metrics};
}
```
## Coverage Tracking
### Usage Distribution
The CoverageTracker maintains spacing between similar combinations:
- Minimum 10 questions between same asset+timeframe+context+interaction
- Balances primary vs secondary interaction types per cell
- Recommends underused interaction types for variety
### Implementation Example
Question Generation with Coverage
```javascript
function generate_question_with_interaction(cell_id, complexity="intermediate") {
// Get recommended interaction type for balance
const interaction_type = coverage_tracker.recommend_next_interaction(cell_id);
// Generate using appropriate template
const generator = generator_map[`${cell_id}_${interaction_type}`];
const question_data = generator(complexity);
// Validate structure and cell-interaction match
const [is_valid, message] = validator.validate_question(question_data);
// Calculate objective complexity
const {score, level, metrics} = calculate_objective_complexity(question_data);
// Mark coverage for spacing
coverage_tracker.mark_used(cell_id, asset, timeframe, context, interaction_type);
return {
...question_data,
complexity_score: score,
complexity_level: level,
complexity_metrics: metrics
};
}
```
This system ensures balanced question generation across all 12 cells with varied interaction types, objective complexity measurement, and proper coverage tracking for production use.