con un clic
j26-booking
j26-booking contiene 4 skills recopiladas de Scouterna, con cobertura ocupacional por repositorio y páginas de detalle dentro del sitio.
Skills en este repositorio
Squirrel conventions for generating type-safe Gleam code from SQL files in server/src/server/sql/. Covers SQL file naming (snake_case, one query per file), parameter syntax ($1, $2, …), RETURNING clauses, PostgreSQL-to-Gleam type mappings (UUID → Uuid, TEXT → String, INT → Int, TIMESTAMP → Timestamp, NULLABLE → Option(T), user-defined enums → generated Gleam custom type), reserved word quoting, generated Row types, and the workflow (apply migration → write SQL → run squirrel → format). Use this whenever editing or adding .sql files in server/src/server/sql/, regenerating server/src/server/sql.gleam, or working with database queries on the server. Never edit sql.gleam manually.
Patterns for using @scouterna/ui-webc web components in the Lustre client and examples/client. Covers wrapping custom elements with element.element, decoding scout* CustomEvents (scoutClick, scoutChange, scoutInputChange, scoutChecked, scoutBlur, scoutValidate, scoutDismiss, scoutLinkClick, scoutPaginationClick, scoutSwipeProgress), attributes vs properties for rich JSON data, slot composition, and the full component catalog (scout-app-bar, scout-avatar, scout-bottom-bar, scout-bottom-bar-item, scout-button, scout-callout, scout-card, scout-checkbox, scout-divider, scout-drawer, scout-field, scout-input, scout-link, scout-list-view, scout-list-view-item, scout-list-view-subheader, scout-loader, scout-pagination, scout-radio-button, scout-segmented-control, scout-select, scout-skeleton, scout-stack, scout-switch, scout-tabbed-view, scout-tabbed-view-panel, scout-tabs, scout-tabs-tab). Use this whenever the client touches scout-* tags, @scouterna/ui-webc components, or anything in examples/client.
Gleam language conventions, patterns, and anti-patterns for the j26-booking codebase. Covers naming (snake_case, qualified imports, x_to_y conversion functions, try_ prefix), function annotations, Result vs Option, descriptive error type design, making invalid states impossible, module organization, and anti-patterns like panicking in libraries, dynamic FFI, and category theory overuse. Use this whenever writing or editing any Gleam code in the project (.gleam files in server/, client/, shared/, or examples/) — even small changes — to ensure consistency. Trigger on Gleam code, gleam.toml, or any reference to error handling, module structure, import style, or naming conventions.
Lustre framework patterns for Gleam UIs in client/ and examples/client/. Covers MVU architecture (init/update/view), application constructors (lustre.simple, lustre.application, lustre.component), message naming using Subject Verb Object (UserUpdatedX, BackendReturnedY), state management patterns (RemoteData, page-scoped state, EditState) to make invalid state unrepresentable, event handling (on_input, on_check, on_submit, on_keydown, custom event decoders), controlled vs uncontrolled inputs, side effects (effect.from, effect.batch, effect.before_paint, effect.after_paint), keyed list rendering, attributes vs properties, and pure functions. Use this whenever editing client.gleam, view/update/init functions, model types, or anything in the Lustre client. Also trigger on mentions of MVU, Effect, Msg, Model, view function, Lustre routing, or rsvp/modem/plinth packages.