Blade ui
Skill event4u-app/agent-config/dist/agent-src/skills/blade-ui
Universal AI Agent OS — audited skills, governance rules, replayable state. One contract, every host agent.
npx -y skills add event4u-app/agent-config --skill blade-uiAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when the project's frontend stack is Blade — dispatched by `directives/ui/{apply,review,polish}.ts`. Covers views, components, partials, layouts, and view logic.
SKILL.md
6.6 KB, as published. Nobody here has run it
blade-ui
Grounded stack guidance: pull idiomatic Do/Don't + docs URLs from the adopted stack corpus before improvising —
./scripts-run <skills-root>/corpus-grounding/scripts/ground search --manifest <skills-root>/design-intelligence/data/manifest.json --stack laravel "<topic>"(thelaravelstack file is Blade/UI-scoped, not general Laravel). Seedesign-intelligence.
Positioning — dispatched, not standalone
blade-ui is the apply-step executor for the Blade stack. It is
invoked by directives/ui/apply.ts
once the design brief is locked, and revisited by review.ts /
polish.ts during the design-review loop. It does not own the
flow, does not drive the audit, and does not lock the design.
| Concern | Owner |
|---|---|
| Audit + token inventory (mandatory pre-step) | existing-ui-audit |
| Design brief (layout / states / microcopy) | directives/ui/design.ts |
| Universal design heuristics | fe-design |
| Review + polish loop | directives/ui/review.ts + polish.ts |
When to use
Cite this skill when:
state.stack.frontend == "blade"(or the project is clearly Blade-only without Livewire / Flux) anddirectives/ui/apply.tsdispatches to this skill- Editing or creating Blade views, components, partials, layouts, or forms
Do NOT use when:
- API-only endpoints (use
api-endpointskill) - Livewire components (use
livewireskill — it composes Blade views internally) - Flux UI components (use
fluxskill) - Driving the full UI flow yourself — that is the
directives/ui/orchestrator
Procedure: Create Blade view or component
Step 0: Inspect
- Confirm Blade is used — check
resources/views, components, layouts. - Inspect existing UI patterns — layouts, partials, component naming, CSS conventions.
- Check form handling style — old input, validation errors, session flashes, reusable field partials.
- Inspect neighboring templates — match indentation, directives, slot usage, classes.
- Determine data flow — what belongs in controller/view model vs. template.
Step 1: Create the template
- Use the project's existing layout system.
- Keep template presentation-focused — no business logic, no DB queries.
- Extract repeated sections into partials or components.
Step 2: Handle forms (if applicable)
- Follow project's form style for labels, inputs, validation messages.
- Use CSRF protection correctly.
- Render validation errors consistently.
- Preserve user input with
old()or project conventions. - Reuse existing field components — don't duplicate.
Step 3: Validate
- Check escaping —
{{ }}by default,{!! !!}only when explicitly safe. - Check styling — Tailwind utility classes, not inline styles.
- Check accessibility — labels for form fields, semantic HTML.
Conventions
→ See guideline php/blade-ui.md for full conventions.
Output format
- Blade view or component file(s) following project conventions
- Component class (if applicable) with typed props
Review pass — a11y findings + preview envelope
When this skill is dispatched by directives/ui/review.ts (test slot)
or directives/ui/polish.ts (verify slot) — i.e. a review/polish run,
not the initial apply — it also emits:
state.ui_review.a11y—{violations: [{rule, selector, severity}, ...], severity_floor?, accepted_violations?}. Use the same(rule, selector)shape asstate.ui_audit.a11y_baselineso the engine's de-dup matches pre-existing entries on replay. Omit the envelope on apply passes; the engine's_apply_a11y_gateonly fires when a baseline is present.state.ui_review.preview—{render_ok: bool, screenshot_path?, dom_dump_path?, error?, skipped?, skip_reason?}. Render evidence is required, not optional on a review/polish pass: you MUST drive the headless browser (Playwright + axe-core) against the rendered output and writerender_ok. Omitting it now triggers thepreview_render_requiredhalt — a render-capable stack can no longer claim success without rendering.render_ok: falsewitherrorpopulated triggers thepreview_render_failedhalt;render_ok: truewithscreenshot_paththreads the screenshot into the delivery report'sartifactslist. The only no-render path is an explicit, reasoned skip: setskipped: trueplus askip_reason(e.g. no Playwright runner in this env). Browser tooling (Playwright/Cypress/…) is a consumer-project dependency — this package does not ship one.
Polish dispatch: when the dispatcher skips review because a previous
review pass already returned SUCCESS, this skill MUST itself
synthesise the updated state.ui_review.findings (including any
remaining a11y_violation entries) so the engine's gate sees the
current state on the next polish round.
Gotcha
@includeshares parent scope — components don't. Know the difference.- Always use Tailwind utility classes — not inline styles.
- Don't put business logic in templates — use view composers or Livewire.
Taste Dials
DESIGN.md ## Taste Dials → honour: Variance → layout-family spread + asymmetry; Motion → animation budget + reduced-motion posture; Density → spacing scale + info-per-viewport. Absent → follow brief's inferred dials.
Do NOT
- Do NOT use
{!! !!}with user input — XSS risk. - Do NOT put business logic in Blade templates — use Livewire or view composers.
- Do NOT use inline styles — use Tailwind utility classes.
Anti-slop
Before shipping a Blade view, pull
docs/guidelines/design-antipatterns.md
and scan Visual / Typography / Layout — the Blade markup is where side-stripe
accents (V1), icon-tile feature cards (T3), and the centered-hero + 3-column
template (L1/L2) concretely land. Stack-specific Tailwind class/hex bans live in
tailwind-engineer.
Auto-trigger keywords
- Blade template
- Blade component
- Laravel view
- partial
- view logic