P01 · Demand · Rendered from source

P01 — client intelligence and discovery: research report

Client intelligence and discovery

101 lines15,838 bytessha256 fb255c505925

P01 — client intelligence and discovery: research report

Run 2026-08-27-sprint-1-fable · lane S1-L1 (ACTIONIST-S1-L1-DEMAND) · observed 2026-08-27 Mode: research only. No client data, no authenticated vendor access, no cloning, no execution, no admission. Evidence classes: E inspected local artifact · D documented first-party claim · I inference · U unknown.

Executive result

Discovery is an allocation problem, not an interviewing problem: acquire the minimum facts sufficient to choose a valuable workflow, spending the cheapest available currency (compute, then client attention, then client trust), and know when to stop.

Three findings from 105 surveyed surfaces change how P01 should be built:

  1. Almost nobody publishes an explicit stopping rule — with the count stated precisely. Exactly one surface in 55 (Fin for Sales) publishes configurable named terminal states. A second audit pass counted 13 of 55 rows mentioning some termination-adjacent mechanism (qualification, completion, escalation, routing, coverage), so the headline is definition-sensitive and both numbers belong in the record: 1/55 for explicit configurable terminal states, 13/55 for any completion mechanism at all. The design point survives either way — a defensible, published stopping rule remains rare — but the 1/55 figure must never be quoted without its definition.
  2. There is no maintained, permissively-licensed, LLM-driven structured-interview engine in open source — and the qualifier "LLM-driven" is load-bearing. The dialog segment returned 5 rows across three search angles (research artifacts, abandoned toys, licence-blocked platforms). A cross-segment audit confirms the narrow claim but falsifies any broader reading: the form-engine segment contains several maintained, genuinely permissive questionnaire engines with real conditional logic — SurveyKing (MIT), xiaoju-survey (Apache-2.0), Formily, FormKit, uniforms, formio.js. What does not exist is an engine combining that declarative question machinery with LLM-conducted adaptive interviewing. The discovery-dialog layer is build-not-adopt for the adaptive half; the deterministic question-graph half has adoptable permissive prior art.
  3. The invasiveness ladder is the organising architecture — with a correction the lane found in its own verification pass. Evidence sources sort into six rungs by what the client must grant, and a precompute system should climb only as far as the blocking unknown requires while recording which rung produced each fact. But the ladder is monotonic in ongoing access granted, not in sensitivity of data exposed: a rung-1 HAR export needs no standing access yet carries live cookies, bearer tokens and customer records, while rung-4 telemetry needs an installed agent yet captures only window titles. Escalation must be governed by two independent scores (access_persistence, content_sensitivity); a single ordering is a useful narrative and an unsafe control.

Denominators

ClassSurfacesFetch-verifiedSearch-only
Commercial551144
OSS501931
Local estate1010 (read)0
Total1154075

Commercial segments: intake 26, conversation-intelligence 8, enrichment 8, ai-discovery 7, guided-selling 6. OSS segments: introspection 12, task-mining 9, active-learning 8, org-graph 8, enrichment 7, process-mining 6.

The ~100 denominator target is met (105 external surfaces). The verified fraction is 30/105 (29%) and that is the pack's main weakness — most rows are metadata-and-description evidence, not read-from-source evidence. Every claim below carries its verification state.

What the commercial survey established

The precompute/ask frontier is the product. Demandbase Forms Enrichment expresses it most sharply: hidden fields capture firmographics without display, and "Toggle Fields" stay hidden unless enrichment fails. The per-field fallback is the confidence mechanism — cleaner than a score nobody reads. TaxDome pre-populates from the prior year and asks for confirmation; SafeBase publishes once so the question is never asked. Four independent products converging on minimise-the-ask-by-maximising-derivation is the strongest convergent evidence in the survey (D, mechanism from support docs surfaced via search — the Demandbase product page itself makes no first-party claim about forms enrichment).

Coverage-gap analysis is the most transferable single mechanism. Cloobot X maintains a live chain from requirement → user story → ticket → release, links every derived requirement back to its originating source context, and performs gap-and-coverage analysis: what has discovery failed to establish? That set should drive the next question. Its "80-90% accuracy" is a customer testimonial on the vendor's own page, not a benchmark (D, fetched).

Terminal states, not just questions. Fin for Sales runs discovery to one of four ends — book a call, start a trial, disqualify, or route to sales — with criteria configured per playbook (company size, industry, use case, budget fit, region, existing vs new). Handoff carries full history plus a summary of what the prospect shared and their qualification status. A discovery agent without terminal states either stops arbitrarily or never stops (D, fetched).

