← OloLand DDCONTENT HISTORY
WHAT CHANGED
Update to OloLand DD
Snapshot Nov 2, 2026 · 18:12 UTC · version 1.26.7
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save OloLand DD and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Use when mapping private-company markets or sourcing M&A targets — persist an evidence-backed candidate ledger, distinguish research-only work from contact capture, and prepare reviewable sourcing outputs.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 451
}
],
"name": "deal-sourcing",
"skill_md_contents": "---\nname: deal-sourcing\ndescription: \"Use when mapping private-company markets or sourcing M&A targets \\u2014\\\n \\ persist an evidence-backed candidate ledger, distinguish research-only work from\\\n \\ contact capture, and prepare reviewable sourcing outputs.\"\n---\n\n# Deal Sourcing\n\n## Why this exists\n\nGeneric \"sourcing\" prompts produce a list of company names and end there. This\nskill closes the loop: discovery → durable mandate/candidates → contact graph →\nreviewable outreach copy → deal conversion. Persistence happens before contact capture,\nso a missing connector never loses the analyst's market map.\n\n## Pipeline\n\n### Research-only workflow\n\nWhen the user asks for a market map, private-company database, ecosystem\nlandscape, or research-only shortlist, run discovery and tenant-ledger\npersistence only. List existing watchlists before creating a materially\nidentical mandate. Skip contact capture and outreach copy entirely, even if a\ndiscovery result contains contact details. An ecosystem company can be useful\nfor research without being available for acquisition.\n\nFor ecommerce, classify by the capability supplied: seller operations,\nlive/social commerce, payments/trust/authentication, shipping/returns,\ninventory sourcing, discovery/personalization, or category-specific tools.\nThese are research categories, not a pre-approved buyer mandate. Use the\nuser's actual priorities and exclusions, and do not require EBITDA from\nseed-stage businesses. Missing revenue, stage, ownership, and sale interest\nremain unknown. Preserve source links and observation dates, and label\nstrategic fit as a hypothesis independently of evidence completeness.\n\nDo not encode unsupported stage/financial constraints as if the background\nwatchlist matcher enforces them. Record the research criteria and report the\nmatching limitations returned by the tools. Save only actual discovery result\nobjects unchanged; external research belongs in a labeled research artifact\nunless a supported ingestion tool returns persisted source identities.\n\nFor source-access inspection or an on-demand watchlist brief, follow the\n`connections` or `brief` workflow in `ololand-dd-source` instead of this\ndiscovery/write pipeline. In brief mode use existing records read-only,\npreserve pass reasons, and distinguish initial snapshots from dated changes.\nNever treat a prepared brief as an activated recurring delivery.\n\n### Thesis routing\n\nClassify thesis intent before starting this one-off pipeline. Requests to\ncreate, list, update, deactivate, or review matches for a standing sourcing\nmandate must go directly to the corresponding thesis MCP operation; do not\nrun discovery, create a watchlist, persist candidates, import contacts, or\ndraft outreach first. A thesis is a long-lived sourcing mandate, not a SWOT\nor strategy framework.\nFor combined mapping and thesis-management intent, follow the command's\nbranch-selection rule and resolve the order before any write.\n\n### 1. Discovery\n- Use `search_company_discovery` with `mode: \"discover\"`,\n `company_scope: \"private\"`, and explicit filters (sector, geography, size,\n ownership type if PE-relevant).\n- Cap initial set to 25 per run. Quality > quantity. If user wants more, run again with refined criteria.\n\n### 2. Durable mandate and candidates\n- Create or reuse a materially identical watchlist with\n `create_watchlist`.\n- Pass the selected company-discovery result objects unchanged to\n `save_sourcing_candidates`, with `watchlist_id` set to the\n created/reused watchlist ID and `candidates` set to the selected result\n objects.\n- This is the required persistence step. The tool is idempotent and preserves\n discovery snapshots, source systems, evidence references, score/rationale,\n workflow stage, and later deal-conversion lineage.\n\n### 3. Contact capture\n- Inspect the company-discovery result for returned executives and actual\n identity evidence: email, phone number, or LinkedIn URL.\n- Pick at most one contact. Priority: founder > CEO > CFO > head of corp dev.\n- When supported evidence exists, import it through\n `openclaw_import_contacts` using\n `source_system: \"company_discovery\"`. This is the tenant-scoped relationship\n graph and central suppression/dedupe boundary.\n- Link the returned contact to the candidate with\n `update_sourcing_candidate`, passing the same `watchlist_id`,\n the saved candidate `match_id`, and advancing it to `enriched`.\n- When no supported identity evidence exists, leave the candidate shortlisted\n and report that contact enrichment remains outstanding.\n\n### 4. Hook (signal sourcing)\n- Prefer the discovery result's `search_snippets`, `signal_summary`, and\n `ma_signal_summary`. If necessary, run a current public-web search.\n- Look for: funding round, hiring spike, leadership change, product launch, news mention, expansion announcement.\n- If no signal found, fall back to a thesis-based hook (\"we focus on X, you operate in X\") — but flag this row as \"weak hook\" so the user can decide whether to send.\n- Do not call `deep_market_research` or `research_market` before a Deal exists;\n both are deal-scoped.\n\n### 5. Outreach copy\nFormat constraints:\n- 60-90 words. Hard cap at 100.\n- Opens with the SPECIFIC signal (\"Saw your Series B in March...\").\n- One sentence connecting it to the fund's thesis.\n- One sentence proposing a 20-min call. No calendar links in the first email.\n- Sign-off: from the user.\n\nReturn the proposed copy for human review. The plugin declares only OloLand's\nMCP server, so this step does not save a Gmail draft or create an OloLand\n`OutreachDraft`. Do not advance the candidate to `outreach_drafted` unless a\nfuture, supported connector actually persists the draft.\n\n### 6. Persistence\nPersistence is completed in step 2 and contact linkage in step 3. Do not use\n`log_sourced_lead`; that tool writes the global marketing-lead table and is not\nthe tenant-owned sourcing system of record.\n\nNever claim Apollo or Gmail execution. Preserve the saved candidates and\nreport missing contact evidence. Never invent contact, signal, or draft\nidentifiers.\n\n## Output format\n\nAlways produce a markdown table:\n\n```\n| Company | Contact evidence | Hook | Candidate stage | Outreach copy |\n|---------|------------------|------|-----------------|---------------|\n| ... | ... | ... | enriched | ... |\n```\n\nPlus a summary line: `Discovered N • Saved M • Updated/deduped D • Contacts captured C • Weak-hook L`.\n\n## Anti-patterns\n\n- **Do not auto-send.** Drafts only. Always.\n- **Do not enrich more than 1 contact per company.** Multi-touch on first email is spammy.\n- **Do not use generic templates.** If you can't find a hook, flag the row instead of inventing one.\n- **Do not skip tenant-ledger persistence.** A connector failure must not erase the market map.\n- **Do not use the marketing Lead table.** Sourcing candidates and contacts are company-owned.\n\n\n## OpenAI execution requirements\n\nUse the connected MCP server's current tool schemas. Do not invent tool arguments, job-status endpoints, inputs, or outputs. If a referenced tool is unavailable, explain the limitation and request the needed connection or data. Invoke writes only when the user has requested the corresponding action. Do not initiate purchases or payments. An unrun, unsupported, or unavailable procedure is a gap, never a passing result.\n\n\nOpenAI cannot execute local lifecycle hooks. Use the packaged explicit setup/review workflow when requested. Server-side MCP auditing remains authoritative; preserve evidence blockers and human-only approval gates.\n\nClaim-correction submission is unsupported in this OpenAI upload because the current handler records surface=cowork. Do not invoke submit_agent_claim_correction from OpenAI. Explain the limitation and retain proposed correction text for human review without claiming submission. See unsupported-workflows.json for the excluded canonical workflow.\n"
}SHA-256 of public snapshot: 39a4f4cf2f7d6c3f0afaddb69a3bab038cf2439297a609d7c79de0891acc15f1