AgentSkillsCN

hwc-forms-validation

处理 Hotwire 表单工作流:包括表单提交生命周期、内联编辑、验证错误、类型ahead/自动补全、模态表单,以及外部表单控件。当核心问题在于表单交互的正确性与用户体验时,优先选用此技能。若需分页/标签/筛选导航,可使用 hwc-navigation-content;若需 WebSocket/Turbo Stream 实时广播,可使用 hwc-realtime-streaming;若需图像/视频/音频的行为表现,可使用 hwc-media-content;若需通用的加载/过渡效果优化,可使用 hwc-ux-feedback;若需框架层面的 Stimulus API,且不局限于表单相关功能,可使用 hwc-stimulus-fundamentals。

SKILL.md
--- frontmatter
name: hwc-forms-validation
description: >-
  Handle Hotwire form workflows: form submission lifecycle, inline editing, validation errors, typeahead/autocomplete, modal forms, and external form controls. Prefer this skill when the core problem is correctness and UX of form interaction. Use hwc-navigation-content for pagination/tabs/filter navigation, hwc-realtime-streaming for WebSocket/Turbo Stream broadcasting, hwc-media-content for image/video/audio behavior, hwc-ux-feedback for generic loading/transition polish, and hwc-stimulus-fundamentals for framework-level Stimulus APIs not tied to forms.

Forms & Validation

Implement form-centric Hotwire workflows with Turbo Frames and Stimulus.

Core Workflow

  1. Identify the form flow: create/edit, inline edit, typeahead, modal form, or external controls.
  2. Wrap the form interaction scope in a Turbo Frame when validation errors must rerender in place.
  3. Return 422 for validation failures and 303 for successful redirects.
  4. Handle post-submit behavior with turbo:submit-end only when Turbo defaults are insufficient.
  5. Preserve user context during rerenders (focus/caret/selection).

Guardrails

  • Keep one source of truth for input state; avoid duplicate controls across frame and non-frame DOM.
  • Use the HTML form attribute for controls rendered outside the target <form> hierarchy.
  • Avoid firing submit logic on every keystroke without debounce/throttle.
  • Keep post-submit behavior explicit when form responses update only a frame.

Load References Selectively

Open only the file needed for the current request.

  • Inline editing: references/2024-02-27-turbo-frames-inline-edit.md
  • Modal validation flows: references/2024-05-21-turbo-frames-modals-validation.md
  • Typeahead search: references/2023-11-07-turbo-frames-typeahead-search.md
  • Typeahead validation with focus handling: references/2025-10-20-turbo-frames-typeahead-validation.md
  • External form controls in frames: references/2026-02-03-turbo-frames-external-form.md
  • Stimulus action parameters for forms: references/2024-01-16-stimulus-action-parameters.md

Use references/INDEX.md for the full catalog.

Escalate to Neighbor Skills

  • Navigation/history/cache behavior: use hwc-navigation-content
  • WebSocket or Turbo Stream push updates: use hwc-realtime-streaming
  • Media upload/playback behavior: use hwc-media-content
  • Generic UX polish (spinners/progress/transitions): use hwc-ux-feedback
  • General Stimulus API design questions: use hwc-stimulus-fundamentals