[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EEPNDVGDZK5AXTR9ZTP4NK":3,"skill-same:01M6EEPNDVGDZK5AXTR9ZTP4NK":53},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":35,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6EEPNDVGDZK5AXTR9ZTP4NK","contract-review",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fcontract-review\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[23,24,25],"review","contract review","contract","2026-11-10 10:12:30",false,"# Contract Review\n\n## Overview\n\nAnalyze legal contracts and agreements to identify risks, missing clauses, unfavorable terms, and compliance issues. This skill reads contract documents, categorizes clauses, flags potential problems, and produces a structured risk report with actionable recommendations.\n\n## Instructions\n\nWhen a user asks you to review, analyze, or check a contract, follow these steps:\n\n### Step 1: Load and parse the contract\n\nRead the contract file. Supported formats include PDF, DOCX, TXT, and Markdown.\n\nFor PDF files, extract text using pdfplumber:\n\n```python\nimport pdfplumber\n\ndef load_contract(pdf_path):\n    full_text = \"\"\n    with pdfplumber.open(pdf_path) as pdf:\n        for page in pdf.pages:\n            text = page.extract_text()\n            if text:\n                full_text += text + \"\\n\\n\"\n    return full_text\n```\n\nFor DOCX files, use python-docx:\n\n```python\nfrom docx import Document\n\ndef load_docx(docx_path):\n    doc = Document(docx_path)\n    return \"\\n\\n\".join([p.text for p in doc.paragraphs if p.text.strip()])\n```\n\n### Step 2: Identify the contract type\n\nDetermine the contract type from the content:\n- **Employment contract**: Look for salary, benefits, termination, non-compete clauses\n- **NDA \u002F Confidentiality agreement**: Look for confidential information definitions, duration, exceptions\n- **Service agreement \u002F SaaS**: Look for SLA, liability caps, data handling, termination for convenience\n- **Vendor \u002F Supplier agreement**: Look for delivery terms, payment terms, warranties, indemnification\n\n### Step 3: Extract and categorize key clauses\n\nIdentify and extract these critical sections:\n1. **Parties**: Who is involved, are they correctly identified\n2. **Term and termination**: Duration, renewal terms, termination conditions, notice periods\n3. **Payment terms**: Amounts, schedule, late payment penalties, currency\n4. **Liability and indemnification**: Liability caps, mutual vs one-sided indemnification\n5. **Confidentiality**: Scope of confidential information, duration, exceptions\n6. **Non-compete \u002F Non-solicitation**: Geographic scope, duration, reasonableness\n7. **Intellectual property**: Ownership, assignment, licensing rights\n8. **Dispute resolution**: Jurisdiction, arbitration vs litigation, governing law\n9. **Force majeure**: Events covered, notice requirements\n10. **Data protection**: GDPR compliance, data processing terms, breach notification\n\n### Step 4: Perform risk analysis\n\nFor each clause, assess:\n- **Risk level**: High, Medium, or Low\n- **Issue**: What is problematic or missing\n- **Recommendation**: Specific change or addition to suggest\n\nFlag these common red flags:\n- One-sided indemnification without caps\n- Automatic renewal without opt-out notice period\n- Non-compete clauses exceeding 12 months or unreasonable geographic scope\n- Missing limitation of liability\n- Vague termination conditions\n- No data protection or breach notification terms\n- Missing force majeure clause\n- Unclear IP ownership assignment\n\n### Step 5: Generate the review report\n\nProduce a structured report with:\n1. Contract summary (type, parties, effective date, term)\n2. Clause-by-clause analysis with risk ratings\n3. Missing clauses that should be added\n4. Top recommendations ranked by priority\n5. Overall risk score (Low \u002F Medium \u002F High \u002F Critical)\n\n## Examples\n\n### Example 1: Review an employment contract\n\n**User request:** \"Review my employment contract at ~\u002Fcontracts\u002Foffer.pdf for any red flags\"\n\n**Actions taken:**\n1. Extract text from offer.pdf\n2. Identify as employment contract\n3. Analyze each clause for risks\n4. Flag issues found\n\n**Output:**\n```\nCONTRACT REVIEW REPORT\n======================\nType: Employment Contract\nParties: Jane Doe (Employee) \u003C-> Acme Corp (Employer)\nTerm: Indefinite, starting March 1, 2025\n\nRISK ANALYSIS:\n-------------------------------------------------\n| Clause              | Risk   | Issue                                    |\n|---------------------|--------|------------------------------------------|\n| Non-compete         | HIGH   | 24-month duration, nationwide scope       |\n| Termination         | MEDIUM | No severance terms specified              |\n| IP Assignment       | HIGH   | Covers all work, including personal projects |\n| Benefits            | LOW    | Standard package, clearly defined         |\n| Confidentiality     | LOW    | Reasonable scope and 2-year duration      |\n\nMISSING CLAUSES:\n- No remote work policy or location flexibility terms\n- No bonus or equity vesting schedule details\n\nTOP RECOMMENDATIONS:\n1. Negotiate non-compete down to 6-12 months with limited geography\n2. Add carve-out for personal projects in IP assignment clause\n3. Request explicit severance terms (e.g., 2 weeks per year of service)\n\nOVERALL RISK: HIGH - Address non-compete and IP clauses before signing\n```\n\n### Example 2: Audit a SaaS service agreement\n\n**User request:** \"Check this vendor agreement for our SaaS tool. Flag anything we should push back on.\"\n\n**Actions taken:**\n1. Parse the service agreement\n2. Check for standard SaaS contract terms\n3. Compare against best practices for data protection and SLAs\n\n**Output:**\n```\nCONTRACT REVIEW REPORT\n======================\nType: SaaS Service Agreement\nParties: Your Company \u003C-> CloudTool Inc.\nTerm: 12 months, auto-renews\n\nRISK ANALYSIS:\n-------------------------------------------------\n| Clause              | Risk     | Issue                                  |\n|---------------------|----------|----------------------------------------|\n| SLA \u002F Uptime        | HIGH     | No uptime guarantee or credits defined |\n| Data Processing     | HIGH     | No DPA or GDPR compliance language     |\n| Liability Cap       | MEDIUM   | Capped at 1 month of fees (very low)   |\n| Termination         | MEDIUM   | 90-day notice required to cancel        |\n| Auto-renewal        | LOW      | 30-day opt-out window before renewal    |\n\nTOP RECOMMENDATIONS:\n1. Require a 99.9% uptime SLA with service credits\n2. Add a Data Processing Agreement as an appendix\n3. Negotiate liability cap to at least 12 months of fees\n4. Reduce cancellation notice to 30 days\n```\n\n## Guidelines\n\n- Always specify that this is an AI-assisted review and not legal advice. Recommend the user consult a lawyer for final decisions.\n- Present risks in order of severity (High first) so the most important issues are seen immediately.\n- When clauses are ambiguous, flag them as risks rather than assuming favorable interpretation.\n- For multi-party contracts, analyze obligations and risks from the perspective of the user's party.\n- If the contract references external documents (exhibits, schedules, addenda), note which ones are missing from the review.\n- Compare terms against standard market practices for the contract type when assessing reasonableness.\n- Keep the report concise. Use tables for clause analysis and bullet points for recommendations.\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FTerminalSkills\u002Fskills\u002Fcontract-review",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill contract-review",{"tool":45,"command":46},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill contract-review",{"tool":48,"command":49},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill contract-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fcontract-review\u002FSKILL.md",true,[],[54,68,78,87,93,100],{"skillNo":55,"name":56,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":64,"publishedAt":26},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[59],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[65,66,67],"model","model hierarchy","model hierarchy skill",{"skillNo":69,"name":70,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":74,"publishedAt":26},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[73],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},[75,76,77],"MCP","zoom","zoom mcp",{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":26},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[84,85,86,76],"sdk","zoom apps sdk","apps",{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":26},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[89],{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":99,"publishedAt":26},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[98],{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},[95],{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":26},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[102]]