eigenweltlabs/legalwork/saas-acquisition-dd

Claude Code and agent skill by eigenweltlabs/legalwork

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Run buyer-side legal due diligence for a SaaS acquisition in LegalWork. Use Jev to identify and classify legal records, run six installed Jev-only native review prompt sets, and produce an Eigenwelt-styled source-cited Word DD report. Use for the complete acquisition workflow.

Install

npx vskill@latest install eigenweltlabs/legalwork/saas-acquisition-dd

SKILL.md

DD of a SaaS Company Acquisition

Selecting this skill and saying Run SaaS DD on this data room authorises the complete workflow: identify legal records, classify them, run the six installed reviews and save a buyer-facing Word report. Resolve the selected/attached folder from the current project. The room needs source documents only. Keep outputs in the project's reports/ folder outside the room. Default demo matter: AsterCloud GmbH; Northbridge Software Holdings GmbH; acquisition of 100% of shares; Project Aster. Use the actual review date.

Create a short stage plan with todowrite and update it at stage transitions. Continue after review starts through the saved report and delivery checks. Resume from native jobs and saved registers after compaction; a chat summary is orientation, never source evidence or a completion ledger.

Installed resources and execution policy

Read legalwork_review_settings. This demo uses Only JEV (mode: "jev"): each installed set has eight fixed-choice columns. Do not substitute an LLM, change settings, drop incompatible columns or recreate a missing library. Report the specific setup blocker.

Find the exact installed sets with legalwork_review_library using query: "SaaS DD", language: "en", detail: "summary":

Document typeInstalled set
Customer AgreementsSaaS DD - Customer Agreements
Data Processing AgreementsSaaS DD - Data Processing Agreements
Master Services AgreementsSaaS DD - Master Services Agreements
Employment AgreementsSaaS DD - Employment Agreements
Corporate AgreementsSaaS DD - Corporate Agreements
Shareholder ResolutionsSaaS DD - Shareholder Resolutions

Use returned IDs and versions. legalwork_review_launch copies all exact installed columns with provenance and fills context placeholders; legalwork_review_export preserves that execution snapshot. Do not retype columns, read local library JSON or save new sets during DD. For exact question inspection use detail: "full" only when needed. Agent source inspection and report drafting are separate from pure-Jev cell inference.

1. Identify legal records

Pass the selected folder directly to legalwork_jev_corpus_question. Ask one per-document classification with distinct choices for bilateral agreements (including drafts/amendments), substantive corporate resolutions/approvals, operational non-contract records and other legal material. The native service prepares and batches the whole room; do not enumerate PDFs, extract everything first or split it into arbitrary file-count jobs.

Wait with the returned jobId. Read measured counts and uncertain/error/unsupported records; avoid paging accepted files merely to copy paths. Export complete native coverage with legalwork_jev_corpus_export. Every uncertainty that is closed needs its own original passage, hash, page and disposition. Exclude only accepted operational records or individually source-supported operational dispositions. Keep failed, unread and ambiguous files visible. Never invent a title/reference for a source or treat probability as legal verification.

2. Classify retained legal records

Start a classification with sourceSelection: {jobId: <screening job>, answers: <accepted legal categories>}. The tool transfers all selected paths internally. Use optional paths only to add individually resolved legal sources that the screening job did not accept. Never put hundreds of file IDs into generated tool arguments.

Name the actual target company in the classification question, rather than using an unbound “target”. Define all six types by their commercial role in the question: Customer Agreements: the target sells/licenses its SaaS to a customer, including customer MSAs and subscription/order forms. Master Services Agreements: the target buys services from an external supplier/vendor; distinguish direction of supply, not just the title MSA. DPA: a standalone data-processing agreement. Employment: the target employs an individual. Corporate Agreements: bilateral shareholder agreements, financing and founder IP instruments. Shareholder Resolutions: unilateral corporate decision records. Mentioning voting, share transfers or shareholder approvals does not make a bilateral agreement a resolution. Include Other legal and Non-contract escape choices. Inspect ambiguity from original passages and record source-supported routing overrides. Preserve legal records and their initial uncertainty; do not discard an IP instrument because classification was uncertain.

Export the classification job with legalwork_jev_corpus_export. It has stable CSV fields document, source_hash, answer, status, confidence, error; do not guess a question-text header or a path field. Use legalwork_jev_evidence_export on the classification job to save original page-labelled passages and a compact source-title/classification index. Read this index before launching. A zero class or a title/role mismatch must be checked, not accepted merely because Jev is confident. If customer agreements have been labelled MSAs, reclassify that saved subset using the explicit target-sells/target-buys distinction; do not resubmit the room or copy large ID lists. Confirm distinct retained-source counts reconcile with screening. Keep unresolved routes open. Original passages stay in files; never dump all retained PDFs into one shell response or repeat extraction in Python.

3. Launch, wait and export reviews

