docs← Back to article

Markdown for LLMs

docassemble

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# docassemble

**In short:** docassemble asks the questions and builds the document;
Arxo decides the case with grounds. On one charities interview they meet
in observable traces: how many questions to an answer, what the file
contains, and what happens at an evaluative term. This page is for access-
to-justice builders who interview users into legal outcomes.

## What docassemble is for

docassemble is a guided-interview and document-assembly platform:
dependency-driven questioning that orders itself, legal logic as plain
author Python, and three assembly paths from templated documents to filled
forms. Its strengths are zero distance from question to rule, mobile-ready
interviews out of the box with versioned answer snapshots and review
screens, legally significant output files, mature deployment, and an
interview style lawyers write directly without a separate cards layer —
backed by a community with external test tooling.

## Where it meets Arxo

Fact-gathering through interviews plus rule-driven assembly on one fixed
task: question count to answer, redundant questions, byte-reproducibility
of the assembled file, and handling of the evaluative feature — compute,
request judgment, or stop. The Arxo side runs its charities package with
question cards; the interview side is an independently written charity-test
flow; the pinned charities act arbitrates. The engine and its rules are,
in the docs' own words, effectively one thing in one place — so the
comparison reads observable traces, never internals head-on.

## Key differences

- **Author patterns are not platform properties.** Plain-Python legal
  logic means every interview's behavior is the author's as much as the
  platform's; the page attributes each claim to its side. Silence as a
  boundary on one side versus a coded answer on the other is a purpose
  difference, not a win.
- **Evaluative terms go to a human by branching.** Arxo returns
  requires-judgment with a named request, stays undecided, and names
  missing facts; the interview asks a person and branches, with no
  first-class judgment or refusal outcomes and no derivation trace —
  the nearest equivalent is author-written screen text.
- **Time, editions, and numbers are author code.** Python dates and
  author-computed amounts carry no calendrical or editorial norm
  semantics; the platform has no edition awareness — change means manual
  re-read, interview edit, and version bump. Day counts and risk levels
  from the studied bank are non-comparable by contract.
- **Compare fields, not bytes across formats.** Reproducibility means
  exact hashes across two runs of the same side; question metrics are
  exact integers with no tolerance. String heuristics for legal
  connection (a place name in an address) are not legal connection under
  the studied articles — such cases stay non-comparable with grounds.

## A concrete scenario

Twelve interview cases — a full education purpose, empty purposes, an
analogous purpose without the deciding view, a benefit statement, control
structures with exemption orders, the jurisdiction link, governor
convictions including spent-but-reportable ones, a skipped answer, plus
day-count and risk-level refusal controls — with an edit axis across two
text revisions: redefined officers, a new corporate form, re-routed
oversight, and a stability control. Interview fixtures and container
digests are created at run time, not before.

## Choosing and combining

Choose docassemble when the front door is an interview: users answer
questions and receive a document, on mobile, tomorrow. Look to Arxo when
the decision behind the document must cite its edition, keep conflicts
visible, and refuse cleanly on thin facts. Combined, the interview gathers
and assembles while Arxo decides the hard cases — with the question log
and the assembled fields as the shared surface.

## Evidence and open questions

- Sources checked: September 2026 (docs index, changelog, interview-logic
  and assembly guides, the full license text, the external tester; one
  official source set was partially blocked, and HTML plus flat
  extractions were used instead — marked as such).
- Studied profile: docassemble at its September release with a fixed
  stand runtime.
- Basis: confirmed by documentation plus a prepared protocol with a
  frozen neutral case bank (no interview-side answers pre-set);
  comparative run not performed.
- Open: transitional provisions outside the studied slice, interview
  fixtures at run time, and the run itself.

## Sources and reproducible materials

- Shared scenario: [One charities text, five systems](/comparisons/jersey-charities/).
- Documentation: [docassemble.org/docs.html](https://docassemble.org/docs.html)
- Interview logic: [docassemble documentation](https://docassemble.org/)
- External tester: [github.com/SuffolkLITLab/alkiln](https://github.com/suffolklitlab/alkiln)