CtrlK
BlogDocsLog inGet started
Tessl Logo

form-object-patterns

Creates form objects for complex form handling with TDD. Use when building multi-model forms, search forms, wizard forms, or when user mentions form objects, complex forms, virtual models, or non-persisted forms.

Install with Tessl CLI

npx tessl i github:ThibautBaissac/rails_ai_agents --skill form-object-patterns
What are skills?

89

Does it follow best practices?

Agent success when using this skill

Validation for skill structure

SKILL.md
Review
Evals

Evaluation results

100%

22%

SaaS Onboarding: Multi-Model Registration Form

Multi-model TDD form object

Criteria
Without context
With context

TDD process documented

100%

100%

Correct file locations

100%

100%

ApplicationForm includes ActiveModel::Model

100%

100%

ApplicationForm includes ActiveModel::Attributes

100%

100%

ApplicationForm model_name strips Form suffix

0%

100%

ApplicationForm persisted? returns false

0%

100%

ApplicationForm save rescues RecordInvalid

100%

100%

Typed attribute declarations

100%

100%

Transaction in persist!

100%

100%

attr_reader for created records

100%

100%

Controller render on failure

100%

100%

Strong params with require

0%

100%

View uses form_with model

100%

100%

Spec tests association

100%

100%

Without context: $0.3794 · 1m 44s · 13 turns · 62 in / 7,262 out tokens

With context: $0.8431 · 2m 32s · 29 turns · 78 in / 9,586 out tokens

100%

Product Catalogue Search and Filter

Search form object pattern

Criteria
Without context
With context

Correct file location

100%

100%

Typed attribute declarations

100%

100%

results method present

100%

100%

Scope to account/tenant

100%

100%

any_filters? method

100%

100%

sanitize_like for text search

100%

100%

Spec scoping test

100%

100%

Spec any_filters? tested

100%

100%

View uses form_with GET

100%

100%

View Clear link conditional

100%

100%

View uses form_with model

100%

100%

Without context: $0.3710 · 1m 39s · 15 turns · 15 in / 6,246 out tokens

With context: $0.8014 · 2m 10s · 28 turns · 283 in / 8,727 out tokens

100%

48%

Job Application Wizard

Wizard multi-step form object

Criteria
Without context
With context

Wizard namespace location

100%

100%

Wizard::BaseForm extends ApplicationForm

100%

100%

self.steps raises NotImplementedError

0%

100%

next_step navigation

50%

100%

previous_step navigation

62%

100%

first_step? and last_step?

87%

100%

progress_percentage formula

20%

100%

Step self.steps defined

0%

100%

Step current_step defined

0%

100%

Step attribute types

100%

100%

Spec tests progress_percentage

50%

100%

Spec tests navigation helpers

90%

100%

wizard_data attribute

0%

100%

Without context: $0.4531 · 2m 3s · 15 turns · 16 in / 8,219 out tokens

With context: $0.6496 · 2m 2s · 24 turns · 326 in / 7,521 out tokens

Evaluated
Agent
Claude Code

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.