Skip to content

Draw-Tree/drawtree-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Draw Tree Protocol

A wire protocol for AI-native equity research. Defines what a falsifiable investment hypothesis tree looks like, how it is co-designed with a user, how it is researched, and how its verdicts are scored over time.

This repository holds the normative specification of the Draw Tree Protocol — the schema, the verdict vocabulary, the aggregation rules, the validation invariants, and the client contract that governs how AI clients behave. Anyone can read this spec, implement a server, and produce trees that interoperate with the ones running on drawtree.capital.

A reference Python validator lives in drawtree/drawtree-validator. The shipped skill bundle (SKILL.md / AGENTS.md / system prompt) lives in drawtree/drawtree-skill.

Why this exists

Today's investment research lives in a kind of pre-scientific era — sell-side notes, hot takes, and AI-generated reports all share the same fragile shape: authoritative tone, no falsification criteria, no version history, no way to tell two months later whether the author was right. Different reports disagree, and there is no procedure for resolving the disagreement other than deciding which author you trust more.

Modern science walked out of that kind of culture by adopting a shared method — public procedure, repeatable experiments, falsifiable predictions. The Draw Tree Protocol is an attempt to do the equivalent for investment research: define what a research artifact must look like in order to be treated as research, not as opinion.

The protocol does not tell you what to believe about a company. It tells you what shape your belief must take before anyone (including future-you) can check it.

What the protocol defines

Five layers, strictly ordered:

Narrative   →  The current market consensus, plus the specific claim you contest.
H-0         →  One falsifiable sentence with a time window.
Branches    →  3-4 MECE branches, each bound to a named analytical framework.
Leaves      →  2-4 sub-hypotheses per branch, each with an explicit kill condition.
Scenarios   →  Bull / Base / Bear, valued via Peer Group multiples.

The full normative spec is in SPEC.md. The JSON Schemas for draft trees and committed trees are in schema/.

Status

  • Spec version: v0.3 (2026-06)
  • License: MIT (this spec and its schemas)
  • Stability: the schema is frozen for v0.3; clarifications and non-breaking additions will land before v0.4 cuts.
  • Reference implementation: drawtree.capital runs the protocol over MCP (Model Context Protocol) on streamable HTTP. The same protocol could be implemented over plain REST or gRPC.

How to implement a compliant server

  1. Read SPEC.md end-to-end.
  2. Validate your trees against schema/tree.schema.json using the reference validator (pip install drawtree-validator) or any JSON Schema 2020-12 implementation.
  3. Compute conviction and expected return using the algorithm in SPEC.md §6 Aggregation.
  4. Honour the verdict vocabulary in schema/verdict.md — the six states are normative, the scores are normative, the default for unresearched leaves is normative.
  5. Ship an AI client contract derived from drawtree-skill if you want the AI behaviour to match.

A tree produced by any compliant server can be read by any other compliant server. That is the property a protocol has to have for it to deserve being called a protocol.

Contributing

Open an issue using one of the templates:

  • Spec question — something in SPEC.md is ambiguous or contradictory.
  • Compliance issue — a published spec rule appears to be violated by the reference implementation.

We do not currently accept feature PRs against the spec — substantive changes are proposed in issues first, discussed publicly, then drafted into a versioned spec update.

Out of scope (deliberately)

The protocol does not define:

  • Valuation by DCF / reverse DCF / DDM. These methods encode noise as precision; they conflict with the falsifiability requirement. Use Peer Group Valuation as defined in SPEC.md §5.
  • A public directory of trees. Trees are private by default to the account that authored them. Discovery is out of scope.
  • The LLM you use. Any model that can read SKILL.md and follow its hard rules produces compliant trees. The protocol is model-agnostic.

License

MIT. See LICENSE.


Draw Tree is a project of 90s.pm.investing.

About

Normative specification of the Draw Tree Protocol — falsifiable investment hypothesis trees for AI-native research.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors