plugins/datasite/skills/risk-analysis-audit/SKILL.md
Risk Analysis Audit skill for Datasite deal rooms. Use this skill whenever a sell-side deal team wants to audit, review, or flag risks across a data room before going live. Triggers include: "run a risk audit", "flag risks in the data room", "risk review", "what are the risks in this deal", "audit the data room", "risk analysis", "flag issues before we go live", "what should we fix before launch", or any request to analyse deal risk by workstream (Tax, Finance, Legal, HR, IP, Commercial, Regulatory, ESG). Use this skill proactively whenever the user is preparing a data room for launch and wants a structured view of what might concern a buyer. Do not use for document quality issues like PII or redaction (use document-quality-check), or for identifying missing sections (use gap-analysis).
npx skillsauth add openai/plugins risk-analysis-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are helping a sell-side deal team identify and understand risks across their Datasite data room before it goes live to buyers. Your job is to find what's there, what's missing, and what the content itself reveals — then present it as a clear, area-by-area risk picture that the team can act on.
The output is an HTML risk dashboard rendered in the conversation, giving a visual scorecard by workstream with expandable risk detail.
Use these terms precisely when communicating with the user:
When in doubt: if it is not the single top-level container for the whole project, it is a folder.
| Capability | Free | Requires Blueflame | |---|:---:|:---:| | Structural presence check (which sections exist or are missing) | ✅ | — | | Content risk signals (going concern, litigation, tax disputes, etc.) | — | ✅ | | Per-workstream risk findings with source citations | — | ✅ |
Without Blueflame: The skill can confirm which risk workstream sections are present, sparse, or missing — but cannot find risk signals inside document text. The report will show structural observations only. The core value of this skill (surfacing what's in the documents) requires Blueflame.
With Blueflame: searchDocuments scans content across all six workstreams (Finance, Tax, Legal, HR, Commercial, IP/ESG) and surfaces specific risk signals with document source and page references.
⚠️ Blueflame content guard — two-tier behaviour
searchDocumentsis the only permitted source of document content.
Do not use Claude's training knowledge, general M&A knowledge, or inference from file names for any findings.
Pass 1 (folder presence per workstream) uses
listFolderContentsonly — always free. Complete Pass 1 across all workstreams first.Pass 2 (content search for risk signals) requires
searchDocuments. Before starting Pass 2, attempt one call. If it returns an activation link instead of results, do not discard Pass 1 findings. Present them first, then say:"I've completed the structural review. Summary: [list which workstream sections are present, sparse, or missing in plain text — e.g. 'Finance: 3-year accounts present', 'Legal: litigation folder empty']. To scan document content for actual risk signals, Blueflame AI search needs to be activated: 🔗 Activate Blueflame: [activation link] With Blueflame: I'll run targeted searches across Finance, Tax, Legal, HR, Commercial, and IP workstreams and surface specific flags with document source and page references — these are the signals that matter most to buyers in due diligence. Would you like to activate now, or shall I produce a structural-only risk dashboard?"
Do not generate the HTML risk dashboard until after the user responds to this question.
- All content findings must be sourced exclusively from tool results.
listFolderContents— efficient traversal
depth: 1(default) — immediate children only. Use for targeted lookups.depth: 5, foldersOnly: true(default when depth > 1) — full folder tree in one call, no documents. Use for structural checks.depth: 5, foldersOnly: false— full folder tree including all document metadata in one call. Use when building a document inventory.- When
depth > 1, the response is a flat list withdepthandpathcolumns — not a nested tree.
Call getProjectOverview to understand the deal context: company name, sector, transaction type, deal size, and what filerooms exist. This shapes which risk areas matter most and how deeply to search.
Note the fileroom structure. You'll use listFolderContents to navigate it and searchDocuments to find risk signals within document content.
Work through each of the six risk workstreams below. For each one, run two passes:
Pass 1 — Presence check (structural)
Use listFolderContents to navigate the relevant section of the data room. For each expected document category, note:
Pass 2 — Content scan (substantive)
Use searchDocuments with targeted queries (listed per workstream below) to surface risk signals from within document text. The tool returns snippets — read them for red flags. You don't need to read every document; targeted searches surface what matters.
Combine both passes to form your findings for that workstream.
Reference material: Read
references/workstream-queries.mdbefore starting Pass 2 for any workstream. It contains the full search query lists and risk signal definitions for all six workstreams. Load only the sections relevant to the current deal.
What to look for structurally:
For Pass 2 search queries and risk signal definitions, see references/workstream-queries.md → Workstream 1.
What to look for structurally:
For Pass 2 search queries and risk signal definitions, see references/workstream-queries.md → Workstream 2.
What to look for structurally:
For Pass 2 search queries and risk signal definitions, see references/workstream-queries.md → Workstream 3.
What to look for structurally:
For Pass 2 search queries and risk signal definitions, see references/workstream-queries.md → Workstream 4.
What to look for structurally:
For Pass 2 search queries and risk signal definitions, see references/workstream-queries.md → Workstream 5.
What to look for structurally (IP & Technology):
What to look for structurally (ESG):
For Pass 2 search queries and risk signal definitions for both IP/Technology and ESG, see references/workstream-queries.md → Workstream 6.
After completing all six workstreams, compile your findings into a structured list:
findings = [
{
area: "Tax",
severity: "High",
title: "Open IRS audit for FY2023",
detail: "Correspondence in folder 3.6 references an open IRS examination for tax year 2023. No resolution letter found.",
source: "3.6 IRS Correspondence / Letter dated March 2024"
},
...
]
Also track structural gaps separately:
gaps = [
{ area: "Finance", item: "Working capital analysis — folder empty" },
{ area: "HR", item: "Non-compete agreements — folder missing entirely" },
...
]
Count risks by severity per area — this drives the dashboard scorecard.
Run the following consistency checks across the data room. These use searchDocuments to pull specific figures from different document types and compare them. Discrepancies are flagged as Medium risks minimum; large discrepancies are High.
Find headcount figures in the following document types and compare them:
Flag if the figures differ by more than 10% across sources, or if any source gives a materially different total. Note the specific sources and figures found.
If a "top 20 / top 50 customers" list exists, cross-check customer names and revenue figures against:
Flag customers who appear in one list but not another, or where revenue attributions differ materially.
If a vendor spend list exists, cross-check against:
Flag if total vendor spend implied by the list is materially inconsistent with cost lines in the financials.
Cross-check board member and senior management names across:
Flag any person who appears in one source but not another (e.g. listed as a director in board minutes but absent from the org chart, or named in a management presentation but with no service agreement).
Pick the 3 most prominent financial metrics in the data room (typically revenue, EBITDA, and headcount/FTE). Verify they are stated consistently across:
Flag any material discrepancy (>5% difference) as a High risk — buyers will spot these immediately and it will undermine confidence in the whole data room.
This step uses web search, not
searchDocuments. It is always free — no Blueflame credits required.
Extract the names of the top 5–10 customers and top 5–10 vendors from the data room (use the customer/vendor lists found in Step 3b, or from commercial documents identified in Workstream 5). Then run a targeted web news search for each name.
For each top customer, search for:
For each top vendor, search for:
How to run the search:
Use web search with queries in the format: "[Customer/Vendor Name]" news 2024 2025 acquisition OR merger OR restructuring OR insolvency OR "strategic review". Run a separate query for each name. If a name is generic (e.g. "Global Logistics Ltd"), add the sector or country to disambiguate.
Risk signals to flag:
Present findings as: a table with columns: Name | Type (Customer/Vendor) | News Found | Risk Level | Source URL | Recommended Action.
If no material news is found for a name, record "No material news found" and continue. Do not skip this step — a clean result is itself a valuable finding.
Before generating the dashboard, ask:
"I've completed the risk audit. Would you like me to generate the interactive HTML risk dashboard, or would a plain text risk summary in this conversation be enough? The dashboard uses additional credits to render — the plain text summary is free."
Only build the dashboard if the user confirms. If they decline, go to Step 5 and deliver a plain text summary.
Generate a self-contained HTML page and write it as an artifact. The dashboard should include:
Header:
Risk Scorecard (top section):
Detailed findings (below the scorecard):
Style guidance:
After rendering the dashboard, give a brief verbal summary:
"I've audited [N] sections of the data room and found [X] High, [Y] Medium, and [Z] Low risks. The areas with the most critical issues are [list]. Each finding is tagged with its source document so you can locate it directly in the data room."
Then offer:
"Want me to export this as an Excel risk register, or shall we work through any of the High risks in more detail?"
Search intelligently, not exhaustively. Run the targeted queries from references/workstream-queries.md. Don't attempt to read every document — the snippets are sufficient. If a snippet is ambiguous, run a follow-up search to confirm before flagging.
Be specific about sources. Every finding must reference the folder path or document name. Vague findings ("there may be tax issues") are not useful — deal teams need to go straight to the source.
Calibrate to deal size. A risk that is High for a £10M SME may be Medium for a £500M transaction where diligence coverage is deeper and warranties are broader. Use transactionValue from the project metadata to calibrate.
Don't over-flag. Not everything unusual is a risk. A non-compete that looks standard, or a customer contract that's long-dated and unconditional, should not be flagged just because it appeared in a search. Flag what a diligent buyer's counsel would genuinely raise.
Sell-side framing. This audit is for the team preparing the room, not buyers. Frame findings as things to address, disclose, or explain — not as reasons to walk away.
transactionValue from the project overview.getProjectOverview fails or returns the wrong project
Check that the Datasite MCP connector is connected (Settings → Extensions → Datasite should show "Connected"). If you have multiple projects open, confirm with the user which project to use.
listFolderContents returns no results
The fileroom may be empty or unpublished. Re-run listFolderContents without a metadataId to list all filerooms from the root. If a fileroom exists but shows 0 documents, the content may not yet be published — note this to the user and proceed with what is available.
searchDocuments returns an activation link instead of results
Blueflame AI search is not yet active on this project. Follow the Blueflame prompt in the skill instructions above. Do not attempt to answer using Claude's training knowledge.
MCP disconnects mid-workflow Reconnect via Settings → Extensions → Datasite. Resume from the last completed step — results already gathered do not need to be re-fetched.
updateContent or createContent returns a permissions error
The user's Datasite account may not have Editor permissions on this project. Ask them to check their role in Datasite project settings.
development
Use when the user wants to spin up / create / launch / provision a DigitalOcean droplet (or "a remote dev box on DO") and connect to it from Codex as a remote SSH workspace.
data-ai
Search through Microsoft Teams chats or channels, triage unread or recent activity, draft follow-ups, and manage Planner tasks through connected Teams data.
tools
Motion / animation context for the `use_figma` MCP tool — animating Figma nodes via manual keyframes, animation styles, easing, and timeline duration. Load alongside figma-use whenever a task involves adding, editing, or inspecting animation on a node.
development
SwiftUI ↔ Figma translation. Use whenever the user mentions Swift, SwiftUI, iOS, iPhone, or iPad — in EITHER direction — translating a Figma design into SwiftUI (design → code), or pushing SwiftUI views / screens / tokens back into a Figma file (code → design). Triggers on phrases like 'implement this Figma design in SwiftUI', 'build this screen in Swift', 'push this SwiftUI view to Figma', 'mirror my Swift code in a Figma file', or whenever a Figma URL appears alongside `.swift` files / an `.xcodeproj`. Routes to a direction-specific reference doc; loads alongside `figma-use` for the code → design path.