Skip to content
bahulam.
STARTChatInstall CodeCloud IDEWorkflowsMobile guide
EnterprisePricing
Sign inInstall Code

The live registry is unavailable. Showing bundled catalog information; inspect the source for current requirements.

Back to plugins

document-writer

v0.2.1

Compositional document writer. Produces research papers, patent applications, technical reports, grant proposals, and literature reviews from source material (PDFs, notes, experiments, URLs) with claim verification and venue-specific formatting. Documents are stored as a JSON DSL and compiled to Markdown / LaTeX / PDF / DOCX / USPTO XML on demand. Vision-capable agents describe and cross-check figures. Watermark support (DRAFT / CONFIDENTIAL / auto-DRAFT when unverified claims exist) renders across every target. Domain specialists (Source, Outline, Draft, Cite, Vision, Figure, Claim, Style, Reviewer, plus patent-only Prior Art and Claim Author) each own a slice of the DSL and are orchestrated by a Document Director.

by BahulamAI·Source
documentwritingcitationresearch
bahulam install document-writer

Runs locally via the Bahulam CLI from github.com/BahulamAI/awesome-bahulam-plugins

Tools (43)

create_document

Initialize a new document with an empty outline, empty references, and a compiled document.md.

get_document

Return a compact summary of the document DSL (outline, section word counts, refs count, source count, unsupported-claim count). Pass full:true for the raw JSON. Call at the start of every specialist turn.

snapshot_document

Snapshot document.json into snapshots/ before large edits.

compile_document

Compile document.json to a target format (md / tex / pdf). Markdown is always kept in sync at <slug>/document.md; other targets are written to <slug>/exports/. PDF requires pandoc + pdflatex on PATH.

ingest_pdf

Ingest a PDF (local path or URL) into sources/. Uses configured pdf provider (env THREEJS_PDF_PROVIDER; local uses pdf-parse-lite). Extracts text + reference list into sources/extracted/<id>.json.

ingest_url

Snapshot a URL to sources/<id>.md (readability-cleaned HTML → Markdown).

add_note

Add a free-form note associated with a section (or unattached).

add_experiment

Register an experimental data file (CSV/JSON) as a source.

list_sources

List sources registered on the document.

set_outline

Replace the document outline with a full section list.

add_section

Append or insert a section in the outline.

reorder_sections

Reorder the outline by explicit id list.

delete_section

Remove a section (and its content) from the document.

set_section_content

Set a section's prose (append or replace). The Draft Agent writes the text itself via its own gateway; this tool only persists it and re-computes word counts.

add_todo

Add a TODO marker (optionally scoped to a section) — surfaced in the compiled Markdown.

add_reference

Add a reference entry (BibTeX JSON fields or raw BibTeX string).

lookup_doi

Look up a reference via DOI or free-text query using the configured ref provider (Crossref by default; local regex-only fallback).

attach_citation

Attach a reference to a section (adds to section.cites).

format_bibliography

Write refs.bib per venue style (IEEE / ACM / APA / arXiv-plain). The compiler always keeps refs.bib in sync; this tool lets the Cite Agent force a style change.

dedupe_references

Detect and merge duplicate references (by DOI, then by title+year).

extract_figures_from_pdf

Extract figure images from an ingested PDF source into sources/extracted/<source_id>/figures/. Requires a pdf provider with layout support (the local fallback extracts text only and will report zero figures).

set_figure_description

Store a figure's description on its DSL entry. The Vision Analyst generates the description via its own vision-capable gateway; this tool only persists it.

set_claim_verdict

Persist a vision-verified verdict on a claim. Verdict is supported / contradicted / inconclusive. The Vision Analyst derives the verdict itself by looking at the figure; this tool only records it.

import_figure

Register an image/figure file into figures/. Copies from an absolute path or URL into the document folder. Does NOT place the figure in a section — call place_figure for that.

place_figure

Bind a registered figure to one or more outline sections.

caption_figure

Set the short caption (or placement) on a registered figure.

list_figures

Return the figure manifest for a document.

add_claim

Register a verifiable assertion (quantitative / complexity / qualitative / novelty). Claim starts unverified — Vision Analyst flips verified=true via set_claim_verdict.

link_claim_to_source

Attach source ids or reference ids to a claim's supported_by list.

list_claims

List claims (optionally filter by section / verified).

list_unsupported_claims

Return claims where verified !== true OR supported_by is empty. The Director runs this before compiling non-Markdown targets.

apply_venue_template

