From 93ad2a7e593c8a952f65eb892cc484eb2ca853d9 Mon Sep 17 00:00:00 2001 From: Pascal Charbonneau Date: Wed, 18 Mar 2026 11:40:52 -0600 Subject: [PATCH] Fix file paths: move from ash/ash_ui/ to repository root This commit fixes the incorrect directory structure where files were nested under ash/ash_ui/ instead of being at the repository root. - Moved all governance files from ash/ash_ui/ to root level - Updated README.md to the correct project documentation - Preserved git history with renames where possible --- .../workflows/guides-governance.yml | 0 .../workflows/rfc-governance.yml | 0 .../workflows/specs-governance.yml | 0 README.md | 180 +++++++++++++++++- ash/ash_ui/README.md | 179 ----------------- {ash/ash_ui/guides => guides}/README.md | 0 .../conformance/guide_conformance_matrix.md | 0 .../conformance/guide_scenario_catalog.md | 0 .../contracts/guide_contract.md | 0 .../contracts/guide_traceability_contract.md | 0 .../DG-0001-architecture-overview.md | 0 .../guides => guides}/developer/README.md | 0 .../templates/developer-guide-template.md | 0 .../templates/user-guide-template.md | 0 {ash/ash_ui/guides => guides}/user/README.md | 0 .../user/UG-0001-getting-started.md | 0 .../research => research}/architecture.md | 0 {ash/ash_ui/rfcs => rfcs}/README.md | 0 .../RFC-0001-ash-ui-governance-system.md | 0 {ash/ash_ui/rfcs => rfcs}/getting-started.md | 0 {ash/ash_ui/rfcs => rfcs}/index.md | 0 .../rfcs => rfcs}/templates/rfc-template.md | 0 .../validate_guides_governance.sh | 0 .../validate_rfc_governance.sh | 0 .../validate_specs_governance.sh | 0 {ash/ash_ui/specs => specs}/README.md | 0 .../adr/ADR-0001-control-plane-authority.md | 0 .../specs => specs}/compilation/README.md | 0 .../conformance/scenario_catalog.md | 0 .../conformance/spec_conformance_matrix.md | 0 .../contracts/authorization_contract.md | 0 .../contracts/binding_contract.md | 0 .../contracts/compilation_contract.md | 0 .../control_plane_ownership_matrix.md | 0 .../contracts/observability_contract.md | 0 .../contracts/rendering_contract.md | 0 .../contracts/resource_contract.md | 0 .../contracts/screen_contract.md | 0 .../specs => specs}/rendering/README.md | 0 .../specs => specs}/resources/README.md | 0 {ash/ash_ui/specs => specs}/topology.md | 0 41 files changed, 179 insertions(+), 180 deletions(-) rename {ash/ash_ui/.github => .github}/workflows/guides-governance.yml (100%) rename {ash/ash_ui/.github => .github}/workflows/rfc-governance.yml (100%) rename {ash/ash_ui/.github => .github}/workflows/specs-governance.yml (100%) delete mode 100644 ash/ash_ui/README.md rename {ash/ash_ui/guides => guides}/README.md (100%) rename {ash/ash_ui/guides => guides}/conformance/guide_conformance_matrix.md (100%) rename {ash/ash_ui/guides => guides}/conformance/guide_scenario_catalog.md (100%) rename {ash/ash_ui/guides => guides}/contracts/guide_contract.md (100%) rename {ash/ash_ui/guides => guides}/contracts/guide_traceability_contract.md (100%) rename {ash/ash_ui/guides => guides}/developer/DG-0001-architecture-overview.md (100%) rename {ash/ash_ui/guides => guides}/developer/README.md (100%) rename {ash/ash_ui/guides => guides}/templates/developer-guide-template.md (100%) rename {ash/ash_ui/guides => guides}/templates/user-guide-template.md (100%) rename {ash/ash_ui/guides => guides}/user/README.md (100%) rename {ash/ash_ui/guides => guides}/user/UG-0001-getting-started.md (100%) rename {ash/ash_ui/research => research}/architecture.md (100%) rename {ash/ash_ui/rfcs => rfcs}/README.md (100%) rename {ash/ash_ui/rfcs => rfcs}/RFC-0001-ash-ui-governance-system.md (100%) rename {ash/ash_ui/rfcs => rfcs}/getting-started.md (100%) rename {ash/ash_ui/rfcs => rfcs}/index.md (100%) rename {ash/ash_ui/rfcs => rfcs}/templates/rfc-template.md (100%) rename {ash/ash_ui/scripts => scripts}/validate_guides_governance.sh (100%) rename {ash/ash_ui/scripts => scripts}/validate_rfc_governance.sh (100%) rename {ash/ash_ui/scripts => scripts}/validate_specs_governance.sh (100%) rename {ash/ash_ui/specs => specs}/README.md (100%) rename {ash/ash_ui/specs => specs}/adr/ADR-0001-control-plane-authority.md (100%) rename {ash/ash_ui/specs => specs}/compilation/README.md (100%) rename {ash/ash_ui/specs => specs}/conformance/scenario_catalog.md (100%) rename {ash/ash_ui/specs => specs}/conformance/spec_conformance_matrix.md (100%) rename {ash/ash_ui/specs => specs}/contracts/authorization_contract.md (100%) rename {ash/ash_ui/specs => specs}/contracts/binding_contract.md (100%) rename {ash/ash_ui/specs => specs}/contracts/compilation_contract.md (100%) rename {ash/ash_ui/specs => specs}/contracts/control_plane_ownership_matrix.md (100%) rename {ash/ash_ui/specs => specs}/contracts/observability_contract.md (100%) rename {ash/ash_ui/specs => specs}/contracts/rendering_contract.md (100%) rename {ash/ash_ui/specs => specs}/contracts/resource_contract.md (100%) rename {ash/ash_ui/specs => specs}/contracts/screen_contract.md (100%) rename {ash/ash_ui/specs => specs}/rendering/README.md (100%) rename {ash/ash_ui/specs => specs}/resources/README.md (100%) rename {ash/ash_ui/specs => specs}/topology.md (100%) diff --git a/ash/ash_ui/.github/workflows/guides-governance.yml b/.github/workflows/guides-governance.yml similarity index 100% rename from ash/ash_ui/.github/workflows/guides-governance.yml rename to .github/workflows/guides-governance.yml diff --git a/ash/ash_ui/.github/workflows/rfc-governance.yml b/.github/workflows/rfc-governance.yml similarity index 100% rename from ash/ash_ui/.github/workflows/rfc-governance.yml rename to .github/workflows/rfc-governance.yml diff --git a/ash/ash_ui/.github/workflows/specs-governance.yml b/.github/workflows/specs-governance.yml similarity index 100% rename from ash/ash_ui/.github/workflows/specs-governance.yml rename to .github/workflows/specs-governance.yml diff --git a/README.md b/README.md index 330fe939..b214c6b3 100644 --- a/README.md +++ b/README.md @@ -1 +1,179 @@ -# ash_ui +# Ash UI + +A resource-driven UI framework for Elixir built on the Ash Framework, enabling dynamic UI generation from database resources through Phoenix LiveView and static web rendering. + +## Overview + +Ash UI provides a declarative approach to building user interfaces by defining UI components as Ash resources. This enables: + +- **Database-Driven UI** - Define screens and elements as resources +- **Reactive Data Binding** - Connect UI directly to Ash resources +- **Dual Rendering** - Output to LiveView (interactive) or static HTML +- **Type Safety** - Leverage Ash's type system for UI components +- **Authorization-First** - Built-in policy-based access control + +## Architecture + +```mermaid +flowchart LR + subgraph Input["Your Resources"] + Element["UI.Element"] + Screen["UI.Screen"] + Binding["UI.Binding"] + end + + subgraph AshUI["Ash UI Framework"] + Compiler["Compiler"] + IUR["IUR"] + Renderer["Renderer"] + end + + subgraph Output["User Interface"] + Live["LiveView"] + HTML["Static HTML"] + end + + Element --> Compiler + Screen --> Compiler + Binding --> Compiler + Compiler --> IUR + IUR --> Renderer + Renderer --> Live + Renderer --> HTML +``` + +## Quick Start + +### Installation + +Add to your `mix.exs`: + +```elixir +def deps do + [ + {:ash_ui, "~> 0.1"}, + {:ash, "~> 3.0"}, + {:phoenix_live_view, "~> 1.0"} + ] +end +``` + +### Define Your First Screen + +```elixir +defmodule MyApp.UI.Dashboard do + use Ash.Resource, + domain: MyApp.UI, + data_layer: AshPostgres.DataLayer + + ui_screen do + layout :dashboard + route "/dashboard" + end + + actions do + defaults [:read, :create, :update, :destroy] + end +end +``` + +### Mount in LiveView + +```elixir +defmodule MyAppWeb.DashboardLive do + use MyAppWeb, :live_view + use AshUI.LiveView + + def mount(params, _session, socket) do + {:ok, mount_ui_screen(socket, :dashboard, params)} + end +end +``` + +## Documentation + +### User Guides + +- **[Getting Started](guides/user/UG-0001-getting-started.md)** - Introduction to Ash UI +- **[Resources](guides/user/README.md)** - UI resources overview +- **[Data Binding](guides/user/README.md)** - Reactive data binding + +### Developer Guides + +- **[Architecture Overview](guides/developer/DG-0001-architecture-overview.md)** - System architecture +- **[Contributing](guides/developer/README.md)** - Contribution guide + +### Specifications + +- **[Top-Level Specs](specs/README.md)** - Technical specifications +- **[Contracts](specs/contracts/)** - Normative requirements +- **[ADRs](specs/adr/)** - Architecture decision records +- **[Conformance](specs/conformance/)** - Test scenarios + +### RFCs + +- **[RFC System](rfcs/README.md)** - Proposal process +- **[RFC Index](rfcs/index.md)** - All RFCs + +## Project Status + +**Phase**: 1 - Foundation + +This project is in early development. The governance system and core architecture are being established. + +### Current Status + +| Component | Status | +|---|---| +| Governance System | ✅ Implemented | +| Resource Definitions | 🚧 In Progress | +| Compilation Pipeline | 🚧 Planned | +| LiveView Rendering | 🚧 Planned | +| Static Rendering | 🚧 Planned | + +## Governance + +Ash UI follows a formal governance process: + +1. **RFCs** - Propose significant changes +2. **Specifications** - Define normative requirements (REQ-*) +3. **ADRs** - Document architecture decisions +4. **Scenarios** - Test acceptance criteria (SCN-*) +5. **Guides** - User and developer documentation + +See [RFC-0001](rfcs/RFC-0001-ash-ui-governance-system.md) for details on the governance system. + +## Control Planes + +| Control Plane | Scope | Module | +|---|---|---| +| Framework | Resource definitions, type system | `AshUI.Framework` | +| Compilation | Resource → IUR pipeline | `AshUI.Compilation` | +| Rendering | Output generation | `AshUI.Rendering` | +| Runtime | Session lifecycle | `AshUI.Runtime` | +| Extension | Widgets, plugins | `AshUI.Extension` | + +See [Control Plane Ownership](specs/contracts/control_plane_ownership_matrix.md) for details. + +## Contributing + +We welcome contributions! Please: + +1. Read the [Contributing Guide](CONTRIBUTING.md) (to be added) +2. Check existing [RFCs](rfcs/) and [Issues](../../issues) +3. Follow the [Code of Conduct](CODE_OF_CONDUCT.md) (to be added) +4. Create an RFC for significant changes + +## License + +[License to be determined] + +## Related Projects + +- [Ash Framework](https://ash-hq.org/) - The declarative foundation +- [Phoenix](https://www.phoenixframework.org/) - The web framework +- [Phoenix LiveView](https://hexdocs.pm/phoenix_live_view) - Real-time UI + +--- + +**Ash UI** - Resource-Driven UI Architecture for Elixir diff --git a/ash/ash_ui/README.md b/ash/ash_ui/README.md deleted file mode 100644 index b214c6b3..00000000 --- a/ash/ash_ui/README.md +++ /dev/null @@ -1,179 +0,0 @@ -# Ash UI - -A resource-driven UI framework for Elixir built on the Ash Framework, enabling dynamic UI generation from database resources through Phoenix LiveView and static web rendering. - -## Overview - -Ash UI provides a declarative approach to building user interfaces by defining UI components as Ash resources. This enables: - -- **Database-Driven UI** - Define screens and elements as resources -- **Reactive Data Binding** - Connect UI directly to Ash resources -- **Dual Rendering** - Output to LiveView (interactive) or static HTML -- **Type Safety** - Leverage Ash's type system for UI components -- **Authorization-First** - Built-in policy-based access control - -## Architecture - -```mermaid -flowchart LR - subgraph Input["Your Resources"] - Element["UI.Element"] - Screen["UI.Screen"] - Binding["UI.Binding"] - end - - subgraph AshUI["Ash UI Framework"] - Compiler["Compiler"] - IUR["IUR"] - Renderer["Renderer"] - end - - subgraph Output["User Interface"] - Live["LiveView"] - HTML["Static HTML"] - end - - Element --> Compiler - Screen --> Compiler - Binding --> Compiler - Compiler --> IUR - IUR --> Renderer - Renderer --> Live - Renderer --> HTML -``` - -## Quick Start - -### Installation - -Add to your `mix.exs`: - -```elixir -def deps do - [ - {:ash_ui, "~> 0.1"}, - {:ash, "~> 3.0"}, - {:phoenix_live_view, "~> 1.0"} - ] -end -``` - -### Define Your First Screen - -```elixir -defmodule MyApp.UI.Dashboard do - use Ash.Resource, - domain: MyApp.UI, - data_layer: AshPostgres.DataLayer - - ui_screen do - layout :dashboard - route "/dashboard" - end - - actions do - defaults [:read, :create, :update, :destroy] - end -end -``` - -### Mount in LiveView - -```elixir -defmodule MyAppWeb.DashboardLive do - use MyAppWeb, :live_view - use AshUI.LiveView - - def mount(params, _session, socket) do - {:ok, mount_ui_screen(socket, :dashboard, params)} - end -end -``` - -## Documentation - -### User Guides - -- **[Getting Started](guides/user/UG-0001-getting-started.md)** - Introduction to Ash UI -- **[Resources](guides/user/README.md)** - UI resources overview -- **[Data Binding](guides/user/README.md)** - Reactive data binding - -### Developer Guides - -- **[Architecture Overview](guides/developer/DG-0001-architecture-overview.md)** - System architecture -- **[Contributing](guides/developer/README.md)** - Contribution guide - -### Specifications - -- **[Top-Level Specs](specs/README.md)** - Technical specifications -- **[Contracts](specs/contracts/)** - Normative requirements -- **[ADRs](specs/adr/)** - Architecture decision records -- **[Conformance](specs/conformance/)** - Test scenarios - -### RFCs - -- **[RFC System](rfcs/README.md)** - Proposal process -- **[RFC Index](rfcs/index.md)** - All RFCs - -## Project Status - -**Phase**: 1 - Foundation - -This project is in early development. The governance system and core architecture are being established. - -### Current Status - -| Component | Status | -|---|---| -| Governance System | ✅ Implemented | -| Resource Definitions | 🚧 In Progress | -| Compilation Pipeline | 🚧 Planned | -| LiveView Rendering | 🚧 Planned | -| Static Rendering | 🚧 Planned | - -## Governance - -Ash UI follows a formal governance process: - -1. **RFCs** - Propose significant changes -2. **Specifications** - Define normative requirements (REQ-*) -3. **ADRs** - Document architecture decisions -4. **Scenarios** - Test acceptance criteria (SCN-*) -5. **Guides** - User and developer documentation - -See [RFC-0001](rfcs/RFC-0001-ash-ui-governance-system.md) for details on the governance system. - -## Control Planes - -| Control Plane | Scope | Module | -|---|---|---| -| Framework | Resource definitions, type system | `AshUI.Framework` | -| Compilation | Resource → IUR pipeline | `AshUI.Compilation` | -| Rendering | Output generation | `AshUI.Rendering` | -| Runtime | Session lifecycle | `AshUI.Runtime` | -| Extension | Widgets, plugins | `AshUI.Extension` | - -See [Control Plane Ownership](specs/contracts/control_plane_ownership_matrix.md) for details. - -## Contributing - -We welcome contributions! Please: - -1. Read the [Contributing Guide](CONTRIBUTING.md) (to be added) -2. Check existing [RFCs](rfcs/) and [Issues](../../issues) -3. Follow the [Code of Conduct](CODE_OF_CONDUCT.md) (to be added) -4. Create an RFC for significant changes - -## License - -[License to be determined] - -## Related Projects - -- [Ash Framework](https://ash-hq.org/) - The declarative foundation -- [Phoenix](https://www.phoenixframework.org/) - The web framework -- [Phoenix LiveView](https://hexdocs.pm/phoenix_live_view) - Real-time UI - ---- - -**Ash UI** - Resource-Driven UI Architecture for Elixir diff --git a/ash/ash_ui/guides/README.md b/guides/README.md similarity index 100% rename from ash/ash_ui/guides/README.md rename to guides/README.md diff --git a/ash/ash_ui/guides/conformance/guide_conformance_matrix.md b/guides/conformance/guide_conformance_matrix.md similarity index 100% rename from ash/ash_ui/guides/conformance/guide_conformance_matrix.md rename to guides/conformance/guide_conformance_matrix.md diff --git a/ash/ash_ui/guides/conformance/guide_scenario_catalog.md b/guides/conformance/guide_scenario_catalog.md similarity index 100% rename from ash/ash_ui/guides/conformance/guide_scenario_catalog.md rename to guides/conformance/guide_scenario_catalog.md diff --git a/ash/ash_ui/guides/contracts/guide_contract.md b/guides/contracts/guide_contract.md similarity index 100% rename from ash/ash_ui/guides/contracts/guide_contract.md rename to guides/contracts/guide_contract.md diff --git a/ash/ash_ui/guides/contracts/guide_traceability_contract.md b/guides/contracts/guide_traceability_contract.md similarity index 100% rename from ash/ash_ui/guides/contracts/guide_traceability_contract.md rename to guides/contracts/guide_traceability_contract.md diff --git a/ash/ash_ui/guides/developer/DG-0001-architecture-overview.md b/guides/developer/DG-0001-architecture-overview.md similarity index 100% rename from ash/ash_ui/guides/developer/DG-0001-architecture-overview.md rename to guides/developer/DG-0001-architecture-overview.md diff --git a/ash/ash_ui/guides/developer/README.md b/guides/developer/README.md similarity index 100% rename from ash/ash_ui/guides/developer/README.md rename to guides/developer/README.md diff --git a/ash/ash_ui/guides/templates/developer-guide-template.md b/guides/templates/developer-guide-template.md similarity index 100% rename from ash/ash_ui/guides/templates/developer-guide-template.md rename to guides/templates/developer-guide-template.md diff --git a/ash/ash_ui/guides/templates/user-guide-template.md b/guides/templates/user-guide-template.md similarity index 100% rename from ash/ash_ui/guides/templates/user-guide-template.md rename to guides/templates/user-guide-template.md diff --git a/ash/ash_ui/guides/user/README.md b/guides/user/README.md similarity index 100% rename from ash/ash_ui/guides/user/README.md rename to guides/user/README.md diff --git a/ash/ash_ui/guides/user/UG-0001-getting-started.md b/guides/user/UG-0001-getting-started.md similarity index 100% rename from ash/ash_ui/guides/user/UG-0001-getting-started.md rename to guides/user/UG-0001-getting-started.md diff --git a/ash/ash_ui/research/architecture.md b/research/architecture.md similarity index 100% rename from ash/ash_ui/research/architecture.md rename to research/architecture.md diff --git a/ash/ash_ui/rfcs/README.md b/rfcs/README.md similarity index 100% rename from ash/ash_ui/rfcs/README.md rename to rfcs/README.md diff --git a/ash/ash_ui/rfcs/RFC-0001-ash-ui-governance-system.md b/rfcs/RFC-0001-ash-ui-governance-system.md similarity index 100% rename from ash/ash_ui/rfcs/RFC-0001-ash-ui-governance-system.md rename to rfcs/RFC-0001-ash-ui-governance-system.md diff --git a/ash/ash_ui/rfcs/getting-started.md b/rfcs/getting-started.md similarity index 100% rename from ash/ash_ui/rfcs/getting-started.md rename to rfcs/getting-started.md diff --git a/ash/ash_ui/rfcs/index.md b/rfcs/index.md similarity index 100% rename from ash/ash_ui/rfcs/index.md rename to rfcs/index.md diff --git a/ash/ash_ui/rfcs/templates/rfc-template.md b/rfcs/templates/rfc-template.md similarity index 100% rename from ash/ash_ui/rfcs/templates/rfc-template.md rename to rfcs/templates/rfc-template.md diff --git a/ash/ash_ui/scripts/validate_guides_governance.sh b/scripts/validate_guides_governance.sh similarity index 100% rename from ash/ash_ui/scripts/validate_guides_governance.sh rename to scripts/validate_guides_governance.sh diff --git a/ash/ash_ui/scripts/validate_rfc_governance.sh b/scripts/validate_rfc_governance.sh similarity index 100% rename from ash/ash_ui/scripts/validate_rfc_governance.sh rename to scripts/validate_rfc_governance.sh diff --git a/ash/ash_ui/scripts/validate_specs_governance.sh b/scripts/validate_specs_governance.sh similarity index 100% rename from ash/ash_ui/scripts/validate_specs_governance.sh rename to scripts/validate_specs_governance.sh diff --git a/ash/ash_ui/specs/README.md b/specs/README.md similarity index 100% rename from ash/ash_ui/specs/README.md rename to specs/README.md diff --git a/ash/ash_ui/specs/adr/ADR-0001-control-plane-authority.md b/specs/adr/ADR-0001-control-plane-authority.md similarity index 100% rename from ash/ash_ui/specs/adr/ADR-0001-control-plane-authority.md rename to specs/adr/ADR-0001-control-plane-authority.md diff --git a/ash/ash_ui/specs/compilation/README.md b/specs/compilation/README.md similarity index 100% rename from ash/ash_ui/specs/compilation/README.md rename to specs/compilation/README.md diff --git a/ash/ash_ui/specs/conformance/scenario_catalog.md b/specs/conformance/scenario_catalog.md similarity index 100% rename from ash/ash_ui/specs/conformance/scenario_catalog.md rename to specs/conformance/scenario_catalog.md diff --git a/ash/ash_ui/specs/conformance/spec_conformance_matrix.md b/specs/conformance/spec_conformance_matrix.md similarity index 100% rename from ash/ash_ui/specs/conformance/spec_conformance_matrix.md rename to specs/conformance/spec_conformance_matrix.md diff --git a/ash/ash_ui/specs/contracts/authorization_contract.md b/specs/contracts/authorization_contract.md similarity index 100% rename from ash/ash_ui/specs/contracts/authorization_contract.md rename to specs/contracts/authorization_contract.md diff --git a/ash/ash_ui/specs/contracts/binding_contract.md b/specs/contracts/binding_contract.md similarity index 100% rename from ash/ash_ui/specs/contracts/binding_contract.md rename to specs/contracts/binding_contract.md diff --git a/ash/ash_ui/specs/contracts/compilation_contract.md b/specs/contracts/compilation_contract.md similarity index 100% rename from ash/ash_ui/specs/contracts/compilation_contract.md rename to specs/contracts/compilation_contract.md diff --git a/ash/ash_ui/specs/contracts/control_plane_ownership_matrix.md b/specs/contracts/control_plane_ownership_matrix.md similarity index 100% rename from ash/ash_ui/specs/contracts/control_plane_ownership_matrix.md rename to specs/contracts/control_plane_ownership_matrix.md diff --git a/ash/ash_ui/specs/contracts/observability_contract.md b/specs/contracts/observability_contract.md similarity index 100% rename from ash/ash_ui/specs/contracts/observability_contract.md rename to specs/contracts/observability_contract.md diff --git a/ash/ash_ui/specs/contracts/rendering_contract.md b/specs/contracts/rendering_contract.md similarity index 100% rename from ash/ash_ui/specs/contracts/rendering_contract.md rename to specs/contracts/rendering_contract.md diff --git a/ash/ash_ui/specs/contracts/resource_contract.md b/specs/contracts/resource_contract.md similarity index 100% rename from ash/ash_ui/specs/contracts/resource_contract.md rename to specs/contracts/resource_contract.md diff --git a/ash/ash_ui/specs/contracts/screen_contract.md b/specs/contracts/screen_contract.md similarity index 100% rename from ash/ash_ui/specs/contracts/screen_contract.md rename to specs/contracts/screen_contract.md diff --git a/ash/ash_ui/specs/rendering/README.md b/specs/rendering/README.md similarity index 100% rename from ash/ash_ui/specs/rendering/README.md rename to specs/rendering/README.md diff --git a/ash/ash_ui/specs/resources/README.md b/specs/resources/README.md similarity index 100% rename from ash/ash_ui/specs/resources/README.md rename to specs/resources/README.md diff --git a/ash/ash_ui/specs/topology.md b/specs/topology.md similarity index 100% rename from ash/ash_ui/specs/topology.md rename to specs/topology.md