boxlang-core-dev-module-developmentlisted
Install: claude install-skill ortus-boxlang/skills
# BoxLang Module Development
## Overview
A BoxLang module is a packaged unit of functionality that extends the runtime
with new built-in functions (BIFs), components, interceptors, and Java libraries.
Modules are auto-discovered by the runtime on startup and managed through the
`ModuleService`. The [official module template](https://github.com/ortus-boxlang/boxlang-module-template)
is the recommended starting point.
## Module Directory Structure
```
my-module/
├── ModuleConfig.bx # Required: module descriptor and lifecycle
├── box.json # CommandBox/ForgeBox package manifest
├── build.gradle # Gradle build configuration
├── gradle/
│ └── wrapper/
├── bifs/ # Custom built-in functions
│ ├── MyFunction.bx # BoxLang BIF
│ └── MyJavaFunction.java # Java BIF
├── components/ # Custom tags/components
│ └── MyComponent.bx
├── interceptors/ # Event listeners
│ └── MyInterceptor.bx
├── models/ # Supporting classes and services
│ └── MyService.bx
├── libs/ # JAR dependencies (module-scoped)
│ └── some-library.jar
├── src/
│ ├── main/
│ │ ├── bx/ # BoxLang source (mirrored into module root)
│ │ └── java/ # Java source
│ └── test/
│ ├── bx/ # BoxLang tests
│ └── java/ # Java unit tests
└── settings.gradle
```
## `ModuleConfig.bx`
The heart of every module. Must exist (can be em