> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ooneex.com/llms.txt
> Use this file to discover all available pages before exploring further.

# module:create

> Generate a new module under the modules directory and register it into its destination module.

Generates a new backend module under `modules/<name>/`. It writes the `src/<PascalName>Module.ts`, `package.json`, `tsconfig.json`, `<name>.yml` config, and a mirrored `tests/<PascalName>Module.spec.ts`, registers the module into its destination (`AppModule` and `SharedModule` for the `app` destination, otherwise the chosen destination module), adds the path alias to the root `tsconfig.json`, and adds the module scope to `.commitlintrc.ts` when present.

## Usage

```bash theme={null}
ooneex module:create [options]
```

## Examples

Run with no flags to be prompted for the module name and destination module:

```bash theme={null}
ooneex module:create
```

Create a module non-interactively into the `app` destination:

```bash theme={null}
ooneex module:create --name=billing --destination=app
```

```bash theme={null}
ooneex module:create --name=Catalog
```

## Options

| Option          | Description                                                              | Default             |
| --------------- | ------------------------------------------------------------------------ | ------------------- |
| `--name`        | Module name (normalized to PascalCase, the `Module` suffix is stripped). | Prompted if omitted |
| `--destination` | Destination module to register the new module into.                      | Prompted if omitted |

## AI Skill

This command ships a matching `module:create` skill. The skill scaffolds a complete backend business-domain module and then drives the per-artifact create skills to fill in its first vertical slice — entity, repository, service, controller, and any other artifacts the domain needs. Your AI agent uses it when creating a whole new domain such as `billing`, `catalog`, or `order`, rather than a single artifact.

<Tabs>
  <Tab title="Claude">
    ```bash theme={null}
    ooneex claude:init
    ```
  </Tab>

  <Tab title="Codex">
    ```bash theme={null}
    ooneex codex:init
    ```
  </Tab>
</Tabs>
