원클릭으로
ash-graphql
Rules for working with AshGraphql
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Rules for working with AshGraphql
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Add non-text files to a person's artifacts folder. Use when saving images, documents, or other files related to someone. Trigger words: artifact, save image, add photo, attach file, store document.
Token-efficient tracking for AI orchestration. CLI-first for status updates (~50 tokens), agent fallback for complex ops (~1KB). Use when: updating task status, querying blockers, creating progress files, validating phases.
AshAi extension guidelines for integrating AI capabilities with Ash Framework. Use when implementing vectorization/embeddings, exposing Ash actions as LLM tools, creating prompt-backed actions, or setting up MCP servers. Covers semantic search, LangChain integration, and structured outputs.
ASI Agent-O-Rama Skill
This skill should be used when solving hard questions, complex architectural problems, or debugging issues that benefit from GPT-5 Pro or GPT-5.1 thinking models with large file context. Use when standard Claude analysis needs deeper reasoning or extended context windows.
Personal assistant for daily routines, task management, and productivity
| name | ash-graphql |
| description | Rules for working with AshGraphql |
AshGraphql is a package for integrating Ash Framework with GraphQL. It provides tools for generating GraphQL types, queries, mutations, and subscriptions from your Ash resources. AshGraphql leverages Absinthe under the hood to create a seamless integration between your Ash resources and GraphQL API.
AshGraphql works by extending your Ash domains and resources with GraphQL capabilities. First, add the AshGraphql extension to your domain.
defmodule MyApp.Blog do
use Ash.Domain,
extensions: [
AshGraphql.Domain
]
graphql do
# Define GraphQL-specific settings for this domain
authorize? true
# Add GraphQL queries separate from the resource config
queries do
get Post, :get_post, :read
list Post, :list_posts, :read
end
# Add GraphQL mutations separate from the resource config
mutations do
create Post, :create_post, :create
update Post, :update_post, :update
destroy Post, :destroy_post, :destroy
end
# Add GraphQL subscriptions
subscriptions do
subscribe Post, :post_created do
action_types(:create)
end
end
end
resources do
resource MyApp.Blog.Post
resource MyApp.Blog.Comment
end
end
Create an Absinthe schema that uses your Ash domains:
defmodule MyApp.Schema do
use Absinthe.Schema
# List all domains that contain resources to expose via GraphQL
@domains [MyApp.Blog, MyApp.Accounts]
# Configure AshGraphql with your domains
use AshGraphql,
domains: @domains,
# Generate SDL file (optional)
generate_sdl_file: "schema.graphql"
end
Each resource that you want to expose via GraphQL needs to include the AshGraphql.Resource extension.
defmodule MyApp.Blog.Post do
use Ash.Resource,
domain: MyApp.Blog,
extensions: [AshGraphql.Resource]
attributes do
uuid_primary_key :id
attribute :title, :string
attribute :body, :string
attribute :published, :boolean
attribute :view_count, :integer
end
relationships do
belongs_to :author, MyApp.Accounts.User
has_many :comments, MyApp.Blog.Comment
end
graphql do
# The GraphQL type name (required)
type :post
# Customize attribute types for GraphQL
attribute_types view_count: :string
# Configure managed relationships (for nested create/update)
managed_relationships do
managed_relationship :with_comments, :comments
end
end
actions do
defaults [:create, :read, :update, :destroy]
read :list_published do
filter expr(published == true)
end
update :publish do
accept []
change set_attribute(:published, true)
end
end
end
AshGraphql automatically handles conversion of Ash types to GraphQL types, but you can customize it:
defmodule MyApp.CustomType do
use Ash.Type
@impl true
def graphql_type(_), do: :string
@impl true
def graphql_input_type(_), do: :string
end