Schema-filling from conversation, without citations. Avoma automates custom CRM field updates for MEDDIC/SPICED and scores methodologies from calls — a named schema populated by inference from unstructured conversation, which is precisely P01's shape. The vendor markets outcomes and never describes how an extracted field ties back to transcript evidence. Its absence from the marketing is weak evidence it does not exist, and that absence is Actionist's opening: ship the citation (D, fetched).

Methodological caution. Gong is the category leader and had the least mechanism-bearing first-party evidence; its help-centre tracker documentation 404'd, and detailed capability claims circulating about it come overwhelmingly from competitors' comparison pages. Marketing pages are systematically mechanism-free — two Zoovu URLs and one Gong help doc 404'd; Content Snare and Clio returned 403. Per this project's evidence standard, every capability claim in this pack is a claim to verify by demo or documentation, not a verdict.

What the OSS survey established

Licence badges failed nine times in 110 rows, each caught only by reading the LICENSE body — the same rule that caught Composio on 27 Aug. For P01 specifically: pm4py is AGPL-3.0 with a paid commercial licence for closed-source use, and its network clause plausibly reaches a hosted Actionist service; RPA-US/screenrpa, the closest academic match for screen-based task mining, is CC BY-NC 4.0 and therefore unusable for paid client work; fire-enrich's MIT covers an orchestration shell over two paid APIs. Two projects still surfacing in search as live options are archived (APIClarity, 29 May 2026; ApromoreCore, self-declared deprecated), and GraphRAG is in maintenance mode by its maintainers' own declaration despite 35.7k stars.

Star counts inverted usefulness at both ends. web-check has 34.6k stars and reveals nothing about how a client works internally; traffic2openapi has 3 stars and answers a question no other cheap tool answers. Where stars tracked quality (ActivityWatch, Graphiti), the corroborating evidence was commit cadence and third-party contribution, not the star number. This is independent confirmation of assumption A22.

The rungs, with their evidence:

  • Rung 0 (nothing granted): fire-enrich derives company, industry, model, headcount, funding, tech stack from one email address, each field carrying source URLs. Per-field citation is the most portable idea in the survey: without it, precomputed context is a confident guess and the first error destroys trust in the whole dossier; with it, an error is a bad source rather than a broken system. Caveat: synthesis is model-mediated, so a citation shows where the model looked, not that it read correctly (D, fetched).
  • Rung 1 (a self-generated artifact): traffic2openapi infers OpenAPI specs from a HAR file the client exports in thirty seconds — no agent, no cluster access, no admin credentials. This is authority arbitrage: the tool needing the least authority to produce usable evidence usually wins, even when a more capable tool exists (APIClarity did this better and is archived). A HAR is also a credential-bearing secret containing live cookies, bearer tokens and response bodies; it must be scrubbed at ingest, before durable storage (D, fetched, 3 stars — pattern not dependency).
  • Rung 4 (attention telemetry): ActivityWatch is the most mature capture project surveyed (18.7k stars, decade-old community, active Rust rewrite). Application names and tab URLs answer the questions that otherwise burn the first client meeting: which CRM do you actually use, how much of the day is email versus ticketing, which tools did you name but never open. Window titles leak far more than "app usage" implies — document filenames, customer names, email subjects — and a research fork exists specifically to disable title tracking, which is strong evidence someone with an ethics review found the default too revealing. Titles should be hashed or category-mapped at the edge (D, fetched, MPL-2.0).
  • Rung 5 (full capture): OpenCUA's review-trim-submit gate is the consent architecture to copy wholesale — the recording is not evidence until the person who made it has seen it, cut what should not leave, and pressed submit. Consent to this captured artifact, granted after seeing it, not blanket consent to a process. MIT, explicitly commercial-permitting (D, fetched). OpenAdapt contributes the governing discipline: zero generative calls on healthy runs, halting instead of guessing — the correct posture for precomputed context (D, fetched, MIT).

Conformance checking is the precompute asymmetry. pm4py's transferable idea is not the discovered process map but the divergence: here is the process you described, here is the one your logs show, here are the rework loops and skipped approvals between them. That gap is evidence-backed and impossible for the client to produce about themselves. Blocked by input reality — most SMB clients have no case/activity/timestamp event log — and by the AGPL. Event logs are also per-person performance data; a process showing whose cases loop is a surveillance artifact regardless of intent, and must be aggregated before anyone at the client sees it.

