ワンクリックで
blade
Laravel Blade template conventions covering components, output escaping, security, structure, and formatting.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Laravel Blade template conventions covering components, output escaping, security, structure, and formatting.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Readonly data containers with typed factory methods (`fromArray`, `fromModel`, `fromCollection`, `fromRequest`) used to pass structured data between application layers — especially for external API responses, Eloquent models, and service boundaries. Use this skill whenever creating, reviewing, or refactoring DTOs, Data Transfer Objects, value objects for inter-layer communication, or mapping payloads from APIs, models, or collections into typed PHP objects. Also trigger when the user mentions spatie/laravel-data alternatives, data mapping, or payload normalization in a Laravel context.
Eloquent model conventions for mass assignment, casts, relationship naming, activity logging, and mandatory model tests (CRUD + relations).
Single-purpose business logic classes that encapsulate one well-defined business operation. Actions are the primary location for business logic in Laravel applications, invoked from controllers, commands, or jobs.
Albatros accounting API integration via Saloon. Use when working with app/Services/Albatros/, AlbatrosConnector, or Albatros DTOs.
Artisan console command classes that serve as the CLI entry point for operations. Commands validate input and delegate all business logic to Actions or Services.
Thin HTTP entry points that validate input, delegate to Actions or Services, and return a response. Controllers contain no business logic.
| name | blade |
| description | Laravel Blade template conventions covering components, output escaping, security, structure, and formatting. |
| compatible_agents | ["implement","refactor","review"] |
resources/views/.x-* Alpine directives are used, Alpine is loaded by the frontend build/layout.wire:* directives are used, Livewire is installed and version-compatible.{{ }} by default.{!! !!} only for trusted, pre-sanitized HTML.<x-component>) for reusable UI.{{ }}) by default.<style> and <script> tags in Blade templates.@class and @style for conditional attributes.{{-- Escaped output — always use {{ }} for user data --}}
<h1>{{ $user->name }}</h1>
<p>{{ $post->excerpt }}</p>
{{-- Raw output — only for pre-sanitized content --}}
{!! $article->sanitizedBody !!}
{{-- Anonymous component --}}
<x-card>
<x-slot:title>{{ $invoice->title }}</x-slot:title>
<p>{{ $invoice->amount }}</p>
</x-card>
{{-- @class directive for conditional classes --}}
<div @class(['p-4 rounded', 'bg-green-100' => $active, 'bg-red-100' => $error])>
{{ $message }}
</div>
{{-- @style directive for conditional styles --}}
<div @style(['color: green' => $success, 'color: red' => $failure])>
{{ $text }}
</div>
{{-- Alpine.js via directive — no inline script tags --}}
<div x-data="{ open: false }">
<button @click="open = !open">Toggle</button>
<div x-show="open">Content</div>
</div>
{{-- Workflow example: convert repeated form markup into a component --}}
{{-- Step 1: Before --}}
<label for="email">Email</label>
<input id="email" name="email" type="email" value="{{ old('email', $user->email) }}">
@error('email') <p>{{ $message }}</p> @enderror
{{-- Step 2: After --}}
<x-form.input
name="email"
type="email"
label="Email"
:value="old('email', $user->email)"
/>
{{ }} (escaped) and not raw output.{!! !!} usage is documented as sanitized/trusted.{!! $user->input !!} for user-provided data — XSS vulnerability<style> or <script> tags directly in Blade files@if, @foreach, @while blocksLivewire/SKILL.md — interactive UI in Blade templatesDesign/SKILL.md — component-first design system