Introduction to VIBE¶
VIBE is a document assembly system that turns templates into dynamic, guided interviews. You write a template in Markdown or Word (DOCX) with placeholders for variable content, define the questions users need to answer, and VIBE takes care of the rest: it figures out which questions are relevant, presents them in a clean interview interface, and generates the finished document.
The key idea is that your template is the source of truth. VIBE reads the template to discover which questions matter based on the user's answers so far. If a section of the template is inside a conditional block and the condition isn't met, the questions for that section simply don't appear. This keeps interviews short, focused, and directly tied to the final document.
What can you build with VIBE?¶
- Contracts and agreements with optional clauses that appear only when relevant
- Reports and proposals that adapt their structure to user choices
- Document packages with a main document and conditional appendices
- Form-driven workflows where answers feed into professionally formatted output
How it works¶
Template bundles¶
Each template is a self-contained bundle: a template file (template.md or template.docx) paired with a config.yml that defines the questions, their types, and any supporting configuration. Bundles are validated at load time, so you see errors early.
Smart question flow¶
VIBE determines which questions to show by actually executing the template with placeholder values and tracking which variables are accessed. If a variable is inside a conditional block that isn't active, its question stays hidden. When the user's answers change the conditions, new questions appear automatically. You never have to write visibility rules by hand.
Rich question types¶
Questions can be simple text and number fields, yes/no toggles, dropdowns, multi-select checkboxes, dates, email addresses, and more. For complex data, there are structured questions (groups of related fields) and list questions (repeating items). You can also define computable variables that calculate their values automatically from other answers.
Reusable building blocks¶
Templates can include reusable sections called components, and questions can share field layouts through reusable definitions. This lets you build modular templates where common patterns (like a contact card or signature block) are defined once and used across multiple documents.
Live preview¶
As users answer questions, VIBE renders the document in real time so they can see exactly how their answers appear in the final output. The interface updates instantly with each answer.
Validation and tooling¶
Before you run a template, VIBE can perform static checks for undefined variables, type mismatches, and other common errors. Command-line tools let you validate templates and inspect saved interview state without running the full web application.
Extensions¶
VIBE has two optional extensions that add capabilities beyond core template authoring:
- Assistant adds AI-powered drafting, where a large language model helps users compose complex or creative sections through a guided conversation, using the same questions you define.
- Review adds document analysis, where VIBE evaluates an existing document against requirements you specify and produces structured assessments.
These extensions require additional configuration and are covered in their own guides. Core VIBE works without them.
Template authoring at a glance¶
Template bundles by default live in templates/<template_id>/ and include:
template.mdortemplate.docxconfig.ymlwithquestions:and optionaldefinitions:
Templates in other locations can be enabled through the global config.yml file in the project root.
Next steps¶
- Step-by-Step Tutorial -- Build a complete template from the ground up
- Core Concepts -- Understand the fundamental building blocks
- Template Authoring Guide -- Learn the essential Jinja syntax for templates
- Question Types Reference -- Every available question type and its options
- Reusable Data with Definitions -- Create shared data structures
- Reuse with Components -- Modular, reusable template sections