v0.6.0
The backlog-constructs release: the communication grammar grows from six constructs to eight — ranking and assumption_review — each spec-driven (D1 intake → D2 ratified forks → D3 execution → D4 live AC-4 receipt), shipped on all four surfaces with validated round-trips, and hardened by a five-lens adversarial review per construct BEFORE the cut, every finding fixed with a pinned regression. 611 tests.
Added
rankingconstruct (grammar member #7): order the options, all or only the toptop_n; the answer is the ordered list itself; asuggestedorder renders visibly as a proposal (submit IS the confirmation),defaultrejected. Widget: ranked list + pool moved by buttons; flat surfaces expand to one pick per rank slot and fold back on collection; elicitation schema is a bounded unique array.ranking_slot_countexported.assumption_reviewconstruct (grammar member #8): the agent lists its inferred assumptions; the user rules each accept / edit / reject, an edit carrying replacement text.suggestedmay pre-mark accept only;defaultanddispositionsrejected.ASSUMPTION_RULINGSexported.- Reference form + example answers cover both; round-trip, CSS-family, needs-widget, markdown-conformance and ingestion guards extended.
Changed
- Form theme budget 8 KB → 10 KB (10,064 B measured; the cap is not a ratchet).
- Dotted answer namespace guard covers every expanding type.
form_response_summaryrenders an assumption edit askey: edit → <text>.problems_to_markdownattributes by the FIRST quoted field id only (assumption-review five-lens review, 5 findings pinned).
Fixed
- Seven ranking-ingestion findings from the 2026-08-16 five-lens review, all pinned in
TestReviewFindings: option-aware ordinal stripping ("3.12" ingests exactly), ASCII-only slot-key parsing (decimal_key_number— no more rawValueErroronprio.²), the fold keeps zero/out-of-range slots so the validator names the length, typed-beats-quoted held for dotted slots, the widget gate blocks a partial OPTIONAL ranking, the round-trip simulator models the real submit script, docstrings corrected. - Docs state the construct count as six pre-0.6.0 (the plain batched form is the substrate, not a construct).
Full changelog: https://github.com/Smart-AI-Memory/attune-forms/blob/main/CHANGELOG.md