From thinking-frameworks-skills
Tracks MLB closer roles, bullpen pecking order, and handcuff risks across 30 teams. Emits save_role_certainty signals (0-100) for fantasy baseball waiver decisions on relievers.
npx claudepluginhub lyndonkl/claude --plugin thinking-frameworks-skillsThis skill uses the workspace's default tool permissions.
- [Example](#example)
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Scenario: User asks "who should I stash — any good handcuff closers on waivers?" in mid-April. Three teams of interest have unsettled ninth innings.
Inputs gathered (web search — RotoBaller primary, Closer Monkey secondary, Athlon Closer Confidential):
| Team | Current 9th | Next in line | Third option | Situation |
|---|---|---|---|---|
| CLE | Emmanuel Clase | Cade Smith | Hunter Gaddis | Clase firmly locked — elite K/9 and walk rate |
| TEX | Chris Martin | Robert Garcia | Hoby Milner | Committee language from manager; Martin 39 years old |
| DET | Jason Foley | Tommy Kahnle | Beau Brieske | Foley has two blown saves in a week; velo down 1.2 mph |
Signal emission (per RP):
| Pitcher | save_role_certainty | Owned in league? | Rec action |
|---|---|---|---|
| Emmanuel Clase | 95 | Yes (by user) | HOLD |
| Cade Smith | 35 | No | ADD on spec, BID $2 |
| Chris Martin | 55 | Yes (opponent) | IGNORE |
| Robert Garcia | 45 | No | ADD, BID $6 — true committee, high handcuff value |
| Jason Foley | 40 | Yes (opponent) | IGNORE (hold only if we owned him) |
| Tommy Kahnle | 50 | No | ADD, BID $8 — velo trend + recent Foley blowups = highest speculation value |
Output signal file (signals/2026-04-17-closer.md):
---
type: closer
date: 2026-04-17
emitted_by: mlb-closer-tracker
confidence: 0.78
source_urls:
- https://www.rotoballer.com/mlb-saves-closers-depth-charts/226767
- https://closermonkey.com
- https://www.athlonsports.com/fantasy/closer-confidential
---
Punt-SV caveat surfaced: "If all three speculation adds fail, remember SV is our most punt-worthy cat. A plan exists in mlb-category-strategist output to concede SV and redirect innings to K/QS — do not chase saves past $10 FAAB on any single handcuff."
Handoff: mlb-waiver-analyst reads the signal and sizes FAAB bids on Kahnle, Garcia, and Smith. mlb-category-strategist reads the same signal to decide whether to push or punt SV this week.
Copy this checklist and track progress:
Closer Tracker Progress:
- [ ] Step 1: Pull RotoBaller closer depth chart (all 30 teams)
- [ ] Step 2: Cross-reference Closer Monkey and Athlon Closer Confidential
- [ ] Step 3: Score save_role_certainty for the top 3 RPs per team
- [ ] Step 4: Flag committee / DFA-risk situations
- [ ] Step 5: Identify speculation-worthy handcuffs (rostered vs available)
- [ ] Step 6: Emit signal file and hand to waiver-analyst and category-strategist
Step 1: Pull the RotoBaller closer depth chart
Web-search site:rotoballer.com closer depth chart 2026 or hit the URL directly. This is the primary source for all 30 teams. Record each team's top 3 relievers with the role tag RotoBaller assigns (Closer / Next Man Up / Committee / Setup).
See resources/methodology.md for the source hierarchy and how to handle stale pages.
Step 2: Cross-reference secondary sources
Closer Monkey and Athlon's "Closer Confidential" often lead RotoBaller by 24-48 hours on role changes, especially early season. If two sources disagree, that disagreement itself lowers save_role_certainty (volatility penalty).
See resources/methodology.md for tie-break rules.
Step 3: Score save_role_certainty
Use the scoring rubric in resources/methodology.md. The five inputs are: role label, recent blown saves, velocity trend, manager public comments, contract/age status. Output 0-100.
Step 4: Flag committee and DFA-risk situations
A committee is worth flagging even when we own the current "closer" — volatility means save_role_certainty is low regardless of who holds the ninth inning right now. DFA risk applies when an RP has lost the role AND is burning option years or is on a non-guaranteed deal.
Step 5: Identify speculation targets
A speculation target = handcuff (next-in-line) with save_role_certainty in the 30-60 range whose current closer has any of: recent blown saves (2+ in 10 days), velocity loss (>1 mph), negative manager quote, age/injury flag.
See resources/template.md for the output format.
Step 6: Emit signal file
Write signals/YYYY-MM-DD-closer.md with one save_role_certainty entry per top-3 RP per team (up to 90 entries). Call mlb-signal-emitter to validate. See resources/template.md for the full output structure.
save_role_certainty in valid 0-100 rangeValidate using resources/evaluators/rubric_mlb_closer_tracker.json. Minimum standard: average score 3.5 or above.
Pattern 1: Locked Elite Closer (Clase, Duran, Iglesias tier)
save_role_certainty: 85-100 for incumbent, 15-25 for handcuffPattern 2: True Committee (manager public quote: "we'll use matchups")
save_role_certainty: 40-60 for top 2-3 arms, top-2 within 15 pointsPattern 3: Veteran Closer On Thin Ice (age 35+, declining velo)
save_role_certainty: 55-75 for incumbent, 40-55 for heirPattern 4: DFA-Risk Ex-Closer
save_role_certainty: < 25Cover all 30 teams every run. Even locked situations need a score so downstream agents can reason about trade targets. A missing team is worse than a low-confidence score.
Web-search every time. Closer roles change overnight. A 24-hour-old RotoBaller snapshot is stale. Always pull fresh on the day you emit the signal.
Committees penalize even the current closer. If three sources call a situation a committee, the named closer does not get an 85 score — they get a 55 at most. Volatility = low certainty, regardless of who just got the last save.
Never recommend a FAAB bid above $10 on a single handcuff without category-strategist concurrence. SV is this league's most punt-worthy pitcher category. Over-spending on speculative saves drains FAAB that could land a two-start SP or a breakout hitter. The waiver-analyst enforces this ceiling.
Velocity is the leading indicator. A 1+ mph drop on a closer's fastball, sustained across 3+ outings, predicts role loss better than any single blown save. Weight velocity trend heavily in the scoring rubric.
Manager quotes are data, not noise. "He's our guy" is a 70-certainty statement. "We'll see how it plays out" is a 50. Silence after a blown save is a 40. Quote-mine the beat writer coverage (Athletic, MLB.com team pages) during volatile weeks.
Platoon handcuffs matter. If the incumbent closer is RHP and has poor splits vs LHB, the LHP setup man is a better speculation target than the RHP setup man — even if RotoBaller lists the RHP higher. Check the actual platoon usage pattern.
Handcuffs are dropped first on a healthy week. A speculation add that does not vulture a save within 10 days gets dropped for the next wave. Do not fall in love with stashes — rotate.
Key formula (save_role_certainty):
save_role_certainty = 20 x role_label_score (0-5 scale)
+ 20 x recent_performance (0-5 scale: blown saves, ERA last 10 days)
+ 20 x velocity_trend (0-5 scale: delta from baseline)
+ 20 x manager_signal (0-5 scale: public quotes)
+ 20 x contract_age_security (0-5 scale)
All components 0-5, weighted equally, rescaled to 0-100.
Role label to score mapping (RotoBaller):
| RotoBaller label | role_label_score (0-5) |
|---|---|
| Closer (locked) | 5 |
| Closer (soft hold) | 4 |
| Committee — primary | 3 |
| Committee — secondary | 2 |
| Setup / Next Man Up | 2 |
| Middle relief | 1 |
| DFA-risk / demoted | 0 |
Handcuff speculation tiers:
| Tier | save_role_certainty (current closer) | Handcuff action |
|---|---|---|
| 1. Panic closer | < 50 | ADD handcuff — BID $5-10 |
| 2. Wobbly closer | 50-70 | ADD handcuff — BID $2-5 |
| 3. Stable closer | 70-85 | ADD handcuff only if cheap ($0-1) |
| 4. Elite closer | > 85 | IGNORE handcuff unless injury |
Punt-SV trigger: If 4+ of your 5 RP slots would need to be speculation closers to compete in SV this week, punt SV instead. Hand off to mlb-category-strategist with a cat_punt_score boost request.
Key resources:
Inputs required:
Outputs produced:
save_role_certainty (0-100), up to ~90 entries