[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-anthropic-saas-msa-review":3,"mdc-uudxiv-key":37,"related-repo-anthropic-saas-msa-review":2299,"related-org-anthropic-saas-msa-review":2397},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"saas-msa-review","review SaaS subscription agreements","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 \u002Fcommercial-legal:review when a SaaS or subscription agreement is detected.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"anthropic","Anthropic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fanthropic.png","anthropics",[13,17,20,23],{"name":14,"slug":15,"type":16},"Contracts","contracts","tag",{"name":18,"slug":19,"type":16},"SaaS","saas",{"name":21,"slug":22,"type":16},"Sales","sales",{"name":24,"slug":25,"type":16},"Legal","legal",8721,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-for-legal","2026-05-14T06:01:21.524443",null,1642,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"A suite of plugins for legal workflows","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-for-legal\u002Ftree\u002FHEAD\u002Fcommercial-legal\u002Fskills\u002Fsaas-msa-review","---\nname: saas-msa-review\ndescription: >\n  Reference: review of SaaS subscription agreements with attention to the terms\n  that matter most in subscription deals — auto-renewal mechanics, price escalation,\n  data portability, uptime SLAs, and subprocessor rights. Loaded by\n  \u002Fcommercial-legal:review when a SaaS or subscription agreement is detected.\nuser-invocable: false\n---\n\n# SaaS \u002F Subscription Agreement Review\n\n## Matter context\n\n**Matter context.** Check `## Matter workspaces` in the practice-level CLAUDE.md. If `Enabled` is `✗` (the default for in-house users), skip the rest of this paragraph — skills use practice-level context and the matter machinery is invisible. If enabled and there is no active matter, ask: \"Which matter is this for? Run `\u002Fcommercial-legal:matter-workspace switch \u003Cslug>` or say `practice-level`.\" Load the active matter's `matter.md` for matter-specific context and overrides. Write outputs to the matter folder at `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002Fmatters\u002F\u003Cmatter-slug>\u002F`. Never read another matter's files unless `Cross-matter context` is `on`.\n\n---\n\n## Purpose\n\nSaaS agreements have a distinct risk profile from one-time vendor contracts. The dollars compound over renewals, the data accumulates, and the switching cost grows every month. This skill reviews with that in mind.\n\nIt runs the standard playbook check from `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` and adds a SaaS-specific overlay on the terms that bite hardest in subscription deals.\n\n## Jurisdiction assumption\n\nSaaS terms (auto-renewal notice requirements, price-escalation caps, data-portability mandates, subprocessor rules) are jurisdiction-sensitive — California, New York, and EU rules diverge materially, and some states have auto-renewal statutes that override private contract terms. This review applies the team's positions from `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`, which assume the governing law recorded there. If the agreement picks a different governing law, or the deal spans jurisdictions with statutory overrides (e.g., EU-based users, California consumers), flag it — the analysis may not transfer as written.\n\n> **No silent supplement.** If a research query to the configured legal research tool (Westlaw, or firm platform) returns few or no results for a statutory override that might bear on the deal (auto-renewal statute, data-portability mandate, consumer-protection rule), report what was found and stop. Do NOT fill the gap from web search or model knowledge without asking. Say: \"The search returned [N] results from [tool]. Coverage appears thin for [jurisdiction \u002F rule]. Options: (1) broaden the search query, (2) try a different research tool, (3) search the web — results will be tagged `[web search — verify]` and should be checked against a primary source before relying, or (4) flag as unverified and stop. Which would you like?\" A lawyer decides whether to accept lower-confidence sources.\n>\n> **Source attribution.** Where the review cites a statute, regulation, or case (e.g., a state auto-renewal law overriding contract terms), tag the citation: `[Westlaw]`, `[statute \u002F regulator site]`, or the MCP tool name for citations retrieved from a legal research connector; `[web search — verify]` for web-search citations; `[model knowledge — verify]` for citations recalled from training data; `[user provided]` for citations from the counterparty draft or house files. Citations tagged `verify` carry higher fabrication risk and should be checked first. Never strip or collapse the tags.\n\n## Load the playbook\n\n**Which side?** Before applying the playbook, determine which side the company is on for this SaaS agreement. Usually obvious: if the counterparty is a SaaS vendor selling you their platform, you're purchasing-side. If you are the SaaS vendor and the counterparty is your customer, you're sales-side. If it's not obvious (a reseller arrangement, a white-label deal), ask: \"Which side is [company] on for this agreement — vendor or customer?\" Read the matching playbook section (`### Sales-side playbook` or `### Purchasing-side playbook`) from the config. Note which side in the output so the reviewer knows which playbook was applied. If the matching side is `[Not configured]`, stop and tell the user to run `\u002Fcommercial-legal:cold-start-interview --side \u003Cside>` before this review can proceed.\n\nRead `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` first. The general playbook for the matching side (liability, indemnity, termination, governing law) applies fully — run all the standard checks from the vendor-agreement-review skill.\n\nThen look for a `## Playbook` → matching side → `SaaS positions` section. That's where the team records its positions on auto-renewal notice windows, acceptable price escalators, data export rights, SLA thresholds, subprocessor approval rights, and deprecation notice. This skill does not ship with defaults for these — the right numbers vary by deal size, vendor leverage, and the team's risk tolerance.\n\nIf `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` doesn't address a SaaS-specific term that comes up in this review, ask:\n\n> Your playbook doesn't cover [term — e.g., \"maximum acceptable auto-renewal notice window\" or \"whether vendor retention of anonymized derivatives is acceptable\"]. What's your team's position? I'll add it to `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`.\n\nRecord the answer and proceed.\n\n## SaaS-specific overlay\n\nFor each category below, list what you found in the contract and compare to the team's position in `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`. Do not apply hardcoded thresholds from this skill.\n\n### 1. Auto-renewal mechanics\n\nThe single most common way a SaaS deal goes wrong: nobody notices the renewal notice window and we're locked in for another year at a higher price.\n\nCheck each element and compare against the team's `SaaS positions` in `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`:\n\n- **Renewal term length** (e.g., same as initial, longer, multi-year auto-convert)\n- **Notice-to-cancel window** (number of days before renewal)\n- **Notice method** (email, written notice to legal, portal-only, certified mail)\n- **Price on renewal** (same, CPI-capped, then-current list, uncapped discretionary)\n\n**Extract and record** the exact renewal date and the notice window regardless of whether any item is flagged. This feeds the renewal-tracker skill.\n\n### 2. Price escalation\n\nCheck each element against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`:\n\n- **Annual escalator** (fixed %, CPI, uncapped, etc.)\n- **Usage overage pricing** (published rate card, premium rate, unspecified)\n- **Scope of \"fees\"** (subscription only vs. \"additional services\" broadly defined)\n\n### 3. Data portability and exit\n\nWhen (not if) we leave this vendor, can we get our data out? Check each element against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`:\n\n- **Export format** (open\u002Fstandard, proprietary-but-documented, \"commercially reasonable\")\n- **Export availability** (self-serve anytime, on request during term, only at termination)\n- **Post-termination access** (days available to export after termination)\n- **Export cost** (free, T&M, per-GB or per-record)\n- **Deletion certification** (certified on request, none, vendor retains derivatives)\n\nVendor retention of \"anonymized\" or \"aggregated\" derivatives is a material position — confirm the team's stance in `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` and flag either way.\n\n### 4. Uptime and SLA\n\nOnly matters if the business actually depends on this service being up. If it's a nice-to-have tool, skip this section — don't spend negotiating capital on SLAs for a survey tool.\n\nCheck each element against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`:\n\n- **Uptime commitment** (percentage, or \"commercially reasonable efforts\")\n- **Measurement period** (monthly, quarterly, annual)\n- **Remedy** (service credits — how calculated, whether capped, whether sole remedy)\n- **Scheduled maintenance exclusions** (defined window, advance notice, unlimited)\n- **Credit-as-sole-remedy** interaction with the liability cap\n\n### 5. Subprocessors\n\nThis is a data protection issue but it's SaaS-specific because the subprocessor list *changes* over the life of the subscription.\n\nCheck each element against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`:\n\n- **Current list** (published, on request, unavailable)\n- **Change notification** (advance notice period, or none)\n- **Objection rights** (blocking, notice-and-terminate, notice-only, none)\n\n### 6. Service changes and deprecation\n\nSaaS vendors change their product. Usually fine. Sometimes they deprecate the thing you bought.\n\nCheck each element against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`:\n\n- **Material adverse changes** (right to terminate on material degradation, notice-only, unrestricted)\n- **Deprecation notice period** for features the team relies on\n- **Feature parity on replacement** (same price tier, higher tier)\n\n\n\n## AI and machine learning rights\n\n**AI\u002FML data rights decision procedure.** Don't just check whether an AI training clause exists. The #1 emerging negotiation point in SaaS contracts is structurally more than a one-line existence check. Work through:\n\n1. **Explicit grant.** Does the contract explicitly grant the vendor rights to use Customer Data \u002F Customer Content \u002F Usage Data for AI training, model improvement, or ML development? Purchasing-side: this is usually a NO — customer data training the vendor's models means the customer is subsidizing the vendor's product and possibly leaking competitive information. Sales-side: this is revenue if you get it, reputation risk if you abuse it.\n2. **Implicit grant via policy.** Does the contract incorporate the vendor's privacy policy or terms of service by reference? Can the vendor add training rights via a unilateral policy update? Check: \"The parties agree to the Provider's Privacy Policy as updated from time to time\" is a training-rights grant waiting to happen. Also watch for \"service improvement\" or \"analytics\" catch-alls and \"usage data\" definitions that carve logs\u002Ftelemetry out of the Customer Data definition so data-use restrictions don't apply.\n3. **Anonymization standard.** If the vendor claims it only trains on \"anonymized\" or \"aggregated\" data, what's the standard? \"Anonymized\" without a definition is weak. Does it meet GDPR Recital 26 \u002F HIPAA Safe Harbor \u002F a named standard? Is it reversible?\n4. **Competitive contamination.** Does the vendor serve your competitors? If so, training on your data could leak competitive intelligence into outputs your competitors see. Is there a competitive isolation commitment?\n5. **Opt-out scope and durability.** If there's an opt-out, does it cover all AI uses or only some? Does it survive renewals and TOS updates? Is it per-user or per-org? Many vendors default to training and offer an opt-out buried in an admin console — check whether the contract makes the default explicit.\n6. **Output ownership.** If the SaaS product is itself AI-generated (drafting, summarization, analysis), who owns the outputs? Can the vendor use your outputs as training examples? Check third-party AI subprocessors too — the vendor may send customer data to a third-party LLM (OpenAI, Anthropic, Google) and the subprocessor list \u002F data flow is where that shows up.\n7. **Downstream regulatory chain.** Does the vendor's use of your data for AI create regulatory exposure for YOU? EU AI Act deployer obligations, FTC §5 undisclosed data-sharing exposure (see *FTC v. Humor Rainbow\u002FOkCupid*), state AI laws.\n\nMatch each to a playbook position. The practice profile's `## AI\u002FML training rights` section should have positions for each. If the agreement is silent on all seven, that's still a finding: \"The agreement is silent on AI\u002FML training rights — request an explicit prohibition or a defined carve-out tied to each of the seven dimensions above.\"\n\n## Liability cap decision procedure\n\n**The cap amount is the least important part of the cap.** Limitation-of-liability is not a single \"check against playbook\" item. Work through:\n\n1. **Direct vs. indirect\u002Fconsequential damages.** Does the cap apply to ALL liability, or only direct damages? A 12-month cap on direct damages with uncapped consequential damages is a completely different position than a 12-month aggregate cap. State both treatments explicitly.\n\n2. **The cap base — quote it verbatim.** \"12-month cap\" could mean: (a) fees paid in the 12 months preceding the claim, (b) fees payable in the current 12-month period, (c) fees over the last 12 months of usage, (d) fees under the current order form, (e) total fees ever paid. These can differ by an order of magnitude. Quote the exact language. If ambiguous, flag it: \"Cap base is ambiguous — `[the quoted language]` — could mean [X] or [Y]. Confirm before signing.\"\n\n3. **Cap-carveout interaction.** A $100K cap with uncapped indemnity for data breach, IP, and confidentiality is functionally uncapped for the claims that actually arise in SaaS disputes. Enumerate what sits ABOVE the cap (the carveouts), what sits BELOW (what's actually capped), and assess whether the capped surface is meaningful: \"The cap covers [general contract breach]. Data breach, IP indemnity, and confidentiality are carved out and uncapped. For this vendor's risk profile, the capped surface is [meaningful \u002F nominal].\"\n\n4. **Your playbook position per dimension.** The practice profile should have positions for: direct cap (multiple of fees), indirect damages (excluded \u002F capped \u002F uncapped), carveout list (what's acceptable above the cap), and cap base (which definition you'll accept). If the playbook has one \"standard position\" field, note: \"Your playbook has a single cap position — consider splitting into direct\u002Findirect\u002Fcarveouts\u002Fbase for more precise review.\"\n\n## Jurisdiction delta check\n\n**The playbook applies one governing-law preference globally. Enforceability varies materially.** Check the SaaS contract's actual governing law against the top divergences before accepting playbook positions at face value:\n\n- **Non-solicits\u002Fnon-competes:** Unenforceable in CA (Bus. & Prof. Code §16600). Restricted in many EU jurisdictions. Enforceable with limitations elsewhere. `[jurisdiction — verify]`\n- **Auto-renewal:** CA GBL §17600-17606, NY GBL §527-a, IL 815 ILCS 601 have specific consumer\u002FB2B notice requirements. Other states vary. `[jurisdiction — verify]`\n- **Liability exclusions:** EU and UK unfair contract terms rules (UCTA 1977, Consumer Rights Act 2015) constrain consumer exclusions. Some US states limit exclusion of gross negligence or willful misconduct. `[jurisdiction — verify]`\n- **Indemnification:** Some states void indemnification for the indemnitee's own negligence. `[jurisdiction — verify]`\n- **Confidentiality term:** Some jurisdictions limit \"perpetual\" confidentiality to a reasonable period. `[jurisdiction — verify]`\n\nWhen the playbook position conflicts with the contract's governing-law enforceability, flag: \"Your playbook prefers [X], but this contract is governed by [Y] law where [X] is [unenforceable \u002F restricted \u002F subject to statutory override]. `[jurisdiction — verify]`\"\n\n## Redline granularity\n\n**Edit at the smallest possible granularity.** A redline is a negotiation artifact, not a rewrite. Wholesale clause replacement signals \"we threw out your drafting\" — it's aggressive, it forces the counterparty to re-read the whole clause, and it discards the parts of their drafting that were fine. Surgical redlines — strike a word, insert a phrase, restructure a subclause — signal \"we have specific asks\" and are faster to read, understand, and accept.\n\nDefault to the smallest edit that achieves the playbook position:\n- Replace a **word** before a phrase. (\"twelve (12)\" → \"twenty-four (24)\")\n- Replace a **phrase** before a sentence. (\"paid by the Buyer\" → \"paid and payable by the Buyer\")\n- Restructure a **subclause** before replacing the sentence. (Add \"(a)\" and \"(b)\" to split a compound condition.)\n- Replace a **sentence** before replacing the clause.\n- Only replace a **whole clause** when the counterparty's version is so far from your position that surgical edits would be harder to read than a fresh draft — and when you do, say so in the transmittal: \"We've replaced §8.2 rather than marking it up because the changes were extensive. Happy to walk you through the delta.\"\n\nWhen in doubt, smaller. A client who receives a surgical redline trusts that you read carefully. A client who receives a wholesale replacement wonders whether you read at all.\n\n## Output\n\nUse the vendor-agreement-review memo structure, with a SaaS-specific section added after the standard playbook checks. The vendor-agreement-review memo already carries the privilege header.\n\n**Dual severity.** Every SaaS-specific finding carries both axes (see CLAUDE.md `## Dual severity`):\n- **Legal risk:** 🔴 Critical | 🟠 High | 🟡 Medium | 🟢 Low\n- **Business friction:** 🔴 Blocks deals | 🟠 Slows deals | 🟡 Confuses customers | 🟢 Invisible\n\nData-exit, auto-renewal, and price-escalation findings are the ones most likely to be 🟢 legal \u002F 🔴 business — the clause is enforceable, but it's the reason a customer can't leave or a renewal surprises finance. Surface those at the business-friction severity, not the legal one.\n\n```markdown\n### Bottom line\n\n[Can you sign \u002F Need to fight for X first \u002F Walk — one-sentence why]\n\n### AI and machine learning rights\n\n[The #1 emerging SaaS negotiation point. Flag: explicit ML training clauses, \"service improvement\" catch-alls, usage data definitions, output ownership, third-party AI subprocessors, opt-out vs opt-in. If the agreement is silent: \"Silent on AI\u002FML training rights — request explicit prohibition or defined carve-out.\"]\n\n## SaaS-specific findings\n\n### Auto-renewal\n**Renewal date:** [date]\n**Notice window:** Cancel by [date] ([N] days before renewal)\n**Renewal price mechanism:** [as written]\n**Playbook fit:** [within position \u002F deviation \u002F not addressed]\n**Flag for renewal-tracker:** [yes — and the record the tracker needs]\n\n### Price escalation\n[findings against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` positions]\n\n### Data exit\n[findings — this is the one the business owner should read]\n\n### SLA\n[findings, or \"Skipped — service is not business-critical per [stakeholder]\"]\n\n### Subprocessors\n[findings against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` positions]\n\n### Service changes\n[findings against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` positions]\n```\n\n## Handoffs\n\n**To renewal-tracker:** When you find the renewal date and notice window, hand them off. The renewal-tracker register expects the following fields (see `skills\u002Frenewal-tracker\u002Freferences\u002Frenewal-register.yaml` for the full schema):\n\n```yaml\ncounterparty:         [name]\nagreement:            [title]\nsigned_date:          [ISO date]\ninitial_term_end:     [ISO date]\nrenewal_mechanism:    [e.g., \"auto-renew annual\"]\nnotice_period_days:   [integer]\ncancel_by_effective:            [ISO date — initial_term_end minus notice_period_days]\nprice_on_renewal:     [mechanism as written]\nannual_value:         [integer, if stated]\nbusiness_owner:       [email, if known]\nclm_id:               [id if available]\nstatus:               active\n```\n\nIf any field is not determinable from the contract or context, leave it out and note which fields were missing so the human can fill them in. `clm_id`, `annual_value`, and `business_owner` are especially likely to need human input.\n\n**To escalation-flagger:** If any of the SaaS-specific checks hits the team's \"never accept\" or escalation-trigger list in `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md`, the escalation-flagger skill routes it.\n\n## A note on what to fight over\n\nSaaS vendors, especially large ones, negotiate their paper about as willingly as airlines negotiate ticket terms. Pick battles *per the team's playbook* — the `SaaS positions` section in `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` should distinguish between terms the team will always push on, terms it fights over only for material deals, and terms it lets slide. If the playbook doesn't draw those lines, ask.\n\nCalibrate based on contract value and switching cost. A $5K\u002Fyear tool with easy alternatives gets a lighter touch than a $500K\u002Fyear platform we'll build on top of.\n\n## Close with the next-steps decision tree\n\nEnd with the next-steps decision tree per CLAUDE.md `## Outputs`. Customize the options to what this skill just produced — the five default branches (draft the X, escalate, get more facts, watch and wait, something else) are a starting point, not a lock-in. The tree is the output; the lawyer picks.\n\n",{"data":38,"body":40},{"name":4,"description":6,"user-invocable":39},false,{"type":41,"children":42},"root",[43,52,59,143,147,153,158,171,177,189,290,296,345,357,378,390,411,416,422,434,441,446,465,510,520,526,537,570,576,587,640,652,658,663,673,726,732,745,755,788,794,799,809,842,848,858,939,952,958,968,1046,1052,1062,1141,1177,1183,1193,1198,1259,1264,1270,1275,1293,1316,1321,1826,1832,1850,2195,2220,2237,2243,2269,2274,2280,2293],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"saas-subscription-agreement-review",[49],{"type":50,"value":51},"text","SaaS \u002F Subscription Agreement Review",{"type":44,"tag":53,"props":54,"children":56},"h2",{"id":55},"matter-context",[57],{"type":50,"value":58},"Matter context",{"type":44,"tag":60,"props":61,"children":62},"p",{},[63,69,71,78,80,86,88,94,96,102,104,110,112,118,120,126,128,134,135,141],{"type":44,"tag":64,"props":65,"children":66},"strong",{},[67],{"type":50,"value":68},"Matter context.",{"type":50,"value":70}," Check ",{"type":44,"tag":72,"props":73,"children":75},"code",{"className":74},[],[76],{"type":50,"value":77},"## Matter workspaces",{"type":50,"value":79}," in the practice-level CLAUDE.md. If ",{"type":44,"tag":72,"props":81,"children":83},{"className":82},[],[84],{"type":50,"value":85},"Enabled",{"type":50,"value":87}," is ",{"type":44,"tag":72,"props":89,"children":91},{"className":90},[],[92],{"type":50,"value":93},"✗",{"type":50,"value":95}," (the default for in-house users), skip the rest of this paragraph — skills use practice-level context and the matter machinery is invisible. If enabled and there is no active matter, ask: \"Which matter is this for? Run ",{"type":44,"tag":72,"props":97,"children":99},{"className":98},[],[100],{"type":50,"value":101},"\u002Fcommercial-legal:matter-workspace switch \u003Cslug>",{"type":50,"value":103}," or say ",{"type":44,"tag":72,"props":105,"children":107},{"className":106},[],[108],{"type":50,"value":109},"practice-level",{"type":50,"value":111},".\" Load the active matter's ",{"type":44,"tag":72,"props":113,"children":115},{"className":114},[],[116],{"type":50,"value":117},"matter.md",{"type":50,"value":119}," for matter-specific context and overrides. Write outputs to the matter folder at ",{"type":44,"tag":72,"props":121,"children":123},{"className":122},[],[124],{"type":50,"value":125},"~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002Fmatters\u002F\u003Cmatter-slug>\u002F",{"type":50,"value":127},". Never read another matter's files unless ",{"type":44,"tag":72,"props":129,"children":131},{"className":130},[],[132],{"type":50,"value":133},"Cross-matter context",{"type":50,"value":87},{"type":44,"tag":72,"props":136,"children":138},{"className":137},[],[139],{"type":50,"value":140},"on",{"type":50,"value":142},".",{"type":44,"tag":144,"props":145,"children":146},"hr",{},[],{"type":44,"tag":53,"props":148,"children":150},{"id":149},"purpose",[151],{"type":50,"value":152},"Purpose",{"type":44,"tag":60,"props":154,"children":155},{},[156],{"type":50,"value":157},"SaaS agreements have a distinct risk profile from one-time vendor contracts. The dollars compound over renewals, the data accumulates, and the switching cost grows every month. This skill reviews with that in mind.",{"type":44,"tag":60,"props":159,"children":160},{},[161,163,169],{"type":50,"value":162},"It runs the standard playbook check from ",{"type":44,"tag":72,"props":164,"children":166},{"className":165},[],[167],{"type":50,"value":168},"~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md",{"type":50,"value":170}," and adds a SaaS-specific overlay on the terms that bite hardest in subscription deals.",{"type":44,"tag":53,"props":172,"children":174},{"id":173},"jurisdiction-assumption",[175],{"type":50,"value":176},"Jurisdiction assumption",{"type":44,"tag":60,"props":178,"children":179},{},[180,182,187],{"type":50,"value":181},"SaaS terms (auto-renewal notice requirements, price-escalation caps, data-portability mandates, subprocessor rules) are jurisdiction-sensitive — California, New York, and EU rules diverge materially, and some states have auto-renewal statutes that override private contract terms. This review applies the team's positions from ",{"type":44,"tag":72,"props":183,"children":185},{"className":184},[],[186],{"type":50,"value":168},{"type":50,"value":188},", which assume the governing law recorded there. If the agreement picks a different governing law, or the deal spans jurisdictions with statutory overrides (e.g., EU-based users, California consumers), flag it — the analysis may not transfer as written.",{"type":44,"tag":190,"props":191,"children":192},"blockquote",{},[193,233],{"type":44,"tag":60,"props":194,"children":195},{},[196,201,203,209,211,216,218,223,225,231],{"type":44,"tag":64,"props":197,"children":198},{},[199],{"type":50,"value":200},"No silent supplement.",{"type":50,"value":202}," If a research query to the configured legal research tool (Westlaw, or firm platform) returns few or no results for a statutory override that might bear on the deal (auto-renewal statute, data-portability mandate, consumer-protection rule), report what was found and stop. Do NOT fill the gap from web search or model knowledge without asking. Say: \"The search returned ",{"type":44,"tag":204,"props":205,"children":206},"span",{},[207],{"type":50,"value":208},"N",{"type":50,"value":210}," results from ",{"type":44,"tag":204,"props":212,"children":213},{},[214],{"type":50,"value":215},"tool",{"type":50,"value":217},". Coverage appears thin for ",{"type":44,"tag":204,"props":219,"children":220},{},[221],{"type":50,"value":222},"jurisdiction \u002F rule",{"type":50,"value":224},". Options: (1) broaden the search query, (2) try a different research tool, (3) search the web — results will be tagged ",{"type":44,"tag":72,"props":226,"children":228},{"className":227},[],[229],{"type":50,"value":230},"[web search — verify]",{"type":50,"value":232}," and should be checked against a primary source before relying, or (4) flag as unverified and stop. Which would you like?\" A lawyer decides whether to accept lower-confidence sources.",{"type":44,"tag":60,"props":234,"children":235},{},[236,241,243,249,251,257,259,264,266,272,274,280,282,288],{"type":44,"tag":64,"props":237,"children":238},{},[239],{"type":50,"value":240},"Source attribution.",{"type":50,"value":242}," Where the review cites a statute, regulation, or case (e.g., a state auto-renewal law overriding contract terms), tag the citation: ",{"type":44,"tag":72,"props":244,"children":246},{"className":245},[],[247],{"type":50,"value":248},"[Westlaw]",{"type":50,"value":250},", ",{"type":44,"tag":72,"props":252,"children":254},{"className":253},[],[255],{"type":50,"value":256},"[statute \u002F regulator site]",{"type":50,"value":258},", or the MCP tool name for citations retrieved from a legal research connector; ",{"type":44,"tag":72,"props":260,"children":262},{"className":261},[],[263],{"type":50,"value":230},{"type":50,"value":265}," for web-search citations; ",{"type":44,"tag":72,"props":267,"children":269},{"className":268},[],[270],{"type":50,"value":271},"[model knowledge — verify]",{"type":50,"value":273}," for citations recalled from training data; ",{"type":44,"tag":72,"props":275,"children":277},{"className":276},[],[278],{"type":50,"value":279},"[user provided]",{"type":50,"value":281}," for citations from the counterparty draft or house files. Citations tagged ",{"type":44,"tag":72,"props":283,"children":285},{"className":284},[],[286],{"type":50,"value":287},"verify",{"type":50,"value":289}," carry higher fabrication risk and should be checked first. Never strip or collapse the tags.",{"type":44,"tag":53,"props":291,"children":293},{"id":292},"load-the-playbook",[294],{"type":50,"value":295},"Load the playbook",{"type":44,"tag":60,"props":297,"children":298},{},[299,304,306,311,313,319,321,327,329,335,337,343],{"type":44,"tag":64,"props":300,"children":301},{},[302],{"type":50,"value":303},"Which side?",{"type":50,"value":305}," Before applying the playbook, determine which side the company is on for this SaaS agreement. Usually obvious: if the counterparty is a SaaS vendor selling you their platform, you're purchasing-side. If you are the SaaS vendor and the counterparty is your customer, you're sales-side. If it's not obvious (a reseller arrangement, a white-label deal), ask: \"Which side is ",{"type":44,"tag":204,"props":307,"children":308},{},[309],{"type":50,"value":310},"company",{"type":50,"value":312}," on for this agreement — vendor or customer?\" Read the matching playbook section (",{"type":44,"tag":72,"props":314,"children":316},{"className":315},[],[317],{"type":50,"value":318},"### Sales-side playbook",{"type":50,"value":320}," or ",{"type":44,"tag":72,"props":322,"children":324},{"className":323},[],[325],{"type":50,"value":326},"### Purchasing-side playbook",{"type":50,"value":328},") from the config. Note which side in the output so the reviewer knows which playbook was applied. If the matching side is ",{"type":44,"tag":72,"props":330,"children":332},{"className":331},[],[333],{"type":50,"value":334},"[Not configured]",{"type":50,"value":336},", stop and tell the user to run ",{"type":44,"tag":72,"props":338,"children":340},{"className":339},[],[341],{"type":50,"value":342},"\u002Fcommercial-legal:cold-start-interview --side \u003Cside>",{"type":50,"value":344}," before this review can proceed.",{"type":44,"tag":60,"props":346,"children":347},{},[348,350,355],{"type":50,"value":349},"Read ",{"type":44,"tag":72,"props":351,"children":353},{"className":352},[],[354],{"type":50,"value":168},{"type":50,"value":356}," first. The general playbook for the matching side (liability, indemnity, termination, governing law) applies fully — run all the standard checks from the vendor-agreement-review skill.",{"type":44,"tag":60,"props":358,"children":359},{},[360,362,368,370,376],{"type":50,"value":361},"Then look for a ",{"type":44,"tag":72,"props":363,"children":365},{"className":364},[],[366],{"type":50,"value":367},"## Playbook",{"type":50,"value":369}," → matching side → ",{"type":44,"tag":72,"props":371,"children":373},{"className":372},[],[374],{"type":50,"value":375},"SaaS positions",{"type":50,"value":377}," section. That's where the team records its positions on auto-renewal notice windows, acceptable price escalators, data export rights, SLA thresholds, subprocessor approval rights, and deprecation notice. This skill does not ship with defaults for these — the right numbers vary by deal size, vendor leverage, and the team's risk tolerance.",{"type":44,"tag":60,"props":379,"children":380},{},[381,383,388],{"type":50,"value":382},"If ",{"type":44,"tag":72,"props":384,"children":386},{"className":385},[],[387],{"type":50,"value":168},{"type":50,"value":389}," doesn't address a SaaS-specific term that comes up in this review, ask:",{"type":44,"tag":190,"props":391,"children":392},{},[393],{"type":44,"tag":60,"props":394,"children":395},{},[396,398,403,405,410],{"type":50,"value":397},"Your playbook doesn't cover ",{"type":44,"tag":204,"props":399,"children":400},{},[401],{"type":50,"value":402},"term — e.g., \"maximum acceptable auto-renewal notice window\" or \"whether vendor retention of anonymized derivatives is acceptable\"",{"type":50,"value":404},". What's your team's position? I'll add it to ",{"type":44,"tag":72,"props":406,"children":408},{"className":407},[],[409],{"type":50,"value":168},{"type":50,"value":142},{"type":44,"tag":60,"props":412,"children":413},{},[414],{"type":50,"value":415},"Record the answer and proceed.",{"type":44,"tag":53,"props":417,"children":419},{"id":418},"saas-specific-overlay",[420],{"type":50,"value":421},"SaaS-specific overlay",{"type":44,"tag":60,"props":423,"children":424},{},[425,427,432],{"type":50,"value":426},"For each category below, list what you found in the contract and compare to the team's position in ",{"type":44,"tag":72,"props":428,"children":430},{"className":429},[],[431],{"type":50,"value":168},{"type":50,"value":433},". Do not apply hardcoded thresholds from this skill.",{"type":44,"tag":435,"props":436,"children":438},"h3",{"id":437},"_1-auto-renewal-mechanics",[439],{"type":50,"value":440},"1. Auto-renewal mechanics",{"type":44,"tag":60,"props":442,"children":443},{},[444],{"type":50,"value":445},"The single most common way a SaaS deal goes wrong: nobody notices the renewal notice window and we're locked in for another year at a higher price.",{"type":44,"tag":60,"props":447,"children":448},{},[449,451,456,458,463],{"type":50,"value":450},"Check each element and compare against the team's ",{"type":44,"tag":72,"props":452,"children":454},{"className":453},[],[455],{"type":50,"value":375},{"type":50,"value":457}," in ",{"type":44,"tag":72,"props":459,"children":461},{"className":460},[],[462],{"type":50,"value":168},{"type":50,"value":464},":",{"type":44,"tag":466,"props":467,"children":468},"ul",{},[469,480,490,500],{"type":44,"tag":470,"props":471,"children":472},"li",{},[473,478],{"type":44,"tag":64,"props":474,"children":475},{},[476],{"type":50,"value":477},"Renewal term length",{"type":50,"value":479}," (e.g., same as initial, longer, multi-year auto-convert)",{"type":44,"tag":470,"props":481,"children":482},{},[483,488],{"type":44,"tag":64,"props":484,"children":485},{},[486],{"type":50,"value":487},"Notice-to-cancel window",{"type":50,"value":489}," (number of days before renewal)",{"type":44,"tag":470,"props":491,"children":492},{},[493,498],{"type":44,"tag":64,"props":494,"children":495},{},[496],{"type":50,"value":497},"Notice method",{"type":50,"value":499}," (email, written notice to legal, portal-only, certified mail)",{"type":44,"tag":470,"props":501,"children":502},{},[503,508],{"type":44,"tag":64,"props":504,"children":505},{},[506],{"type":50,"value":507},"Price on renewal",{"type":50,"value":509}," (same, CPI-capped, then-current list, uncapped discretionary)",{"type":44,"tag":60,"props":511,"children":512},{},[513,518],{"type":44,"tag":64,"props":514,"children":515},{},[516],{"type":50,"value":517},"Extract and record",{"type":50,"value":519}," the exact renewal date and the notice window regardless of whether any item is flagged. This feeds the renewal-tracker skill.",{"type":44,"tag":435,"props":521,"children":523},{"id":522},"_2-price-escalation",[524],{"type":50,"value":525},"2. Price escalation",{"type":44,"tag":60,"props":527,"children":528},{},[529,531,536],{"type":50,"value":530},"Check each element against ",{"type":44,"tag":72,"props":532,"children":534},{"className":533},[],[535],{"type":50,"value":168},{"type":50,"value":464},{"type":44,"tag":466,"props":538,"children":539},{},[540,550,560],{"type":44,"tag":470,"props":541,"children":542},{},[543,548],{"type":44,"tag":64,"props":544,"children":545},{},[546],{"type":50,"value":547},"Annual escalator",{"type":50,"value":549}," (fixed %, CPI, uncapped, etc.)",{"type":44,"tag":470,"props":551,"children":552},{},[553,558],{"type":44,"tag":64,"props":554,"children":555},{},[556],{"type":50,"value":557},"Usage overage pricing",{"type":50,"value":559}," (published rate card, premium rate, unspecified)",{"type":44,"tag":470,"props":561,"children":562},{},[563,568],{"type":44,"tag":64,"props":564,"children":565},{},[566],{"type":50,"value":567},"Scope of \"fees\"",{"type":50,"value":569}," (subscription only vs. \"additional services\" broadly defined)",{"type":44,"tag":435,"props":571,"children":573},{"id":572},"_3-data-portability-and-exit",[574],{"type":50,"value":575},"3. Data portability and exit",{"type":44,"tag":60,"props":577,"children":578},{},[579,581,586],{"type":50,"value":580},"When (not if) we leave this vendor, can we get our data out? Check each element against ",{"type":44,"tag":72,"props":582,"children":584},{"className":583},[],[585],{"type":50,"value":168},{"type":50,"value":464},{"type":44,"tag":466,"props":588,"children":589},{},[590,600,610,620,630],{"type":44,"tag":470,"props":591,"children":592},{},[593,598],{"type":44,"tag":64,"props":594,"children":595},{},[596],{"type":50,"value":597},"Export format",{"type":50,"value":599}," (open\u002Fstandard, proprietary-but-documented, \"commercially reasonable\")",{"type":44,"tag":470,"props":601,"children":602},{},[603,608],{"type":44,"tag":64,"props":604,"children":605},{},[606],{"type":50,"value":607},"Export availability",{"type":50,"value":609}," (self-serve anytime, on request during term, only at termination)",{"type":44,"tag":470,"props":611,"children":612},{},[613,618],{"type":44,"tag":64,"props":614,"children":615},{},[616],{"type":50,"value":617},"Post-termination access",{"type":50,"value":619}," (days available to export after termination)",{"type":44,"tag":470,"props":621,"children":622},{},[623,628],{"type":44,"tag":64,"props":624,"children":625},{},[626],{"type":50,"value":627},"Export cost",{"type":50,"value":629}," (free, T&M, per-GB or per-record)",{"type":44,"tag":470,"props":631,"children":632},{},[633,638],{"type":44,"tag":64,"props":634,"children":635},{},[636],{"type":50,"value":637},"Deletion certification",{"type":50,"value":639}," (certified on request, none, vendor retains derivatives)",{"type":44,"tag":60,"props":641,"children":642},{},[643,645,650],{"type":50,"value":644},"Vendor retention of \"anonymized\" or \"aggregated\" derivatives is a material position — confirm the team's stance in ",{"type":44,"tag":72,"props":646,"children":648},{"className":647},[],[649],{"type":50,"value":168},{"type":50,"value":651}," and flag either way.",{"type":44,"tag":435,"props":653,"children":655},{"id":654},"_4-uptime-and-sla",[656],{"type":50,"value":657},"4. Uptime and SLA",{"type":44,"tag":60,"props":659,"children":660},{},[661],{"type":50,"value":662},"Only matters if the business actually depends on this service being up. If it's a nice-to-have tool, skip this section — don't spend negotiating capital on SLAs for a survey tool.",{"type":44,"tag":60,"props":664,"children":665},{},[666,667,672],{"type":50,"value":530},{"type":44,"tag":72,"props":668,"children":670},{"className":669},[],[671],{"type":50,"value":168},{"type":50,"value":464},{"type":44,"tag":466,"props":674,"children":675},{},[676,686,696,706,716],{"type":44,"tag":470,"props":677,"children":678},{},[679,684],{"type":44,"tag":64,"props":680,"children":681},{},[682],{"type":50,"value":683},"Uptime commitment",{"type":50,"value":685}," (percentage, or \"commercially reasonable efforts\")",{"type":44,"tag":470,"props":687,"children":688},{},[689,694],{"type":44,"tag":64,"props":690,"children":691},{},[692],{"type":50,"value":693},"Measurement period",{"type":50,"value":695}," (monthly, quarterly, annual)",{"type":44,"tag":470,"props":697,"children":698},{},[699,704],{"type":44,"tag":64,"props":700,"children":701},{},[702],{"type":50,"value":703},"Remedy",{"type":50,"value":705}," (service credits — how calculated, whether capped, whether sole remedy)",{"type":44,"tag":470,"props":707,"children":708},{},[709,714],{"type":44,"tag":64,"props":710,"children":711},{},[712],{"type":50,"value":713},"Scheduled maintenance exclusions",{"type":50,"value":715}," (defined window, advance notice, unlimited)",{"type":44,"tag":470,"props":717,"children":718},{},[719,724],{"type":44,"tag":64,"props":720,"children":721},{},[722],{"type":50,"value":723},"Credit-as-sole-remedy",{"type":50,"value":725}," interaction with the liability cap",{"type":44,"tag":435,"props":727,"children":729},{"id":728},"_5-subprocessors",[730],{"type":50,"value":731},"5. Subprocessors",{"type":44,"tag":60,"props":733,"children":734},{},[735,737,743],{"type":50,"value":736},"This is a data protection issue but it's SaaS-specific because the subprocessor list ",{"type":44,"tag":738,"props":739,"children":740},"em",{},[741],{"type":50,"value":742},"changes",{"type":50,"value":744}," over the life of the subscription.",{"type":44,"tag":60,"props":746,"children":747},{},[748,749,754],{"type":50,"value":530},{"type":44,"tag":72,"props":750,"children":752},{"className":751},[],[753],{"type":50,"value":168},{"type":50,"value":464},{"type":44,"tag":466,"props":756,"children":757},{},[758,768,778],{"type":44,"tag":470,"props":759,"children":760},{},[761,766],{"type":44,"tag":64,"props":762,"children":763},{},[764],{"type":50,"value":765},"Current list",{"type":50,"value":767}," (published, on request, unavailable)",{"type":44,"tag":470,"props":769,"children":770},{},[771,776],{"type":44,"tag":64,"props":772,"children":773},{},[774],{"type":50,"value":775},"Change notification",{"type":50,"value":777}," (advance notice period, or none)",{"type":44,"tag":470,"props":779,"children":780},{},[781,786],{"type":44,"tag":64,"props":782,"children":783},{},[784],{"type":50,"value":785},"Objection rights",{"type":50,"value":787}," (blocking, notice-and-terminate, notice-only, none)",{"type":44,"tag":435,"props":789,"children":791},{"id":790},"_6-service-changes-and-deprecation",[792],{"type":50,"value":793},"6. Service changes and deprecation",{"type":44,"tag":60,"props":795,"children":796},{},[797],{"type":50,"value":798},"SaaS vendors change their product. Usually fine. Sometimes they deprecate the thing you bought.",{"type":44,"tag":60,"props":800,"children":801},{},[802,803,808],{"type":50,"value":530},{"type":44,"tag":72,"props":804,"children":806},{"className":805},[],[807],{"type":50,"value":168},{"type":50,"value":464},{"type":44,"tag":466,"props":810,"children":811},{},[812,822,832],{"type":44,"tag":470,"props":813,"children":814},{},[815,820],{"type":44,"tag":64,"props":816,"children":817},{},[818],{"type":50,"value":819},"Material adverse changes",{"type":50,"value":821}," (right to terminate on material degradation, notice-only, unrestricted)",{"type":44,"tag":470,"props":823,"children":824},{},[825,830],{"type":44,"tag":64,"props":826,"children":827},{},[828],{"type":50,"value":829},"Deprecation notice period",{"type":50,"value":831}," for features the team relies on",{"type":44,"tag":470,"props":833,"children":834},{},[835,840],{"type":44,"tag":64,"props":836,"children":837},{},[838],{"type":50,"value":839},"Feature parity on replacement",{"type":50,"value":841}," (same price tier, higher tier)",{"type":44,"tag":53,"props":843,"children":845},{"id":844},"ai-and-machine-learning-rights",[846],{"type":50,"value":847},"AI and machine learning rights",{"type":44,"tag":60,"props":849,"children":850},{},[851,856],{"type":44,"tag":64,"props":852,"children":853},{},[854],{"type":50,"value":855},"AI\u002FML data rights decision procedure.",{"type":50,"value":857}," Don't just check whether an AI training clause exists. The #1 emerging negotiation point in SaaS contracts is structurally more than a one-line existence check. Work through:",{"type":44,"tag":859,"props":860,"children":861},"ol",{},[862,872,882,892,902,912,922],{"type":44,"tag":470,"props":863,"children":864},{},[865,870],{"type":44,"tag":64,"props":866,"children":867},{},[868],{"type":50,"value":869},"Explicit grant.",{"type":50,"value":871}," Does the contract explicitly grant the vendor rights to use Customer Data \u002F Customer Content \u002F Usage Data for AI training, model improvement, or ML development? Purchasing-side: this is usually a NO — customer data training the vendor's models means the customer is subsidizing the vendor's product and possibly leaking competitive information. Sales-side: this is revenue if you get it, reputation risk if you abuse it.",{"type":44,"tag":470,"props":873,"children":874},{},[875,880],{"type":44,"tag":64,"props":876,"children":877},{},[878],{"type":50,"value":879},"Implicit grant via policy.",{"type":50,"value":881}," Does the contract incorporate the vendor's privacy policy or terms of service by reference? Can the vendor add training rights via a unilateral policy update? Check: \"The parties agree to the Provider's Privacy Policy as updated from time to time\" is a training-rights grant waiting to happen. Also watch for \"service improvement\" or \"analytics\" catch-alls and \"usage data\" definitions that carve logs\u002Ftelemetry out of the Customer Data definition so data-use restrictions don't apply.",{"type":44,"tag":470,"props":883,"children":884},{},[885,890],{"type":44,"tag":64,"props":886,"children":887},{},[888],{"type":50,"value":889},"Anonymization standard.",{"type":50,"value":891}," If the vendor claims it only trains on \"anonymized\" or \"aggregated\" data, what's the standard? \"Anonymized\" without a definition is weak. Does it meet GDPR Recital 26 \u002F HIPAA Safe Harbor \u002F a named standard? Is it reversible?",{"type":44,"tag":470,"props":893,"children":894},{},[895,900],{"type":44,"tag":64,"props":896,"children":897},{},[898],{"type":50,"value":899},"Competitive contamination.",{"type":50,"value":901}," Does the vendor serve your competitors? If so, training on your data could leak competitive intelligence into outputs your competitors see. Is there a competitive isolation commitment?",{"type":44,"tag":470,"props":903,"children":904},{},[905,910],{"type":44,"tag":64,"props":906,"children":907},{},[908],{"type":50,"value":909},"Opt-out scope and durability.",{"type":50,"value":911}," If there's an opt-out, does it cover all AI uses or only some? Does it survive renewals and TOS updates? Is it per-user or per-org? Many vendors default to training and offer an opt-out buried in an admin console — check whether the contract makes the default explicit.",{"type":44,"tag":470,"props":913,"children":914},{},[915,920],{"type":44,"tag":64,"props":916,"children":917},{},[918],{"type":50,"value":919},"Output ownership.",{"type":50,"value":921}," If the SaaS product is itself AI-generated (drafting, summarization, analysis), who owns the outputs? Can the vendor use your outputs as training examples? Check third-party AI subprocessors too — the vendor may send customer data to a third-party LLM (OpenAI, Anthropic, Google) and the subprocessor list \u002F data flow is where that shows up.",{"type":44,"tag":470,"props":923,"children":924},{},[925,930,932,937],{"type":44,"tag":64,"props":926,"children":927},{},[928],{"type":50,"value":929},"Downstream regulatory chain.",{"type":50,"value":931}," Does the vendor's use of your data for AI create regulatory exposure for YOU? EU AI Act deployer obligations, FTC §5 undisclosed data-sharing exposure (see ",{"type":44,"tag":738,"props":933,"children":934},{},[935],{"type":50,"value":936},"FTC v. Humor Rainbow\u002FOkCupid",{"type":50,"value":938},"), state AI laws.",{"type":44,"tag":60,"props":940,"children":941},{},[942,944,950],{"type":50,"value":943},"Match each to a playbook position. The practice profile's ",{"type":44,"tag":72,"props":945,"children":947},{"className":946},[],[948],{"type":50,"value":949},"## AI\u002FML training rights",{"type":50,"value":951}," section should have positions for each. If the agreement is silent on all seven, that's still a finding: \"The agreement is silent on AI\u002FML training rights — request an explicit prohibition or a defined carve-out tied to each of the seven dimensions above.\"",{"type":44,"tag":53,"props":953,"children":955},{"id":954},"liability-cap-decision-procedure",[956],{"type":50,"value":957},"Liability cap decision procedure",{"type":44,"tag":60,"props":959,"children":960},{},[961,966],{"type":44,"tag":64,"props":962,"children":963},{},[964],{"type":50,"value":965},"The cap amount is the least important part of the cap.",{"type":50,"value":967}," Limitation-of-liability is not a single \"check against playbook\" item. Work through:",{"type":44,"tag":859,"props":969,"children":970},{},[971,981,1012,1036],{"type":44,"tag":470,"props":972,"children":973},{},[974,979],{"type":44,"tag":64,"props":975,"children":976},{},[977],{"type":50,"value":978},"Direct vs. indirect\u002Fconsequential damages.",{"type":50,"value":980}," Does the cap apply to ALL liability, or only direct damages? A 12-month cap on direct damages with uncapped consequential damages is a completely different position than a 12-month aggregate cap. State both treatments explicitly.",{"type":44,"tag":470,"props":982,"children":983},{},[984,989,991,997,999,1004,1005,1010],{"type":44,"tag":64,"props":985,"children":986},{},[987],{"type":50,"value":988},"The cap base — quote it verbatim.",{"type":50,"value":990}," \"12-month cap\" could mean: (a) fees paid in the 12 months preceding the claim, (b) fees payable in the current 12-month period, (c) fees over the last 12 months of usage, (d) fees under the current order form, (e) total fees ever paid. These can differ by an order of magnitude. Quote the exact language. If ambiguous, flag it: \"Cap base is ambiguous — ",{"type":44,"tag":72,"props":992,"children":994},{"className":993},[],[995],{"type":50,"value":996},"[the quoted language]",{"type":50,"value":998}," — could mean ",{"type":44,"tag":204,"props":1000,"children":1001},{},[1002],{"type":50,"value":1003},"X",{"type":50,"value":320},{"type":44,"tag":204,"props":1006,"children":1007},{},[1008],{"type":50,"value":1009},"Y",{"type":50,"value":1011},". Confirm before signing.\"",{"type":44,"tag":470,"props":1013,"children":1014},{},[1015,1020,1022,1027,1029,1034],{"type":44,"tag":64,"props":1016,"children":1017},{},[1018],{"type":50,"value":1019},"Cap-carveout interaction.",{"type":50,"value":1021}," A $100K cap with uncapped indemnity for data breach, IP, and confidentiality is functionally uncapped for the claims that actually arise in SaaS disputes. Enumerate what sits ABOVE the cap (the carveouts), what sits BELOW (what's actually capped), and assess whether the capped surface is meaningful: \"The cap covers ",{"type":44,"tag":204,"props":1023,"children":1024},{},[1025],{"type":50,"value":1026},"general contract breach",{"type":50,"value":1028},". Data breach, IP indemnity, and confidentiality are carved out and uncapped. For this vendor's risk profile, the capped surface is ",{"type":44,"tag":204,"props":1030,"children":1031},{},[1032],{"type":50,"value":1033},"meaningful \u002F nominal",{"type":50,"value":1035},".\"",{"type":44,"tag":470,"props":1037,"children":1038},{},[1039,1044],{"type":44,"tag":64,"props":1040,"children":1041},{},[1042],{"type":50,"value":1043},"Your playbook position per dimension.",{"type":50,"value":1045}," The practice profile should have positions for: direct cap (multiple of fees), indirect damages (excluded \u002F capped \u002F uncapped), carveout list (what's acceptable above the cap), and cap base (which definition you'll accept). If the playbook has one \"standard position\" field, note: \"Your playbook has a single cap position — consider splitting into direct\u002Findirect\u002Fcarveouts\u002Fbase for more precise review.\"",{"type":44,"tag":53,"props":1047,"children":1049},{"id":1048},"jurisdiction-delta-check",[1050],{"type":50,"value":1051},"Jurisdiction delta check",{"type":44,"tag":60,"props":1053,"children":1054},{},[1055,1060],{"type":44,"tag":64,"props":1056,"children":1057},{},[1058],{"type":50,"value":1059},"The playbook applies one governing-law preference globally. Enforceability varies materially.",{"type":50,"value":1061}," Check the SaaS contract's actual governing law against the top divergences before accepting playbook positions at face value:",{"type":44,"tag":466,"props":1063,"children":1064},{},[1065,1081,1096,1111,1126],{"type":44,"tag":470,"props":1066,"children":1067},{},[1068,1073,1075],{"type":44,"tag":64,"props":1069,"children":1070},{},[1071],{"type":50,"value":1072},"Non-solicits\u002Fnon-competes:",{"type":50,"value":1074}," Unenforceable in CA (Bus. & Prof. Code §16600). Restricted in many EU jurisdictions. Enforceable with limitations elsewhere. ",{"type":44,"tag":72,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":50,"value":1080},"[jurisdiction — verify]",{"type":44,"tag":470,"props":1082,"children":1083},{},[1084,1089,1091],{"type":44,"tag":64,"props":1085,"children":1086},{},[1087],{"type":50,"value":1088},"Auto-renewal:",{"type":50,"value":1090}," CA GBL §17600-17606, NY GBL §527-a, IL 815 ILCS 601 have specific consumer\u002FB2B notice requirements. Other states vary. ",{"type":44,"tag":72,"props":1092,"children":1094},{"className":1093},[],[1095],{"type":50,"value":1080},{"type":44,"tag":470,"props":1097,"children":1098},{},[1099,1104,1106],{"type":44,"tag":64,"props":1100,"children":1101},{},[1102],{"type":50,"value":1103},"Liability exclusions:",{"type":50,"value":1105}," EU and UK unfair contract terms rules (UCTA 1977, Consumer Rights Act 2015) constrain consumer exclusions. Some US states limit exclusion of gross negligence or willful misconduct. ",{"type":44,"tag":72,"props":1107,"children":1109},{"className":1108},[],[1110],{"type":50,"value":1080},{"type":44,"tag":470,"props":1112,"children":1113},{},[1114,1119,1121],{"type":44,"tag":64,"props":1115,"children":1116},{},[1117],{"type":50,"value":1118},"Indemnification:",{"type":50,"value":1120}," Some states void indemnification for the indemnitee's own negligence. ",{"type":44,"tag":72,"props":1122,"children":1124},{"className":1123},[],[1125],{"type":50,"value":1080},{"type":44,"tag":470,"props":1127,"children":1128},{},[1129,1134,1136],{"type":44,"tag":64,"props":1130,"children":1131},{},[1132],{"type":50,"value":1133},"Confidentiality term:",{"type":50,"value":1135}," Some jurisdictions limit \"perpetual\" confidentiality to a reasonable period. ",{"type":44,"tag":72,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":50,"value":1080},{"type":44,"tag":60,"props":1142,"children":1143},{},[1144,1146,1150,1152,1156,1158,1162,1163,1168,1170,1175],{"type":50,"value":1145},"When the playbook position conflicts with the contract's governing-law enforceability, flag: \"Your playbook prefers ",{"type":44,"tag":204,"props":1147,"children":1148},{},[1149],{"type":50,"value":1003},{"type":50,"value":1151},", but this contract is governed by ",{"type":44,"tag":204,"props":1153,"children":1154},{},[1155],{"type":50,"value":1009},{"type":50,"value":1157}," law where ",{"type":44,"tag":204,"props":1159,"children":1160},{},[1161],{"type":50,"value":1003},{"type":50,"value":87},{"type":44,"tag":204,"props":1164,"children":1165},{},[1166],{"type":50,"value":1167},"unenforceable \u002F restricted \u002F subject to statutory override",{"type":50,"value":1169},". ",{"type":44,"tag":72,"props":1171,"children":1173},{"className":1172},[],[1174],{"type":50,"value":1080},{"type":50,"value":1176},"\"",{"type":44,"tag":53,"props":1178,"children":1180},{"id":1179},"redline-granularity",[1181],{"type":50,"value":1182},"Redline granularity",{"type":44,"tag":60,"props":1184,"children":1185},{},[1186,1191],{"type":44,"tag":64,"props":1187,"children":1188},{},[1189],{"type":50,"value":1190},"Edit at the smallest possible granularity.",{"type":50,"value":1192}," A redline is a negotiation artifact, not a rewrite. Wholesale clause replacement signals \"we threw out your drafting\" — it's aggressive, it forces the counterparty to re-read the whole clause, and it discards the parts of their drafting that were fine. Surgical redlines — strike a word, insert a phrase, restructure a subclause — signal \"we have specific asks\" and are faster to read, understand, and accept.",{"type":44,"tag":60,"props":1194,"children":1195},{},[1196],{"type":50,"value":1197},"Default to the smallest edit that achieves the playbook position:",{"type":44,"tag":466,"props":1199,"children":1200},{},[1201,1213,1224,1236,1247],{"type":44,"tag":470,"props":1202,"children":1203},{},[1204,1206,1211],{"type":50,"value":1205},"Replace a ",{"type":44,"tag":64,"props":1207,"children":1208},{},[1209],{"type":50,"value":1210},"word",{"type":50,"value":1212}," before a phrase. (\"twelve (12)\" → \"twenty-four (24)\")",{"type":44,"tag":470,"props":1214,"children":1215},{},[1216,1217,1222],{"type":50,"value":1205},{"type":44,"tag":64,"props":1218,"children":1219},{},[1220],{"type":50,"value":1221},"phrase",{"type":50,"value":1223}," before a sentence. (\"paid by the Buyer\" → \"paid and payable by the Buyer\")",{"type":44,"tag":470,"props":1225,"children":1226},{},[1227,1229,1234],{"type":50,"value":1228},"Restructure a ",{"type":44,"tag":64,"props":1230,"children":1231},{},[1232],{"type":50,"value":1233},"subclause",{"type":50,"value":1235}," before replacing the sentence. (Add \"(a)\" and \"(b)\" to split a compound condition.)",{"type":44,"tag":470,"props":1237,"children":1238},{},[1239,1240,1245],{"type":50,"value":1205},{"type":44,"tag":64,"props":1241,"children":1242},{},[1243],{"type":50,"value":1244},"sentence",{"type":50,"value":1246}," before replacing the clause.",{"type":44,"tag":470,"props":1248,"children":1249},{},[1250,1252,1257],{"type":50,"value":1251},"Only replace a ",{"type":44,"tag":64,"props":1253,"children":1254},{},[1255],{"type":50,"value":1256},"whole clause",{"type":50,"value":1258}," when the counterparty's version is so far from your position that surgical edits would be harder to read than a fresh draft — and when you do, say so in the transmittal: \"We've replaced §8.2 rather than marking it up because the changes were extensive. Happy to walk you through the delta.\"",{"type":44,"tag":60,"props":1260,"children":1261},{},[1262],{"type":50,"value":1263},"When in doubt, smaller. A client who receives a surgical redline trusts that you read carefully. A client who receives a wholesale replacement wonders whether you read at all.",{"type":44,"tag":53,"props":1265,"children":1267},{"id":1266},"output",[1268],{"type":50,"value":1269},"Output",{"type":44,"tag":60,"props":1271,"children":1272},{},[1273],{"type":50,"value":1274},"Use the vendor-agreement-review memo structure, with a SaaS-specific section added after the standard playbook checks. The vendor-agreement-review memo already carries the privilege header.",{"type":44,"tag":60,"props":1276,"children":1277},{},[1278,1283,1285,1291],{"type":44,"tag":64,"props":1279,"children":1280},{},[1281],{"type":50,"value":1282},"Dual severity.",{"type":50,"value":1284}," Every SaaS-specific finding carries both axes (see CLAUDE.md ",{"type":44,"tag":72,"props":1286,"children":1288},{"className":1287},[],[1289],{"type":50,"value":1290},"## Dual severity",{"type":50,"value":1292},"):",{"type":44,"tag":466,"props":1294,"children":1295},{},[1296,1306],{"type":44,"tag":470,"props":1297,"children":1298},{},[1299,1304],{"type":44,"tag":64,"props":1300,"children":1301},{},[1302],{"type":50,"value":1303},"Legal risk:",{"type":50,"value":1305}," 🔴 Critical | 🟠 High | 🟡 Medium | 🟢 Low",{"type":44,"tag":470,"props":1307,"children":1308},{},[1309,1314],{"type":44,"tag":64,"props":1310,"children":1311},{},[1312],{"type":50,"value":1313},"Business friction:",{"type":50,"value":1315}," 🔴 Blocks deals | 🟠 Slows deals | 🟡 Confuses customers | 🟢 Invisible",{"type":44,"tag":60,"props":1317,"children":1318},{},[1319],{"type":50,"value":1320},"Data-exit, auto-renewal, and price-escalation findings are the ones most likely to be 🟢 legal \u002F 🔴 business — the clause is enforceable, but it's the reason a customer can't leave or a renewal surprises finance. Surface those at the business-friction severity, not the legal one.",{"type":44,"tag":1322,"props":1323,"children":1328},"pre",{"className":1324,"code":1325,"language":1326,"meta":1327,"style":1327},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","### Bottom line\n\n[Can you sign \u002F Need to fight for X first \u002F Walk — one-sentence why]\n\n### AI and machine learning rights\n\n[The #1 emerging SaaS negotiation point. Flag: explicit ML training clauses, \"service improvement\" catch-alls, usage data definitions, output ownership, third-party AI subprocessors, opt-out vs opt-in. If the agreement is silent: \"Silent on AI\u002FML training rights — request explicit prohibition or defined carve-out.\"]\n\n## SaaS-specific findings\n\n### Auto-renewal\n**Renewal date:** [date]\n**Notice window:** Cancel by [date] ([N] days before renewal)\n**Renewal price mechanism:** [as written]\n**Playbook fit:** [within position \u002F deviation \u002F not addressed]\n**Flag for renewal-tracker:** [yes — and the record the tracker needs]\n\n### Price escalation\n[findings against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` positions]\n\n### Data exit\n[findings — this is the one the business owner should read]\n\n### SLA\n[findings, or \"Skipped — service is not business-critical per [stakeholder]\"]\n\n### Subprocessors\n[findings against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` positions]\n\n### Service changes\n[findings against `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcommercial-legal\u002FCLAUDE.md` positions]\n","markdown","",[1329],{"type":44,"tag":72,"props":1330,"children":1331},{"__ignoreMap":1327},[1332,1349,1359,1369,1377,1390,1398,1407,1415,1429,1437,1450,1486,1544,1566,1588,1610,1618,1631,1658,1666,1679,1688,1696,1709,1736,1744,1757,1781,1789,1802],{"type":44,"tag":204,"props":1333,"children":1336},{"class":1334,"line":1335},"line",1,[1337,1343],{"type":44,"tag":204,"props":1338,"children":1340},{"style":1339},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1341],{"type":50,"value":1342},"### ",{"type":44,"tag":204,"props":1344,"children":1346},{"style":1345},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1347],{"type":50,"value":1348},"Bottom line\n",{"type":44,"tag":204,"props":1350,"children":1352},{"class":1334,"line":1351},2,[1353],{"type":44,"tag":204,"props":1354,"children":1356},{"emptyLinePlaceholder":1355},true,[1357],{"type":50,"value":1358},"\n",{"type":44,"tag":204,"props":1360,"children":1362},{"class":1334,"line":1361},3,[1363],{"type":44,"tag":204,"props":1364,"children":1366},{"style":1365},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1367],{"type":50,"value":1368},"[Can you sign \u002F Need to fight for X first \u002F Walk — one-sentence why]\n",{"type":44,"tag":204,"props":1370,"children":1372},{"class":1334,"line":1371},4,[1373],{"type":44,"tag":204,"props":1374,"children":1375},{"emptyLinePlaceholder":1355},[1376],{"type":50,"value":1358},{"type":44,"tag":204,"props":1378,"children":1380},{"class":1334,"line":1379},5,[1381,1385],{"type":44,"tag":204,"props":1382,"children":1383},{"style":1339},[1384],{"type":50,"value":1342},{"type":44,"tag":204,"props":1386,"children":1387},{"style":1345},[1388],{"type":50,"value":1389},"AI and machine learning rights\n",{"type":44,"tag":204,"props":1391,"children":1393},{"class":1334,"line":1392},6,[1394],{"type":44,"tag":204,"props":1395,"children":1396},{"emptyLinePlaceholder":1355},[1397],{"type":50,"value":1358},{"type":44,"tag":204,"props":1399,"children":1401},{"class":1334,"line":1400},7,[1402],{"type":44,"tag":204,"props":1403,"children":1404},{"style":1365},[1405],{"type":50,"value":1406},"[The #1 emerging SaaS negotiation point. Flag: explicit ML training clauses, \"service improvement\" catch-alls, usage data definitions, output ownership, third-party AI subprocessors, opt-out vs opt-in. If the agreement is silent: \"Silent on AI\u002FML training rights — request explicit prohibition or defined carve-out.\"]\n",{"type":44,"tag":204,"props":1408,"children":1410},{"class":1334,"line":1409},8,[1411],{"type":44,"tag":204,"props":1412,"children":1413},{"emptyLinePlaceholder":1355},[1414],{"type":50,"value":1358},{"type":44,"tag":204,"props":1416,"children":1418},{"class":1334,"line":1417},9,[1419,1424],{"type":44,"tag":204,"props":1420,"children":1421},{"style":1339},[1422],{"type":50,"value":1423},"## ",{"type":44,"tag":204,"props":1425,"children":1426},{"style":1345},[1427],{"type":50,"value":1428},"SaaS-specific findings\n",{"type":44,"tag":204,"props":1430,"children":1432},{"class":1334,"line":1431},10,[1433],{"type":44,"tag":204,"props":1434,"children":1435},{"emptyLinePlaceholder":1355},[1436],{"type":50,"value":1358},{"type":44,"tag":204,"props":1438,"children":1440},{"class":1334,"line":1439},11,[1441,1445],{"type":44,"tag":204,"props":1442,"children":1443},{"style":1339},[1444],{"type":50,"value":1342},{"type":44,"tag":204,"props":1446,"children":1447},{"style":1345},[1448],{"type":50,"value":1449},"Auto-renewal\n",{"type":44,"tag":204,"props":1451,"children":1453},{"class":1334,"line":1452},12,[1454,1460,1466,1470,1475,1481],{"type":44,"tag":204,"props":1455,"children":1457},{"style":1456},"--shiki-light:#39ADB5;--shiki-light-font-weight:bold;--shiki-default:#89DDFF;--shiki-default-font-weight:bold;--shiki-dark:#89DDFF;--shiki-dark-font-weight:bold",[1458],{"type":50,"value":1459},"**",{"type":44,"tag":204,"props":1461,"children":1463},{"style":1462},"--shiki-light:#E53935;--shiki-light-font-weight:bold;--shiki-default:#F07178;--shiki-default-font-weight:bold;--shiki-dark:#F07178;--shiki-dark-font-weight:bold",[1464],{"type":50,"value":1465},"Renewal date:",{"type":44,"tag":204,"props":1467,"children":1468},{"style":1456},[1469],{"type":50,"value":1459},{"type":44,"tag":204,"props":1471,"children":1472},{"style":1339},[1473],{"type":50,"value":1474}," [",{"type":44,"tag":204,"props":1476,"children":1478},{"style":1477},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1479],{"type":50,"value":1480},"date",{"type":44,"tag":204,"props":1482,"children":1483},{"style":1339},[1484],{"type":50,"value":1485},"]\n",{"type":44,"tag":204,"props":1487,"children":1489},{"class":1334,"line":1488},13,[1490,1494,1499,1503,1508,1513,1517,1522,1527,1531,1535,1539],{"type":44,"tag":204,"props":1491,"children":1492},{"style":1456},[1493],{"type":50,"value":1459},{"type":44,"tag":204,"props":1495,"children":1496},{"style":1462},[1497],{"type":50,"value":1498},"Notice window:",{"type":44,"tag":204,"props":1500,"children":1501},{"style":1456},[1502],{"type":50,"value":1459},{"type":44,"tag":204,"props":1504,"children":1505},{"style":1365},[1506],{"type":50,"value":1507}," Cancel by ",{"type":44,"tag":204,"props":1509,"children":1510},{"style":1339},[1511],{"type":50,"value":1512},"[",{"type":44,"tag":204,"props":1514,"children":1515},{"style":1477},[1516],{"type":50,"value":1480},{"type":44,"tag":204,"props":1518,"children":1519},{"style":1339},[1520],{"type":50,"value":1521},"]",{"type":44,"tag":204,"props":1523,"children":1524},{"style":1365},[1525],{"type":50,"value":1526}," (",{"type":44,"tag":204,"props":1528,"children":1529},{"style":1339},[1530],{"type":50,"value":1512},{"type":44,"tag":204,"props":1532,"children":1533},{"style":1477},[1534],{"type":50,"value":208},{"type":44,"tag":204,"props":1536,"children":1537},{"style":1339},[1538],{"type":50,"value":1521},{"type":44,"tag":204,"props":1540,"children":1541},{"style":1365},[1542],{"type":50,"value":1543}," days before renewal)\n",{"type":44,"tag":204,"props":1545,"children":1547},{"class":1334,"line":1546},14,[1548,1552,1557,1561],{"type":44,"tag":204,"props":1549,"children":1550},{"style":1456},[1551],{"type":50,"value":1459},{"type":44,"tag":204,"props":1553,"children":1554},{"style":1462},[1555],{"type":50,"value":1556},"Renewal price mechanism:",{"type":44,"tag":204,"props":1558,"children":1559},{"style":1456},[1560],{"type":50,"value":1459},{"type":44,"tag":204,"props":1562,"children":1563},{"style":1365},[1564],{"type":50,"value":1565}," [as written]\n",{"type":44,"tag":204,"props":1567,"children":1569},{"class":1334,"line":1568},15,[1570,1574,1579,1583],{"type":44,"tag":204,"props":1571,"children":1572},{"style":1456},[1573],{"type":50,"value":1459},{"type":44,"tag":204,"props":1575,"children":1576},{"style":1462},[1577],{"type":50,"value":1578},"Playbook fit:",{"type":44,"tag":204,"props":1580,"children":1581},{"style":1456},[1582],{"type":50,"value":1459},{"type":44,"tag":204,"props":1584,"children":1585},{"style":1365},[1586],{"type":50,"value":1587}," [within position \u002F deviation \u002F not addressed]\n",{"type":44,"tag":204,"props":1589,"children":1591},{"class":1334,"line":1590},16,[1592,1596,1601,1605],{"type":44,"tag":204,"props":1593,"children":1594},{"style":1456},[1595],{"type":50,"value":1459},{"type":44,"tag":204,"props":1597,"children":1598},{"style":1462},[1599],{"type":50,"value":1600},"Flag for renewal-tracker:",{"type":44,"tag":204,"props":1602,"children":1603},{"style":1456},[1604],{"type":50,"value":1459},{"type":44,"tag":204,"props":1606,"children":1607},{"style":1365},[1608],{"type":50,"value":1609}," [yes — and the record the tracker needs]\n",{"type":44,"tag":204,"props":1611,"children":1613},{"class":1334,"line":1612},17,[1614],{"type":44,"tag":204,"props":1615,"children":1616},{"emptyLinePlaceholder":1355},[1617],{"type":50,"value":1358},{"type":44,"tag":204,"props":1619,"children":1621},{"class":1334,"line":1620},18,[1622,1626],{"type":44,"tag":204,"props":1623,"children":1624},{"style":1339},[1625],{"type":50,"value":1342},{"type":44,"tag":204,"props":1627,"children":1628},{"style":1345},[1629],{"type":50,"value":1630},"Price escalation\n",{"type":44,"tag":204,"props":1632,"children":1634},{"class":1334,"line":1633},19,[1635,1640,1645,1649,1653],{"type":44,"tag":204,"props":1636,"children":1637},{"style":1365},[1638],{"type":50,"value":1639},"[findings against ",{"type":44,"tag":204,"props":1641,"children":1642},{"style":1339},[1643],{"type":50,"value":1644},"`",{"type":44,"tag":204,"props":1646,"children":1647},{"style":1477},[1648],{"type":50,"value":168},{"type":44,"tag":204,"props":1650,"children":1651},{"style":1339},[1652],{"type":50,"value":1644},{"type":44,"tag":204,"props":1654,"children":1655},{"style":1365},[1656],{"type":50,"value":1657}," positions]\n",{"type":44,"tag":204,"props":1659,"children":1661},{"class":1334,"line":1660},20,[1662],{"type":44,"tag":204,"props":1663,"children":1664},{"emptyLinePlaceholder":1355},[1665],{"type":50,"value":1358},{"type":44,"tag":204,"props":1667,"children":1669},{"class":1334,"line":1668},21,[1670,1674],{"type":44,"tag":204,"props":1671,"children":1672},{"style":1339},[1673],{"type":50,"value":1342},{"type":44,"tag":204,"props":1675,"children":1676},{"style":1345},[1677],{"type":50,"value":1678},"Data exit\n",{"type":44,"tag":204,"props":1680,"children":1682},{"class":1334,"line":1681},22,[1683],{"type":44,"tag":204,"props":1684,"children":1685},{"style":1365},[1686],{"type":50,"value":1687},"[findings — this is the one the business owner should read]\n",{"type":44,"tag":204,"props":1689,"children":1691},{"class":1334,"line":1690},23,[1692],{"type":44,"tag":204,"props":1693,"children":1694},{"emptyLinePlaceholder":1355},[1695],{"type":50,"value":1358},{"type":44,"tag":204,"props":1697,"children":1699},{"class":1334,"line":1698},24,[1700,1704],{"type":44,"tag":204,"props":1701,"children":1702},{"style":1339},[1703],{"type":50,"value":1342},{"type":44,"tag":204,"props":1705,"children":1706},{"style":1345},[1707],{"type":50,"value":1708},"SLA\n",{"type":44,"tag":204,"props":1710,"children":1712},{"class":1334,"line":1711},25,[1713,1718,1722,1727,1731],{"type":44,"tag":204,"props":1714,"children":1715},{"style":1365},[1716],{"type":50,"value":1717},"[findings, or \"Skipped — service is not business-critical per ",{"type":44,"tag":204,"props":1719,"children":1720},{"style":1339},[1721],{"type":50,"value":1512},{"type":44,"tag":204,"props":1723,"children":1724},{"style":1477},[1725],{"type":50,"value":1726},"stakeholder",{"type":44,"tag":204,"props":1728,"children":1729},{"style":1339},[1730],{"type":50,"value":1521},{"type":44,"tag":204,"props":1732,"children":1733},{"style":1365},[1734],{"type":50,"value":1735},"\"]\n",{"type":44,"tag":204,"props":1737,"children":1739},{"class":1334,"line":1738},26,[1740],{"type":44,"tag":204,"props":1741,"children":1742},{"emptyLinePlaceholder":1355},[1743],{"type":50,"value":1358},{"type":44,"tag":204,"props":1745,"children":1747},{"class":1334,"line":1746},27,[1748,1752],{"type":44,"tag":204,"props":1749,"children":1750},{"style":1339},[1751],{"type":50,"value":1342},{"type":44,"tag":204,"props":1753,"children":1754},{"style":1345},[1755],{"type":50,"value":1756},"Subprocessors\n",{"type":44,"tag":204,"props":1758,"children":1760},{"class":1334,"line":1759},28,[1761,1765,1769,1773,1777],{"type":44,"tag":204,"props":1762,"children":1763},{"style":1365},[1764],{"type":50,"value":1639},{"type":44,"tag":204,"props":1766,"children":1767},{"style":1339},[1768],{"type":50,"value":1644},{"type":44,"tag":204,"props":1770,"children":1771},{"style":1477},[1772],{"type":50,"value":168},{"type":44,"tag":204,"props":1774,"children":1775},{"style":1339},[1776],{"type":50,"value":1644},{"type":44,"tag":204,"props":1778,"children":1779},{"style":1365},[1780],{"type":50,"value":1657},{"type":44,"tag":204,"props":1782,"children":1784},{"class":1334,"line":1783},29,[1785],{"type":44,"tag":204,"props":1786,"children":1787},{"emptyLinePlaceholder":1355},[1788],{"type":50,"value":1358},{"type":44,"tag":204,"props":1790,"children":1792},{"class":1334,"line":1791},30,[1793,1797],{"type":44,"tag":204,"props":1794,"children":1795},{"style":1339},[1796],{"type":50,"value":1342},{"type":44,"tag":204,"props":1798,"children":1799},{"style":1345},[1800],{"type":50,"value":1801},"Service changes\n",{"type":44,"tag":204,"props":1803,"children":1805},{"class":1334,"line":1804},31,[1806,1810,1814,1818,1822],{"type":44,"tag":204,"props":1807,"children":1808},{"style":1365},[1809],{"type":50,"value":1639},{"type":44,"tag":204,"props":1811,"children":1812},{"style":1339},[1813],{"type":50,"value":1644},{"type":44,"tag":204,"props":1815,"children":1816},{"style":1477},[1817],{"type":50,"value":168},{"type":44,"tag":204,"props":1819,"children":1820},{"style":1339},[1821],{"type":50,"value":1644},{"type":44,"tag":204,"props":1823,"children":1824},{"style":1365},[1825],{"type":50,"value":1657},{"type":44,"tag":53,"props":1827,"children":1829},{"id":1828},"handoffs",[1830],{"type":50,"value":1831},"Handoffs",{"type":44,"tag":60,"props":1833,"children":1834},{},[1835,1840,1842,1848],{"type":44,"tag":64,"props":1836,"children":1837},{},[1838],{"type":50,"value":1839},"To renewal-tracker:",{"type":50,"value":1841}," When you find the renewal date and notice window, hand them off. The renewal-tracker register expects the following fields (see ",{"type":44,"tag":72,"props":1843,"children":1845},{"className":1844},[],[1846],{"type":50,"value":1847},"skills\u002Frenewal-tracker\u002Freferences\u002Frenewal-register.yaml",{"type":50,"value":1849}," for the full schema):",{"type":44,"tag":1322,"props":1851,"children":1855},{"className":1852,"code":1853,"language":1854,"meta":1327,"style":1327},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","counterparty:         [name]\nagreement:            [title]\nsigned_date:          [ISO date]\ninitial_term_end:     [ISO date]\nrenewal_mechanism:    [e.g., \"auto-renew annual\"]\nnotice_period_days:   [integer]\ncancel_by_effective:            [ISO date — initial_term_end minus notice_period_days]\nprice_on_renewal:     [mechanism as written]\nannual_value:         [integer, if stated]\nbusiness_owner:       [email, if known]\nclm_id:               [id if available]\nstatus:               active\n","yaml",[1856],{"type":44,"tag":72,"props":1857,"children":1858},{"__ignoreMap":1327},[1859,1886,1912,1938,1963,2008,2034,2059,2084,2117,2152,2178],{"type":44,"tag":204,"props":1860,"children":1861},{"class":1334,"line":1335},[1862,1868,1872,1877,1882],{"type":44,"tag":204,"props":1863,"children":1865},{"style":1864},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1866],{"type":50,"value":1867},"counterparty",{"type":44,"tag":204,"props":1869,"children":1870},{"style":1339},[1871],{"type":50,"value":464},{"type":44,"tag":204,"props":1873,"children":1874},{"style":1339},[1875],{"type":50,"value":1876},"         [",{"type":44,"tag":204,"props":1878,"children":1879},{"style":1477},[1880],{"type":50,"value":1881},"name",{"type":44,"tag":204,"props":1883,"children":1884},{"style":1339},[1885],{"type":50,"value":1485},{"type":44,"tag":204,"props":1887,"children":1888},{"class":1334,"line":1351},[1889,1894,1898,1903,1908],{"type":44,"tag":204,"props":1890,"children":1891},{"style":1864},[1892],{"type":50,"value":1893},"agreement",{"type":44,"tag":204,"props":1895,"children":1896},{"style":1339},[1897],{"type":50,"value":464},{"type":44,"tag":204,"props":1899,"children":1900},{"style":1339},[1901],{"type":50,"value":1902},"            [",{"type":44,"tag":204,"props":1904,"children":1905},{"style":1477},[1906],{"type":50,"value":1907},"title",{"type":44,"tag":204,"props":1909,"children":1910},{"style":1339},[1911],{"type":50,"value":1485},{"type":44,"tag":204,"props":1913,"children":1914},{"class":1334,"line":1361},[1915,1920,1924,1929,1934],{"type":44,"tag":204,"props":1916,"children":1917},{"style":1864},[1918],{"type":50,"value":1919},"signed_date",{"type":44,"tag":204,"props":1921,"children":1922},{"style":1339},[1923],{"type":50,"value":464},{"type":44,"tag":204,"props":1925,"children":1926},{"style":1339},[1927],{"type":50,"value":1928},"          [",{"type":44,"tag":204,"props":1930,"children":1931},{"style":1477},[1932],{"type":50,"value":1933},"ISO date",{"type":44,"tag":204,"props":1935,"children":1936},{"style":1339},[1937],{"type":50,"value":1485},{"type":44,"tag":204,"props":1939,"children":1940},{"class":1334,"line":1371},[1941,1946,1950,1955,1959],{"type":44,"tag":204,"props":1942,"children":1943},{"style":1864},[1944],{"type":50,"value":1945},"initial_term_end",{"type":44,"tag":204,"props":1947,"children":1948},{"style":1339},[1949],{"type":50,"value":464},{"type":44,"tag":204,"props":1951,"children":1952},{"style":1339},[1953],{"type":50,"value":1954},"     [",{"type":44,"tag":204,"props":1956,"children":1957},{"style":1477},[1958],{"type":50,"value":1933},{"type":44,"tag":204,"props":1960,"children":1961},{"style":1339},[1962],{"type":50,"value":1485},{"type":44,"tag":204,"props":1964,"children":1965},{"class":1334,"line":1379},[1966,1971,1975,1980,1985,1990,1995,2000,2004],{"type":44,"tag":204,"props":1967,"children":1968},{"style":1864},[1969],{"type":50,"value":1970},"renewal_mechanism",{"type":44,"tag":204,"props":1972,"children":1973},{"style":1339},[1974],{"type":50,"value":464},{"type":44,"tag":204,"props":1976,"children":1977},{"style":1339},[1978],{"type":50,"value":1979},"    [",{"type":44,"tag":204,"props":1981,"children":1982},{"style":1477},[1983],{"type":50,"value":1984},"e.g.",{"type":44,"tag":204,"props":1986,"children":1987},{"style":1339},[1988],{"type":50,"value":1989},",",{"type":44,"tag":204,"props":1991,"children":1992},{"style":1339},[1993],{"type":50,"value":1994}," \"",{"type":44,"tag":204,"props":1996,"children":1997},{"style":1477},[1998],{"type":50,"value":1999},"auto-renew annual",{"type":44,"tag":204,"props":2001,"children":2002},{"style":1339},[2003],{"type":50,"value":1176},{"type":44,"tag":204,"props":2005,"children":2006},{"style":1339},[2007],{"type":50,"value":1485},{"type":44,"tag":204,"props":2009,"children":2010},{"class":1334,"line":1392},[2011,2016,2020,2025,2030],{"type":44,"tag":204,"props":2012,"children":2013},{"style":1864},[2014],{"type":50,"value":2015},"notice_period_days",{"type":44,"tag":204,"props":2017,"children":2018},{"style":1339},[2019],{"type":50,"value":464},{"type":44,"tag":204,"props":2021,"children":2022},{"style":1339},[2023],{"type":50,"value":2024},"   [",{"type":44,"tag":204,"props":2026,"children":2027},{"style":1477},[2028],{"type":50,"value":2029},"integer",{"type":44,"tag":204,"props":2031,"children":2032},{"style":1339},[2033],{"type":50,"value":1485},{"type":44,"tag":204,"props":2035,"children":2036},{"class":1334,"line":1400},[2037,2042,2046,2050,2055],{"type":44,"tag":204,"props":2038,"children":2039},{"style":1864},[2040],{"type":50,"value":2041},"cancel_by_effective",{"type":44,"tag":204,"props":2043,"children":2044},{"style":1339},[2045],{"type":50,"value":464},{"type":44,"tag":204,"props":2047,"children":2048},{"style":1339},[2049],{"type":50,"value":1902},{"type":44,"tag":204,"props":2051,"children":2052},{"style":1477},[2053],{"type":50,"value":2054},"ISO date — initial_term_end minus notice_period_days",{"type":44,"tag":204,"props":2056,"children":2057},{"style":1339},[2058],{"type":50,"value":1485},{"type":44,"tag":204,"props":2060,"children":2061},{"class":1334,"line":1409},[2062,2067,2071,2075,2080],{"type":44,"tag":204,"props":2063,"children":2064},{"style":1864},[2065],{"type":50,"value":2066},"price_on_renewal",{"type":44,"tag":204,"props":2068,"children":2069},{"style":1339},[2070],{"type":50,"value":464},{"type":44,"tag":204,"props":2072,"children":2073},{"style":1339},[2074],{"type":50,"value":1954},{"type":44,"tag":204,"props":2076,"children":2077},{"style":1477},[2078],{"type":50,"value":2079},"mechanism as written",{"type":44,"tag":204,"props":2081,"children":2082},{"style":1339},[2083],{"type":50,"value":1485},{"type":44,"tag":204,"props":2085,"children":2086},{"class":1334,"line":1417},[2087,2092,2096,2100,2104,2108,2113],{"type":44,"tag":204,"props":2088,"children":2089},{"style":1864},[2090],{"type":50,"value":2091},"annual_value",{"type":44,"tag":204,"props":2093,"children":2094},{"style":1339},[2095],{"type":50,"value":464},{"type":44,"tag":204,"props":2097,"children":2098},{"style":1339},[2099],{"type":50,"value":1876},{"type":44,"tag":204,"props":2101,"children":2102},{"style":1477},[2103],{"type":50,"value":2029},{"type":44,"tag":204,"props":2105,"children":2106},{"style":1339},[2107],{"type":50,"value":1989},{"type":44,"tag":204,"props":2109,"children":2110},{"style":1477},[2111],{"type":50,"value":2112}," if stated",{"type":44,"tag":204,"props":2114,"children":2115},{"style":1339},[2116],{"type":50,"value":1485},{"type":44,"tag":204,"props":2118,"children":2119},{"class":1334,"line":1431},[2120,2125,2129,2134,2139,2143,2148],{"type":44,"tag":204,"props":2121,"children":2122},{"style":1864},[2123],{"type":50,"value":2124},"business_owner",{"type":44,"tag":204,"props":2126,"children":2127},{"style":1339},[2128],{"type":50,"value":464},{"type":44,"tag":204,"props":2130,"children":2131},{"style":1339},[2132],{"type":50,"value":2133},"       [",{"type":44,"tag":204,"props":2135,"children":2136},{"style":1477},[2137],{"type":50,"value":2138},"email",{"type":44,"tag":204,"props":2140,"children":2141},{"style":1339},[2142],{"type":50,"value":1989},{"type":44,"tag":204,"props":2144,"children":2145},{"style":1477},[2146],{"type":50,"value":2147}," if known",{"type":44,"tag":204,"props":2149,"children":2150},{"style":1339},[2151],{"type":50,"value":1485},{"type":44,"tag":204,"props":2153,"children":2154},{"class":1334,"line":1439},[2155,2160,2164,2169,2174],{"type":44,"tag":204,"props":2156,"children":2157},{"style":1864},[2158],{"type":50,"value":2159},"clm_id",{"type":44,"tag":204,"props":2161,"children":2162},{"style":1339},[2163],{"type":50,"value":464},{"type":44,"tag":204,"props":2165,"children":2166},{"style":1339},[2167],{"type":50,"value":2168},"               [",{"type":44,"tag":204,"props":2170,"children":2171},{"style":1477},[2172],{"type":50,"value":2173},"id if available",{"type":44,"tag":204,"props":2175,"children":2176},{"style":1339},[2177],{"type":50,"value":1485},{"type":44,"tag":204,"props":2179,"children":2180},{"class":1334,"line":1452},[2181,2186,2190],{"type":44,"tag":204,"props":2182,"children":2183},{"style":1864},[2184],{"type":50,"value":2185},"status",{"type":44,"tag":204,"props":2187,"children":2188},{"style":1339},[2189],{"type":50,"value":464},{"type":44,"tag":204,"props":2191,"children":2192},{"style":1477},[2193],{"type":50,"value":2194},"               active\n",{"type":44,"tag":60,"props":2196,"children":2197},{},[2198,2200,2205,2206,2211,2213,2218],{"type":50,"value":2199},"If any field is not determinable from the contract or context, leave it out and note which fields were missing so the human can fill them in. ",{"type":44,"tag":72,"props":2201,"children":2203},{"className":2202},[],[2204],{"type":50,"value":2159},{"type":50,"value":250},{"type":44,"tag":72,"props":2207,"children":2209},{"className":2208},[],[2210],{"type":50,"value":2091},{"type":50,"value":2212},", and ",{"type":44,"tag":72,"props":2214,"children":2216},{"className":2215},[],[2217],{"type":50,"value":2124},{"type":50,"value":2219}," are especially likely to need human input.",{"type":44,"tag":60,"props":2221,"children":2222},{},[2223,2228,2230,2235],{"type":44,"tag":64,"props":2224,"children":2225},{},[2226],{"type":50,"value":2227},"To escalation-flagger:",{"type":50,"value":2229}," If any of the SaaS-specific checks hits the team's \"never accept\" or escalation-trigger list in ",{"type":44,"tag":72,"props":2231,"children":2233},{"className":2232},[],[2234],{"type":50,"value":168},{"type":50,"value":2236},", the escalation-flagger skill routes it.",{"type":44,"tag":53,"props":2238,"children":2240},{"id":2239},"a-note-on-what-to-fight-over",[2241],{"type":50,"value":2242},"A note on what to fight over",{"type":44,"tag":60,"props":2244,"children":2245},{},[2246,2248,2253,2255,2260,2262,2267],{"type":50,"value":2247},"SaaS vendors, especially large ones, negotiate their paper about as willingly as airlines negotiate ticket terms. Pick battles ",{"type":44,"tag":738,"props":2249,"children":2250},{},[2251],{"type":50,"value":2252},"per the team's playbook",{"type":50,"value":2254}," — the ",{"type":44,"tag":72,"props":2256,"children":2258},{"className":2257},[],[2259],{"type":50,"value":375},{"type":50,"value":2261}," section in ",{"type":44,"tag":72,"props":2263,"children":2265},{"className":2264},[],[2266],{"type":50,"value":168},{"type":50,"value":2268}," should distinguish between terms the team will always push on, terms it fights over only for material deals, and terms it lets slide. If the playbook doesn't draw those lines, ask.",{"type":44,"tag":60,"props":2270,"children":2271},{},[2272],{"type":50,"value":2273},"Calibrate based on contract value and switching cost. A $5K\u002Fyear tool with easy alternatives gets a lighter touch than a $500K\u002Fyear platform we'll build on top of.",{"type":44,"tag":53,"props":2275,"children":2277},{"id":2276},"close-with-the-next-steps-decision-tree",[2278],{"type":50,"value":2279},"Close with the next-steps decision tree",{"type":44,"tag":60,"props":2281,"children":2282},{},[2283,2285,2291],{"type":50,"value":2284},"End with the next-steps decision tree per CLAUDE.md ",{"type":44,"tag":72,"props":2286,"children":2288},{"className":2287},[],[2289],{"type":50,"value":2290},"## Outputs",{"type":50,"value":2292},". Customize the options to what this skill just produced — the five default branches (draft the X, escalate, get more facts, watch and wait, something else) are a starting point, not a lock-in. The tree is the output; the lawyer picks.",{"type":44,"tag":2294,"props":2295,"children":2296},"style",{},[2297],{"type":50,"value":2298},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2300,"total":2396},[2301,2315,2330,2347,2359,2370,2381],{"slug":2302,"name":2302,"fn":2303,"description":2304,"org":2305,"tags":2306,"stars":26,"repoUrl":27,"updatedAt":2314},"ai-inventory","track AI systems for EU AI Act","EU AI Act per-system inventory — track each AI system's role (provider, deployer, importer, distributor, authorized representative, product manufacturer) and risk tier (prohibited, high-risk, limited, minimal, GPAI, GPAI+systemic). Role and tier are assessed per system, not per company. Use when the user says \"ai inventory\", \"add an ai system\", \"what systems do we have\", \"classify this ai system\", \"eu ai act register\", or \"ai system registry\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2307,2310,2313],{"name":2308,"slug":2309,"type":16},"Compliance","compliance",{"name":2311,"slug":2312,"type":16},"Governance","governance",{"name":24,"slug":25,"type":16},"2026-05-14T06:02:19.677579",{"slug":2316,"name":2316,"fn":2317,"description":2318,"org":2319,"tags":2320,"stars":26,"repoUrl":27,"updatedAt":2329},"ai-tool-handoff","manage handoff to bulk legal review tools","Detects when Luminance, Kira, or a similar bulk-review tool is in use, hands off the high-volume clause extraction to it, and QAs its output per the trust level in `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcorporate-legal\u002FCLAUDE.md`. Use when user says \"send to Luminance\", \"bulk review\", \"AI extraction\", or when diligence-issue-extraction hits a high-volume category.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2321,2324,2325,2326],{"name":2322,"slug":2323,"type":16},"Automation","automation",{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},{"name":2327,"slug":2328,"type":16},"QA","qa","2026-05-14T06:01:31.00555",{"slug":2331,"name":2331,"fn":2332,"description":2333,"org":2334,"tags":2335,"stars":26,"repoUrl":27,"updatedAt":2346},"aia-generation","run AI impact assessments","Run an AI impact assessment — structured intake, risk analysis, regulatory classification per regime in scope, policy consistency diff, and recommendation with conditions. Uses the house-style structure learned from the seed impact assessment in `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fai-governance-legal\u002FCLAUDE.md`. Use when user says \"impact assessment for\", \"assess this AI use case\", \"run an AIA\", \"generate an AIA\", \"we need to document this AI system\", \"AI risk assessment for X\", or follows a conditional triage result.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2336,2337,2340,2343],{"name":24,"slug":25,"type":16},{"name":2338,"slug":2339,"type":16},"Policy","policy",{"name":2341,"slug":2342,"type":16},"Regulatory Compliance","regulatory-compliance",{"name":2344,"slug":2345,"type":16},"Risk Assessment","risk-assessment","2026-05-13T06:03:19.61029",{"slug":2348,"name":2348,"fn":2349,"description":2350,"org":2351,"tags":2352,"stars":26,"repoUrl":27,"updatedAt":2358},"amendment-history","trace contract amendment history","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.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2353,2354,2357],{"name":14,"slug":15,"type":16},{"name":2355,"slug":2356,"type":16},"Documents","documents",{"name":24,"slug":25,"type":16},"2026-05-13T06:03:34.070339",{"slug":2360,"name":2360,"fn":2361,"description":2362,"org":2363,"tags":2364,"stars":26,"repoUrl":27,"updatedAt":2369},"auto-updater","check for community skill updates","Check installed community skills for updates. Shows a diff and requires explicit approval before applying. Use when the user says \"check for updates\", \"update my skills\", \"anything new for my installed skills\", or when invoked from the registry-sync agent.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2365,2366],{"name":2322,"slug":2323,"type":16},{"name":2367,"slug":2368,"type":16},"Plugin Development","plugin-development","2026-05-13T06:02:55.642269",{"slug":2371,"name":2371,"fn":2372,"description":2373,"org":2374,"tags":2375,"stars":26,"repoUrl":27,"updatedAt":2380},"bar-prep-questions","provide bar exam practice questions","Bar prep questions — MBE or essay, targeted at your weak subjects and bar jurisdiction. Tracks misses and comes back to patterns. Use when the user says \"bar prep\", \"MBE questions\", \"practice essay\", or \"test me for the bar\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2376,2379],{"name":2377,"slug":2378,"type":16},"Education","education",{"name":24,"slug":25,"type":16},"2026-07-24T05:41:43.01243",{"slug":2382,"name":2382,"fn":2383,"description":2384,"org":2385,"tags":2386,"stars":26,"repoUrl":27,"updatedAt":2395},"board-minutes","draft board and committee meeting minutes","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.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2387,2390,2391,2392],{"name":2388,"slug":2389,"type":16},"Documentation","documentation",{"name":2311,"slug":2312,"type":16},{"name":24,"slug":25,"type":16},{"name":2393,"slug":2394,"type":16},"Meetings","meetings","2026-05-14T06:01:29.792942",118,{"items":2398,"total":2580},[2399,2420,2434,2446,2465,2476,2494,2514,2528,2543,2551,2564],{"slug":2400,"name":2400,"fn":2401,"description":2402,"org":2403,"tags":2404,"stars":2417,"repoUrl":2418,"updatedAt":2419},"algorithmic-art","create algorithmic art with p5.js","Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2405,2408,2411,2414],{"name":2406,"slug":2407,"type":16},"Creative","creative",{"name":2409,"slug":2410,"type":16},"Design","design",{"name":2412,"slug":2413,"type":16},"Generative Art","generative-art",{"name":2415,"slug":2416,"type":16},"JavaScript","javascript",161831,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","2026-04-06T17:56:15.455818",{"slug":2421,"name":2421,"fn":2422,"description":2423,"org":2424,"tags":2425,"stars":2417,"repoUrl":2418,"updatedAt":2433},"brand-guidelines","apply Anthropic brand colors and typography","Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2426,2429,2430],{"name":2427,"slug":2428,"type":16},"Branding","branding",{"name":2409,"slug":2410,"type":16},{"name":2431,"slug":2432,"type":16},"Typography","typography","2026-04-06T17:56:05.042852",{"slug":2435,"name":2435,"fn":2436,"description":2437,"org":2438,"tags":2439,"stars":2417,"repoUrl":2418,"updatedAt":2445},"canvas-design","create posters and visual art as PNG or PDF","Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2440,2441,2442],{"name":2406,"slug":2407,"type":16},{"name":2409,"slug":2410,"type":16},{"name":2443,"slug":2444,"type":16},"PDF","pdf","2026-04-06T17:56:03.794732",{"slug":2447,"name":2447,"fn":2448,"description":2449,"org":2450,"tags":2451,"stars":2417,"repoUrl":2418,"updatedAt":2464},"claude-api","build apps with the Claude API","Reference for the Claude API \u002F Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration.\nTRIGGER — read BEFORE opening the target file; don't skip because it \"looks like a one-liner\" — whenever: the prompt names Claude\u002FAnthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing\u002Fmodel choice\u002Flimits\u002Fcaching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent\u002FMCP\u002Ftool-definition\u002Fmulti-agent\u002FRAG\u002FLLM-judge\u002Fcomputer-use; generate\u002Fsummarize\u002Fextract\u002Fclassify\u002Frewrite\u002Fconverse over NL; debugging refusals\u002Fcutoffs\u002Fstreaming\u002Ftool-calls\u002Ftokens).\nSKIP only when another provider is being worked on (overrides all triggers): OpenAI\u002FGPT\u002FGemini\u002FLlama\u002FMistral\u002FCohere\u002FOllama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIRST if no provider named — don't Read the file).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2452,2455,2456,2459,2461],{"name":2453,"slug":2454,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":2457,"slug":2458,"type":16},"Anthropic SDK","anthropic-sdk",{"name":2460,"slug":2447,"type":16},"Claude API",{"name":2462,"slug":2463,"type":16},"LLM","llm","2026-07-28T05:36:08.213335",{"slug":2466,"name":2466,"fn":2467,"description":2468,"org":2469,"tags":2470,"stars":2417,"repoUrl":2418,"updatedAt":2475},"doc-coauthoring","co-author documentation and technical specs","Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2471,2472],{"name":2388,"slug":2389,"type":16},{"name":2473,"slug":2474,"type":16},"Technical Writing","technical-writing","2026-04-06T17:56:14.18897",{"slug":2477,"name":2477,"fn":2478,"description":2479,"org":2480,"tags":2481,"stars":2417,"repoUrl":2418,"updatedAt":2493},"docx","create and edit Word documents","Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2482,2483,2485,2488,2491],{"name":2355,"slug":2356,"type":16},{"name":2484,"slug":2477,"type":16},"DOCX",{"name":2486,"slug":2487,"type":16},"Office","office",{"name":2489,"slug":2490,"type":16},"Templates","templates",{"name":2492,"slug":1210,"type":16},"Word","2026-07-18T05:16:23.136271",{"slug":2495,"name":2495,"fn":2496,"description":2497,"org":2498,"tags":2499,"stars":2417,"repoUrl":2418,"updatedAt":2513},"frontend-design","design production-grade frontend interfaces","Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2500,2501,2504,2507,2510],{"name":2409,"slug":2410,"type":16},{"name":2502,"slug":2503,"type":16},"Frontend","frontend",{"name":2505,"slug":2506,"type":16},"React","react",{"name":2508,"slug":2509,"type":16},"Tailwind CSS","tailwind-css",{"name":2511,"slug":2512,"type":16},"UI Components","ui-components","2026-04-06T17:56:16.723469",{"slug":2515,"name":2515,"fn":2516,"description":2517,"org":2518,"tags":2519,"stars":2417,"repoUrl":2418,"updatedAt":2527},"internal-comms","write internal company communications","A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2520,2523,2524],{"name":2521,"slug":2522,"type":16},"Communications","communications",{"name":2489,"slug":2490,"type":16},{"name":2525,"slug":2526,"type":16},"Writing","writing","2026-04-06T17:56:20.695522",{"slug":2529,"name":2529,"fn":2530,"description":2531,"org":2532,"tags":2533,"stars":2417,"repoUrl":2418,"updatedAt":2542},"mcp-builder","build MCP servers","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node\u002FTypeScript (MCP SDK).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2534,2535,2538,2539],{"name":2453,"slug":2454,"type":16},{"name":2536,"slug":2537,"type":16},"API Development","api-development",{"name":2462,"slug":2463,"type":16},{"name":2540,"slug":2541,"type":16},"MCP","mcp","2026-04-06T17:56:10.357665",{"slug":2444,"name":2444,"fn":2544,"description":2545,"org":2546,"tags":2547,"stars":2417,"repoUrl":2418,"updatedAt":2550},"read edit and manipulate PDF files","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2548,2549],{"name":2355,"slug":2356,"type":16},{"name":2443,"slug":2444,"type":16},"2026-04-06T17:56:02.483316",{"slug":2552,"name":2552,"fn":2553,"description":2554,"org":2555,"tags":2556,"stars":2417,"repoUrl":2418,"updatedAt":2563},"pptx","create and edit PowerPoint presentations","Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2557,2560],{"name":2558,"slug":2559,"type":16},"PowerPoint","powerpoint",{"name":2561,"slug":2562,"type":16},"Presentations","presentations","2026-07-18T05:16:24.1471",{"slug":2565,"name":2565,"fn":2566,"description":2567,"org":2568,"tags":2569,"stars":2417,"repoUrl":2418,"updatedAt":2579},"skill-creator","create and optimize agent skills","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2570,2571,2572,2575,2578],{"name":2453,"slug":2454,"type":16},{"name":2388,"slug":2389,"type":16},{"name":2573,"slug":2574,"type":16},"Evals","evals",{"name":2576,"slug":2577,"type":16},"Performance","performance",{"name":2473,"slug":2474,"type":16},"2026-04-19T06:45:40.804",490]