Skip to content

Elicitation Forms

Reference

Public API — attune.elicitation

Symbol Purpose
form_from_dict(data) Build and validate a FormSchema from plain data; raises FormValidationError on a malformed definition.
form_to_widget_html(form, message="") Render the rich inline HTML form for show_widget.
form_to_askuserquestion(form, batch_size=4) Render batched AskUserQuestion payloads (the fallback surface).
form_to_elicitation_schema(form) Render a native MCP elicitation JSON schema.
collect_form_response(form, raw_answers, template_id="") Validate answers (R4) and return a FormResponse; raises FormValidationError.
WIDGET_RESPONSE_MARKER The sentinel key the widget posts back under.
FormValidationError Raised for a malformed definition or answer; lists every problem.

QuestionType values

text_input, textarea, single_select, multi_select, boolean, number (with minimum / maximum), date (YYYY-MM-DD), and the three construct types decision, pushback, progress — ten in all.

Construct-specific FormQuestion fields

Field Used by Meaning
recommended decision / pushback / progress option to badge and order first; must be in options
rationale decision / pushback / progress the "why" callout
option_notes decision / pushback {option: one-line tradeoff}
user_position pushback the option that is the user's stated approach
progress_items progress {label, status, detail?} items; blocked subset must equal options
list_style single_select / multi_select "ordered" or "unordered" list render

MCP tools

elicitation_render_form, elicitation_render_widget, elicitation_collect_response, and elicitation_ask — the same model, exposed for agents that drive forms through the MCP server.