About form-builder
form-builder is a skill for creating docassemble interview YAML that generates guided forms and documents. It is intended for people designing questionnaires with conditional logic, including client intake and document assembly flows.
Key features
- 01Generate docassemble interview YAML
- 02Build answer-dependent questions
- 03Configure common field types
- 04Assemble documents from interview answers
Use cases
- 01Creating a client intake questionnaire
- 02Designing a conditional legal form
- 03Building a multi-step contract generation form
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ claude-office-skills/ skills --skill form-builderAfter installing, type/form-builderin Claude Code to confirm it loaded.
Details
From the project READMEForm 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:
# 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
---
mandatory: True
question: |
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
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: matter_type == "contract"
question: |
Contract Details
fields:
- Contract Type: contract_type
choices:
- Employment
- Service Agreement
- NDA
- Other Party: other_party
- Estimated Value: contract_value
datatype: currency
---
mandatory: True
question: |
Thank you, ${ client.name.first }!
subquestion: |
**Summary:**
- Name: ${ client.name }
- Email: ${ client.email }
- Matter: ${ matter_type }
We will contact you within 24 hours.
Resources
Comments
Markdown supported