As each class route is established, use legalwork_review_launch with its installed libraryId, libraryVersion, matter context and sourceSelection: {jobId: <classification job>, answers: [<class>]}. Optional files adds a small number of individually resolved routing overrides. Review an entire class without a file-count limit. Start each nonempty class immediately; launch all established classes before waiting or preparing the report. For a genuinely absent class, record zero scope explicitly after validating its absence. Never launch an empty review. Check every launch returned ok: true, a review ID, nonzero documents and a started status. Fix ok: false before marking that stage complete; a failed start is not a completed review.

Use legalwork_review_wait on all started review IDs together until settled. Draft, interrupted, cancelled, failed, blocked, stale and needs_review require follow-up. Resume unfinished work without recreating completed reviews. A settled scheduler means processing ended, not legal clearance.

Once reviews settle, move the plan to report drafting immediately. Open decisions may remain open in a draft; inspect them further only when needed to support a material finding. Native exports preserve every open decision without a manually generated per-cell register. Do not treat an uncertain decision as an accepted answer or claim that source inspection authenticated a signature.

4. Prepare once, write directly, save once

Read report rules and draft format. This stage synthesises the saved reviews into legal prose. It does not repeat the contract review or clear every uncertain cell.

Copy the supplied template field map into reports/dd-report-data/template-fields.json with one ordinary file copy. Then call `legalwork_review_report_prepare` once with all started reviewIds, the original saved evidence index.json paths, templateFields: "reports/dd-report-data/template-fields.json" and outputPrefix: "reports/dd-report-data". It saves all six exact grids, manifests and unresolved registers internally. Do not also export each review individually, rebuild CSVs, retrieve the full prompt library or repeat source extraction.

The tool returns a packet, a draft JSON file and one bounded drafting file per class. Read those class files and the draft once, preferably in the same turn. They provide full-scope distributions, measured distinct-document counts, representative source references and original page-labelled excerpts. The packet retains all rows, source hashes, evidence paths and open cells on disk; do not dump it or all source texts into chat. The reading aids explicitly mark excerpts and omitted sources. Targeted source inspection remains available for a material claim that the supplied passages do not establish; follow its original evidence path from the packet, rather than generating extraction programs.

Use `write` or `edit` to put legal prose directly into the draft JSON. Fill the narrative fields and add material findings using the small schema in the report reference. Keep the supplied packet identity and measured count fields. A citation is {sourceRef, page, quote, clause}; source paths and hashes are expanded by the helper. For a recurring theme sharing one exact passage, citationGroups can select {reviewId, column, values, page, quote, clause}. This expands the saved group internally, so the model never writes hundreds of source IDs. Every expanded quotation is checked. Use a small number of material themes and source-supported examples, retaining every affected source in the supporting register. Do not write report prose or findings inside a Python program.

Run the supplied report builder once:

python3 <skill>/scripts/report_from_reviews.py --project <project> --packet reports/dd-report-data/packet.json --data reports/dd-report-data/draft.json --template <skill>/assets/DD-Report-Template.docx --out reports/SaaS-DD-Report.docx

It builds the executive, risk and action tables from the findings, resolves citations and hashes, checks exact quotations/current source hashes, preserves every native open decision in supporting files, and populates the base Word template without changing its artwork or styles. It returns compact checks and the saved report path. The token map is already supplied; do not inspect template tables, tokens, fonts or the builder implementation. If a validation fails, fix the reported prose/citation field and rerun this same helper. Do not create another script or reconstruct the report pipeline.

Keep source facts, transaction implications and proposed actions distinct. The default deliverable is a Draft with truthful scope and outstanding questions. Do not invent missing amounts, registered security, professional adviser identities or legal validity conclusions. Check cross-document relationships only where material to a reported issue; do not undertake an unrequested exhaustive reconciliation during formatting. Retain the pure-Jev results and uncertainty as recorded. A literal citation check does not establish every legal conclusion.

Write restrained buyer-facing prose. Keep technical execution details in supporting files. Avoid repeating the full finding in the executive summary, class narrative, risk table and action table. The complete report must be at most 50 pages, including cover and appendices; target 25–35 for 5,000 files and use compact themes for the 200-file trial. Full source lists belong in the supporting register.

Open the saved Word report. Call legalwork_ui_execute_action directly with document.read_metadata to check saved status and actual rendered page count. If the count is temporarily unavailable, wait for it; do not read the full report or action catalogue. Condense prose only if the actual count exceeds 50. Mark the final plan step complete after the saved-file and validation checks pass. This demo skips visual review unless explicitly requested. Keep genuine blockers visible; an open question in a draft is not a requirement to start a second full review.

Chat delivery

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
127
Repository forks
22
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/eigenweltlabs/legalwork/saas-acquisition-dd/badge)](https://verified-skill.com/skills/eigenweltlabs/legalwork/saas-acquisition-dd)

Something wrong with this skill or its page? Tell us.