Form Builder

by claude-office-skills9c4c7d5cd281MIT499 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 8 months ago

Build interactive document forms and questionnaires using docassemble

Instructions onlyDocuments & Office
AI-generated overview

Builds interactive docassemble interview forms and questionnaires with conditional logic and document generation.

What it does
This skill produces docassemble interview YAML for guided forms and questionnaires. It covers interview structure, conditional branching based on answers, field types such as text, email, date, currency, checkboxes and file upload, and document generation through attachments. It also includes a worked client intake example.
When to use it
Use it when you need an interactive form, intake questionnaire or multi-step document assembly flow. It suits requests for conditional questionnaires, contract generation forms or guided interviews that output documents.
Requirements
Requires the docassemble platform to run the generated interviews. The skill lists an office-mcp server with create_docx and fill_docx_template tools. It ships no scripts; it is instructions only.

Form Builder Skill

Overview

This skill enables creation of intelligent document forms using docassemble - a platform for guided interviews that generate documents. Create questionnaires that adapt based on answers.

How to Use

  1. Describe the form or document you need
  2. Specify conditional logic requirements
  3. I'll create docassemble interview YAML

Example prompts:

  • "Create an intake form for new clients"
  • "Build a conditional questionnaire for legal documents"
  • "Generate a multi-step form for contract generation"
  • "Design an interactive document assembly form"

Domain Knowledge

Interview Structure

yaml
metadata:  title: Client Intake Form  short title: Intake
---question: |  What is your name?fields:  - First Name: first_name  - Last Name: last_name
---question: |  What type of service do you need?field: service_typechoices:  - Contract Review  - Document Drafting  - Consultation
---mandatory: Truequestion: |  Thank you, ${ first_name }!subquestion: |  We will contact you about your ${ service_type } request.

Conditional Logic

yaml
---question: |  Are you a business or individual?field: client_typechoices:  - Business  - Individual
---if: client_type == "Business"question: |  What is your company name?fields:  - Company: company_name  - EIN: ein    required: False
---if: client_type == "Individual"question: |  What is your date of birth?fields:  - Birthdate: birthdate    datatype: date

Field Types

yaml
fields:  # Text  - Name: name    # Email  - Email: email    datatype: email    # Number  - Age: age    datatype: integer    # Currency  - Amount: amount    datatype: currency    # Date  - Start Date: start_date    datatype: date    # Yes/No  - Agree to terms?: agrees    datatype: yesno    # Multiple choice  - Color: color    choices:      - Red      - Blue      - Green    # Checkboxes  - Select options: options    datatype: checkboxes    choices:      - Option A      - Option B    # File upload  - Upload document: document    datatype: file

Document Generation

yaml
---mandatory: Truequestion: |  Your document is ready.attachment:  name: Contract  filename: contract  content: |    # Service Agreement        This agreement is between **${ client_name }**    and **Service Provider**.        ## Services    ${ service_description }        ## Payment    Total amount: ${ currency(amount) }        Date: ${ today() }

Example: Client Intake

yaml
metadata:  title: Legal Client Intake  short title: Intake
---objects:  - client: Individual
---question: |  Welcome to our intake form.subquestion: |  Please answer the following questions.continue button field: intro_screen
---question: |  What is your name?fields:  - First Name: client.name.first  - Last Name: client.name.last  - Email: client.email    datatype: email  - Phone: client.phone    required: False
---question: |  What type of matter is this?field: matter_typechoices:  - Contract: contract  - Dispute: dispute  - Advisory: advisory
---if: matter_type == "contract"question: |  Contract Detailsfields:  - Contract Type: contract_type    choices:      - Employment      - Service Agreement      - NDA  - Other Party: other_party  - Estimated Value: contract_value    datatype: currency
---mandatory: Truequestion: |  Thank you, ${ client.name.first }!subquestion: |  **Summary:**    - Name: ${ client.name }  - Email: ${ client.email }  - Matter: ${ matter_type }    We will contact you within 24 hours.

Resources

Source and attribution

Source:claude-office-skills/skillsinform-builderat commit9c4c7d5

License: MIT

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

Form Builder Agent Skill | SourceWeft