# cursor_gen

CLI that generates project-specific [Cursor](https://cursor.com) AI configuration for Flutter projects from a `project-brief.yaml` file (stack, architecture, routing, backends, testing, and more).

## Requirements

- Dart SDK `>=3.3.0 <4.0.0`

## Install

Install the CLI globally so you can run `cursor_gen` from any Flutter project.

**From pub.dev:**

```bash
dart pub global activate cursor_gen
```

**From Git:**

```bash
dart pub global activate --source git https://github.com/company/flutter-cursor-templates --git-path generator
```

**From a local checkout:**

```bash
cd flutter-cursor-templates/generator
dart pub global activate --source path .
```

If your shell cannot find `cursor_gen`, add Dart's global bin directory to your `PATH`:

```bash
export PATH="$PATH":"$HOME/.pub-cache/bin"
```

For zsh, add that line to `~/.zshrc` and restart your terminal.

**From a private Pub registry:** configure access first, then activate from that registry:

```bash
dart pub token add https://your-registry.example.com
dart pub global activate cursor_gen --hosted-url=https://your-registry.example.com
```

## Setup In Your Flutter Project

Create a `project-brief.yaml`:

```bash
cursor_gen --wizard
```

Or copy the example brief and edit it:

```bash
cp path/to/flutter-cursor-templates/example-project/project-brief.yaml .
```

Validate the brief, then generate `.cursor/`:

```bash
cursor_gen --validate
cursor_gen
```

## Usage

```bash
cursor_gen --help
cursor_gen --validate --brief project-brief.yaml
cursor_gen --brief project-brief.yaml --output .cursor
cursor_gen --refresh   # regenerate while preserving custom/ and CURSOR:CUSTOM blocks
cursor_gen --wizard    # interactive project-brief.yaml creator
```

## Minimal `project-brief.yaml`

```yaml
project:
  name: MyApp
  package: com.example.myapp
  scale: medium
stack:
  state_management: bloc
  architecture: clean
  routing: gorouter
  platforms: [ios, android]
  backend: firebase
  auth: firebase_auth
```

Use `brief-schema.json` in this package for IDE validation and autocomplete of the full schema.

## Repository

For full monorepo layout, template library, and architecture notes, see the parent repository README.