Apply a venue pack (config/venues/*.yaml) to the document — sets venue + bib_style, and appends any missing required sections.

check_length

Return per-section word count vs target plus totals.

check_venue_compliance

Cross-check document against its venue pack (required sections, bib style, page limits). Returns { ok, issues[], warnings[] }.

set_watermark

Set or clear the document's watermark (DRAFT, CONFIDENTIAL, etc.). Applied by every compile target — Markdown banner, LaTeX draftwatermark package, USPTO XML publication-status element. Pass text:null (or empty "") to explicitly opt out — otherwise the compiler auto-applies DRAFT when unverified claims exist.

add_review

Persist a review the Reviewer Agent authored via its own gateway. verdict is accept | revise | reject; optional score 0-10.

list_reviews

List all reviews on a document (returns summaries; use get_document full for bodies).

set_patent_metadata

Set doc.patent.{type, priority_date, inventors}. Only applies when kind === "patent_application".

add_claim_tree_item

Append an independent or dependent claim to doc.patent.claims_tree. Dependent claims require depends_on (id of the parent claim).

update_claim_tree_item

Narrow / broaden / rewrite an existing patent claim's text (id stable).

add_prior_art

Register a reference from doc.references as prior art on the patent application.

set_claim_novelty

Persist a novelty verdict on a patent claim (novel / similar_to_prior / anticipated / inconclusive). Prior Art Agent derives verdict via its own gateway; this tool only records it.

check_claim_hierarchy

Validate patent claims_tree — reports orphans, cycles, depth, and independents/dependents counts.

Agents (13)

Document Director/document-writerentry

Orchestrator for Document Writer. Talks to the user, plans, delegates domain work (source / outline / draft / cite / vision), and drives the compile pipeline to produce research papers, patent applications, technical reports, grant proposals, and literature reviews.

delegatecreate_documentget_documentlist_documentslist_compilationscompile_documentsnapshot_documentread_filelist_files
Cite Agent/cite

Manages the reference list — DOI / arXiv / free-text lookups, dedup, bib style. Never drafts prose.

lookup_doiadd_referenceattach_citationformat_bibliographydedupe_referencesget_documentsnapshot_document
Claim Author Agent/claim-author

Patent-only. Authors independent and dependent claims for patent applications; narrows or broadens existing claims. Uses its own gateway to draft the exact claim prose (patent-style formality), then persists via add_claim_tree_item / update_claim_tree_item.

add_claim_tree_itemupdate_claim_tree_itemset_patent_metadatacheck_claim_hierarchyget_documentsnapshot_document
Claim Agent/claim

Extracts claims from drafted prose (using its own gateway), registers them with add_claim, and links each to its supporting source or reference. Does not verify — that is Vision Analyst.

add_claimlink_claim_to_sourcelist_claimslist_unsupported_claimsget_documentread_filesnapshot_document
Draft Agent/draft

Writes prose for one section at a time. Uses its own gateway to generate the text based on the outline, linked sources, notes, and available references; then calls set_section_content to persist.

get_documentlist_sourcesread_fileset_section_contentadd_todosnapshot_document
Figure Agent/figure

Imports figures into figures/, places them into sections, and sets captions. Delegates figure GENERATION (3D rendering, animation stills) to sibling plugins — threejs-studio for 3D scenes, manim-studio for animation last-frames.

import_figureplace_figurecaption_figurelist_figuresget_documentsnapshot_document
Outline Agent/outline

Owns the document outline — section list, target word counts, order, and dependencies. Nothing else.

set_outlineadd_sectionreorder_sectionsdelete_sectionget_documentsnapshot_document
Document Planner/plan

Read-only planning sub-agent — produces an outline, venue recommendation, and source ingest plan before any drafting starts.

list_documentslist_sourcesread_filelist_files
Prior Art Agent/prior-art

Patent-only. Compares patent claims against prior art references (from doc.references and doc.patent.prior_art) using its own gateway. Records a novelty verdict per claim via set_claim_novelty.

add_prior_artset_claim_noveltyget_documentread_filesnapshot_document
Reviewer Agent/reviewer

Reviews the drafted document against a rubric (novelty, clarity, rigor, contribution) OR simulates a specific reviewer persona (harsh_academic, industry_engineer, patent_examiner). Authors the review via its own gateway then persists via add_review.

add_reviewlist_reviewslist_claimslist_unsupported_claimsget_documentread_file
Source Agent/source

Ingests PDFs / URLs / notes / experimental data as sources on the document. Delegates figure extraction to vision-analyst when needed.

ingest_pdfingest_urladd_noteadd_experimentlist_sourcesget_documentsnapshot_documentread_filelist_files
Style Agent/style

Applies venue templates, checks per-section length vs targets, and verifies venue compliance (required sections, page limits, bib style).

apply_venue_templatecheck_lengthcheck_venue_complianceset_watermarkget_document
Vision Analyst/vision-analyst

Extracts figures from ingested PDFs and — using its own vision- capable gateway — describes them and verifies claims against them. Persists results via set_figure_description and set_claim_verdict.

extract_figures_from_pdfset_figure_descriptionset_claim_verdictget_documentread_filesnapshot_document

Workspace views (4)

Document Writerpanel

./workspace/studio.html

Referencespanel

./workspace/references.html

Sourcespanel

./workspace/sources.html

Compilationspanel

./workspace/compile.html

bahulam.

Intelligence, put to work.

A product of axplusb.tech

Products

Product overviewChatBahulam CodeMobile companionCreative StudioVideo Studio

Workspaces & tools

Cloud IDEWorkflowsVertical AIPluginsModels

Resources

DocumentationBenchmarksMethodologyPricingFAQSupport

Company

About BahulamEnterpriseSecurity & controlFor investorsFeedback
© 2026 axplusb.tech
PrivacyTermsGitHub
बहुलम् · Abundance