---
name: ash-framework
description: "Use this skill working with Ash Framework or any of its extensions. Always consult this when making any domain changes, features or fixes."
metadata:
  managed-by: usage-rules
---

<!-- usage-rules-skill-start -->
## Additional References

### ash

- [ash](references/ash/ash.md)
- [actions](references/ash/actions.md)
- [aggregates](references/ash/aggregates.md)
- [authorization](references/ash/authorization.md)
- [calculations](references/ash/calculations.md)
- [code_interfaces](references/ash/code_interfaces.md)
- [code_structure](references/ash/code_structure.md)
- [data_layers](references/ash/data_layers.md)
- [exist_expressions](references/ash/exist_expressions.md)
- [generating_code](references/ash/generating_code.md)
- [migrations](references/ash/migrations.md)
- [query_filter](references/ash/query_filter.md)
- [querying_data](references/ash/querying_data.md)
- [relationships](references/ash/relationships.md)
- [testing](references/ash/testing.md)

### ash_credo

- [ash_credo](references/ash_credo/ash_credo.md)

### ash_oban

- [ash_oban](references/ash_oban/ash_oban.md)
- [best_practices](references/ash_oban/best_practices.md)
- [debugging_and_error_handling](references/ash_oban/debugging_and_error_handling.md)
- [defining_triggers](references/ash_oban/defining_triggers.md)
- [multi_tenancy_support](references/ash_oban/multi_tenancy_support.md)
- [scheduled_actions](references/ash_oban/scheduled_actions.md)
- [setting_up_ash_oban](references/ash_oban/setting_up_ash_oban.md)
- [triggering_jobs_programmatically](references/ash_oban/triggering_jobs_programmatically.md)
- [working_with_actors](references/ash_oban/working_with_actors.md)

### ash_phoenix

- [ash_phoenix](references/ash_phoenix/ash_phoenix.md)
- [best_practices](references/ash_phoenix/best_practices.md)
- [debugging_form_submissions](references/ash_phoenix/debugging_form_submissions.md)
- [error_handling](references/ash_phoenix/error_handling.md)
- [form_integration](references/ash_phoenix/form_integration.md)
- [nested_forms](references/ash_phoenix/nested_forms.md)
- [union_forms](references/ash_phoenix/union_forms.md)

### ash_postgres

- [ash_postgres](references/ash_postgres/ash_postgres.md)
- [advanced_features](references/ash_postgres/advanced_features.md)
- [best_practices](references/ash_postgres/best_practices.md)
- [check_constraints](references/ash_postgres/check_constraints.md)
- [configuration](references/ash_postgres/configuration.md)
- [custom_indexes](references/ash_postgres/custom_indexes.md)
- [custom_sql_statements](references/ash_postgres/custom_sql_statements.md)
- [foreign_keys](references/ash_postgres/foreign_keys.md)
- [migrations](references/ash_postgres/migrations.md)
- [multitenancy](references/ash_postgres/multitenancy.md)

## Searching Documentation

```sh
mix usage_rules.search_docs "search term" -p ash -p ash_admin -p ash_authentication_phoenix -p ash_credo -p ash_oban -p ash_phoenix -p ash_postgres -p ash_state_machine
```

## Available Mix Tasks

