Show contracts with cancel-by deadlines coming up and warn before notice windows close, working from a maintained renewal register. Use when the user asks "what's renewing soon", "what renewals are due", "did we miss a cancellation window", "add this to the renewal tracker", or on a scheduled basis. Receives handoffs from saas-msa-review.
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "renewal-tracker" 技能: 1. 下载 https://raw.githubusercontent.com/anthropics/claude-for-legal/main/commercial-legal/skills/renewal-tracker/SKILL.md 2. 保存为 ~/.claude/skills/renewal-tracker/SKILL.md 3. 装好后重载技能,告诉我可以用了
Surfaces what's renewing and when you have to cancel by.
Read ~/.claude/plugins/config/claude-for-legal/commercial-legal/renewal-register.yaml (the config directory — survives plugin updates).
Default mode: Mode 2 — what's coming up in the next 90 days, grouped by urgency using half-open intervals so each deadline lands in exactly one band: 🔴 0–13 days, 🟠 14–44 days, 🟡 45–89 days. Days 14, 45, and 90 are boundaries — each belongs to exactly one band, not two.
--days N: Change the window.
--missed: Mode 4 — cancel-by deadlines that passed without recorded cancellation.
If register is empty and the [CLM] is connected: Offer Mode 3 — scan the [CLM] for active agreements with renewal dates and bulk-load.
Output includes recommended actions: who to ping (the business owner from each register entry), which ones have uncapped pricing (get leverage before window closes).
/commercial-legal:renewal-tracker
/commercial-legal:renewal-tracker --days 180
/commercial-legal:renewal-tracker --missed
Nobody reads a contract twice. The renewal date is extracted once, at review time, and then it lives somewhere — ideally somewhere that shouts at you 45 days before the cancel-by deadline, not 45 days after.
This skill maintains the renewal register and surfaces what's coming.
Lives at ~/.claude/plugins/config/claude-for-legal/commercial-legal/renewal-register.yaml (the config directory — survives plugin updates). Each entry:
- counterparty: "Acme SaaS Inc."
agreement: "Acme Platform Subscription Agreement"
signed_date: 2025-06-15
initial_term_end: 2026-06-15
current_term_end: 2026-06-15 # rolls forward after each auto-renewal; compute cancel_by_* from this
renewal_mechanism: "auto-renew annual"
notice_period_days: 60
notice_method: "email" # email / portal / certified mail / registered post / courier / per contract §X
transit_buffer_days: 0 # 0 for electronic, 5 for domestic certified mail, 10 for international registered post — or per contract if specified
cancel_by_calendar: 2026-04-16 # current_term_end minus notice_period_days
cancel_by_effective: 2026-04-16 # rolled back to last business day if needed
send_by_effective: 2026-04-16 # cancel_by_effective minus transit_buffer_days — the date you must SEND the notice
cancel_by_roll_note: "" # e.g., "rolled back from Sunday 2026-11-01; verify against contract's business-day definition"
cancel_by_provenance: "[model calculation — verify against the notice clause]"
price_on_renewal: "then-current list (uncapped)"
annual_value: 48000
business_owner: "[email protected]"
clm_id: "IC-12345" # if connected
docusign_envelope: "abc-123" # if connected
status: "active" # active | cancelled | renewed | lapsed
notes: "Pricing uncapped — revisit before renewal. Alt vendors: X, Y."
Notice transit time — alert off send_by_effective, not cancel_by_effective. A 60-day window with a certified-mail requirement is really ~55 days. The tracker that alerts on the received-by date is the tracker that misses the deadline. Compute send_by_effective = cancel_by_effective - transit_buffer_days and fire alerts (the 🔴 / 🟠 / 🟡 urgency bands in Mode 2) off send_by_effective. Mode 2's urgency column shows send_by_effective; a detail column surfaces cancel_by_effective, notice_method, and transit_buffer_days so the reader can see the delta and challenge the buffer.
Rolling renewals — the register that doesn't roll forward is the register that's right once. Store initial_term_end for the record, but compute cancel_by_* from current_term_end. When a renewal fires (the cancel window passes and no notice was given), prompt:
…
Review and approve (or reject) pending playbook update proposals from the playbook-monitor agent and apply approved changes to the practice profile. Use when the playbook-monitor agent has surfaced proposals, when the user says "review playbook proposals", "what playbook updates are pending", or wants to step through deviation-driven playbook changes.
Reference: review of SaaS subscription agreements with attention to the terms that matter most in subscription deals — auto-renewal mechanics, price escalation, data portability, uptime SLAs, and subprocessor rights. Loaded by /commercial-legal:review when a SaaS or subscription agreement is detected.
Drafts board or committee meeting minutes in your house format. Auto-detects upcoming board and committee meetings from your calendar, asks for the agenda and any slides or pre-read materials, and produces a complete draft in the format learned from your seed minutes. Also handles written consents in lieu of meetings. Trigger: "board minutes", "draft minutes", "upcoming board meeting", "committee minutes", "written consent", or calendar detection of an upcoming board or committee event.
Aggregate diligence findings into a deal team briefing at the right altitude for the audience — exec summary for leadership, working summary for the team. Use when user says "brief the deal team", "what's the state of diligence", "summarize findings for [audience]", "deal update", or on the briefing cadence.
Entity compliance tracker — initialize, report upcoming deadlines, update status, run health audit, export to CSV. Maintains a compliance-tracker.yaml built from the entity table, calculates filing deadlines by entity and jurisdiction, and surfaces what's due in the next 30/60/90 days. Use when user says "entity compliance", "filing deadlines", "annual reports due", "entity tracker", "what filings are due", "entity health", or "good standing".
Trace how a contract has changed across its base agreement and all amendments — either a summary of all changes over time, or a provision trace for a specific clause. Use when the user says "what changed in this contract over time", "show me the amendment history", "where's the latest [clause]", "how has [provision] evolved", or uploads multiple versions of an agreement.