[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-irl-tracker":3,"mdc--gj8mrn-key":36,"related-repo-openai-irl-tracker":1920,"related-org-openai-irl-tracker":2043},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"irl-tracker","track deal room information requests","Information Request List (IRL) Tracker skill for Datasite deal rooms. Use this skill whenever a deal team wants to compare VDR content against a buyer's information request list, track document delivery status, or build a due diligence tracker dashboard. Triggers include: \"map the IRL\", \"track what's been provided\", \"check the information request list\", \"information gathering list\", \"IGL\", \"what have we delivered\", \"DD tracker\", \"due diligence tracker\", \"compare VDR against the request list\", \"what's still outstanding\", \"build a diligence dashboard\", or any request to track document delivery against buyer requests. Use proactively whenever a buyer has submitted a request list and the deal team needs to manage and track responses. Do not use for overall data room structural gap analysis — use gap-analysis for that.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Research","research","tag",{"name":17,"slug":18,"type":15},"Operations","operations",{"name":20,"slug":21,"type":15},"Contracts","contracts",{"name":23,"slug":24,"type":15},"Documents","documents",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-06-30T19:00:57.102",null,465,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fdatasite\u002Fskills\u002Firl-tracker","---\nname: irl-tracker\ndescription: >\n  Information Request List (IRL) Tracker skill for Datasite deal rooms. Use this\n  skill whenever a deal team wants to compare VDR content against a buyer's\n  information request list, track document delivery status, or build a due diligence\n  tracker dashboard. Triggers include: \"map the IRL\", \"track what's been provided\",\n  \"check the information request list\", \"information gathering list\", \"IGL\", \"what have we delivered\", \"DD tracker\",\n  \"due diligence tracker\", \"compare VDR against the request list\", \"what's still\n  outstanding\", \"build a diligence dashboard\", or any request to track document\n  delivery against buyer requests. Use proactively whenever a buyer has submitted\n  a request list and the deal team needs to manage and track responses.\n  Do not use for overall data room structural gap analysis — use gap-analysis for that.\nmetadata:\n  author: Blueflame AI\n  version: 1.0.0\n  mcp-server: datasite\n  category: deal-management\n  tags: [datasite, vdr, m&a, irl, due-diligence, tracking, blueflame]\n---\n\n# IRL Tracker — Due Diligence Document Tracker\n\nYou are helping a deal team map their Datasite data room content against an Information Request List (IRL), assess how well each request is addressed, and produce a live tracking dashboard. The output is a single-file HTML dashboard with no backend required.\n\n---\n\n## Terminology — fileroom vs. folder\n\nUse these terms precisely when communicating with the user:\n\n- **Fileroom** — the single top-level container inside a Datasite project. A project typically has one buyer-facing fileroom. It is not a subject area — it is the container that holds all subject areas.\n- **Folder** — everything inside the fileroom: the subject areas (Financial, Legal, HR, Tax, IP, etc.) and all sub-levels beneath them. Always call these folders, never filerooms.\n\nWhen in doubt: if it is not the single top-level container for the whole project, it is a folder.\n\n\n## Feature Requirements\n\n| Capability | Free | Requires Blueflame |\n|---|:---:|:---:|\n| Build document inventory from VDR | ✅ | — |\n| Match IRL items to documents semantically | — | ✅ |\n| Assess whether document content actually addresses each request | — | ✅ |\n| Build HTML tracking dashboard | ✅ | — |\n\n**Without Blueflame:** The skill can build a document inventory and populate the dashboard structure, but cannot match IRL items to documents or assess content relevance. All items will show as Open. The core value of this skill requires Blueflame.\n\n**With Blueflame:** `searchDocuments` semantically matches each IRL requirement to relevant passages in the data room, assigning Available \u002F Partially Complete \u002F Open status with source citations.\n\n\n\n> ⚠️ **Blueflame content guard — two-tier behaviour**\n> `searchDocuments` is the only permitted source of document content.\n> - Do **not** use Claude's training knowledge, general M&A knowledge, or inference from file names for any findings.\n> - **Step 3a** (filename and folder matching) is always free. Complete it across all IRL items first.\n> - **Steps 3b\u002F3c** (keyword and semantic content search) require `searchDocuments`. Before starting Step 3b, attempt one call. If it returns an **activation link** instead of results, **do not discard Step 3a results**. Present them first, then say:\n>\n>   > \"I've completed filename matching across your [N] IRL items — results above show what I could match by document name and location. To verify that those documents actually address each request (not just exist nearby), Blueflame AI search needs to be activated:\n>   > 🔗 **Activate Blueflame:** [activation link]\n>   > **With Blueflame:** I'll read inside each document to confirm it covers the right year, entity, or clause — so 'Available' means genuinely addressed, not just 'a file with a matching name exists'. Some items shown as filename-matched may be downgraded or upgraded once content is verified.\n>   > Would you like to activate now to complete the content verification?\"\n>\n> - All content findings **must** be sourced exclusively from tool results.\n\n> **`listFolderContents` — efficient traversal**\n> - `depth: 1` (default) — immediate children only. Use for targeted lookups.\n> - `depth: 5, foldersOnly: true` (default when depth > 1) — full folder tree in one call, no documents. Use for structural checks.\n> - `depth: 5, foldersOnly: false` — full folder tree including all document metadata in one call. Use when building a document inventory.\n> - When `depth > 1`, the response is a **flat list** with `depth` and `path` columns — not a nested tree.\n\n## Step 1 — Load the IRL\n\nThe user provides a spreadsheet or document containing the IRL. Read it and extract for each item:\n- **Item ID** (e.g. 1.1, 2.3 — or assign sequentially if not present)\n- **Requirement text** — the exact request\n- **Section** — the workstream grouping (Finance, Tax, Legal, HR, Commercial, IP, Operations, etc.)\n- **Stage** — if the IRL has phases\u002Fstages (Stage 1 = initial, Stage 2 = follow-up, Stage 3 = confirmatory). If not present, assign Stage 1 to all items.\n\nIf category\u002Fsection is not in the IRL, infer it from the requirement text using these groupings: Financial Performance, Tax, Legal & Regulatory, Commercial & Customers, HR & Employment, Intellectual Property & Technology, Operations, ESG, Corporate & Governance, Other.\n\n---\n\n## Step 2 — Scan the VDR\n\nCall `getProjectOverview` for deal context. Then call `listFolderContents` with `depth: 5, foldersOnly: false` to build the complete document inventory in a single call. The flat response gives you every document's name, metadata ID, path, file type, status, and page count:\n- Document name\n- Metadata ID\n- Full VDR path (folder index + folder name)\n- File size, page count\n\nThis is your document inventory. You'll reference it throughout the matching process.\n\n\n---\n\n## Step 3 — Match each IRL item to VDR documents\n\nFor each IRL requirement, find the best matching document(s) in the VDR. Use a layered approach — don't rely on filename alone:\n\n### 3a — File-name & folder matching (free, no Blueflame required)\nBefore any content search, check whether the document inventory already contains a file whose name or folder path clearly matches the requirement. This step costs zero Blueflame credits.\n\n- Exact or near-exact name match (e.g. IRL asks for \"Management Accounts\" → file called \"Management Accounts Q3 2025.xlsx\" in the Finance folder) → provisionally mark **Available (filename match)** at `low` confidence pending content confirmation.\n- Folder-level match (e.g. IRL asks for \"Employment Contracts\" → HR\u002FEmployment Contracts folder exists with files) → provisionally mark **Partially Complete (folder match)**.\n- No name or folder match → move to content search below.\n\n> If Blueflame is not available, stop here. Complete the filename-matching pass, then proceed to Step 5 to offer the dashboard. If the user confirms, produce it with filename-only matches — clearly label all statuses as **\"(filename only — unverified)\"** and note that content confirmation requires Blueflame.\n\n### 3b — Keyword search (targeted, lower cost)\nRun `searchDocuments` for specific terms in the requirement (dates, entity names, contract parties, regulation names). Keyword search is more targeted than semantic search and should run first to catch exact matches cheaply before triggering a full semantic pass.\n\n### 3c — Semantic search (comprehensive, higher cost)\nRun `searchDocuments` with the requirement text (or a distilled version of it) as the query, with `decompose: true` for complex multi-part requests. This returns text passages with document names and page numbers. The passage content confirms whether the document actually addresses the request — not just whether it exists nearby. Only run this step if 3a and 3b did not return a high-confidence match.\n\n### 3d — Content analysis for scattered information\nSome requests cannot be satisfied by a single document — the information is distributed. Examples:\n- \"Customer revenue breakdown\" → may require reading invoicing files and aggregating\n- \"List of all subsidiaries\" → may require reading multiple corporate documents\n- \"Total headcount by location\" → may require reading HR files across multiple folders\n\nWhen this applies, note it explicitly in the source reference: \"Information available through analysis of [Doc A] + [Doc B] — not available as a single file.\"\n\n### 3e — Assess match quality and assign status\n\nFor each IRL item, assign one of three statuses based on how well the VDR content addresses the request:\n\n| Status | Meaning | Criteria |\n|--------|---------|----------|\n| **Available** | Document fully addresses the request | You found a clear, directly responsive document and can cite the relevant passage\u002Fpage |\n| **Partially Complete** | Some but not all of the request is covered | e.g. one tax return found but request covers 3 years; one customer contract found but request asks for the top 10 |\n| **Open** | No responsive document found after searching | Neither semantic nor keyword search returned relevant content |\n\nInitial status in the dashboard is set by AI matching:\n- Available → displayed as **\"Provided (AI)\"** (AI found it; human must confirm to become Complete)\n- Partially Complete → displayed as **\"Provided (AI)\"** with lower confidence\n- Open → displayed as **\"Open\"**\n\nHuman can then transition:\n- Provided (AI) → **Complete** (click \"✓ Confirm\")\n- Provided (AI) → **Open** (click \"↩ Reopen\")\n- Complete → **Provided (AI)** (click \"↩ Un-confirm\")\n- Open → **N\u002FA** (click \"Mark N\u002FA\")\n- N\u002FA → **Open** (click \"↩ Reopen\")\n\n### 3f — Build the source reference\nFor each matched document record:\n- Filename\n- VDR index path (e.g. `3.1 Audited Financial Statements`)\n- Page number(s) where relevant content was found\n- Confidence: `high` (clear direct match), `med` (probable match), `low` (partial or inferred)\n- Source type: `ai_match`\n\nOne IRL item can map to multiple documents. One document can satisfy multiple IRL items.\n\n---\n\n## Step 4 — Compile the full mapping table\n\nProduce a structured dataset with one row per IRL item:\n\n```\n{\n  id: \"1.1\",\n  requirement: \"Audited financial statements for the last 3 years\",\n  section: \"Financial Performance\",\n  stage: 1,\n  status: \"Provided (AI)\",          \u002F\u002F Open \u002F Provided (AI) \u002F Complete \u002F N\u002FA\n  ai_status: \"Partially Complete\",   \u002F\u002F Available \u002F Partially Complete \u002F Open\n  confidence: \"med\",\n  documents: [\n    {\n      filename: \"Apex Ltd - Audited Accounts - FY2024.pdf\",\n      vdr_path: \"3.1 Audited Financial Statements\",\n      page: 1,\n      source: \"ai_match\"\n    }\n  ],\n  gap_note: \"FY2023 and FY2022 not found in data room\",\n  category: \"Financial Performance\",\n  date_matched: \"2026-04-07\"\n}\n```\n\n---\n\n## Step 5 — Offer the dashboard\n\nBefore generating the dashboard, ask:\n\n> \"I've completed the IRL mapping. Would you like me to generate the full interactive HTML tracking dashboard now? It includes status views, a gap report, and CSV\u002FPDF export — but rendering it will use additional credits. Alternatively I can give you a plain text summary now.\"\n\nOnly build the dashboard if the user confirms. If they decline, go to Step 6 and deliver a plain text summary.\n\n### Dashboard specification (build only on user confirmation)\n\nGenerate a single-file, self-contained HTML artifact. No backend, no frameworks. All state via vanilla JS. Use a clean, professional style — white cards, dark navy headings, green\u002Famber\u002Fred status colours, subtle borders and shadows.\n\nStatus badge colours:\n- Open → red\n- Provided (AI) → amber\n- Complete → green\n- N\u002FA → grey\n\n### Layout\n- **Fixed header**: project name, search bar (filters across all requirements), Export CSV button, PDF Report button\n- **Fixed left sidebar**: navigation links to each of the 7 views, section list with open-item counts\n- **Main content area**: right of sidebar, scrollable\n\n### Completion calculation\n- **Overall %** = (Complete + N\u002FA) \u002F Total × 100\n- \"Provided (AI)\" does NOT count toward completion — only human-confirmed items do\n\n---\n\n### View 1 — Status Dashboard (default)\n\n- **Donut\u002Fring chart** showing overall completion %\n- **4 status pills**: Open (count), Provided AI (count), Complete (count), N\u002FA (count)\n- **Stage overview row**: 3 cards for Stage 1 \u002F 2 \u002F 3, each with count, progress bar, completion %\n- **Section cards grid**: one card per section with stacked progress bar (complete + provided + n\u002Fa + open) and counts\n- **\"Confirm All\" button** per section — marks all Provided (AI) items in that section as Complete in one click\n\n---\n\n### View 2 — Master Tracker\n\n- Full table of all requirements with sortable columns:\n  `ID | Requirement | Category | Stage | Status (badge) | Documents Provided (filenames with confidence dots) | Date Matched`\n- Click column headers to sort ascending\u002Fdescending\n- Filter bar: Status dropdown, Section dropdown, Stage dropdown, free-text search\n- Shows \"X of Y requirements\" count\n- **\"Confirm All\"** button — marks all currently visible Provided (AI) items as Complete\n- Each row expandable to show full document list with VDR paths and page numbers\n\n---\n\n### View 3 — Coverage Heatmap\n\n- Grid of section tiles, colour-coded by completion %:\n  - ≥80% → green | 50–79% → amber | \u003C50% → red\n  - Background fill height = % provided (including AI-matched)\n- **Integrated Gap Report** below the grid: grouped by Stage, listing every Open item with ID, requirement text, and section\n\n---\n\n### View 4 — IRL by Section\n\n- Section card grid → click to drill into a section\n- **Section detail view**: section header with item count, filter bar, and all requirements as document item cards\n- Each card shows: ID, requirement text, status badge, matched documents with confidence dots, gap note if Partially Complete\n- Upload zone per card: drag-drop to add a document manually (stores filename + metadata only, not binary)\n- **\"Confirm All\"** button per section\n\n---\n\n### View 5 — IRL by Stage\n\n- 3 stage tabs at top (Stage 1 \u002F Stage 2 \u002F Stage 3) with counts\n- Filter bar + document item cards for the selected stage\n- **\"Confirm All\"** button per stage — marks all Provided (AI) items in the stage as Complete\n\n---\n\n### View 6 — Gap Analysis\n\n- **3 gap cards**: Critical (Stage 1 Open), Moderate (Stage 2 Open), Low (Stage 3 Open) — with counts\n- Section-by-section rows: progress bar, completion %, stage breakdown badges, open count\n- Drill-down per section showing individual open items with requirement text and gap note\n\n---\n\n### View 7 — Document Index\n\nFull list of all VDR documents scanned, with:\n- VDR index number\n- Document name\n- IRL item ID(s) it addresses (can be multiple)\n- Status of those IRL items\n\nSorted by VDR index. Filterable by section and status.\n\n---\n\n### Export: CSV\n\nButton in header → downloads `DD_Tracker_[ProjectName]_[YYYY-MM-DD].csv` with columns:\n`Item ID, Requirement, Category, Stage, Status, Files Uploaded, Confidence, Date Matched`\n\n---\n\n### Export: PDF Report\n\nButton in header → opens new window with print-ready HTML, triggers `window.print()`:\n\n- **Header**: \"Due Diligence Tracker Report\" + deal name + generation date\n- **Executive summary**: 4 status cards (Open \u002F Provided AI \u002F Complete \u002F N\u002FA) + overall completion %\n- **Section overview table**: Section | Open | Provided | Complete | N\u002FA | %\n- **Per-section detail tables** (with page breaks between sections): ID | Requirement | Stage | Status badge | Documents Provided\n- **Footer**: \"Due Diligence Tracker | Confidential | [date]\"\n- Print CSS: `@page { size: A4; margin: 20mm }`, hide sidebar\u002Fheader, show only report content\n\n---\n\n## Step 6 — Deliver to the user\n\nAfter rendering the dashboard, summarise:\n\n> \"I've mapped **[N] IRL items** against the data room. **[X] are Available** (matched with high\u002Fmed confidence), **[Y] are Partially Complete**, and **[Z] are Open** with no document found. Overall AI-assisted coverage: **[%]**.\n>\n> Use ✓ Confirm to validate AI matches and move items to Complete. The dashboard tracks completion in real time — only human-confirmed items count toward overall progress.\"\n\n---\n\n## Operating principles\n\n**Content beats filename.** A document called `Q4_Report.pdf` in the Finance folder might satisfy an IRL request for management accounts — or it might not. Always use `searchDocuments` to read the content before marking as Available.\n\n**One document, many requests.** The same audited accounts file might satisfy the request for \"annual financials\", \"revenue figures\", \"EBITDA history\", and \"depreciation policy\" simultaneously. Map it to all relevant items.\n\n**Partial is honest.** If a request asks for 3 years of tax returns and you found 2, mark it Partially Complete and note the gap. Don't mark it Available — the buyer will notice.\n\n**AI matches are provisional.** Every item starts as \"Provided (AI)\" at best. The deal team's confirmation step is what makes it Complete. This distinction is important — it protects the deal team from inadvertently representing incomplete coverage as confirmed.\n\n**Store metadata, not binaries.** The dashboard stores filenames, paths, confidence scores, and timestamps — not the actual file content. This keeps the HTML lightweight and shareable.\n\n## Performance Notes\n\n- **Accurate status is more valuable than high completion percentages.** Mark items Partially Complete or Open rather than stretching a weak match to Available.\n- Content beats filename — always use `searchDocuments` to confirm a document actually addresses the request before marking Available.\n- AI matches are provisional by design. The deal team's confirmation step is what makes an item Complete.\n\n---\n\n## Common Issues\n\n**`getProjectOverview` fails or returns the wrong project**\nCheck 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.\n\n**`listFolderContents` returns no results**\nThe 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.\n\n**`searchDocuments` returns an activation link instead of results**\nBlueflame 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.\n\n**MCP disconnects mid-workflow**\nReconnect via Settings → Extensions → Datasite. Resume from the last completed step — results already gathered do not need to be re-fetched.\n\n**`updateContent` or `createContent` returns a permissions error**\nThe user's Datasite account may not have Editor permissions on this project. Ask them to check their role in Datasite project settings.\n",{"data":37,"body":50},{"name":4,"description":6,"metadata":38},{"author":39,"version":40,"mcp-server":41,"category":42,"tags":43},"Blueflame AI","1.0.0","datasite","deal-management",[41,44,45,46,47,48,49],"vdr","m&a","irl","due-diligence","tracking","blueflame",{"type":51,"children":52},"root",[53,62,68,72,79,84,110,115,121,221,231,250,371,460,466,471,514,519,522,528,554,577,582,585,591,596,603,608,648,663,669,681,687,706,712,717,735,754,760,765,855,860,896,901,960,966,971,1036,1041,1044,1050,1055,1067,1070,1076,1081,1089,1094,1100,1105,1110,1133,1139,1172,1178,1196,1199,1205,1258,1261,1267,1311,1314,1320,1351,1354,1360,1397,1400,1406,1428,1431,1437,1460,1463,1469,1474,1496,1501,1504,1510,1529,1532,1538,1551,1624,1627,1633,1638,1707,1710,1716,1741,1751,1761,1771,1781,1787,1817,1820,1826,1841,1871,1886,1896],{"type":54,"tag":55,"props":56,"children":58},"element","h1",{"id":57},"irl-tracker-due-diligence-document-tracker",[59],{"type":60,"value":61},"text","IRL Tracker — Due Diligence Document Tracker",{"type":54,"tag":63,"props":64,"children":65},"p",{},[66],{"type":60,"value":67},"You are helping a deal team map their Datasite data room content against an Information Request List (IRL), assess how well each request is addressed, and produce a live tracking dashboard. The output is a single-file HTML dashboard with no backend required.",{"type":54,"tag":69,"props":70,"children":71},"hr",{},[],{"type":54,"tag":73,"props":74,"children":76},"h2",{"id":75},"terminology-fileroom-vs-folder",[77],{"type":60,"value":78},"Terminology — fileroom vs. folder",{"type":54,"tag":63,"props":80,"children":81},{},[82],{"type":60,"value":83},"Use these terms precisely when communicating with the user:",{"type":54,"tag":85,"props":86,"children":87},"ul",{},[88,100],{"type":54,"tag":89,"props":90,"children":91},"li",{},[92,98],{"type":54,"tag":93,"props":94,"children":95},"strong",{},[96],{"type":60,"value":97},"Fileroom",{"type":60,"value":99}," — the single top-level container inside a Datasite project. A project typically has one buyer-facing fileroom. It is not a subject area — it is the container that holds all subject areas.",{"type":54,"tag":89,"props":101,"children":102},{},[103,108],{"type":54,"tag":93,"props":104,"children":105},{},[106],{"type":60,"value":107},"Folder",{"type":60,"value":109}," — everything inside the fileroom: the subject areas (Financial, Legal, HR, Tax, IP, etc.) and all sub-levels beneath them. Always call these folders, never filerooms.",{"type":54,"tag":63,"props":111,"children":112},{},[113],{"type":60,"value":114},"When in doubt: if it is not the single top-level container for the whole project, it is a folder.",{"type":54,"tag":73,"props":116,"children":118},{"id":117},"feature-requirements",[119],{"type":60,"value":120},"Feature Requirements",{"type":54,"tag":122,"props":123,"children":124},"table",{},[125,150],{"type":54,"tag":126,"props":127,"children":128},"thead",{},[129],{"type":54,"tag":130,"props":131,"children":132},"tr",{},[133,139,145],{"type":54,"tag":134,"props":135,"children":136},"th",{},[137],{"type":60,"value":138},"Capability",{"type":54,"tag":134,"props":140,"children":142},{"align":141},"center",[143],{"type":60,"value":144},"Free",{"type":54,"tag":134,"props":146,"children":147},{"align":141},[148],{"type":60,"value":149},"Requires Blueflame",{"type":54,"tag":151,"props":152,"children":153},"tbody",{},[154,173,189,205],{"type":54,"tag":130,"props":155,"children":156},{},[157,163,168],{"type":54,"tag":158,"props":159,"children":160},"td",{},[161],{"type":60,"value":162},"Build document inventory from VDR",{"type":54,"tag":158,"props":164,"children":165},{"align":141},[166],{"type":60,"value":167},"✅",{"type":54,"tag":158,"props":169,"children":170},{"align":141},[171],{"type":60,"value":172},"—",{"type":54,"tag":130,"props":174,"children":175},{},[176,181,185],{"type":54,"tag":158,"props":177,"children":178},{},[179],{"type":60,"value":180},"Match IRL items to documents semantically",{"type":54,"tag":158,"props":182,"children":183},{"align":141},[184],{"type":60,"value":172},{"type":54,"tag":158,"props":186,"children":187},{"align":141},[188],{"type":60,"value":167},{"type":54,"tag":130,"props":190,"children":191},{},[192,197,201],{"type":54,"tag":158,"props":193,"children":194},{},[195],{"type":60,"value":196},"Assess whether document content actually addresses each request",{"type":54,"tag":158,"props":198,"children":199},{"align":141},[200],{"type":60,"value":172},{"type":54,"tag":158,"props":202,"children":203},{"align":141},[204],{"type":60,"value":167},{"type":54,"tag":130,"props":206,"children":207},{},[208,213,217],{"type":54,"tag":158,"props":209,"children":210},{},[211],{"type":60,"value":212},"Build HTML tracking dashboard",{"type":54,"tag":158,"props":214,"children":215},{"align":141},[216],{"type":60,"value":167},{"type":54,"tag":158,"props":218,"children":219},{"align":141},[220],{"type":60,"value":172},{"type":54,"tag":63,"props":222,"children":223},{},[224,229],{"type":54,"tag":93,"props":225,"children":226},{},[227],{"type":60,"value":228},"Without Blueflame:",{"type":60,"value":230}," The skill can build a document inventory and populate the dashboard structure, but cannot match IRL items to documents or assess content relevance. All items will show as Open. The core value of this skill requires Blueflame.",{"type":54,"tag":63,"props":232,"children":233},{},[234,239,241,248],{"type":54,"tag":93,"props":235,"children":236},{},[237],{"type":60,"value":238},"With Blueflame:",{"type":60,"value":240}," ",{"type":54,"tag":242,"props":243,"children":245},"code",{"className":244},[],[246],{"type":60,"value":247},"searchDocuments",{"type":60,"value":249}," semantically matches each IRL requirement to relevant passages in the data room, assigning Available \u002F Partially Complete \u002F Open status with source citations.",{"type":54,"tag":251,"props":252,"children":253},"blockquote",{},[254,271],{"type":54,"tag":63,"props":255,"children":256},{},[257,259,264,269],{"type":60,"value":258},"⚠️ ",{"type":54,"tag":93,"props":260,"children":261},{},[262],{"type":60,"value":263},"Blueflame content guard — two-tier behaviour",{"type":54,"tag":242,"props":265,"children":267},{"className":266},[],[268],{"type":60,"value":247},{"type":60,"value":270}," is the only permitted source of document content.",{"type":54,"tag":85,"props":272,"children":273},{},[274,286,296,359],{"type":54,"tag":89,"props":275,"children":276},{},[277,279,284],{"type":60,"value":278},"Do ",{"type":54,"tag":93,"props":280,"children":281},{},[282],{"type":60,"value":283},"not",{"type":60,"value":285}," use Claude's training knowledge, general M&A knowledge, or inference from file names for any findings.",{"type":54,"tag":89,"props":287,"children":288},{},[289,294],{"type":54,"tag":93,"props":290,"children":291},{},[292],{"type":60,"value":293},"Step 3a",{"type":60,"value":295}," (filename and folder matching) is always free. Complete it across all IRL items first.",{"type":54,"tag":89,"props":297,"children":298},{},[299,304,306,311,313,318,320,325,327],{"type":54,"tag":93,"props":300,"children":301},{},[302],{"type":60,"value":303},"Steps 3b\u002F3c",{"type":60,"value":305}," (keyword and semantic content search) require ",{"type":54,"tag":242,"props":307,"children":309},{"className":308},[],[310],{"type":60,"value":247},{"type":60,"value":312},". Before starting Step 3b, attempt one call. If it returns an ",{"type":54,"tag":93,"props":314,"children":315},{},[316],{"type":60,"value":317},"activation link",{"type":60,"value":319}," instead of results, ",{"type":54,"tag":93,"props":321,"children":322},{},[323],{"type":60,"value":324},"do not discard Step 3a results",{"type":60,"value":326},". Present them first, then say:",{"type":54,"tag":251,"props":328,"children":329},{},[330],{"type":54,"tag":63,"props":331,"children":332},{},[333,335,341,343,348,349,353,357],{"type":60,"value":334},"\"I've completed filename matching across your ",{"type":54,"tag":336,"props":337,"children":338},"span",{},[339],{"type":60,"value":340},"N",{"type":60,"value":342}," IRL items — results above show what I could match by document name and location. To verify that those documents actually address each request (not just exist nearby), Blueflame AI search needs to be activated:\n🔗 ",{"type":54,"tag":93,"props":344,"children":345},{},[346],{"type":60,"value":347},"Activate Blueflame:",{"type":60,"value":240},{"type":54,"tag":336,"props":350,"children":351},{},[352],{"type":60,"value":317},{"type":54,"tag":93,"props":354,"children":355},{},[356],{"type":60,"value":238},{"type":60,"value":358}," I'll read inside each document to confirm it covers the right year, entity, or clause — so 'Available' means genuinely addressed, not just 'a file with a matching name exists'. Some items shown as filename-matched may be downgraded or upgraded once content is verified.\nWould you like to activate now to complete the content verification?\"",{"type":54,"tag":89,"props":360,"children":361},{},[362,364,369],{"type":60,"value":363},"All content findings ",{"type":54,"tag":93,"props":365,"children":366},{},[367],{"type":60,"value":368},"must",{"type":60,"value":370}," be sourced exclusively from tool results.",{"type":54,"tag":251,"props":372,"children":373},{},[374,388],{"type":54,"tag":63,"props":375,"children":376},{},[377],{"type":54,"tag":93,"props":378,"children":379},{},[380,386],{"type":54,"tag":242,"props":381,"children":383},{"className":382},[],[384],{"type":60,"value":385},"listFolderContents",{"type":60,"value":387}," — efficient traversal",{"type":54,"tag":85,"props":389,"children":390},{},[391,402,413,424],{"type":54,"tag":89,"props":392,"children":393},{},[394,400],{"type":54,"tag":242,"props":395,"children":397},{"className":396},[],[398],{"type":60,"value":399},"depth: 1",{"type":60,"value":401}," (default) — immediate children only. Use for targeted lookups.",{"type":54,"tag":89,"props":403,"children":404},{},[405,411],{"type":54,"tag":242,"props":406,"children":408},{"className":407},[],[409],{"type":60,"value":410},"depth: 5, foldersOnly: true",{"type":60,"value":412}," (default when depth > 1) — full folder tree in one call, no documents. Use for structural checks.",{"type":54,"tag":89,"props":414,"children":415},{},[416,422],{"type":54,"tag":242,"props":417,"children":419},{"className":418},[],[420],{"type":60,"value":421},"depth: 5, foldersOnly: false",{"type":60,"value":423}," — full folder tree including all document metadata in one call. Use when building a document inventory.",{"type":54,"tag":89,"props":425,"children":426},{},[427,429,435,437,442,444,450,452,458],{"type":60,"value":428},"When ",{"type":54,"tag":242,"props":430,"children":432},{"className":431},[],[433],{"type":60,"value":434},"depth > 1",{"type":60,"value":436},", the response is a ",{"type":54,"tag":93,"props":438,"children":439},{},[440],{"type":60,"value":441},"flat list",{"type":60,"value":443}," with ",{"type":54,"tag":242,"props":445,"children":447},{"className":446},[],[448],{"type":60,"value":449},"depth",{"type":60,"value":451}," and ",{"type":54,"tag":242,"props":453,"children":455},{"className":454},[],[456],{"type":60,"value":457},"path",{"type":60,"value":459}," columns — not a nested tree.",{"type":54,"tag":73,"props":461,"children":463},{"id":462},"step-1-load-the-irl",[464],{"type":60,"value":465},"Step 1 — Load the IRL",{"type":54,"tag":63,"props":467,"children":468},{},[469],{"type":60,"value":470},"The user provides a spreadsheet or document containing the IRL. Read it and extract for each item:",{"type":54,"tag":85,"props":472,"children":473},{},[474,484,494,504],{"type":54,"tag":89,"props":475,"children":476},{},[477,482],{"type":54,"tag":93,"props":478,"children":479},{},[480],{"type":60,"value":481},"Item ID",{"type":60,"value":483}," (e.g. 1.1, 2.3 — or assign sequentially if not present)",{"type":54,"tag":89,"props":485,"children":486},{},[487,492],{"type":54,"tag":93,"props":488,"children":489},{},[490],{"type":60,"value":491},"Requirement text",{"type":60,"value":493}," — the exact request",{"type":54,"tag":89,"props":495,"children":496},{},[497,502],{"type":54,"tag":93,"props":498,"children":499},{},[500],{"type":60,"value":501},"Section",{"type":60,"value":503}," — the workstream grouping (Finance, Tax, Legal, HR, Commercial, IP, Operations, etc.)",{"type":54,"tag":89,"props":505,"children":506},{},[507,512],{"type":54,"tag":93,"props":508,"children":509},{},[510],{"type":60,"value":511},"Stage",{"type":60,"value":513}," — if the IRL has phases\u002Fstages (Stage 1 = initial, Stage 2 = follow-up, Stage 3 = confirmatory). If not present, assign Stage 1 to all items.",{"type":54,"tag":63,"props":515,"children":516},{},[517],{"type":60,"value":518},"If category\u002Fsection is not in the IRL, infer it from the requirement text using these groupings: Financial Performance, Tax, Legal & Regulatory, Commercial & Customers, HR & Employment, Intellectual Property & Technology, Operations, ESG, Corporate & Governance, Other.",{"type":54,"tag":69,"props":520,"children":521},{},[],{"type":54,"tag":73,"props":523,"children":525},{"id":524},"step-2-scan-the-vdr",[526],{"type":60,"value":527},"Step 2 — Scan the VDR",{"type":54,"tag":63,"props":529,"children":530},{},[531,533,539,541,546,547,552],{"type":60,"value":532},"Call ",{"type":54,"tag":242,"props":534,"children":536},{"className":535},[],[537],{"type":60,"value":538},"getProjectOverview",{"type":60,"value":540}," for deal context. Then call ",{"type":54,"tag":242,"props":542,"children":544},{"className":543},[],[545],{"type":60,"value":385},{"type":60,"value":443},{"type":54,"tag":242,"props":548,"children":550},{"className":549},[],[551],{"type":60,"value":421},{"type":60,"value":553}," to build the complete document inventory in a single call. The flat response gives you every document's name, metadata ID, path, file type, status, and page count:",{"type":54,"tag":85,"props":555,"children":556},{},[557,562,567,572],{"type":54,"tag":89,"props":558,"children":559},{},[560],{"type":60,"value":561},"Document name",{"type":54,"tag":89,"props":563,"children":564},{},[565],{"type":60,"value":566},"Metadata ID",{"type":54,"tag":89,"props":568,"children":569},{},[570],{"type":60,"value":571},"Full VDR path (folder index + folder name)",{"type":54,"tag":89,"props":573,"children":574},{},[575],{"type":60,"value":576},"File size, page count",{"type":54,"tag":63,"props":578,"children":579},{},[580],{"type":60,"value":581},"This is your document inventory. You'll reference it throughout the matching process.",{"type":54,"tag":69,"props":583,"children":584},{},[],{"type":54,"tag":73,"props":586,"children":588},{"id":587},"step-3-match-each-irl-item-to-vdr-documents",[589],{"type":60,"value":590},"Step 3 — Match each IRL item to VDR documents",{"type":54,"tag":63,"props":592,"children":593},{},[594],{"type":60,"value":595},"For each IRL requirement, find the best matching document(s) in the VDR. Use a layered approach — don't rely on filename alone:",{"type":54,"tag":597,"props":598,"children":600},"h3",{"id":599},"_3a-file-name-folder-matching-free-no-blueflame-required",[601],{"type":60,"value":602},"3a — File-name & folder matching (free, no Blueflame required)",{"type":54,"tag":63,"props":604,"children":605},{},[606],{"type":60,"value":607},"Before any content search, check whether the document inventory already contains a file whose name or folder path clearly matches the requirement. This step costs zero Blueflame credits.",{"type":54,"tag":85,"props":609,"children":610},{},[611,631,643],{"type":54,"tag":89,"props":612,"children":613},{},[614,616,621,623,629],{"type":60,"value":615},"Exact or near-exact name match (e.g. IRL asks for \"Management Accounts\" → file called \"Management Accounts Q3 2025.xlsx\" in the Finance folder) → provisionally mark ",{"type":54,"tag":93,"props":617,"children":618},{},[619],{"type":60,"value":620},"Available (filename match)",{"type":60,"value":622}," at ",{"type":54,"tag":242,"props":624,"children":626},{"className":625},[],[627],{"type":60,"value":628},"low",{"type":60,"value":630}," confidence pending content confirmation.",{"type":54,"tag":89,"props":632,"children":633},{},[634,636,641],{"type":60,"value":635},"Folder-level match (e.g. IRL asks for \"Employment Contracts\" → HR\u002FEmployment Contracts folder exists with files) → provisionally mark ",{"type":54,"tag":93,"props":637,"children":638},{},[639],{"type":60,"value":640},"Partially Complete (folder match)",{"type":60,"value":642},".",{"type":54,"tag":89,"props":644,"children":645},{},[646],{"type":60,"value":647},"No name or folder match → move to content search below.",{"type":54,"tag":251,"props":649,"children":650},{},[651],{"type":54,"tag":63,"props":652,"children":653},{},[654,656,661],{"type":60,"value":655},"If Blueflame is not available, stop here. Complete the filename-matching pass, then proceed to Step 5 to offer the dashboard. If the user confirms, produce it with filename-only matches — clearly label all statuses as ",{"type":54,"tag":93,"props":657,"children":658},{},[659],{"type":60,"value":660},"\"(filename only — unverified)\"",{"type":60,"value":662}," and note that content confirmation requires Blueflame.",{"type":54,"tag":597,"props":664,"children":666},{"id":665},"_3b-keyword-search-targeted-lower-cost",[667],{"type":60,"value":668},"3b — Keyword search (targeted, lower cost)",{"type":54,"tag":63,"props":670,"children":671},{},[672,674,679],{"type":60,"value":673},"Run ",{"type":54,"tag":242,"props":675,"children":677},{"className":676},[],[678],{"type":60,"value":247},{"type":60,"value":680}," for specific terms in the requirement (dates, entity names, contract parties, regulation names). Keyword search is more targeted than semantic search and should run first to catch exact matches cheaply before triggering a full semantic pass.",{"type":54,"tag":597,"props":682,"children":684},{"id":683},"_3c-semantic-search-comprehensive-higher-cost",[685],{"type":60,"value":686},"3c — Semantic search (comprehensive, higher cost)",{"type":54,"tag":63,"props":688,"children":689},{},[690,691,696,698,704],{"type":60,"value":673},{"type":54,"tag":242,"props":692,"children":694},{"className":693},[],[695],{"type":60,"value":247},{"type":60,"value":697}," with the requirement text (or a distilled version of it) as the query, with ",{"type":54,"tag":242,"props":699,"children":701},{"className":700},[],[702],{"type":60,"value":703},"decompose: true",{"type":60,"value":705}," for complex multi-part requests. This returns text passages with document names and page numbers. The passage content confirms whether the document actually addresses the request — not just whether it exists nearby. Only run this step if 3a and 3b did not return a high-confidence match.",{"type":54,"tag":597,"props":707,"children":709},{"id":708},"_3d-content-analysis-for-scattered-information",[710],{"type":60,"value":711},"3d — Content analysis for scattered information",{"type":54,"tag":63,"props":713,"children":714},{},[715],{"type":60,"value":716},"Some requests cannot be satisfied by a single document — the information is distributed. Examples:",{"type":54,"tag":85,"props":718,"children":719},{},[720,725,730],{"type":54,"tag":89,"props":721,"children":722},{},[723],{"type":60,"value":724},"\"Customer revenue breakdown\" → may require reading invoicing files and aggregating",{"type":54,"tag":89,"props":726,"children":727},{},[728],{"type":60,"value":729},"\"List of all subsidiaries\" → may require reading multiple corporate documents",{"type":54,"tag":89,"props":731,"children":732},{},[733],{"type":60,"value":734},"\"Total headcount by location\" → may require reading HR files across multiple folders",{"type":54,"tag":63,"props":736,"children":737},{},[738,740,745,747,752],{"type":60,"value":739},"When this applies, note it explicitly in the source reference: \"Information available through analysis of ",{"type":54,"tag":336,"props":741,"children":742},{},[743],{"type":60,"value":744},"Doc A",{"type":60,"value":746}," + ",{"type":54,"tag":336,"props":748,"children":749},{},[750],{"type":60,"value":751},"Doc B",{"type":60,"value":753}," — not available as a single file.\"",{"type":54,"tag":597,"props":755,"children":757},{"id":756},"_3e-assess-match-quality-and-assign-status",[758],{"type":60,"value":759},"3e — Assess match quality and assign status",{"type":54,"tag":63,"props":761,"children":762},{},[763],{"type":60,"value":764},"For each IRL item, assign one of three statuses based on how well the VDR content addresses the request:",{"type":54,"tag":122,"props":766,"children":767},{},[768,789],{"type":54,"tag":126,"props":769,"children":770},{},[771],{"type":54,"tag":130,"props":772,"children":773},{},[774,779,784],{"type":54,"tag":134,"props":775,"children":776},{},[777],{"type":60,"value":778},"Status",{"type":54,"tag":134,"props":780,"children":781},{},[782],{"type":60,"value":783},"Meaning",{"type":54,"tag":134,"props":785,"children":786},{},[787],{"type":60,"value":788},"Criteria",{"type":54,"tag":151,"props":790,"children":791},{},[792,813,834],{"type":54,"tag":130,"props":793,"children":794},{},[795,803,808],{"type":54,"tag":158,"props":796,"children":797},{},[798],{"type":54,"tag":93,"props":799,"children":800},{},[801],{"type":60,"value":802},"Available",{"type":54,"tag":158,"props":804,"children":805},{},[806],{"type":60,"value":807},"Document fully addresses the request",{"type":54,"tag":158,"props":809,"children":810},{},[811],{"type":60,"value":812},"You found a clear, directly responsive document and can cite the relevant passage\u002Fpage",{"type":54,"tag":130,"props":814,"children":815},{},[816,824,829],{"type":54,"tag":158,"props":817,"children":818},{},[819],{"type":54,"tag":93,"props":820,"children":821},{},[822],{"type":60,"value":823},"Partially Complete",{"type":54,"tag":158,"props":825,"children":826},{},[827],{"type":60,"value":828},"Some but not all of the request is covered",{"type":54,"tag":158,"props":830,"children":831},{},[832],{"type":60,"value":833},"e.g. one tax return found but request covers 3 years; one customer contract found but request asks for the top 10",{"type":54,"tag":130,"props":835,"children":836},{},[837,845,850],{"type":54,"tag":158,"props":838,"children":839},{},[840],{"type":54,"tag":93,"props":841,"children":842},{},[843],{"type":60,"value":844},"Open",{"type":54,"tag":158,"props":846,"children":847},{},[848],{"type":60,"value":849},"No responsive document found after searching",{"type":54,"tag":158,"props":851,"children":852},{},[853],{"type":60,"value":854},"Neither semantic nor keyword search returned relevant content",{"type":54,"tag":63,"props":856,"children":857},{},[858],{"type":60,"value":859},"Initial status in the dashboard is set by AI matching:",{"type":54,"tag":85,"props":861,"children":862},{},[863,875,886],{"type":54,"tag":89,"props":864,"children":865},{},[866,868,873],{"type":60,"value":867},"Available → displayed as ",{"type":54,"tag":93,"props":869,"children":870},{},[871],{"type":60,"value":872},"\"Provided (AI)\"",{"type":60,"value":874}," (AI found it; human must confirm to become Complete)",{"type":54,"tag":89,"props":876,"children":877},{},[878,880,884],{"type":60,"value":879},"Partially Complete → displayed as ",{"type":54,"tag":93,"props":881,"children":882},{},[883],{"type":60,"value":872},{"type":60,"value":885}," with lower confidence",{"type":54,"tag":89,"props":887,"children":888},{},[889,891],{"type":60,"value":890},"Open → displayed as ",{"type":54,"tag":93,"props":892,"children":893},{},[894],{"type":60,"value":895},"\"Open\"",{"type":54,"tag":63,"props":897,"children":898},{},[899],{"type":60,"value":900},"Human can then transition:",{"type":54,"tag":85,"props":902,"children":903},{},[904,916,926,938,950],{"type":54,"tag":89,"props":905,"children":906},{},[907,909,914],{"type":60,"value":908},"Provided (AI) → ",{"type":54,"tag":93,"props":910,"children":911},{},[912],{"type":60,"value":913},"Complete",{"type":60,"value":915}," (click \"✓ Confirm\")",{"type":54,"tag":89,"props":917,"children":918},{},[919,920,924],{"type":60,"value":908},{"type":54,"tag":93,"props":921,"children":922},{},[923],{"type":60,"value":844},{"type":60,"value":925}," (click \"↩ Reopen\")",{"type":54,"tag":89,"props":927,"children":928},{},[929,931,936],{"type":60,"value":930},"Complete → ",{"type":54,"tag":93,"props":932,"children":933},{},[934],{"type":60,"value":935},"Provided (AI)",{"type":60,"value":937}," (click \"↩ Un-confirm\")",{"type":54,"tag":89,"props":939,"children":940},{},[941,943,948],{"type":60,"value":942},"Open → ",{"type":54,"tag":93,"props":944,"children":945},{},[946],{"type":60,"value":947},"N\u002FA",{"type":60,"value":949}," (click \"Mark N\u002FA\")",{"type":54,"tag":89,"props":951,"children":952},{},[953,955,959],{"type":60,"value":954},"N\u002FA → ",{"type":54,"tag":93,"props":956,"children":957},{},[958],{"type":60,"value":844},{"type":60,"value":925},{"type":54,"tag":597,"props":961,"children":963},{"id":962},"_3f-build-the-source-reference",[964],{"type":60,"value":965},"3f — Build the source reference",{"type":54,"tag":63,"props":967,"children":968},{},[969],{"type":60,"value":970},"For each matched document record:",{"type":54,"tag":85,"props":972,"children":973},{},[974,979,992,997,1025],{"type":54,"tag":89,"props":975,"children":976},{},[977],{"type":60,"value":978},"Filename",{"type":54,"tag":89,"props":980,"children":981},{},[982,984,990],{"type":60,"value":983},"VDR index path (e.g. ",{"type":54,"tag":242,"props":985,"children":987},{"className":986},[],[988],{"type":60,"value":989},"3.1 Audited Financial Statements",{"type":60,"value":991},")",{"type":54,"tag":89,"props":993,"children":994},{},[995],{"type":60,"value":996},"Page number(s) where relevant content was found",{"type":54,"tag":89,"props":998,"children":999},{},[1000,1002,1008,1010,1016,1018,1023],{"type":60,"value":1001},"Confidence: ",{"type":54,"tag":242,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":60,"value":1007},"high",{"type":60,"value":1009}," (clear direct match), ",{"type":54,"tag":242,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":60,"value":1015},"med",{"type":60,"value":1017}," (probable match), ",{"type":54,"tag":242,"props":1019,"children":1021},{"className":1020},[],[1022],{"type":60,"value":628},{"type":60,"value":1024}," (partial or inferred)",{"type":54,"tag":89,"props":1026,"children":1027},{},[1028,1030],{"type":60,"value":1029},"Source type: ",{"type":54,"tag":242,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":60,"value":1035},"ai_match",{"type":54,"tag":63,"props":1037,"children":1038},{},[1039],{"type":60,"value":1040},"One IRL item can map to multiple documents. One document can satisfy multiple IRL items.",{"type":54,"tag":69,"props":1042,"children":1043},{},[],{"type":54,"tag":73,"props":1045,"children":1047},{"id":1046},"step-4-compile-the-full-mapping-table",[1048],{"type":60,"value":1049},"Step 4 — Compile the full mapping table",{"type":54,"tag":63,"props":1051,"children":1052},{},[1053],{"type":60,"value":1054},"Produce a structured dataset with one row per IRL item:",{"type":54,"tag":1056,"props":1057,"children":1061},"pre",{"className":1058,"code":1060,"language":60},[1059],"language-text","{\n  id: \"1.1\",\n  requirement: \"Audited financial statements for the last 3 years\",\n  section: \"Financial Performance\",\n  stage: 1,\n  status: \"Provided (AI)\",          \u002F\u002F Open \u002F Provided (AI) \u002F Complete \u002F N\u002FA\n  ai_status: \"Partially Complete\",   \u002F\u002F Available \u002F Partially Complete \u002F Open\n  confidence: \"med\",\n  documents: [\n    {\n      filename: \"Apex Ltd - Audited Accounts - FY2024.pdf\",\n      vdr_path: \"3.1 Audited Financial Statements\",\n      page: 1,\n      source: \"ai_match\"\n    }\n  ],\n  gap_note: \"FY2023 and FY2022 not found in data room\",\n  category: \"Financial Performance\",\n  date_matched: \"2026-04-07\"\n}\n",[1062],{"type":54,"tag":242,"props":1063,"children":1065},{"__ignoreMap":1064},"",[1066],{"type":60,"value":1060},{"type":54,"tag":69,"props":1068,"children":1069},{},[],{"type":54,"tag":73,"props":1071,"children":1073},{"id":1072},"step-5-offer-the-dashboard",[1074],{"type":60,"value":1075},"Step 5 — Offer the dashboard",{"type":54,"tag":63,"props":1077,"children":1078},{},[1079],{"type":60,"value":1080},"Before generating the dashboard, ask:",{"type":54,"tag":251,"props":1082,"children":1083},{},[1084],{"type":54,"tag":63,"props":1085,"children":1086},{},[1087],{"type":60,"value":1088},"\"I've completed the IRL mapping. Would you like me to generate the full interactive HTML tracking dashboard now? It includes status views, a gap report, and CSV\u002FPDF export — but rendering it will use additional credits. Alternatively I can give you a plain text summary now.\"",{"type":54,"tag":63,"props":1090,"children":1091},{},[1092],{"type":60,"value":1093},"Only build the dashboard if the user confirms. If they decline, go to Step 6 and deliver a plain text summary.",{"type":54,"tag":597,"props":1095,"children":1097},{"id":1096},"dashboard-specification-build-only-on-user-confirmation",[1098],{"type":60,"value":1099},"Dashboard specification (build only on user confirmation)",{"type":54,"tag":63,"props":1101,"children":1102},{},[1103],{"type":60,"value":1104},"Generate a single-file, self-contained HTML artifact. No backend, no frameworks. All state via vanilla JS. Use a clean, professional style — white cards, dark navy headings, green\u002Famber\u002Fred status colours, subtle borders and shadows.",{"type":54,"tag":63,"props":1106,"children":1107},{},[1108],{"type":60,"value":1109},"Status badge colours:",{"type":54,"tag":85,"props":1111,"children":1112},{},[1113,1118,1123,1128],{"type":54,"tag":89,"props":1114,"children":1115},{},[1116],{"type":60,"value":1117},"Open → red",{"type":54,"tag":89,"props":1119,"children":1120},{},[1121],{"type":60,"value":1122},"Provided (AI) → amber",{"type":54,"tag":89,"props":1124,"children":1125},{},[1126],{"type":60,"value":1127},"Complete → green",{"type":54,"tag":89,"props":1129,"children":1130},{},[1131],{"type":60,"value":1132},"N\u002FA → grey",{"type":54,"tag":597,"props":1134,"children":1136},{"id":1135},"layout",[1137],{"type":60,"value":1138},"Layout",{"type":54,"tag":85,"props":1140,"children":1141},{},[1142,1152,1162],{"type":54,"tag":89,"props":1143,"children":1144},{},[1145,1150],{"type":54,"tag":93,"props":1146,"children":1147},{},[1148],{"type":60,"value":1149},"Fixed header",{"type":60,"value":1151},": project name, search bar (filters across all requirements), Export CSV button, PDF Report button",{"type":54,"tag":89,"props":1153,"children":1154},{},[1155,1160],{"type":54,"tag":93,"props":1156,"children":1157},{},[1158],{"type":60,"value":1159},"Fixed left sidebar",{"type":60,"value":1161},": navigation links to each of the 7 views, section list with open-item counts",{"type":54,"tag":89,"props":1163,"children":1164},{},[1165,1170],{"type":54,"tag":93,"props":1166,"children":1167},{},[1168],{"type":60,"value":1169},"Main content area",{"type":60,"value":1171},": right of sidebar, scrollable",{"type":54,"tag":597,"props":1173,"children":1175},{"id":1174},"completion-calculation",[1176],{"type":60,"value":1177},"Completion calculation",{"type":54,"tag":85,"props":1179,"children":1180},{},[1181,1191],{"type":54,"tag":89,"props":1182,"children":1183},{},[1184,1189],{"type":54,"tag":93,"props":1185,"children":1186},{},[1187],{"type":60,"value":1188},"Overall %",{"type":60,"value":1190}," = (Complete + N\u002FA) \u002F Total × 100",{"type":54,"tag":89,"props":1192,"children":1193},{},[1194],{"type":60,"value":1195},"\"Provided (AI)\" does NOT count toward completion — only human-confirmed items do",{"type":54,"tag":69,"props":1197,"children":1198},{},[],{"type":54,"tag":597,"props":1200,"children":1202},{"id":1201},"view-1-status-dashboard-default",[1203],{"type":60,"value":1204},"View 1 — Status Dashboard (default)",{"type":54,"tag":85,"props":1206,"children":1207},{},[1208,1218,1228,1238,1248],{"type":54,"tag":89,"props":1209,"children":1210},{},[1211,1216],{"type":54,"tag":93,"props":1212,"children":1213},{},[1214],{"type":60,"value":1215},"Donut\u002Fring chart",{"type":60,"value":1217}," showing overall completion %",{"type":54,"tag":89,"props":1219,"children":1220},{},[1221,1226],{"type":54,"tag":93,"props":1222,"children":1223},{},[1224],{"type":60,"value":1225},"4 status pills",{"type":60,"value":1227},": Open (count), Provided AI (count), Complete (count), N\u002FA (count)",{"type":54,"tag":89,"props":1229,"children":1230},{},[1231,1236],{"type":54,"tag":93,"props":1232,"children":1233},{},[1234],{"type":60,"value":1235},"Stage overview row",{"type":60,"value":1237},": 3 cards for Stage 1 \u002F 2 \u002F 3, each with count, progress bar, completion %",{"type":54,"tag":89,"props":1239,"children":1240},{},[1241,1246],{"type":54,"tag":93,"props":1242,"children":1243},{},[1244],{"type":60,"value":1245},"Section cards grid",{"type":60,"value":1247},": one card per section with stacked progress bar (complete + provided + n\u002Fa + open) and counts",{"type":54,"tag":89,"props":1249,"children":1250},{},[1251,1256],{"type":54,"tag":93,"props":1252,"children":1253},{},[1254],{"type":60,"value":1255},"\"Confirm All\" button",{"type":60,"value":1257}," per section — marks all Provided (AI) items in that section as Complete in one click",{"type":54,"tag":69,"props":1259,"children":1260},{},[],{"type":54,"tag":597,"props":1262,"children":1264},{"id":1263},"view-2-master-tracker",[1265],{"type":60,"value":1266},"View 2 — Master Tracker",{"type":54,"tag":85,"props":1268,"children":1269},{},[1270,1281,1286,1291,1296,1306],{"type":54,"tag":89,"props":1271,"children":1272},{},[1273,1275],{"type":60,"value":1274},"Full table of all requirements with sortable columns:\n",{"type":54,"tag":242,"props":1276,"children":1278},{"className":1277},[],[1279],{"type":60,"value":1280},"ID | Requirement | Category | Stage | Status (badge) | Documents Provided (filenames with confidence dots) | Date Matched",{"type":54,"tag":89,"props":1282,"children":1283},{},[1284],{"type":60,"value":1285},"Click column headers to sort ascending\u002Fdescending",{"type":54,"tag":89,"props":1287,"children":1288},{},[1289],{"type":60,"value":1290},"Filter bar: Status dropdown, Section dropdown, Stage dropdown, free-text search",{"type":54,"tag":89,"props":1292,"children":1293},{},[1294],{"type":60,"value":1295},"Shows \"X of Y requirements\" count",{"type":54,"tag":89,"props":1297,"children":1298},{},[1299,1304],{"type":54,"tag":93,"props":1300,"children":1301},{},[1302],{"type":60,"value":1303},"\"Confirm All\"",{"type":60,"value":1305}," button — marks all currently visible Provided (AI) items as Complete",{"type":54,"tag":89,"props":1307,"children":1308},{},[1309],{"type":60,"value":1310},"Each row expandable to show full document list with VDR paths and page numbers",{"type":54,"tag":69,"props":1312,"children":1313},{},[],{"type":54,"tag":597,"props":1315,"children":1317},{"id":1316},"view-3-coverage-heatmap",[1318],{"type":60,"value":1319},"View 3 — Coverage Heatmap",{"type":54,"tag":85,"props":1321,"children":1322},{},[1323,1341],{"type":54,"tag":89,"props":1324,"children":1325},{},[1326,1328],{"type":60,"value":1327},"Grid of section tiles, colour-coded by completion %:\n",{"type":54,"tag":85,"props":1329,"children":1330},{},[1331,1336],{"type":54,"tag":89,"props":1332,"children":1333},{},[1334],{"type":60,"value":1335},"≥80% → green | 50–79% → amber | \u003C50% → red",{"type":54,"tag":89,"props":1337,"children":1338},{},[1339],{"type":60,"value":1340},"Background fill height = % provided (including AI-matched)",{"type":54,"tag":89,"props":1342,"children":1343},{},[1344,1349],{"type":54,"tag":93,"props":1345,"children":1346},{},[1347],{"type":60,"value":1348},"Integrated Gap Report",{"type":60,"value":1350}," below the grid: grouped by Stage, listing every Open item with ID, requirement text, and section",{"type":54,"tag":69,"props":1352,"children":1353},{},[],{"type":54,"tag":597,"props":1355,"children":1357},{"id":1356},"view-4-irl-by-section",[1358],{"type":60,"value":1359},"View 4 — IRL by Section",{"type":54,"tag":85,"props":1361,"children":1362},{},[1363,1368,1378,1383,1388],{"type":54,"tag":89,"props":1364,"children":1365},{},[1366],{"type":60,"value":1367},"Section card grid → click to drill into a section",{"type":54,"tag":89,"props":1369,"children":1370},{},[1371,1376],{"type":54,"tag":93,"props":1372,"children":1373},{},[1374],{"type":60,"value":1375},"Section detail view",{"type":60,"value":1377},": section header with item count, filter bar, and all requirements as document item cards",{"type":54,"tag":89,"props":1379,"children":1380},{},[1381],{"type":60,"value":1382},"Each card shows: ID, requirement text, status badge, matched documents with confidence dots, gap note if Partially Complete",{"type":54,"tag":89,"props":1384,"children":1385},{},[1386],{"type":60,"value":1387},"Upload zone per card: drag-drop to add a document manually (stores filename + metadata only, not binary)",{"type":54,"tag":89,"props":1389,"children":1390},{},[1391,1395],{"type":54,"tag":93,"props":1392,"children":1393},{},[1394],{"type":60,"value":1303},{"type":60,"value":1396}," button per section",{"type":54,"tag":69,"props":1398,"children":1399},{},[],{"type":54,"tag":597,"props":1401,"children":1403},{"id":1402},"view-5-irl-by-stage",[1404],{"type":60,"value":1405},"View 5 — IRL by Stage",{"type":54,"tag":85,"props":1407,"children":1408},{},[1409,1414,1419],{"type":54,"tag":89,"props":1410,"children":1411},{},[1412],{"type":60,"value":1413},"3 stage tabs at top (Stage 1 \u002F Stage 2 \u002F Stage 3) with counts",{"type":54,"tag":89,"props":1415,"children":1416},{},[1417],{"type":60,"value":1418},"Filter bar + document item cards for the selected stage",{"type":54,"tag":89,"props":1420,"children":1421},{},[1422,1426],{"type":54,"tag":93,"props":1423,"children":1424},{},[1425],{"type":60,"value":1303},{"type":60,"value":1427}," button per stage — marks all Provided (AI) items in the stage as Complete",{"type":54,"tag":69,"props":1429,"children":1430},{},[],{"type":54,"tag":597,"props":1432,"children":1434},{"id":1433},"view-6-gap-analysis",[1435],{"type":60,"value":1436},"View 6 — Gap Analysis",{"type":54,"tag":85,"props":1438,"children":1439},{},[1440,1450,1455],{"type":54,"tag":89,"props":1441,"children":1442},{},[1443,1448],{"type":54,"tag":93,"props":1444,"children":1445},{},[1446],{"type":60,"value":1447},"3 gap cards",{"type":60,"value":1449},": Critical (Stage 1 Open), Moderate (Stage 2 Open), Low (Stage 3 Open) — with counts",{"type":54,"tag":89,"props":1451,"children":1452},{},[1453],{"type":60,"value":1454},"Section-by-section rows: progress bar, completion %, stage breakdown badges, open count",{"type":54,"tag":89,"props":1456,"children":1457},{},[1458],{"type":60,"value":1459},"Drill-down per section showing individual open items with requirement text and gap note",{"type":54,"tag":69,"props":1461,"children":1462},{},[],{"type":54,"tag":597,"props":1464,"children":1466},{"id":1465},"view-7-document-index",[1467],{"type":60,"value":1468},"View 7 — Document Index",{"type":54,"tag":63,"props":1470,"children":1471},{},[1472],{"type":60,"value":1473},"Full list of all VDR documents scanned, with:",{"type":54,"tag":85,"props":1475,"children":1476},{},[1477,1482,1486,1491],{"type":54,"tag":89,"props":1478,"children":1479},{},[1480],{"type":60,"value":1481},"VDR index number",{"type":54,"tag":89,"props":1483,"children":1484},{},[1485],{"type":60,"value":561},{"type":54,"tag":89,"props":1487,"children":1488},{},[1489],{"type":60,"value":1490},"IRL item ID(s) it addresses (can be multiple)",{"type":54,"tag":89,"props":1492,"children":1493},{},[1494],{"type":60,"value":1495},"Status of those IRL items",{"type":54,"tag":63,"props":1497,"children":1498},{},[1499],{"type":60,"value":1500},"Sorted by VDR index. Filterable by section and status.",{"type":54,"tag":69,"props":1502,"children":1503},{},[],{"type":54,"tag":597,"props":1505,"children":1507},{"id":1506},"export-csv",[1508],{"type":60,"value":1509},"Export: CSV",{"type":54,"tag":63,"props":1511,"children":1512},{},[1513,1515,1521,1523],{"type":60,"value":1514},"Button in header → downloads ",{"type":54,"tag":242,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":60,"value":1520},"DD_Tracker_[ProjectName]_[YYYY-MM-DD].csv",{"type":60,"value":1522}," with columns:\n",{"type":54,"tag":242,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":60,"value":1528},"Item ID, Requirement, Category, Stage, Status, Files Uploaded, Confidence, Date Matched",{"type":54,"tag":69,"props":1530,"children":1531},{},[],{"type":54,"tag":597,"props":1533,"children":1535},{"id":1534},"export-pdf-report",[1536],{"type":60,"value":1537},"Export: PDF Report",{"type":54,"tag":63,"props":1539,"children":1540},{},[1541,1543,1549],{"type":60,"value":1542},"Button in header → opens new window with print-ready HTML, triggers ",{"type":54,"tag":242,"props":1544,"children":1546},{"className":1545},[],[1547],{"type":60,"value":1548},"window.print()",{"type":60,"value":1550},":",{"type":54,"tag":85,"props":1552,"children":1553},{},[1554,1564,1574,1584,1594,1611],{"type":54,"tag":89,"props":1555,"children":1556},{},[1557,1562],{"type":54,"tag":93,"props":1558,"children":1559},{},[1560],{"type":60,"value":1561},"Header",{"type":60,"value":1563},": \"Due Diligence Tracker Report\" + deal name + generation date",{"type":54,"tag":89,"props":1565,"children":1566},{},[1567,1572],{"type":54,"tag":93,"props":1568,"children":1569},{},[1570],{"type":60,"value":1571},"Executive summary",{"type":60,"value":1573},": 4 status cards (Open \u002F Provided AI \u002F Complete \u002F N\u002FA) + overall completion %",{"type":54,"tag":89,"props":1575,"children":1576},{},[1577,1582],{"type":54,"tag":93,"props":1578,"children":1579},{},[1580],{"type":60,"value":1581},"Section overview table",{"type":60,"value":1583},": Section | Open | Provided | Complete | N\u002FA | %",{"type":54,"tag":89,"props":1585,"children":1586},{},[1587,1592],{"type":54,"tag":93,"props":1588,"children":1589},{},[1590],{"type":60,"value":1591},"Per-section detail tables",{"type":60,"value":1593}," (with page breaks between sections): ID | Requirement | Stage | Status badge | Documents Provided",{"type":54,"tag":89,"props":1595,"children":1596},{},[1597,1602,1604,1609],{"type":54,"tag":93,"props":1598,"children":1599},{},[1600],{"type":60,"value":1601},"Footer",{"type":60,"value":1603},": \"Due Diligence Tracker | Confidential | ",{"type":54,"tag":336,"props":1605,"children":1606},{},[1607],{"type":60,"value":1608},"date",{"type":60,"value":1610},"\"",{"type":54,"tag":89,"props":1612,"children":1613},{},[1614,1616,1622],{"type":60,"value":1615},"Print CSS: ",{"type":54,"tag":242,"props":1617,"children":1619},{"className":1618},[],[1620],{"type":60,"value":1621},"@page { size: A4; margin: 20mm }",{"type":60,"value":1623},", hide sidebar\u002Fheader, show only report content",{"type":54,"tag":69,"props":1625,"children":1626},{},[],{"type":54,"tag":73,"props":1628,"children":1630},{"id":1629},"step-6-deliver-to-the-user",[1631],{"type":60,"value":1632},"Step 6 — Deliver to the user",{"type":54,"tag":63,"props":1634,"children":1635},{},[1636],{"type":60,"value":1637},"After rendering the dashboard, summarise:",{"type":54,"tag":251,"props":1639,"children":1640},{},[1641,1702],{"type":54,"tag":63,"props":1642,"children":1643},{},[1644,1646,1655,1657,1667,1669,1679,1681,1691,1693,1701],{"type":60,"value":1645},"\"I've mapped ",{"type":54,"tag":93,"props":1647,"children":1648},{},[1649,1653],{"type":54,"tag":336,"props":1650,"children":1651},{},[1652],{"type":60,"value":340},{"type":60,"value":1654}," IRL items",{"type":60,"value":1656}," against the data room. ",{"type":54,"tag":93,"props":1658,"children":1659},{},[1660,1665],{"type":54,"tag":336,"props":1661,"children":1662},{},[1663],{"type":60,"value":1664},"X",{"type":60,"value":1666}," are Available",{"type":60,"value":1668}," (matched with high\u002Fmed confidence), ",{"type":54,"tag":93,"props":1670,"children":1671},{},[1672,1677],{"type":54,"tag":336,"props":1673,"children":1674},{},[1675],{"type":60,"value":1676},"Y",{"type":60,"value":1678}," are Partially Complete",{"type":60,"value":1680},", and ",{"type":54,"tag":93,"props":1682,"children":1683},{},[1684,1689],{"type":54,"tag":336,"props":1685,"children":1686},{},[1687],{"type":60,"value":1688},"Z",{"type":60,"value":1690}," are Open",{"type":60,"value":1692}," with no document found. Overall AI-assisted coverage: ",{"type":54,"tag":93,"props":1694,"children":1695},{},[1696],{"type":54,"tag":336,"props":1697,"children":1698},{},[1699],{"type":60,"value":1700},"%",{"type":60,"value":642},{"type":54,"tag":63,"props":1703,"children":1704},{},[1705],{"type":60,"value":1706},"Use ✓ Confirm to validate AI matches and move items to Complete. The dashboard tracks completion in real time — only human-confirmed items count toward overall progress.\"",{"type":54,"tag":69,"props":1708,"children":1709},{},[],{"type":54,"tag":73,"props":1711,"children":1713},{"id":1712},"operating-principles",[1714],{"type":60,"value":1715},"Operating principles",{"type":54,"tag":63,"props":1717,"children":1718},{},[1719,1724,1726,1732,1734,1739],{"type":54,"tag":93,"props":1720,"children":1721},{},[1722],{"type":60,"value":1723},"Content beats filename.",{"type":60,"value":1725}," A document called ",{"type":54,"tag":242,"props":1727,"children":1729},{"className":1728},[],[1730],{"type":60,"value":1731},"Q4_Report.pdf",{"type":60,"value":1733}," in the Finance folder might satisfy an IRL request for management accounts — or it might not. Always use ",{"type":54,"tag":242,"props":1735,"children":1737},{"className":1736},[],[1738],{"type":60,"value":247},{"type":60,"value":1740}," to read the content before marking as Available.",{"type":54,"tag":63,"props":1742,"children":1743},{},[1744,1749],{"type":54,"tag":93,"props":1745,"children":1746},{},[1747],{"type":60,"value":1748},"One document, many requests.",{"type":60,"value":1750}," The same audited accounts file might satisfy the request for \"annual financials\", \"revenue figures\", \"EBITDA history\", and \"depreciation policy\" simultaneously. Map it to all relevant items.",{"type":54,"tag":63,"props":1752,"children":1753},{},[1754,1759],{"type":54,"tag":93,"props":1755,"children":1756},{},[1757],{"type":60,"value":1758},"Partial is honest.",{"type":60,"value":1760}," If a request asks for 3 years of tax returns and you found 2, mark it Partially Complete and note the gap. Don't mark it Available — the buyer will notice.",{"type":54,"tag":63,"props":1762,"children":1763},{},[1764,1769],{"type":54,"tag":93,"props":1765,"children":1766},{},[1767],{"type":60,"value":1768},"AI matches are provisional.",{"type":60,"value":1770}," Every item starts as \"Provided (AI)\" at best. The deal team's confirmation step is what makes it Complete. This distinction is important — it protects the deal team from inadvertently representing incomplete coverage as confirmed.",{"type":54,"tag":63,"props":1772,"children":1773},{},[1774,1779],{"type":54,"tag":93,"props":1775,"children":1776},{},[1777],{"type":60,"value":1778},"Store metadata, not binaries.",{"type":60,"value":1780}," The dashboard stores filenames, paths, confidence scores, and timestamps — not the actual file content. This keeps the HTML lightweight and shareable.",{"type":54,"tag":73,"props":1782,"children":1784},{"id":1783},"performance-notes",[1785],{"type":60,"value":1786},"Performance Notes",{"type":54,"tag":85,"props":1788,"children":1789},{},[1790,1800,1812],{"type":54,"tag":89,"props":1791,"children":1792},{},[1793,1798],{"type":54,"tag":93,"props":1794,"children":1795},{},[1796],{"type":60,"value":1797},"Accurate status is more valuable than high completion percentages.",{"type":60,"value":1799}," Mark items Partially Complete or Open rather than stretching a weak match to Available.",{"type":54,"tag":89,"props":1801,"children":1802},{},[1803,1805,1810],{"type":60,"value":1804},"Content beats filename — always use ",{"type":54,"tag":242,"props":1806,"children":1808},{"className":1807},[],[1809],{"type":60,"value":247},{"type":60,"value":1811}," to confirm a document actually addresses the request before marking Available.",{"type":54,"tag":89,"props":1813,"children":1814},{},[1815],{"type":60,"value":1816},"AI matches are provisional by design. The deal team's confirmation step is what makes an item Complete.",{"type":54,"tag":69,"props":1818,"children":1819},{},[],{"type":54,"tag":73,"props":1821,"children":1823},{"id":1822},"common-issues",[1824],{"type":60,"value":1825},"Common Issues",{"type":54,"tag":63,"props":1827,"children":1828},{},[1829,1839],{"type":54,"tag":93,"props":1830,"children":1831},{},[1832,1837],{"type":54,"tag":242,"props":1833,"children":1835},{"className":1834},[],[1836],{"type":60,"value":538},{"type":60,"value":1838}," fails or returns the wrong project",{"type":60,"value":1840},"\nCheck 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.",{"type":54,"tag":63,"props":1842,"children":1843},{},[1844,1854,1856,1861,1863,1869],{"type":54,"tag":93,"props":1845,"children":1846},{},[1847,1852],{"type":54,"tag":242,"props":1848,"children":1850},{"className":1849},[],[1851],{"type":60,"value":385},{"type":60,"value":1853}," returns no results",{"type":60,"value":1855},"\nThe fileroom may be empty or unpublished. Re-run ",{"type":54,"tag":242,"props":1857,"children":1859},{"className":1858},[],[1860],{"type":60,"value":385},{"type":60,"value":1862}," without a ",{"type":54,"tag":242,"props":1864,"children":1866},{"className":1865},[],[1867],{"type":60,"value":1868},"metadataId",{"type":60,"value":1870}," 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.",{"type":54,"tag":63,"props":1872,"children":1873},{},[1874,1884],{"type":54,"tag":93,"props":1875,"children":1876},{},[1877,1882],{"type":54,"tag":242,"props":1878,"children":1880},{"className":1879},[],[1881],{"type":60,"value":247},{"type":60,"value":1883}," returns an activation link instead of results",{"type":60,"value":1885},"\nBlueflame 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.",{"type":54,"tag":63,"props":1887,"children":1888},{},[1889,1894],{"type":54,"tag":93,"props":1890,"children":1891},{},[1892],{"type":60,"value":1893},"MCP disconnects mid-workflow",{"type":60,"value":1895},"\nReconnect via Settings → Extensions → Datasite. Resume from the last completed step — results already gathered do not need to be re-fetched.",{"type":54,"tag":63,"props":1897,"children":1898},{},[1899,1918],{"type":54,"tag":93,"props":1900,"children":1901},{},[1902,1908,1910,1916],{"type":54,"tag":242,"props":1903,"children":1905},{"className":1904},[],[1906],{"type":60,"value":1907},"updateContent",{"type":60,"value":1909}," or ",{"type":54,"tag":242,"props":1911,"children":1913},{"className":1912},[],[1914],{"type":60,"value":1915},"createContent",{"type":60,"value":1917}," returns a permissions error",{"type":60,"value":1919},"\nThe user's Datasite account may not have Editor permissions on this project. Ask them to check their role in Datasite project settings.",{"items":1921,"total":2042},[1922,1940,1956,1968,1988,2010,2030],{"slug":1923,"name":1923,"fn":1924,"description":1925,"org":1926,"tags":1927,"stars":25,"repoUrl":26,"updatedAt":27},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1928,1931,1934,1937],{"name":1929,"slug":1930,"type":15},"Accessibility","accessibility",{"name":1932,"slug":1933,"type":15},"Charts","charts",{"name":1935,"slug":1936,"type":15},"Data Visualization","data-visualization",{"name":1938,"slug":1939,"type":15},"Design","design",{"slug":1941,"name":1941,"fn":1942,"description":1943,"org":1944,"tags":1945,"stars":25,"repoUrl":26,"updatedAt":1955},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1946,1949,1952],{"name":1947,"slug":1948,"type":15},"Agents","agents",{"name":1950,"slug":1951,"type":15},"Browser Automation","browser-automation",{"name":1953,"slug":1954,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":1957,"name":1957,"fn":1958,"description":1959,"org":1960,"tags":1961,"stars":25,"repoUrl":26,"updatedAt":1967},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1962,1963,1966],{"name":1950,"slug":1951,"type":15},{"name":1964,"slug":1965,"type":15},"Local Development","local-development",{"name":1953,"slug":1954,"type":15},"2026-04-06T18:41:17.526867",{"slug":1969,"name":1969,"fn":1970,"description":1971,"org":1972,"tags":1973,"stars":25,"repoUrl":26,"updatedAt":1987},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1974,1975,1978,1981,1984],{"name":1947,"slug":1948,"type":15},{"name":1976,"slug":1977,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":1979,"slug":1980,"type":15},"SDK","sdk",{"name":1982,"slug":1983,"type":15},"Serverless","serverless",{"name":1985,"slug":1986,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":1989,"name":1989,"fn":1990,"description":1991,"org":1992,"tags":1993,"stars":25,"repoUrl":26,"updatedAt":2009},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1994,1997,2000,2003,2006],{"name":1995,"slug":1996,"type":15},"Frontend","frontend",{"name":1998,"slug":1999,"type":15},"React","react",{"name":2001,"slug":2002,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":2004,"slug":2005,"type":15},"UI Components","ui-components",{"name":2007,"slug":2008,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":2011,"name":2011,"fn":2012,"description":2013,"org":2014,"tags":2015,"stars":25,"repoUrl":26,"updatedAt":2029},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2016,2019,2022,2025,2028],{"name":2017,"slug":2018,"type":15},"AI Infrastructure","ai-infrastructure",{"name":2020,"slug":2021,"type":15},"Cost Optimization","cost-optimization",{"name":2023,"slug":2024,"type":15},"LLM","llm",{"name":2026,"slug":2027,"type":15},"Performance","performance",{"name":2007,"slug":2008,"type":15},"2026-04-06T18:40:44.377464",{"slug":2031,"name":2031,"fn":2032,"description":2033,"org":2034,"tags":2035,"stars":25,"repoUrl":26,"updatedAt":2041},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2036,2037,2040],{"name":2020,"slug":2021,"type":15},{"name":2038,"slug":2039,"type":15},"Database","database",{"name":2023,"slug":2024,"type":15},"2026-04-06T18:41:08.513425",600,{"items":2044,"total":2239},[2045,2064,2087,2104,2120,2137,2156,2168,2182,2196,2208,2223],{"slug":2046,"name":2046,"fn":2047,"description":2048,"org":2049,"tags":2050,"stars":2061,"repoUrl":2062,"updatedAt":2063},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2051,2052,2055,2058],{"name":23,"slug":24,"type":15},{"name":2053,"slug":2054,"type":15},"Healthcare","healthcare",{"name":2056,"slug":2057,"type":15},"Insurance","insurance",{"name":2059,"slug":2060,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":2065,"name":2065,"fn":2066,"description":2067,"org":2068,"tags":2069,"stars":2084,"repoUrl":2085,"updatedAt":2086},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2070,2073,2075,2078,2081],{"name":2071,"slug":2072,"type":15},".NET","dotnet",{"name":2074,"slug":2065,"type":15},"ASP.NET Core",{"name":2076,"slug":2077,"type":15},"Blazor","blazor",{"name":2079,"slug":2080,"type":15},"C#","csharp",{"name":2082,"slug":2083,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":2088,"name":2088,"fn":2089,"description":2090,"org":2091,"tags":2092,"stars":2084,"repoUrl":2085,"updatedAt":2103},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2093,2096,2099,2102],{"name":2094,"slug":2095,"type":15},"Apps SDK","apps-sdk",{"name":2097,"slug":2098,"type":15},"ChatGPT","chatgpt",{"name":2100,"slug":2101,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":2105,"name":2105,"fn":2106,"description":2107,"org":2108,"tags":2109,"stars":2084,"repoUrl":2085,"updatedAt":2119},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2110,2113,2116],{"name":2111,"slug":2112,"type":15},"API Development","api-development",{"name":2114,"slug":2115,"type":15},"CLI","cli",{"name":2117,"slug":2118,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":2121,"name":2121,"fn":2122,"description":2123,"org":2124,"tags":2125,"stars":2084,"repoUrl":2085,"updatedAt":2136},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2126,2129,2132,2133],{"name":2127,"slug":2128,"type":15},"Cloudflare","cloudflare",{"name":2130,"slug":2131,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":1976,"slug":1977,"type":15},{"name":2134,"slug":2135,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":2138,"name":2138,"fn":2139,"description":2140,"org":2141,"tags":2142,"stars":2084,"repoUrl":2085,"updatedAt":2155},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2143,2146,2149,2152],{"name":2144,"slug":2145,"type":15},"Productivity","productivity",{"name":2147,"slug":2148,"type":15},"Project Management","project-management",{"name":2150,"slug":2151,"type":15},"Strategy","strategy",{"name":2153,"slug":2154,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":2157,"name":2157,"fn":2158,"description":2159,"org":2160,"tags":2161,"stars":2084,"repoUrl":2085,"updatedAt":2167},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2162,2163,2165,2166],{"name":1938,"slug":1939,"type":15},{"name":2164,"slug":2157,"type":15},"Figma",{"name":1995,"slug":1996,"type":15},{"name":2100,"slug":2101,"type":15},"2026-04-12T05:06:47.939943",{"slug":2169,"name":2169,"fn":2170,"description":2171,"org":2172,"tags":2173,"stars":2084,"repoUrl":2085,"updatedAt":2181},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2174,2175,2178,2179,2180],{"name":1938,"slug":1939,"type":15},{"name":2176,"slug":2177,"type":15},"Design System","design-system",{"name":2164,"slug":2157,"type":15},{"name":1995,"slug":1996,"type":15},{"name":2004,"slug":2005,"type":15},"2026-05-10T05:59:52.971881",{"slug":2183,"name":2183,"fn":2184,"description":2185,"org":2186,"tags":2187,"stars":2084,"repoUrl":2085,"updatedAt":2195},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2188,2189,2190,2193,2194],{"name":1938,"slug":1939,"type":15},{"name":2176,"slug":2177,"type":15},{"name":2191,"slug":2192,"type":15},"Documentation","documentation",{"name":2164,"slug":2157,"type":15},{"name":1995,"slug":1996,"type":15},"2026-05-16T06:07:47.821474",{"slug":2197,"name":2197,"fn":2198,"description":2199,"org":2200,"tags":2201,"stars":2084,"repoUrl":2085,"updatedAt":2207},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2202,2203,2204,2205,2206],{"name":1938,"slug":1939,"type":15},{"name":2164,"slug":2157,"type":15},{"name":1995,"slug":1996,"type":15},{"name":2004,"slug":2005,"type":15},{"name":2082,"slug":2083,"type":15},"2026-05-16T06:07:40.583615",{"slug":2209,"name":2209,"fn":2210,"description":2211,"org":2212,"tags":2213,"stars":2084,"repoUrl":2085,"updatedAt":2222},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2214,2217,2218,2221],{"name":2215,"slug":2216,"type":15},"Animation","animation",{"name":2117,"slug":2118,"type":15},{"name":2219,"slug":2220,"type":15},"Creative","creative",{"name":1938,"slug":1939,"type":15},"2026-05-02T05:31:48.48485",{"slug":2224,"name":2224,"fn":2225,"description":2226,"org":2227,"tags":2228,"stars":2084,"repoUrl":2085,"updatedAt":2238},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2229,2230,2231,2234,2237],{"name":2219,"slug":2220,"type":15},{"name":1938,"slug":1939,"type":15},{"name":2232,"slug":2233,"type":15},"Image Generation","image-generation",{"name":2235,"slug":2236,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]