Tool Scoring Algorithm

Scoring Formula

Each tool receives a score based on multiple weighted factors:

final_score = capability_score * provider_weight * internal_bonus * learning_boost # Where: capability_score = sum(match_weight for each capability match) # Default: 1.0 per match provider_weight = 1.5 if Claude, 1.0 otherwise # D-M1-003 internal_bonus = 1.2 if internal tool, 1.0 otherwise # D-M1-004 learning_boost = 0.5 to 2.0 based on historical success # M5 influence

Scoring Factors

Factor Weight Decision Rationale
Capability Match 1.0 each - Base score from matching capability tags
Claude Provider 1.5x D-M1-003 Tool calling maturity, project requirement
Internal Tool 1.2x D-M1-004 Lower latency, no token costs, more control
Learning Boost 0.5-2.0x D-M5-004 Historical success rate, temporal weighting

Interactive Example

Task: "Generate Python code" with capability: code_generation

claude_code_generation

Capability Match
1.0
Claude Preference
x1.5
Internal Bonus
x1.0
Learning Boost
x1.35
Final Score
2.03

Calculation: 1.0 * 1.5 * 1.0 * 1.35 = 2.03

Tool Comparison

Same task, different tools competing:

Tool Cap Prov Int Learn Final
claude_code_generation 1.0 x1.5 x1.0 x1.35 2.03
openai_code_gen 1.0 x1.0 x1.0 x1.10 1.10
internal_codegen 1.0 x1.0 x1.2 x0.80 0.96

Winner: claude_code_generation with score 2.03