Skills Directory
Reusable, audited skills for BoxLang & the Ortus ecosystem.
Use this skill when building fluent ORM queries in BoxLang with bx-orm 2.x entityCriteria(): conditions (isEq, like, between, isIn, isNull, not* forms), anyOf/allOf groups, c.restrictions, joins and aliases (joinTo/createAlias, withClause, with{Association}), fetch, subqueries, projections, asStruct/asQuery/asStream results, resultTransformer, ordering, paging, terminals (list, get, count, paginate, each, chunk), bulk updateAll/deleteAll, row locking, and inspecting SQL with getSQL().
Use this skill when monitoring or debugging bx-orm 2.x activity in BoxLang: the onORMQuery, onORMFlush and onORMException interception points, slow SQL and bound parameters, config-load, post_new and criteria interception points, Hibernate statistics via ORMService.getStatistics, orm.log SQL and startup metrics, ormDiagnostics(), ormGetSessionStatistics() and orm.* error types.
Use this skill when defining relationships between BoxLang ORM entities (bx-orm 2.x, Hibernate 7.4): one-to-one, one-to-many, many-to-one, many-to-many, fkcolumn, linktable, inversejoincolumn, inverse and mappedBy, lazy and fetch, cascade options, singularName and the generated has/add/remove methods, orderBy and where on collections, struct-keyed collections, value collections (fieldtype=collection), batch size and collection caching.
Use this skill when querying ORM entities in BoxLang with bx-orm: entityLoad(), entityLoadByPK(), entityLoadByExample(), the OrFail/OrNew/OrSave and read-only loaders, ormExecuteQuery() and HQL parameters and options, HQL through bx:query dbtype=\"hql\" and queryExecute(), unique results, pagination, streaming, query caching and eviction, entityToQuery(), and entity lifecycle BIFs (entityNew, entitySave, entityDelete, entityMerge, entityReload).
Use this skill when configuring bx-orm 2.x (Hibernate 7.4) in BoxLang: Application.bx ormSettings, enabling the ORM, datasources, dbcreate options, Hibernate 7 dialects, entity paths, naming strategies, raw Hibernate properties, named SQL functions, event handling, session settings, the BoxCache-backed second-level cache, the .bxorm boot cache (ormManifest auto/trust) and the boxlang module:orm CLI (generate, info, validate, entities, clear).
Use this skill for bx-orm 2.x (Hibernate 7.4) transactions and session flushing in BoxLang: how ORM work rides the transaction{} connection, mixing entitySave() and queryExecute() in one commit/rollback, transactionCommit(), transactionRollback(), what a rollback does to the ORM session, savepoint limits, nested transactions and enableNestedTransactions, isolation levels, multi-datasource transactions, locking, postCommit, ORMFlush(), ORMClearSession(), ORM writes outside a transaction block, autoManageSession/flushAtRequestEnd, and how 1.x differed.
Use this skill when defining BoxLang ORM entities (bx-orm 2.x, Hibernate 7.4): the persistent/entity annotation, entity names, table mapping, entity where filters, defaultSort, soft delete, property annotations, fieldtype, ormType, identifiers and generators, unsavedValue, composite keys, version fields, autoTimestamp, inheritance and mappedSuperClass, static entity methods (User::get()), and this.memento for entityToStruct().
Full bxsites.yaml/bxsites.toml/bxsites.json key reference for a bx-sites (ortus-boxlang/bx-sites) project - baseURL, source, exclude, robots.txt, nav, redirects, markdown options, repo/social/footer, lastUpdated, analytics, ogImage/generateOgImages, extraCss/extraJs, the assets/image pipeline, pageActions, mermaid/math/openapi/imageGallery, versions.default, mcp, and the plugins/i18n/blog/variables/docbox/coldbox/cloud keys. Use this whenever a user asks what a bxsites.yaml/.toml key does, how to set the site's base URL/sub-path, how to customize the nav, or wants to tune the responsive-image/asset-bundling pipeline. For themes, search providers, and deployment/publish config, use bx-sites-themes/bx-sites-search/bx-sites-deployment instead; for docbox/coldbox and mcp/AI-agent-skills detail, use bx-sites-api-docs/bx-sites-ai-features.
Deploy, package, or publish a built bx-sites (ortus-boxlang/bx-sites) site - deployments/ entries (.yaml/.yml/.toml/.json) for S3-compatible, Azure, GCS, Firebase, FTP/SFTP, rsync, Cloudflare Pages, local, and GitHub Pages targets, secrets-in-env-vars conventions, bxSites package, bxSites publish to bxSites Cloud (the cloud/siteId/apiUrl config key and BXSITES_CLOUD_TOKEN), the GitHub Actions Pages publishing workflow (main at the site root, development at /next/), and restricting who can reach a deployed site. Use this whenever a user wants to ship a built bx-sites site somewhere, publish it to bxSites Cloud, set up CI/CD publishing, or gate access to a deployed site.
Use this skill when installing or configuring bx-playwright (BoxLang browser automation with Playwright): the bx-playwright vs bx-playwright-full distributions, the bxplaywright CLI (install, doctor, devices, profiles, codegen, show-trace, mcp), module settings in boxlang.json, built-in and custom profiles, BX_PLAYWRIGHT_* environment variables, and CI setup.
Use this skill when consuming or exposing MCP (Model Context Protocol) servers with bx-ai: the MCP() BIF for HTTP URLs and stdio child processes (MCP( { command: [ ... ] } )), MCPResponse, discovery and tool calls, giving MCP tools to agents and models (mcpServers, withMCPServer, withMCPServers, prefix, toolFilter, closeMCPServers), stdio lifecycle, restarts, timeouts and security (allowedCommands, commandGuard), client events and stats, creating MCP servers with MCPServer(), and securing them (withRateLimit, withTrustedProxies, withAllowedIPs, withApiKeyProvider, withBasicAuth).
Use this skill when configuring or selecting named bx-ai profiles (a named provider, model, params, options and API key): the profiles setting, defaultProfile, options.profile in aiChat()/aiEmbed(), profile in aiModel()/aiAgent()/aiService(), switching an agent with withProfile() or for one run, listing with aiProfiles()/aiProfile()/aiProviders(), the embeddings defaults, and API key rules.
Use this skill when configuring AI models with aiModel(): selecting providers, the full provider list with capabilities and API key resolution, setting default parameters, using aiService(), and pre-configuring providers in module settings (provider, apiKey, defaultParams, providers).
Use this skill when configuring BoxLang runtime settings via boxlang.json, setting environment variables for config overrides, configuring datasources, caches, executors, modules, logging, security, or schedulers โ or when helping someone understand the BoxLang configuration system.
Use this skill when designing or debugging Application.bx behavior: app discovery and nesting, multi-application isolation, lifecycle events, pseudo-constructor settings, session management, mappings/javaSettings resolution, and app-scoped schedulers/watchers via this.schedulers and this.watchers.
Install bx-sites (ortus-boxlang/bx-sites) and scaffold a new site, or bring an existing GitBook/mkdocs/Notion/markdown-zip project into one - project layout, content source resolution, page frontmatter, linking between pages, and the basic build/serve/clean loop. Use this whenever a user wants to start a new bx-sites project, add/move a plain docs page, or migrate an existing docs project in. For advanced Markdown/content-block syntax, use bx-sites-content-blocks/bx-sites-markdown; for bxsites.yaml keys, themes, or deployment, use bx-sites-configuration/bx-sites-themes/bx-sites-deployment; for the blog/versions/i18n, use bx-sites-blog-versioning-i18n.
Use this skill for audio in BoxLang with the bx-audio module: synthesis (audioOsc, audioDrum, audioNoise), loading and saving WAV/MP3/FLAC (audioLoad, audioSave), editing (audioTrim, audioConcat, audioMix, audioFade, audioStretch, audioPitch), effects (audioDelay, audioReverb, audioEq), timelines and ducking, loudness and mastering (audioLoudness, audioMaster), analysis (audioBpm, audioDetectSilence), local text-to-speech (audioSpeak), FFmpeg and video (audioMux), and the audio tools bx-audio registers for BoxLang AI agents (audioTrim@bxaudio and 25 more).
Use this skill when working with audio in bx-ai: text-to-speech with aiSpeak(), streaming speech with aiSpeakStream() (voice agents, telephony, browser playback), speech-to-text with aiTranscribe(), audio translation with aiTranslate(), choosing audio providers (Cartesia, ElevenLabs, OpenAI, Mistral, Gemini, Grok, Groq), voice gender keywords, and audio events and settings.
Use this skill when creating AI tools (function calling) with aiTool(): parameter descriptions, tool registries, using tools with aiChat() and agents, the aiToolRegistry() BIF (register, scanClass with @AITool annotations, built-in tool sets), aiGlobalSkills(), and best practices for tool design.
Use this skill when installing, configuring, or using BoxLang modules: box install, boxlang.json module settings, BoxLang+ premium modules (bx-pdf, bx-redis, bx-csv, bx-spreadsheet), CFML compatibility, ORM, mail, and module introspection.
Use this skill for image manipulation in BoxLang with the bx-image module: ImageNew, ImageRead, ImageWrite, ImageResize, ImageScaleToFit, ImageCrop, ImageRotate, ImageFlip, ImageGrayScale, ImageBlur, ImageSharpen, imageAddBorder, imageDrawText, hex colors, linear gradients (ImageSetDrawingGradient), text measurement (ImageMeasureText) and word wrapping, custom TTF/OTF fonts (ImageRegisterFont), the fluent BoxImage builder API, and the bx:image component.
Use this skill when writing Rust for MatchBox Native Fusion: exposing Rust functions as BoxLang BIFs with #[matchbox_fn], Rust structs as native objects with #[matchbox_class] and #[matchbox_methods], register_bifs and register_classes, native/Cargo.toml crates, and Rust code that calls back into BoxLang functions through the BxVM trait.
Use this skill when installing or managing MatchBox versions with MVM, the MatchBox Version Manager: the install script, mvm install latest or snapshot, mvm use, per-project .mvmrc pinning, mvm list, mvm doctor, updating MVM, SHA-256 verified downloads, and CI setup.
Use this skill when compiling BoxLang applications to server-side WebAssembly (WASM) using MatchBox's --target wasm flag, running WASM with Wasmtime or WasmEdge, building minimal OCI containers from WASM binaries, and deploying to edge platforms like Fastly Compute or Cloudflare Workers (WASI).