--- name: aurora-cli description: > Run Aurora CLI commands to generate/regenerate modules, add packages, or create projects. Trigger: When user asks to regenerate code, load module, add package, or create new Aurora project. license: MIT metadata: author: aurora version: '1.0' auto_invoke: 'Regenerating modules, adding packages, Aurora CLI operations' --- ## When to Use - User asks to "regenerate", "load", or "generate" a module - User wants to add a package (oauth, auditing, etc.) - User needs to create a new Aurora project - After YAML schema changes that require code regeneration - User mentions "aurora cli" or "aurora load" --- ## Critical Patterns ### Command Structure | Action | Command | When to Use | | ----------------- | --------------------------------------------- | ----------------------------- | | Regenerate module | `aurora load back module -n=/` | After YAML changes | | Force regenerate | `aurora load back module -n=/ -f` | Override hash protection | | With tests | `aurora load back module -n=/ -t` | Generate e2e tests | | Add package | `aurora add back ` | Install preconfigured package | | New project | `aurora new back ` | Create new project (rare) | ### CRITICAL: Always use `-ft` for schema changes **When regenerating a module after YAML schema changes, ALWAYS use `-ft` flags.** Without `-ft`, existing files are not overwritten and tests are not regenerated, causing the generated code to be out of sync with the schema. ```bash # ✅ CORRECT - Always use after schema changes aurora load back module -n=/ -ft # ❌ INCORRECT - Files won't be updated, tests won't regenerate aurora load back module -n=/ ``` ### Hash Protection System Aurora tracks file modifications via hash. Files with custom changes are **protected by default**: - Without `-f`: Modified files are preserved - With `-f`: All files are overwritten (use with caution) ### CRITICAL: Handling `.origin` files after regeneration When Aurora detects that a file was manually modified (different hash), it creates a `.origin.ts` file instead of overwriting. The CLI asks: `Do you want to manage origin files? (Y/n)` — **always answer `Y`**. **After the CLI finishes, invoke the `aurora-origin-merge` skill** to handle all `.origin` files. That skill contains the complete merge workflow, rules by file type, and conflict resolution. --- ## Execution Flow ### 1. Identify Action Ask the user what they want to do: 1. **Generate/Regenerate module** - Regenerate code from existing YAML 2. **Add package** - Install preconfigured package (auditing, oauth, etc.) 3. **Create project** - Create new Aurora project (rare) ### 2. Gather Information **For Generate/Regenerate Module:** 1. Ask which bounded context and module to regenerate 2. ONLY if you can't identify them, list available YAMLs in `cliter/` using Glob 3. **Always use `-ft` flags** (force + tests) — do NOT ask, this is mandatory **For Add Package:** 1. Run `aurora add back` to show available packages 2. Ask which package to install 3. Ask if `--force` is needed **For Create Project:** 1. Ask for project name 2. Confirm before executing ### 3. Execute Command ```bash # Regenerate module aurora load back module -n=/ [-f] [-t] [-v] # Add package aurora add back [-f] # Create project aurora new back ``` ### 4. Report Results ``` Command executed successfully aurora load back module -n=tesla/model -ft Regenerated Files: - src/@api/tesla/model/controllers/... - src/@app/tesla/model/domain/... Preserved Files (modified hash): - src/@app/tesla/model/application/create/create-model.command-handler.ts (These files have custom modifications and were not overwritten) Summary: - X files regenerated - Y files preserved ``` --- ## Commands ```bash # Regenerate module from YAML aurora load back module -n=tesla/model # Regenerate with force + tests aurora load back module -n=tesla/model -ft # Add package aurora add back oauth # Show available packages aurora add back # Create new project aurora new back my-project ``` --- ## Flags | Flag | Description | | --------------- | -------------------------------------------------- | | `-f, --force` | Overwrite existing files (even with modified hash) | | `-t, --tests` | Generate e2e test files | | `-v, --verbose` | Show detailed CLI output | --- ## Error Handling | Error | Solution | | ---------------- | -------------------------------------------- | | CLI not found | Report that Aurora CLI is not installed | | YAML not found | Report expected path and suggest creating it | | Permission error | Report and suggest solutions | | Execution error | Show complete error output | --- ## Related Skills This skill works with: - **aurora-project-structure**: Understand project structure and locate generated files - **aurora-cqrs**: Understand CQRS components that will be regenerated - **conventional-commits**: Create commits after successful regeneration --- ## Resources - **YAML Definitions**: `cliter/[package]/[module].aurora.yaml` - **Lock Files**: `cliter/[package]/[module]-lock.json` - **Generated Code**: `src/@api/` and `src/@app/`