> ## 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.

# spa:feature:create

> Generate a new spa feature (route, layout, hooks and folders).

Scaffold a spa feature inside a spa module: a route, its page layout, the route's skeleton, error, and not-found boundaries, and example TanStack Query read and write hooks. The `@tanstack/react-query` dependency is installed if it is not already present.

## Usage

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

## Examples

```bash theme={null}
# Interactive: prompts for the feature name and spa module
ooneex spa:feature:create

# Provide both names as flags
ooneex spa:feature:create --name=Settings --module=dashboard

# Regenerate an existing feature
ooneex spa:feature:create --name=Settings --module=dashboard --override
```

## Options

| Option       | Description                                                                                   | Default             |
| ------------ | --------------------------------------------------------------------------------------------- | ------------------- |
| `--name`     | Feature name. Normalized to PascalCase with a trailing `Feature` or `Layout` suffix stripped. | Prompted if omitted |
| `--module`   | Target spa module the feature is created in.                                                  | Prompted if omitted |
| `--override` | Overwrite the files if the feature already exists.                                            | `false`             |

## AI Skill

This command ships a matching `spa:feature:create` skill. It generates the route, layouts, boundaries, and TanStack Query hooks, then guides your AI agent through completing a feature in a spa module built on `@tanstack/react-router` and `@tanstack/react-query`.

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

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