Bi-temporal invalidation is the right substrate. Graphiti invalidates rather than deletes facts, with validity windows and episode-level provenance, so the store answers "what changed since we last spoke." Combined with per-field citation, this gives a context store where every fact has a source and a valid-from/valid-to window (D, fetched, Apache-2.0, open-core; needs a real graph database, so per-client infrastructure is a real cost).

Question selection is stream-based, not pool-based. A client conversation is not a pool where you rank all questions and pick the best; each candidate surfaces in context and must be asked-or-skipped immediately under a hard budget. scikit-activeml supplies the frame (BSD-3-Clause, better maintained than modAL, whose CI badges still point at travis-ci.org). The honest limit, which must be stated to Cena rather than papered over: these strategies rank by model uncertainty, a proxy for question value, not a measure of it. Nothing models the cost of asking, intrusiveness, or answerability. The value function must be written from scratch.

Industry priors: all 17 preserved

industry-discovery-priors.jsonl holds one machine-readable row per industry with atoms, entities, terminal owner, precomputable fields, must-ask fields, contradiction risks and limitations, sourced to the phase-2 bounded specifications. Three structural observations:

  • Public detectability varies enormously by industry. Ecommerce (storefront fingerprinting), SaaS (site, docs, status page) and real estate (public listings) are strongly observable at rung 0. Law and healthcare are nearly opaque — privilege and regulated-data boundaries mean discovery itself may only touch metadata.
  • This creates the lane's sharpest contradiction: the industries easiest to precompute are also the most self-served, and the industries where question-led discovery is most expensive may be where willingness to pay is highest. The precompute thesis is strongest exactly where the commercial case may be weakest. Held open, not resolved.
  • Regulated industries need a distinct discovery profile that never ingests regulated content, asks about categories rather than records, and records the exclusion as evidence. Less evidence means wider spec uncertainty, which must be priced rather than hidden.

All 17 rows carry demand_signal=E, validated_demand=U. Nothing in this lane upgrades a catalogue card to validated demand.

Local estate join

AutoSaaS's opportunity-intake gate (one target, one buyer, one painful workflow, one plausible payment trigger) is the closest local precedent to a stopping rule, and the actionist-solutions-sweep-spec decomposition items 1–2 are P01/P02 restated. Both are procedural designs that have never been measured — no AutoSaaS-generated SaaS exists. Retained as design input, not efficacy evidence.

SISOCRM, Great Library and the 21st stores are marked not_applicable to P01 with rationale: they carry supply, registry and UI evidence consumed by P03/P05/P06/P09/P15, and contain no client-discovery signal. Citing them would pad the join without adding demand-side evidence.

Innovation register

50 hypotheses in innovation-register.jsonl, each with source and limitations. Ranked top 10 by expected decision impact:

  1. Precompute-first ladder — never ask what a cheaper rung supplies (inn-p01-001)
  2. Industry-prior warm start so the first question discriminates within-industry variance (inn-p01-002)
  3. EVOI question selector scored on decision change, not template order (inn-p01-003)
  4. Decision-invariance stopping rule (inn-p01-004)
  5. Wants-vs-pain dual ledger; recommendations must cite pain evidence (inn-p01-005)
  6. Contradiction as a first-class object, surfaced as a question (inn-p01-006)
  7. Confidence-typed ClientContext fields consumed by P02 as confidence, not bare values (inn-p01-013)
  8. Volume denominators before value claims — no denominator, no ranking (inn-p01-016)
  9. Shadow-mode adaptive questioning before any live adaptation (from OASIS; inn-p01-012 family)
  10. Typed DiscoveryGapList that P02 must consume — no silent gap loss at the seam (inn-p01-030)

Boundaries and what this pack does not establish

  • No validated demand for any industry. No client data used. No authenticated vendor access.
  • No repository cloned, built or executed; every mechanism statement comes from reading pages, schemas, definitions or licence text.
  • 71% of external rows are search-only; treat their claims as leads.
  • Vendor figures quoted anywhere in this pack are claims, attributed as such: Cloobot 80-90%, Loopio 1,700 companies / 61% ROI, Auctor's 70% delay figure. None may be repeated to Cena as fact.
  • The introspection denominator is weak evidence (9 of 12 rows search-only, best tool archived).
  • bupaR's licence is unconfirmed — its LICENSE file names no licence at all and must be read from DESCRIPTION before anyone relies on it as the permissive escape from pm4py's AGPL.