| """ |
| scripts/create_sample_docs.py — Generate sample legal documents for testing |
| |
| Creates 4 sample input documents as text files that simulate the legal |
| documents described in the plan. These can be used directly for testing |
| the ingestion pipeline. |
| |
| Run: python scripts/create_sample_docs.py |
| """ |
|
|
| import sys |
| from pathlib import Path |
|
|
| PROJECT_ROOT = Path(__file__).parent.parent |
| sys.path.insert(0, str(PROJECT_ROOT)) |
|
|
| SAMPLE_DIR = PROJECT_ROOT / "data" / "sample_inputs" |
| SAMPLE_DIR.mkdir(parents=True, exist_ok=True) |
|
|
|
|
| def create_contract_messy(): |
| """3-page service agreement with some OCR-like artifacts.""" |
| text = """SERVICE AGREEMENT |
| |
| This Service Agreement ("Agreement") is entered into as of January 15, 2024, |
| by and between TechCorp Solutions Inc., a Delaware corporation with principal |
| offices at 500 Technology Drive, Suite 200, Wilmington, DE 19801 ("Provider"), |
| and Greenfield Properties LLC, a New York limited liability company with |
| principal offices at 245 Park Avenue, New York, NY 10167 ("Client"). |
| |
| RECITALS |
| |
| WHEREAS, Provider is engaged in the business of providing technology |
| consulting and cloud migration services; and |
| |
| WHEREAS, Client desires to engage Provider to perform certain technology |
| consulting services as more fully described herein; |
| |
| NOW, THEREFORE, in consideration of the mutual covenants and agreements |
| hereinafter set forth, and for other good and valuable consideration, the |
| receipt and sufficiency of which are hereby acknowledged, the parties agree |
| as follows: |
| |
| ARTICLE 1 — SCOPE OF SERVICES |
| |
| 1.1 Provider shall deliver cloud migration consulting services as described |
| in Exhibit A attached hereto and incorporated by reference ("Services"). |
| |
| 1.2 Services shall commence on February 1, 2024 and continue for a period |
| of twelve (12) months ("Initial Term"), unless earlier terminated in |
| accordance with Article 5. |
| |
| 1.3 The Initial Term shall automatically renew for successive twelve (12) |
| month periods ("Renewal Terms") unless either party provides written |
| notice of non-renewal at least ninety (90) days prior to the expiration |
| of the then-current term. |
| |
| ARTICLE 2 — COMPENSATION AND PAYMENT |
| |
| 2.1 Client shall pay Provider a monthly fee of Twenty-Five Thousand Dollars |
| ($25,000.00) for the Services ("Monthly Fee"), due and payable on the first |
| business day of each calendar month during the Term. |
| |
| 2.2 Late payments shall accrue interest at the rate of one and one-half |
| percent (1.5%) per month, or the maximum rate permitted by applicable law, |
| whichever is less. |
| |
| 2.3 Provider shall submit monthly invoices detailing Services performed. |
| Client shall pay all undisputed amounts within thirty (30) days of receipt |
| of invoice. |
| |
| 2.4 In addition to the Monthly Fee, Client shall reimburse Provider for |
| all reasonable out-of-pocket expenses incurred in connection with the |
| Services, provided such expenses are pre-approved in writing by Client. |
| |
| ARTICLE 3 — CONFIDENTIALITY |
| |
| 3.1 Each party ("Receiving Party") agrees to hold in strict confidence all |
| Confidential Information disclosed by the other party ("Disclosing Party") |
| during the Term and for a period of three (3) years following termination |
| or expiration of this Agreement. |
| |
| 3.2 "Confidential Information" means any non-public information, whether |
| written, oral, or electronic, including but not limited to trade secrets, |
| business plans, financial information, customer data, and technical |
| specifications. |
| |
| 3.3 The obligations of confidentiality shall not apply to information that: |
| (a) is or becomes publicly available through no fault of the Receiving Party; |
| (b) was in the Receiving Party's possession prior to disclosure; |
| (c) is independently developed by the Receiving Party; or |
| (d) is disclosed pursuant to a court order or legal requirement. |
| |
| ARTICLE 4 — LIMITATION OF LIABILITY |
| |
| 4.1 IN NO EVENT SHALL PROVIDER'S TOTAL LIABILITY UNDER THIS AGREEMENT EXCEED |
| THE AGGREGATE FEES PAID BY CLIENT DURING THE SIX (6) MONTHS IMMEDIATELY |
| PRECEDING THE EVENT GIVING RISE TO THE CLAIM. |
| |
| 4.2 IN NO EVENT SHALL EITHER PARTY BE LIABLE FOR ANY INDIRECT, INCIDENTAL, |
| SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO |
| LOSS OF PROFITS, LOSS OF DATA, OR BUSINESS INTERRUPTION. |
| |
| 4.3 The limitations set forth in this Article 4 shall not apply to: |
| (a) breaches of Article 3 (Confidentiality); |
| (b) willful misconduct or gross negligence; or |
| (c) indemnification obligations under Article 6. |
| |
| ARTICLE 5 — TERMINATION |
| |
| 5.1 Either party may terminate this Agreement for convenience upon sixty |
| (60) days prior written notice to the other party. |
| |
| 5.2 Either party may terminate this Agreement immediately upon written |
| notice if the other party: |
| (a) commits a material breach that remains uncured for thirty (30) days |
| after written notice thereof; or |
| (b) becomes insolvent, files for bankruptcy, or makes an assignment for |
| the benefit of creditors. |
| |
| 5.3 Upon termination, Provider shall deliver to Client all work product |
| completed through the date of termination. |
| |
| ARTICLE 6 — INDEMNIFICATION |
| |
| 6.1 Provider shall indemnify and hold harmless Client from any third-party |
| claims arising from Provider's negligence or willful misconduct in |
| performing the Services. |
| |
| ARTICLE 7 — GOVERNING LAW |
| |
| 7.1 This Agreement shall be governed by and construed in accordance with |
| the laws of the State of New York, without regard to its conflict of |
| laws principles. |
| |
| 7.2 Any disputes arising under this Agreement shall be submitted to binding |
| arbitration in New York City under the rules of the American Arbitration |
| Association. |
| |
| IN WITNESS WHEREOF, the parties have executed this Agreement as of the |
| date first written above. |
| |
| TECHCORP SOLUTIONS INC. |
| By: ________________________ |
| Name: John Smith |
| Title: Chief Executive Officer |
| Date: January 15, 2024 |
| |
| GREENFIELD PROPERTIES LLC |
| By: ________________________ |
| Name: Sarah Johnson |
| Title: Managing Partner |
| Date: January 15, 2024 |
| """ |
| path = SAMPLE_DIR / "contract_messy.txt" |
| path.write_text(text, encoding="utf-8") |
| print(f"Created: {path}") |
|
|
|
|
| def create_litigation_memo(): |
| """Internal litigation memo with inconsistent formatting.""" |
| text = """PRIVILEGED AND CONFIDENTIAL |
| ATTORNEY WORK PRODUCT |
| |
| INTERNAL MEMORANDUM |
| |
| TO: Harvey Specter, Senior Partner |
| FROM: Mike Ross, Associate |
| DATE: March 10, 2024 |
| RE: Greenfield Properties LLC v. TechCorp Solutions Inc. |
| Case No. 2024-CV-3847 (S.D.N.Y.) |
| |
| I. EXECUTIVE SUMMARY |
| |
| This memorandum addresses the breach of contract claim filed by our client, |
| Greenfield Properties LLC ("Greenfield"), against TechCorp Solutions Inc. |
| ("TechCorp") in connection with the Service Agreement dated January 15, 2024 |
| (the "Agreement"). Based on my analysis, Greenfield has strong grounds for |
| both breach of contract and potential fraud claims. |
| |
| II. FACTUAL BACKGROUND |
| |
| A. The Agreement |
| |
| On January 15, 2024, Greenfield entered into a twelve-month Service Agreement |
| with TechCorp for cloud migration consulting services at a monthly rate of |
| $25,000. The Agreement specified detailed deliverables in Exhibit A, including: |
| |
| - Phase 1: Infrastructure assessment (Feb 1 - Mar 15, 2024) |
| - Phase 2: Database migration (Mar 16 - May 31, 2024) |
| - Phase 3: Application migration (Jun 1 - Aug 31, 2024) |
| - Phase 4: Security audit and compliance (Sep 1 - Oct 31, 2024) |
| - Phase 5: Testing and go-live (Nov 1 - Jan 15, 2025) |
| |
| B. Performance Failures |
| |
| TechCorp commenced work on February 1, 2024 as scheduled. Phase 1 was |
| completed on time. However, beginning in April 2024, significant problems |
| emerged: |
| |
| 1. Database migration (Phase 2) fell 45 days behind schedule |
| 2. Two senior consultants — James Chen and Maria Garcia — were reassigned |
| to another client project without notice on April 15, 2024 |
| 3. Replacement consultants lacked necessary cloud certification |
| 4. The security audit deliverable (Phase 4) was never initiated |
| 5. TechCorp failed to respond to three formal written complaints |
| dated May 1, June 15, and July 20, 2024 |
| |
| C. Financial Impact |
| |
| Greenfield has incurred the following damages: |
| - Fees paid to TechCorp: $175,000 (7 months x $25,000) |
| - Cost of emergency replacement vendor: $120,000 |
| - Lost revenue from delayed platform launch: $155,000 (estimated) |
| - Regulatory penalties for missed compliance deadline: $50,000 |
| Total estimated damages: $500,000 |
| |
| III. LEGAL ANALYSIS |
| |
| A. Breach of Contract |
| |
| TechCorp materially breached the Agreement by: |
| 1. Failing to meet Phase 2 deliverable timeline |
| 2. Reassigning key personnel without consent (violation of implied duty) |
| 3. Failing to complete Phase 4 security audit |
| 4. Non-response to formal breach notices |
| |
| The Agreement's termination clause (Section 5.2(a)) requires 30 days to |
| cure after written notice. Greenfield sent three notices over 80+ days |
| with no cure. Termination was proper. |
| |
| B. Limitation of Liability Challenge |
| |
| The Agreement contains a limitation of liability clause (Article 4) capping |
| damages at six months of fees ($150,000). However, we have strong grounds |
| to argue this clause should not apply: |
| |
| 1. UNCONSCIONABILITY: The clause was presented on a take-it-or-leave-it |
| basis with no opportunity for negotiation. Greenfield was not |
| represented by counsel at signing. |
| |
| 2. WILLFUL MISCONDUCT EXCEPTION: Article 4.3(b) excludes "willful |
| misconduct or gross negligence." TechCorp's deliberate reassignment |
| of key personnel and failure to respond to breach notices arguably |
| constitutes willful misconduct. |
| |
| 3. PUBLIC POLICY: Enforcing the cap would leave Greenfield unable to |
| recover regulatory penalties caused by TechCorp's failure to complete |
| the security audit. |
| |
| C. Potential Fraud Claim |
| |
| Discovery may reveal that TechCorp knew at the time of contracting that |
| it lacked sufficient staff to perform the services. The reassignment of |
| Chen and Garcia just 10 weeks into the engagement suggests pre-existing |
| resource constraints. If proven, this would support a fraudulent |
| inducement claim and potentially void the limitation clause entirely. |
| |
| RED FLAGS IDENTIFIED: |
| - TechCorp's 10-K filing shows 30% headcount reduction in Q4 2023 |
| - Two other clients have filed similar breach claims (public records) |
| - TechCorp's CFO resigned unexpectedly in March 2024 |
| - The limitation clause may violate NY General Obligations Law § 5-323 |
| |
| IV. RECOMMENDED STRATEGY |
| |
| 1. File motion to invalidate the limitation of liability clause based on |
| unconscionability and the willful misconduct exception. |
| |
| 2. Seek total damages of $500,000 plus attorneys' fees. |
| |
| 3. Propound targeted discovery on: |
| - TechCorp's staffing levels at time of contracting |
| - Internal communications regarding personnel reassignment |
| - Other pending breach claims against TechCorp |
| |
| 4. Consider moving for preliminary injunction to preserve TechCorp's |
| financial records given recent CFO departure. |
| |
| V. OPEN QUESTIONS |
| |
| - Need client confirmation on exact lost revenue calculations |
| - Should we pursue arbitration (per Section 7.2) or challenge the |
| arbitration clause as part of the unconscionability argument? |
| - Timeline for motion practice if we proceed in court |
| |
| Please advise on preferred strategy by March 20, 2024. |
| |
| Respectfully submitted, |
| Mike Ross |
| Associate, Litigation Department |
| """ |
| path = SAMPLE_DIR / "litigation_memo.txt" |
| path.write_text(text, encoding="utf-8") |
| print(f"Created: {path}") |
|
|
|
|
| def create_legal_notice(): |
| """Eviction notice - would be low-res scan in production.""" |
| text = """NOTICE TO QUIT AND VACATE |
| |
| Date: February 28, 2024 |
| |
| TO: Robert Williams |
| Apartment 4B |
| 1247 Riverside Drive |
| New York, NY 10033 |
| |
| FROM: Riverside Management Corp. |
| Property Manager for Riverside Towers |
| 1247 Riverside Drive |
| New York, NY 10033 |
| |
| NOTICE IS HEREBY GIVEN that you are required to quit and vacate the |
| above-described premises within THIRTY (30) DAYS of the date of this |
| notice, specifically by March 30, 2024. |
| |
| GROUNDS FOR EVICTION: |
| |
| This notice is issued pursuant to New York Real Property Law § 232-a |
| and New York City Rent Stabilization Code § 2524.3 for the following |
| reasons: |
| |
| 1. NON-PAYMENT OF RENT: You have failed to pay rent for the months |
| of December 2023, January 2024, and February 2024, totaling |
| $7,500.00 (3 months x $2,500.00/month). |
| |
| 2. LEASE VIOLATIONS: Multiple complaints have been received from |
| neighboring tenants regarding: |
| (a) Excessive noise after 10:00 PM on multiple occasions |
| (b) Unauthorized occupants residing in the premises |
| (c) Failure to maintain premises in clean and sanitary condition |
| |
| CURE PERIOD: |
| |
| You may cure the non-payment default by paying all outstanding rent |
| plus late fees totaling $7,725.00 within fourteen (14) days of this |
| notice. Payment must be made by certified check or money order. |
| |
| FAILURE TO COMPLY: |
| |
| If you fail to vacate the premises or cure the default within the |
| specified period, legal proceedings will be commenced to obtain a |
| judgment of possession and a warrant of eviction. |
| |
| YOUR RIGHTS: |
| |
| You have the right to: |
| - Contest this notice in Housing Court |
| - Request a hearing before a judge |
| - Seek legal assistance from Legal Aid Society |
| - Contact 311 for tenant rights information |
| |
| This notice is being served by personal delivery and certified mail, |
| return receipt requested. |
| |
| _________________________ |
| Margaret Chen |
| Property Manager |
| Riverside Management Corp. |
| Tel: (212) 555-0147 |
| """ |
| path = SAMPLE_DIR / "legal_notice_scan.txt" |
| path.write_text(text, encoding="utf-8") |
| print(f"Created: {path}") |
|
|
|
|
| def create_deed_with_notes(): |
| """Property deed — in production this would be an image with handwriting.""" |
| text = """QUITCLAIM DEED |
| |
| STATE OF NEW YORK |
| COUNTY OF MANHATTAN |
| |
| KNOW ALL MEN BY THESE PRESENTS: |
| |
| That JAMES R. MORRISON and PATRICIA A. MORRISON, husband and wife, |
| residing at 892 West End Avenue, New York, NY 10025, ("Grantors"), |
| |
| for and in consideration of the sum of ONE MILLION TWO HUNDRED |
| THOUSAND DOLLARS ($1,200,000.00) and other good and valuable |
| consideration, receipt of which is hereby acknowledged, |
| |
| do hereby REMISE, RELEASE, AND QUITCLAIM unto: |
| |
| DAVID L. CHEN and JENNIFER S. CHEN, husband and wife, as tenants |
| by the entirety, residing at 156 East 72nd Street, New York, NY |
| 10021, ("Grantees"), |
| |
| all right, title, interest, claim and demand which the Grantors |
| have or may have in and to the following described property: |
| |
| PROPERTY DESCRIPTION: |
| |
| ALL that certain lot, piece or parcel of land, with the buildings |
| and improvements thereon, situate, lying and being in the Borough |
| of Manhattan, City of New York, County of New York, State of New |
| York, bounded and described as follows: |
| |
| Block: 1847 |
| Lot: 42 |
| Address: 892 West End Avenue, Unit 12A |
| New York, NY 10025 |
| |
| Together with the appurtenances and all the estate and rights of |
| the Grantors in and to said premises. |
| |
| SUBJECT TO: |
| - All covenants, restrictions, and easements of record |
| - Building and zoning regulations |
| - Current real estate taxes not yet due and payable |
| - Mortgage held by First National Bank, dated June 1, 2019, |
| in the original amount of $800,000.00 |
| |
| [Handwritten note in margin: "Verify mortgage payoff amount with |
| First National — may have been partially paid down. Check title |
| insurance requirements. — JRM 11/15/2023"] |
| |
| TO HAVE AND TO HOLD the same together with all and singular the |
| rights, privileges, and appurtenances thereunto belonging, unto |
| the Grantees, their heirs and assigns forever. |
| |
| IN WITNESS WHEREOF, the Grantors have hereunto set their hands |
| and seals this 5th day of December, 2023. |
| |
| _________________________ _________________________ |
| James R. Morrison Patricia A. Morrison |
| (Seal) (Seal) |
| |
| STATE OF NEW YORK ) |
| ) ss.: |
| COUNTY OF NEW YORK ) |
| |
| On December 5, 2023, before me personally appeared JAMES R. MORRISON |
| and PATRICIA A. MORRISON, known to me to be the persons described in |
| and who executed the foregoing instrument, and acknowledged that they |
| executed the same as their free act and deed. |
| |
| _________________________ |
| Notary Public |
| Commission Expires: March 15, 2025 |
| |
| [Handwritten note at bottom: "Filed with NYC Register 12/20/2023. |
| Recording #2023-NY-847291. Transfer tax paid: $21,000. — Office"] |
| """ |
| path = SAMPLE_DIR / "deed_with_notes.txt" |
| path.write_text(text, encoding="utf-8") |
| print(f"Created: {path}") |
|
|
|
|
| if __name__ == "__main__": |
| print("Creating sample legal documents...") |
| create_contract_messy() |
| create_litigation_memo() |
| create_legal_notice() |
| create_deed_with_notes() |
| print(f"\nAll documents created in: {SAMPLE_DIR}") |
|
|