plugins/datasite/skills/vdr-index-setup/SKILL.md
VDR Index Setup skill for Datasite deal rooms. Use this skill whenever a user wants to create, propose, design, or set up a Virtual Data Room (VDR) index or folder structure for a deal. Triggers include: "set up a data room", "create a VDR index", "build a deal room structure", "prepare the index", "set up the fileroom", "I need a data room for [deal/company]", or any request to organise or structure documents for due diligence. Also triggers when a user wants to replicate an existing deal room structure or import an index from a spreadsheet or reference deal. This skill MUST be used whenever the user is starting a new deal room or wants to customise the folder hierarchy before documents are uploaded. Do not use to audit or review an existing data room — use gap-analysis, document-quality-check, or risk-analysis-audit for that.
npx skillsauth add openai/plugins vdr-index-setupInstall 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 deal team on Datasite create a professional, customised Virtual Data Room (VDR) index — the folder hierarchy buyers and advisors will navigate during due diligence. The goal is to produce an index that feels purpose-built for the specific deal, not a generic template.
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 | |---|:---:|:---:| | Propose and create folder index | ✅ | — | | Read project context and sector | ✅ | — | | Push structure to Datasite | ✅ | — | | Invite team members | ✅ | — |
This skill is fully free. It uses only getProjectOverview, listSubscriptions, setupProject, createContent, and listFolderContents — no AI content search is required.
ℹ️ No Blueflame required — this skill uses only
getProjectOverview,listSubscriptions,setupProject,createContent, andlistFolderContents. It never callssearchDocuments. All functionality is available without Blueflame activation.
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.
Before asking the user anything, call getProjectOverview on the current project. This will return everything Datasite already knows about the deal from when it was set up. Extract and map the following fields:
| Blueflame field | Maps to | Example values |
|---|---|---|
| name | Company / deal name | "Project Falcon" |
| industryType | Sector | TECHNOLOGY_MEDIA_TELECOM → Tech/SaaS; LIFE_SCIENCES_HEALTHCARE → Healthcare; CONSUMER → Retail/Consumer; INDUSTRIALS_TRANSPORT_DEFENSE → Manufacturing/Transport; ENERGY_MINING_OIL_GAS → Oil & Gas; FINANCIAL_SERVICES → Financial Services; REAL_ESTATE → Real Estate |
| useCase | Transaction type | COMPANY_SALE / DIVESTITURE → M&A sell-side; ACQUISITION → buy-side; MERGER → merger; PRIVATE_EQUITY_FUNDRAISING / ADD_ON → PE; VC_FUNDING_ROUND / FUNDRAISING → capital raise; RESTRUCTURING_OR_INSOLVENCY → restructuring |
| transactionValue | Size / complexity | LESS_THAN_US_10_M → SME; BETWEEN_US_10_M_AND_100_M → lower mid-market; BETWEEN_US_100_M_AND_500_M → mid-market; BETWEEN_US_500_M_AND_1_B / GREATER_THAN_US_1_B → large-cap |
| datacenter | Geography hint | USA → US/North American; DEU → European (assume GDPR, EU regulatory); AUS → Australian |
With these four fields you already know the company name, sector, deal type, approximate size, and a geography signal. Do not ask the user to repeat this information.
After reading the project, there may be a small number of things worth clarifying. Ask only what you actually need, in a single short message — not a form:
industryType is broad and it meaningfully changes the index. For example: TECHNOLOGY_MEDIA_TELECOM could be SaaS, hardware, media/publishing, or telecoms — each has different IP and revenue sections. CONSUMER could be retail, food & beverage, or e-commerce. If the project name makes it obvious (e.g. "Project Falcon — CloudSoft Ltd"), skip this.useCase doesn't reveal it — a carve-out needs Transition Services Agreement, shared services, and stranded costs sections that a clean M&A sale doesn't.If none of these gaps exist (e.g. the project is clearly "US SaaS company, COMPANY_SALE, mid-market"), go straight to generating the index. Don't ask questions for the sake of it.
Also offer this once, briefly: "If you'd like me to base the index on an existing deal structure, you can attach the index as a spreadsheet or give me a deal name and I'll read it from the platform." If the user provides one, go to Step 1b before generating.
If the user has already attached a file or referenced another VDR at the start of the conversation, skip this offer entirely — go directly to Step 1b. Do not propose your own sector-based index if a reference has been provided. The reference is the authoritative starting point; your role is to adapt it for the current deal, not to replace it.
If the user uploads a spreadsheet: Read the file. Extract the folder hierarchy from the Index and Title columns.
If the user names a reference deal:
Call listFolderContents with depth: 5 (leave foldersOnly at its default of true) to retrieve the full folder hierarchy in a single call. The response is a flat list with depth and path columns — read through it to extract the complete structure.
After reading either source, ask the user one question before proceeding:
"I've read the reference structure — [N] folders across [N] levels. How would you like me to use it?
- Use as-is — push it to the data room exactly as provided, no changes
- Suggest additions — keep the reference intact and flag any sections that are typically expected for a [sector] deal but aren't currently included
- Full adaptation — use it as a base and apply deal-specific tailoring for [company name] ([sector], [deal type])"
Wait for the user's choice before doing anything else.
Using the project profile you've assembled, produce a complete, numbered folder hierarchy. Read references/sector-templates.md for the relevant sector(s) before generating — don't rely on memory for the sub-folder detail.
How to tailor the index:
Sector — pull the relevant sector section from the reference templates. Key distinctions:
Transaction type:
Geography:
Size / complexity:
Years of financial and corporate history — set automatically, never ask the user:
VC_FUNDING_ROUND + LESS_THAN_US_10_M) → 2 years, or inception-to-date if the company is younger; note this in the folder labelFormat of the proposal: Present the index as a clean numbered hierarchy with indentation:
1. General Information
1.1 Corporate Organisation
1.1.1 Group Structure Chart
1.1.2 Certificate of Incorporation
1.1.3 Articles of Association
1.1.4 Board Minutes and Resolutions (last 3 years)
1.2 Shareholders
1.2.1 Shareholder Register
1.2.2 Shareholder Agreements
1.2.3 Cap Table
2. Finance
2.1 Audited Financial Statements (FY2023, FY2024, FY2025) ← example using 2026 as today; always use actual last-3-closed-years
2.2 Management Accounts (monthly, last 24 months)
...
Where years are relevant, always use actual calendar years based on today's date — never write "[Year]".
Close with: "This is my proposed index for [Company Name]. You can ask me to modify any part — add or remove sections, rename or move folders, or adjust the depth. Once you're happy I can push it to the data room, or export it to Excel first."
Handle all edit requests conversationally:
After each change, show the updated portion (or the full index if it's a large restructure). Confirm the complete final state before moving to Step 4.
Show a clear confirmation gate before creating anything:
"Here's the final index for [Company Name] — [N] folders across [N] levels. Ready to create this in the [Fileroom Name] data room. Shall I go ahead?"
Also offer: "Or I can export it as an Excel file in the Datasite import format if you'd prefer to import it manually."
Only proceed once the user confirms.
⚠️ PREPARE projects: These use a Staging Folder (sandbox) exclusively. All content must be created within the Staging Folder — do not create filerooms or folders outside it. Use
listFolderContentsto locate the sandbox (type: SANDBOX, name: "Staging Folder") before creating any content.
Two options — choose based on whether the project already exists:
Option A — New project (project does not yet exist):
Use listSubscriptions to find the available subscription, then call setupProject with the confirmed folder tree as a contentTree JSON array. This creates the project and the entire folder hierarchy in a single call. Example structure:
[{"name":"Financial","children":[{"name":"Audited Financial Statements"},{"name":"Management Accounts"}]},{"name":"Legal"}]
Top-level nodes in contentTree become filerooms; nested nodes become folders.
Option B — Project already exists:
listFolderContents (no metadataId, depth: 1) — check if a fileroom already exists. Returns immediate top-level items only. If a fileroom exists, ask the user whether to add the index inside it or create a new one.createContent — create folders inside the existing fileroom. Pass the full tree as contentTree with the fileroom's metadataId as parentId.Workflow:
listFolderContents (no metadataId, depth: 1) — check if a fileroom already exists.createContent — create the top-level fileroom if needed.createContent — pass the full folder tree as contentTree so the entire hierarchy is created in one call.Error handling: if a folder fails, note it and continue. Report failures at the end with the folder path so the user can investigate.
On completion:
"Done ✓ — [N] folders created in [Fileroom Name]. Top-level sections: [list]. 🔗 Open in Datasite:
https://app.global.datasite.com/en/platform/prepare/[projectId]/overviewLet me know if you’d like to adjust anything or invite team members."
Important: Always use the URL format above when linking to a Datasite project — https://app.global.datasite.com/en/platform/prepare/{projectId}/overview. Never construct a Datasite URL from memory or training knowledge; the format above is the only correct one.
Read references/sector-templates.md for the full folder structures for each sector. Load only the section(s) relevant to the current deal — there's no need to read the whole file.
Sectors covered: Due Diligence (universal baseline), Technology, Healthcare, Healthcare Capital Raise, Manufacturing, Retail, Financial Services, Legal, Oil & Gas, Real Estate, Telecommunications, Transportation, Defence.
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.