fluent-validation-migrate-messages

Migrate Laravel FormRequest messages() overrides into inline message named args.

214|2|Updated Apr 2, 2026
One-click install
npx skills add https://github.com/SanderMuller/laravel-fluent-validation --skill fluent-validation-migrate-messages
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fluent-validation-migrate-messages
Source: https://github.com/SanderMuller/laravel-fluent-validation/tree/main/resources/boost/skills/fluent-validation-migrate-messages
Command: npx skills add https://github.com/SanderMuller/laravel-fluent-validation --skill fluent-validation-migrate-messages

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Rewrite FormRequest messages(): array overrides into colocated message named args on the rule chain in rules(). Remove the now-empty messages() method when all keys port. Keep only unportable entries behind a comment-stub.

Core Features & Use Cases

  • Inline migration of portable keys to message: inline on the rule chain where supported (rule(name, message: ...))
  • Preserve unportable keys by keeping them in messages() with a comment stub
  • Guidance for common patterns like each(), when() closures, and composite rules

Quick Start

Perform a dry-run to locate targets, then apply inlining of messages and remove migrated keys from messages().

Frequently Asked Questions about fluent-validation-migrate-messages

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate Laravel FormRequest messages to inline Fluent Validation rules?

To migrate Laravel FormRequest messages, this Skill rewrites the messages() array overrides into inline message named arguments directly on the rule chain in rules(), removing the messages() method when all keys are portable.

What happens to non-portable translation keys during Fluent Validation migration?

During Fluent Validation migration, non-portable translation keys remain in the messages() method with a comment stub for manual review, ensuring complex patterns and translation wrappers are preserved or flagged.

Can I inline FormRequest messages for rules inside each() or when() closures?

Yes, you can inline FormRequest messages for rules inside each() blocks, nested arrays, and conditional when() closures, applying the message named args directly to the specific rule chain.

What is the best way to handle complex validation patterns when moving messages inline in Laravel?

The best way to handle complex validation patterns is to use a dry-run to locate targets, apply inlining for portable keys, and leave unportable complex patterns in messages() for manual review.

Why are some Laravel FormRequest validation messages left behind during inline migration?

Some Laravel FormRequest validation messages are left behind because they contain non-portable entries or complex translation wrappers that cannot be safely converted into inline message named arguments.

Does migrating to inline Fluent Validation messages remove the messages() method entirely?

Migrating to inline Fluent Validation messages removes the messages() method entirely only when all message keys successfully port to the rule chain; non-portable entries remain in the method.