# Deal Launch > One company fact set in; the five documents a sell-side M&A launch actually needs out — the > anonymous teaser, the buyer universe, the phase-one process letter, the CIM outline and the > diligence request list. Live at https://deal-launch.skillsafe.ai/ Deal Launch is a browser app on SkillSafe. A banker, an owner or an adviser pastes what they know about a company being taken to market — sector, ownership, the revenue and EBITDA line by year, the customers, the reason for the sale — and works it through five lanes over that same paste. ## What runs for free, in the browser Before any model is called, `dealscan.js` reads the paste with no network access at all: - **Structure.** Labelled facts (`Sector: …`), markdown pipe tables, CSV and TSV tables, section headings and bullets, in either table orientation (years as columns or years as rows). - **Arithmetic.** Revenue CAGR, year-on-year growth, EBITDA margin per year and the margin trend, customer concentration, size band — all computed from the pasted numbers. Figures written as `£31.2m`, `NOK 612m`, `24,900,000`, `(1.2)` or `12%` all parse. - **An identifier index.** Every company name and legal suffix, trading name, product brand built on the company's name, named customer, location, person, domain, email address and phone number. Each one carries the replacement token that will stand in for it. - **Range-based redaction.** Masking is applied by character range and the string is rebuilt by slicing, so a masked identifier is provably absent from what is sent. The masked text, the masked context box and the masked prescan summary are what leave the browser. - **A completeness lint.** Flags with stable ids (`DL-010`, `DL-014`, `DL-040`, …), each addressed to the lanes it affects, and a readiness score out of 100. The free read is downloadable on its own: the read as markdown, the flags as CSV, and the fact set with every identifying detail replaced. ## The five lanes Each lane sends `task: ""` and gets back one JSON object in a common envelope. | task | document | source skill | | --- | --- | --- | | `teaser` | the anonymous one-page teaser | @anthropics/teaser | | `buyers` | the buyer universe, tiered, with rationale and objection per buyer | @anthropics/buyer-list | | `process` | the phase-one process letter and its timetable | @anthropics/process-letter | | `cim` | the CIM outline with the evidence each section needs | @anthropics/cim-builder | | `diligence` | the diligence request list by workstream | @anthropics/dd-checklist | Lanes hand off: the teaser carries into the buyer list, the buyer list into the process letter, the process letter into the CIM outline, the outline into the diligence list. The handoff digest budgets each part separately, so a long findings list cannot crowd out the gaps. ## What the app checks after the model replies - **Anonymity, and the fix, not just the finding.** The same identifier index is run over the whole reply, including the generated file. Any identifier that reappears is named and shown **in context** — the surrounding sentence, so it can be found without hunting. One button then scrubs every occurrence out of every field of the result in place, re-runs the check and says whether the document is now clean; the scrubbed document and the scrubbed file can be downloaded directly. This runs on every lane, not only the teaser. The prompt additionally treats a personal name as an identifier even when the parser did not index it, because the parser finds companies, customers and places but not reliably people — an unindexed name is the one the automatic re-check cannot see. - **Flag coverage.** Every free-read flag that applies to the lane must be answered exactly once; any the reply skipped is listed by id, and any id it invented is marked as unknown. - **The generated file is parsed before it is offered.** CSV is parsed as strict RFC4180 with a consistent field count; markdown is checked for headings and unclosed code fences; the process lane's dates are parsed and turned into an iCalendar file. A file that does not parse is shown as raw text with the parse error, and the download is disabled. ## The second run The app is built for "fill a gap, read it again for free, then decide whether to spend another credit", so the free read is scored against the last run: readiness before and after, which flags were cleared, which are new, and an explicit "nothing has changed — another run would be answering the same fact set" when the paste has not moved. A run carried across from another lane says so above the run button, names which result it is building on, and can be dropped. The size of what will actually be sent, and anything the middle-clip will cut, is stated beside the run button before the run is started rather than after it has been paid for. ## Exports Markdown for the teaser, the letter and the CIM outline; CSV for the buyer universe, the diligence list, the gaps and the free-read flags; an `.ics` calendar for the process timetable; the whole result as JSON, including the free read that produced it. ## Cost and accounts Reading either bundled example is free and needs no account — both ship a saved model run for every lane. Running a lane on your own fact set is metered: the app estimates the selected lane, shows the hold as *reserved* rather than as a price, compares it against the balance before enabling the run button, and reports what was actually charged afterwards. History is saved to the SkillSafe account in a declared `deals` collection and is searchable by meaning. ## Not Not investment, legal or tax advice. Every figure in a generated document comes from the pasted fact set; check it against the source before it reaches a buyer. The app does not value a business, state a multiple, or recommend a transaction. ## Source Built on five skills from https://skillsafe.ai/skill/@anthropics/financial-services-plugins — @anthropics/teaser, @anthropics/buyer-list, @anthropics/process-letter, @anthropics/cim-builder and @anthropics/dd-checklist. API documentation: https://deal-launch.skillsafe.ai/api.html