Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Never get auto-renewed into another year again — the contract inventory with the dates that matter (notice deadlines, not renewal dates), the calendar system with decision-time buffers, and the renewal-decision ritual that renegotiates instead of rubber-stamping. Use when asked track our contracts and renewals, we got auto-renewed again, when do we have to decide on this vendor, or set up renewal management. Produces the inventory with notice-deadline math, the alert system, the renewal-decision
.claude/skills/mohitagw15856-contract-renewal-tracker/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 65% | 0% |
The auto-renewal ambush is a calendar failure wearing a legal costume: the contract renews on March 1, but the decision died on January 29 — the 30-day notice deadline nobody tracked (vendor-breakup-email learned this the hard way; this skill prevents needing that lesson). The tracker inventories every contract with the date that matters (notice deadline = renewal date − notice period − decision buffer), alerts at decision-time (not deadline-time — an alert with no time to decide is a countdown to the default), and attaches the renewal ritual: every renewal is a negotiation window and a vendor-comparison-matrix-lite moment, because the rubber-stamp renewal is where pricing quietly ratchets.
Ask for these if not provided:
| Contract | Cost/yr | Renews | Notice | Act by | Owner | |---|---|---|---|---|---|
Calendar: act-by minus buffer, per contract · the alert's decision-carrying format · the shared-calendar rule]
Usage audit → market check → the renegotiation ask → renew / renegotiate / exit (per vendor-breakup-email)]
No signature without an inventory row · quarterly sweep · owner-departure reassignment]
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 16,224 | 14,387 | -11% | 1 | 1 | 0% | 2,911 | 3,998 | +37% | 0 | 0 | — |
case-02 | fail→pass | 16,836 | 14,077 | -16% | 1 | 1 | 0% | 2,912 | 4,035 | +39% | 0 | 0 | — |
case-03 | pass→pass | 19,127 | 19,228 | +1% | 1 | 1 | 0% | 3,478 | 4,572 | +31% | 0 | 0 | — |
case-09 | fail→pass | 15,067 | 15,094 | +0% | 1 | 1 | 0% | 2,276 | 3,734 | +64% | 0 | 0 | — |
case-04 | pass→pass | 7,330 | 71,087 | +870% | 1 | 1 | 0% | 1,201 | 2,723 | +127% | 0 | 0 | — |
case-05 | fail→fail | 11,214 | 14,925 | +33% | 1 | 1 | 0% | 1,684 | 3,353 | +99% | 0 | 0 | — |
case-06 | fail→fail | 6,193 | 7,476 | +21% | 1 | 1 | 0% | 867 | 2,350 | +171% | 0 | 0 | — |
case-07 | pass→pass | 12,197 | 9,209 | -24% | 1 | 1 | 0% | 2,004 | 2,701 | +35% | 0 | 0 | — |
case-08 | fail→pass | 20,486 | 12,343 | -40% | 1 | 1 | 0% | 2,110 | 3,310 | +57% | 0 | 0 | — |
case-10 | pass→pass | 15,604 | 13,295 | -15% | 1 | 1 | 0% | 2,301 | 3,283 | +43% | 0 | 0 | — |
case-11 | fail→pass | 11,442 | 10,423 | -9% | 1 | 1 | 0% | 1,727 | 2,857 | +65% | 0 | 0 | — |
case-12 | pass→pass | 13,456 | 14,940 | +11% | 1 | 1 | 0% | 2,286 | 3,544 | +55% | 0 | 0 | — |
case-13 | pass→pass | 13,973 | 13,588 | -3% | 1 | 1 | 0% | 2,162 | 3,327 | +54% | 0 | 0 | — |
case-14 | pass→pass | 12,538 | 13,035 | +4% | 1 | 1 | 0% | 2,245 | 3,433 | +53% | 0 | 0 | — |
case-15 | pass→pass | 11,895 | 5,373 | -55% | 1 | 1 | 0% | 1,780 | 2,160 | +21% | 0 | 0 | — |
case-16 | pass→pass | 6,900 | 4,266 | -38% | 1 | 1 | 0% | 1,179 | 2,063 | +75% | 0 | 0 | — |
case-17 | pass→pass | 7,910 | 3,689 | -53% | 1 | 1 | 0% | 1,224 | 1,952 | +59% | 0 | 0 | — |
case-18 | pass→pass | 10,434 | 15,014 | +44% | 1 | 1 | 0% | 1,821 | 2,985 | +64% | 0 | 0 | — |
case-19 | fail→pass | 12,244 | 12,899 | +5% | 1 | 1 | 0% | 2,018 | 3,385 | +68% | 0 | 0 | — |
case-20 | pass→pass | 8,632 | 4,130 | -52% | 1 | 1 | 0% | 1,476 | 2,015 | +37% | 0 | 0 | — |
case-21 | pass→pass | 6,941 | 4,475 | -36% | 1 | 1 | 0% | 1,027 | 1,949 | +90% | 0 | 0 | — |
case-22 | pass→pass | 10,249 | 9,933 | -3% | 1 | 1 | 0% | 1,752 | 2,767 | +58% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.