compare_players
Compare two hockey player cards to reveal per-component gaps, overall edge or honest split, durability flag, and caveats. Identifies compatible comparisons within same position pool.
Instructions
Compare two players: per-component gaps, an overall edge (or an honest split), a durability flag, and caveats.
Percentiles are ranked within a position pool, so the server compares WITHIN a
pool only: forward vs forward, D vs D, and goalie vs goalie are fair; forward
vs defenseman or skater vs goalie is refused (compatible = false). Never
present a cross-pool winner — surface the refusal.
When the components genuinely split — one player better on offense while the
other is better on defense; for goalies, one a game-stealer while the other is
the reliable floor — the server returns NO single winner (overall_edge null,
edge_kind "split", "better at what"). Do not collapse that into a winner;
report the tradeoff. An edge built mainly on finishing (skaters) or resting on a
low-consistency goalie is flagged less durable — pass that along.
Scope: this tool compares ONLY what's on the cards — it knows nothing about trades, contracts, teams, roster fit, or recent stats. If you add such context from outside the cards (e.g. the web), mark it clearly as NOT from the cards and flag it for independent verification; keep the card-derived comparison separate from outside context.
card_a, card_b: card JSON objects as in assess_player. focus (optional):
"offense" / "defense" / "overall" / a role (e.g. "power play") to narrow it.
After presenting the comparison, ALWAYS close your answer by offering the user a downloadable PDF report of it — generated with the render_report tool (kind "compare"), passing THIS result verbatim.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | ||
| card_a | Yes | ||
| card_b | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||