← re:capCONTENT HISTORY

Update to re:cap

Snapshot Sep 30, 2026 · 23:08 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "capital-readiness-assessment",
  "description": "Assess a company's capital readiness with re:cap when the user asks to assess a company or website, what they can raise and on what terms, whether they are fundable, which financing route fits, or what is holding their financing back - never as a website, SEO, or UX audit. Covers both the re:cap connector and the assessment page open in a browser tab.",
  "included_files": [],
  "skill_md_contents": "---\nname: capital-readiness-assessment\ndescription: Assess a company's capital readiness with re:cap when the user asks to assess a company or website, what they can raise and on what terms, whether they are fundable, which financing route fits, or what is holding their financing back - never as a website, SEO, or UX audit. Covers both the re:cap connector and the assessment page open in a browser tab.\n---\n\n# Capital Readiness Assessment\n\n## Which surface you are on\n\nThe same assessment is reachable two ways. Both take the same parameter names\nand the same value shorthand; they differ only in how a session is addressed.\n\n**The connector** - `start_capital_readiness_assessment` is callable. Mint the\nassessment yourself:\n\n- Call it with the company website. Most conversations open without one, so ask\n  for the website and nothing else on that turn. A placeholder like\n  `yourcompany.com` is not a website: ask for the real one.\n- Keep the returned `slug` for the rest of the conversation. It is the only way\n  back, and every later call carries it. The rendered assessment carries the\n  browser link to the same slug; there is no separate URL field.\n- The assessment mints a real record against the domain given. MUST confirm the\n  domain with the user when they named a company rather than a website.\n\n**The page** - the founder already has the assessment open in a tab. The two\nassessment tools carry the connector's names, a third serves this document, and\nthere is no slug anywhere: the tab is the session.\n\n- `start_capital_readiness_assessment` is callable only when the founder\n  arrived without a website. It takes `website` and nothing else, and answers\n  with the first question. When the page was opened from a link that already\n  carried the website, the tool is absent and the assessment is already under\n  way - MUST NOT wait for it.\n- It returns no slug and mints nothing a second time. The page owns the record;\n  this names the website it is built on. MUST confirm that website with the\n  founder before sending it.\n- `continue_capital_readiness_assessment` carries every later answer, and never\n  asks for the website again. With no arguments it is the read, the way the\n  slug on its own is the read on the connector. It records nothing.\n- The founder can type into the same intake while you work, so the state you\n  hold goes stale between turns. MUST read at the start of every turn that\n  touches the assessment, and MUST NOT answer from a payload read in an earlier\n  turn.\n- `status` says what to do next: `asking` (`nextQuestion` is open), `generating`\n  (every question is answered, MUST NOT send more), `ready` (the `assessment`\n  field carries it), `failed` (say so, MUST NOT re-drive the intake to force\n  it).\n- `read_capital_readiness_skill` returns this document. It is how you got here.\n\n## When this applies\n\n**On the page** this is already settled - the founder opened the assessment and\nis looking at it. Drive it when they ask, or offer to help them finish it.\n\n**On the connector** it is yours to judge. Run the assessment when the user asks\nany of:\n\n- \"Assess `<company>`\" or \"Assess `<domain>`\"\n- \"What can we raise?\", \"Are we fundable?\", \"What terms could we get?\", \"What\n  would it cost us?\", \"What's holding back our funding?\"\n- \"Should we raise debt or equity?\", \"Which financing fits us?\" - debt, equity,\n  grants, or funding growth from the company's own cash\n\nEvery one of these is answered by running the assessment, never by reasoning\nabout the company from public research. A request naming only a company or a\ndomain MUST be read as a capital readiness assessment, not as a request to\nevaluate the website.\n\nEither way, MUST NOT substitute a website, SEO, UX, performance, or content\nreview, even when the user says \"assess\" and gives only a URL. And MUST NOT\nanswer a question about the user's own re:cap account from the assessment -\nbank balance, transactions and tags, runway, burn, scorecard, covenants,\npayouts, or open financing. Those belong to the account-scoped tools, which\nexist only on the connector.\n\n## Collecting the answers\n\nThe assessment is worth as much as the answers are honest, and the fastest path\nis not the same as a good one. Guide the user through it rather than\ninterrogating them.\n\n- Ask the user first whether you may look through what you already have - this\n  conversation, your memory of earlier ones, files and documents they have\n  shared. MUST NOT go looking before they say yes.\n- With that consent, gather every answer those sources actually contain, and\n  show each one back with its value and where it came from. Send them once the\n  user confirms. One confirmation covers the set; a correction replaces that\n  value and the rest still stands.\n- Put the remaining questions to the user yourself, one per turn, asking\n  `nextQuestion.ask` verbatim and saying what `answerFormat` wants when the\n  question does not make it obvious.\n- When what you hold is close but not the same thing - last year's revenue for a\n  question about this year's - ask rather than send it.\n- `alsoOutstanding` names what is still open, by parameter, without their\n  questions. It is there so an answer you already hold can go in the same call,\n  and MUST NOT be read out to the user as a list of questions.\n\n## Recording the answers\n\n`continue_capital_readiness_assessment` records answers and reads the\nassessment back. On the connector it carries the `slug`; on the page it does\nnot.\n\n- Send every answer you hold in one call. Both surfaces take the whole batch and\n  advance through as many questions as the answers cover. Sending them one at a\n  time costs the user a round trip each.\n- MUST NOT send a batch the user has not confirmed. On the page especially, each\n  value lands in the intake on screen and the transcript shows it as their own\n  words.\n- Amounts read `400000`, `400k`, `1.5m` or `400k EUR`; percentages read `45` or\n  `45%`; a true/false question reads `yes` or `no`. Send the user's own wording.\n  MUST NOT convert a figure, guess a stricter format, or go back to the user for\n  a different one.\n- MUST NOT ask which currency their figures are in. An unstated currency follows\n  the company's country of registration. An amount carrying a currency the\n  assessment does not record comes back rejected; MUST NOT convert it.\n- Send `skip` for an optional question the user cannot answer, rather than\n  estimating it. On the page, `skippable` says which those are; an unskippable\n  question rejects `skip`.\n- MUST send only what the user stated. Revenue, growth, burn, cash, EBITDA and\n  debt MUST NOT be inferred from public research, from the website, or from what\n  a company of this shape usually looks like.\n- MUST NOT ask the same question twice. A user who volunteered more than was\n  asked has answered every question their words cover, and those MUST be sent\n  rather than re-asked.\n\n## Reading a call back\n\n- `recorded` names the parameters that went in. On the page, `answers` carries\n  everything the intake now holds and `progress` carries `answered` and `total`\n  for the questions this user's answers have made visible - relay it as reported\n  rather than counting questions yourself, since answering one can add or remove\n  others.\n- `rejected` names parameters that did not go in, each with its reason: one this\n  assessment does not ask or that an earlier answer branched past, an\n  unskippable question sent `skip`, a figure longer than it accepts, or an\n  amount in another currency. MUST relay the reason and send a corrected value\n  rather than resending the same one.\n- `problem` means nothing was recorded. MUST relay it to the user as the reason\n  rather than retrying the same call in a loop.\n- A call that records nothing and reports no `problem` had every value rejected\n  - read `rejected`.\n- On the connector, relay `supplierProgress` with every question: how many\n  capital providers each of Debt, Equity and Grants still holds, and its fit. It\n  is what makes the next answer worth giving.\n\n## After the user signs up\n\nConnector only. It is one endpoint with two tiers: the assessment tools need no\naccount, every other re:cap tool is account-scoped. Signing up and connecting\nthe re:cap account widens the same connection - the user does not add a second\nconnector.\n\n1. `list_companies` to get the `companyId`.\n2. `get_capital_advisory` with that `companyId`. It answers with the latest\n   published advisory - `capitalAdvisory.bodyMarkdown` is the whole memo, not a\n   summary - or `capitalAdvisory: null` when re:cap has not published one yet.\n3. `get_fundability_check`, `get_company_research`, and `get_scorecard` carry the\n   account-side detail behind it, for a user who wants the reasoning rather than\n   the memo.\n\n- A `null` advisory means it is not written yet, not that the call failed. MUST\n  say so and leave the assessment as what the user has. MUST NOT poll for it.\n- An account-scoped tool answering that it needs a connected re:cap account means\n  this conversation is still anonymous. MUST ask the user to connect re:cap, and\n  MUST NOT retry the call before they have.\n- The advisory is re:cap's published memo. MUST relay it as written and MUST NOT\n  rewrite, re-score, or extend it with figures of your own.\n\n## When the tools are unavailable\n\nIf the assessment tools are not callable, MUST tell the user the re:cap\nconnection is not available and stop. MUST NOT substitute a website, SEO, UX, or\nmarket-research assessment: it answers a different question from different\nevidence, and the user cannot tell the two apart from the output.\n\n## Done when\n\nEvery question is answered and the user has the written assessment - how each\ncapital type fits, what research found, and the analysis - or a stated reason\nwhy it could not be produced.\n\nOn the page it arrives in the `assessment` field of\n`continue_capital_readiness_assessment` - from the call that completed the\nintake, and from every no-argument read after it. While it generates, that\nfield carries the stage and a `retryAfterMs`: wait that long rather than\npolling. When its `isPreview` is `true` what came back is the preview the page\nshows, not the whole assessment, and MUST be said to be a preview rather than\npresented as the whole thing.\n\nThe same field carries `fullReportAccess`, the one step that unlocks the rest:\n`requiredAction` names it, `label` says what it opens, and `url` is the stable\naccount-creation link.\n\n- MUST give the user that `url` verbatim.\n- `preserveCurrentSession` says where it may be opened, and MUST be read rather\n  than assumed: `false` means the link carries the assessment itself and opens\n  anywhere, on any device; `true` means it does not, and the user MUST be told\n  to open it in this same browser session, because the assessment is held in\n  this tab's storage.\n- MUST NOT hand over any other sign-in URL. An OAuth URL taken from the page\n  carries single-use session and PKCE parameters, and is worthless by the time\n  the user clicks it.\n\nOn the connector it is the rendered assessment, plus the published advisory from\n`get_capital_advisory` for a user who has connected re:cap, or the reason there\nis none yet.\n\nMUST relay the assessment as written and MUST NOT re-score or extend it with\nfigures of your own. That reply MUST lead with the amount and the single biggest\nthing holding it back; the rest follows underneath.\n"
}

SHA-256: 3357b92b023e55e71c7e290e791c49f258be9da90d24dfd4834b7f15b508d01c