- `mix ash` - Prints Ash help information
- `mix ash.codegen` - Runs all codegen tasks for any extension on any resource/domain in your application.
- `mix ash.extend` - Adds an extension or extensions to the given domain/resource
- `mix ash.gen.base_resource` - Generates a base resource. This is a module that you can use instead of `Ash.Resource`, for consistency.
- `mix ash.gen.change` - Generates a custom change module.
- `mix ash.gen.custom_expression` - Generates a custom expression module.
- `mix ash.gen.domain` - Generates an Ash.Domain
- `mix ash.gen.enum` - Generates an Ash.Type.Enum
- `mix ash.gen.gettext` - Copies Ash's .pot file for error message translation
- `mix ash.gen.preparation` - Generates a custom preparation module.
- `mix ash.gen.resource` - Generate and configure an Ash.Resource.
- `mix ash.gen.validation` - Generates a custom validation module.
- `mix ash.generate_livebook` - Generates a Livebook for each Ash domain
- `mix ash.generate_policy_charts` - Generates a Mermaid Flow Chart for a given resource's policies.
- `mix ash.generate_resource_diagrams` - Generates Mermaid Resource Diagrams for each Ash domain
- `mix ash.gettext.extract` - Extracts Ash error messages into a .pot file
- `mix ash.install` - Installs Ash into a project. Should be called with `mix igniter.install ash`
- `mix ash.manifest.dump` - Dump the Ash app manifest as JSON
- `mix ash.migrate` - Runs all migration tasks for any extension on any resource/domain in your application.
- `mix ash.patch.extend` - Adds an extension or extensions to the given domain/resource
- `mix ash.reset` - Runs all tear down & setup tasks for any extension on any resource/domain in your application.
- `mix ash.rollback` - Runs all rollback tasks for any extension on any resource/domain in your application.
- `mix ash.set.domains` - Dynamically discovers and updates Ash domains in config.exs
- `mix ash.setup` - Runs all setup tasks for any extension on any resource/domain in your application.
- `mix ash.tear_down` - Runs all tear_down tasks for any extension on any resource/domain in your application.
- `mix ash_admin.install` - Installs AshAdmin
- `mix ash_admin.install.docs`
- `mix ash_authentication.phoenix.routes` - Prints all routes generated by AshAuthentication Phoenix
- `mix ash_authentication_phoenix.add_add_on.confirmation` - Adds Phoenix integration for the email confirmation add-on
- `mix ash_authentication_phoenix.add_strategy` - Adds a strategy to your user resource with Phoenix integration
- `mix ash_authentication_phoenix.add_strategy.magic_link` - Adds Phoenix integration for the magic link authentication strategy
- `mix ash_authentication_phoenix.add_strategy.otp` - Adds Phoenix integration for the OTP authentication strategy
- `mix ash_authentication_phoenix.add_strategy.password` - Adds Phoenix integration for the password authentication strategy
- `mix ash_authentication_phoenix.add_strategy.recovery_code` - Adds Phoenix integration for the recovery code authentication strategy
- `mix ash_authentication_phoenix.add_strategy.totp` - Adds Phoenix integration for the TOTP authentication strategy
- `mix ash_authentication_phoenix.add_strategy.webauthn` - Adds Phoenix integration for the WebAuthn authentication strategy
- `mix ash_authentication_phoenix.install` - Installs AshAuthenticationPhoenix. Invoke with `mix igniter.install ash_authentication_phoenix`
- `mix ash_authentication_phoenix.setup` - Ensures Phoenix authentication infrastructure (routes, controller, sign-in page) exists
- `mix ash_authentication_phoenix.upgrade`
- `mix ash_credo.install` - Installs AshCredo and configures .credo.exs
- `mix ash_oban.install` - Installs AshOban and Oban
- `mix ash_oban.install.docs`
- `mix ash_oban.set_default_module_names` - Set module names to their default values for triggers and scheduled actions
- `mix ash_oban.set_default_module_names.docs`
- `mix ash_oban.upgrade`
- `mix ash_phoenix.gen.html` - Generates a controller and HTML views for an existing Ash resource.
- `mix ash_phoenix.gen.live` - Generates liveviews for a given domain and resource.
- `mix ash_phoenix.install` - Installs AshPhoenix into a project. Should be called with `mix igniter.install ash_phoenix`
- `mix ash_postgres.create` - Creates the repository storage
- `mix ash_postgres.drop` - Drops the repository storage for the repos in the specified (or configured) domains
- `mix ash_postgres.gen.resources` - Generates resources based on a database schema
- `mix ash_postgres.generate_migrations` - Generates migrations, and stores a snapshot of your resources
- `mix ash_postgres.install` - Installs AshPostgres. Should be run with `mix igniter.install ash_postgres`
- `mix ash_postgres.migrate` - Runs the repository migrations for all repositories in the provided (or configured) domains
- `mix ash_postgres.rollback` - Rolls back the repository migrations for all repositories in the provided (or configured) domains
- `mix ash_postgres.setup_vector` - Sets up pgvector for AshPostgres
- `mix ash_postgres.setup_vector.docs`
- `mix ash_postgres.squash_snapshots` - Cleans snapshots folder, leaving only one snapshot per resource
- `mix ash_state_machine.generate_flow_charts` - Generates Mermaid Flow Charts for each resource using `AshStateMachine`
- `mix ash_state_machine.install` - Installs AshStateMachine
- `mix ash_state_machine.install.docs`
<!-- usage-rules-skill-end -->
