prowler-ui_skill

This skill helps you apply prowler ui conventions using shadcn/ui and Tailwind to organize components, hooks, and styles for consistent UI.
  • Python

12.8k

GitHub Stars

1

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill prowler-cloud/prowler --skill prowler-ui

  • SKILL.md6.2 KB

Overview

This skill codifies Prowler UI conventions for building consistent, maintainable interfaces inside the ui/ folder. It enforces component placement, styling, shared types/hooks/lib decisions, and the shadcn vs HeroUI legacy rule to avoid mixing component libraries. Use it when authoring UI features, server actions, adapters, and shared utilities for the Prowler frontend.

How this skill works

It inspects where new components, hooks, types, actions, and utils should live and guides placement based on usage scope (single-use vs shared). It enforces using shadcn/ui + Tailwind for new components, preserves HeroUI only for legacy components, and applies Tailwind/cn()/style rules and Recharts color handling. It also maps form and validation patterns (React Hook Form + Zod) and server action/adapters conventions.

When to use it

  • When adding new UI components or pages under ui/
  • When deciding whether code belongs in a feature folder or shared lib/types/hooks
  • When implementing server actions, data adapters, or shared types
  • When creating charts or other third-party components (Recharts special rules)
  • When updating styling patterns or migrating legacy HeroUI pieces

Best practices

  • Always create new UI components under components/shadcn/ and use Tailwind classes
  • If a feature is used in 2+ places, move code to lib/, types/, or hooks/ per scope rule
  • Keep existing HeroUI components as-is; do not add new HeroUI components
  • Follow the Component Placement decision tree: local components in feature folder, shared components in components/{domain}/
  • Use cn() for conditional Tailwind, className for static classes, and style/var() for library props (Recharts)
  • Validate forms with React Hook Form + zodResolver and mirror server-side validation

Example use cases

  • Add a new scanning UI: components/shadcn/scans/, local hooks in scans/hooks.ts, server actions in actions/scans/
  • Introduce a shared provider type used across features: add to types/providers.ts and shared adapters in lib/providers/
  • Build a reusable chart: place component in components/graphs/, use CHART_COLORS with var() for Recharts props
  • Migrate a legacy HeroUI page: leave HeroUI components in components/ui/ and refactor new parts with shadcn/ui
  • Create a form-backed feature: use use client, React Hook Form with Zod schema, and server action in actions/{feature}/

FAQ

No. HeroUI is legacy. New components must use shadcn/ui and live in components/shadcn/.

When should I create a shared hook or type?

If the code is used in two or more places, place hooks in hooks/ and types in types/. For single-use keep them local to the feature folder.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
prowler-ui skill by prowler-cloud/prowler | VeilStrat