| name | form-builder |
| description | Build interactive document forms and questionnaires using docassemble |
| author | claude-office-skills |
| version | 1.0 |
| tags | ["forms","questionnaire","docassemble","automation","legal"] |
| models | ["claude-sonnet-4","claude-opus-4"] |
| tools | ["computer","code_execution","file_operations"] |
| library | {"name":"docassemble","url":"https://github.com/jhpyle/docassemble","stars":919} |
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
- Describe the form or document you need
- Specify conditional logic requirements
- 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
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_type
choices:
- Contract Review
- Document Drafting
- Consultation
---
mandatory: True
question: |
Thank you, ${ first_name }!
subquestion: |
We will contact you about your ${ service_type } request.
Conditional Logic
---
question: |
Are you a business or individual?
field: client_type
choices:
- 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
fields:
- Name: name
- Email: email
datatype: email
- Age: age
datatype: integer
- Amount: amount
datatype: currency
- Start Date: start_date
datatype: date
- Agree to terms?: agrees
datatype: yesno
- Color: color
choices:
- Red
- Blue
- Green
- Select options: options
datatype: checkboxes
choices:
- Option
Document Generation
---
mandatory: True
question: |
Your document is ready.
attachment:
name: Contract
filename: contract
content: |
# Service Agreement
This agreement is between **${ client_name }**
and **Service Provider**.
${ service_description }
Total amount: ${ currency(amount) }
Date: ${ today() }
Example: Client Intake
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_type
choices:
- Contract: contract
- Dispute: dispute
- Advisory: advisory
---
if:
Resources