The Danielle Harness is a standalone platform for verified, traceable, playbook-driven AI execution. Buy it as a platform. Run our vertical products on it. Or build your own.
The harness is domain-agnostic. The playbook is domain-specific. Swap the playbook — and the prompts and tools it implies — and the same execution infrastructure runs a redline, a control-mapping, a diligence trace.
Look at a procurement deal desk, a regulatory filings group, and a SOC 2 control owner. The artifacts differ. The workflow does not.
The rules that govern the work live in playbooks, policies, regs, precedent — not in any one place.
The work is the document. Every artifact runs to thousands of pages of dependent context.
A missed clause, a missed control, a misread clinical finding — an enforcement action, a lawsuit, a breach, a denied claim.
Output has to be defended. To a regulator, an auditor, a court, the other side of the table.
Every job passes the same six stages. The output is signed against a playbook version and written back into your original file by a custom compiler — nothing outside the touched spans is reformatted or broken.
// Accept whatever the team already works with — including the messy.
ingest(file: DOCX | PDF | EML | IMG | SCAN | FAX): Document[]
interface Document {
id: string
source: "docx" | "pdf" | "eml" | "scan" | "fax"
text_blocks: TextBlock[] // ordered, spanned to bytes
handwriting: Span[] // OCR'd, transcribed, low-confidence flagged
tables: Table[]
redactions: Span[] // preserved, not flattened
metadata: {
author: string
revised: ISO8601
sha256: string
}
}
// Handwritten notes, faxed pages, 800-page scans — read, not rejected.// One document → many small, typed jobs.
decompose(doc: Document, playbook: Playbook): Task[]
type Task =
| { kind: "apply_rule"; rule_id: string; target: Span }
| { kind: "screen_privilege"; doc_id: string }
| { kind: "summarize_clause"; clause: Span }
| { kind: "cite"; claim: string; scope: Span[] }
// Tasks are pure: ordered, retryable, addressable.// Each task runs an agent loop against a typed tool set. execute(task: Task, tools: Tool[]): Output const tools = [ find_clause, // (doc, pattern) → Span[] propose_redline, // (span, position) → Edit lookup_precedent, // (clause, jurisdiction) → Precedent[] compare_position, // (clause, playbook) → Delta ] // No tool call. No output. The model cannot free-write.
// A separate agent that did not write the output.
verify(output: Output, source: Document): VerifyResult
interface VerifyResult {
ok: boolean
citation_spans: Span[] // bytes in source that support the claim
confidence: "high" | "medium" | "low"
failures: Failure[] // unsupported claims surface here
}
// Failures route back to EXECUTE. Nothing ships unverified.// A custom compiler writes changes back into the ORIGINAL file. // We never re-flow or re-render it: styles, fonts, macros, // numbering, comments, metadata, and redactions stay intact. emit(work: Work, source: Document): DOCX | DiffSet | ReviewLog | ControlMatrix // Only the spans we touched change. Everything else is the exact // file you sent — diff it against the original and the bytes match. // // LEGAL → tracked-changes DOCX, author = "Danielle" // LEGAL (review) → DiffSet, addressable by clause id // DISCOVERY → ReviewLog with priv tags + summary // CYBERSECURITY → ControlMatrix mapped to SOC 2 / ISO 27001 // HEALTHCARE → ChartAbstract (timeline + cited spans, FHIR-aware)
// One row per decision. Cryptographically signed. Re-runnable. audit.append(record: AuditRow): void // 2026-05-28T10:47:22Z task=apply_rule rule=LIMIT_LIAB.v3.2 // model=opus-4.7 verifier=ok cite=§10.1:184-187 // playbook=std.v3.2 sig=0x9c2f…a18b // 2026-05-28T10:47:23Z task=screen_privilege doc=msa_v14.docx // model=opus-4.7 verifier=ok cite=p.3:atty-client // playbook=std.v3.2 sig=0x4d11…7e22
Four vertical products. Each pre-configured with a domain playbook and tool set.
CC Margin on a draft. Get a tracked-changes version back in under ten minutes — every change tagged to a rule in your playbook. Word and PDF, native.
Oil & gas leases, division orders, run statements, JOAs, and title — read against the rule. Royalty reconciliation, lease disputes, and pre-acquisition diligence, every finding cited to the document.
PE side letters (MFN & transfer-restriction tracking), credit agreements and covenants, and consumer-debt validation (chain-of-title, SOL by state, Reg F §1006.34). Every finding cited to the document.
Medical-legal chart review. Claims and utilization review against medical necessity criteria. Prior auth. Chart abstraction for clinical trials.
Danielle does not learn from your documents. Outputs are signed against a playbook version — re-run the same job and you get auditable, comparable results. Every decision has a citation.
Documents and outputs are not used to train models. Ever.
Every assertion ties back to a specific source span.
Each output is signed against playbook version. Re-runnable.
Type II audit underway. SOC 2 reports available to design partners under NDA.
Engagements are scoped tightly: run one of our four products — Margin, Basin, Ledger, Chart — or the Harness directly, on one real workflow for 30 days.
team@danielle.legal