nuxt-features
Feature module pattern organizing domain logic into queries, mutations, and actions. Use when implementing data fetching with filters, API mutations with loading states, business logic with UI feedback, or organizing domain-specific code.
$ Installieren
git clone https://github.com/leeovery/claude-nuxt /tmp/claude-nuxt && cp -r /tmp/claude-nuxt/skills/nuxt-features ~/.claude/skills/claude-nuxt// tip: Run this command in your terminal to install the skill
SKILL.md
name: nuxt-features description: Feature module pattern organizing domain logic into queries, mutations, and actions. Use when implementing data fetching with filters, API mutations with loading states, business logic with UI feedback, or organizing domain-specific code.
Nuxt Features
Domain-based feature modules with three-layer pattern: queries, mutations, actions.
Core Concepts
queries.md - Reactive data fetching with filters mutations.md - Pure API operations with loading states actions.md - Business logic with UI feedback
Pattern Flow
Component â Action â Mutation â Repository â API
â
Query (reactive data fetching)
Directory Structure
features/{domain}/
âââ queries/
â âââ get-posts-query.ts # List with filters
â âââ get-post-query.ts # Single item
âââ mutations/
â âââ create-post-mutation.ts
â âââ update-post-mutation.ts
â âââ delete-post-mutation.ts
âââ actions/
âââ create-post-action.ts
âââ update-post-action.ts
âââ delete-post-action.ts
Quick Examples
Query - Reactive data fetching:
export default function getPostsQueryFactory() {
const postApi = useRepository('posts')
return (filters: MaybeRef<GetPostsFilters>) => {
return useFilterQuery('posts', () => postApi.list(params), filters)
}
}
Mutation - Pure API call:
export default function createPostMutationFactory() {
const postApi = useRepository('posts')
const { start, stop, waitingFor } = useWait()
return async (data: CreatePostData) => {
start(waitingFor.posts.creating)
try { return (await postApi.create(data)).data }
finally { stop(waitingFor.posts.creating) }
}
}
Action - Business logic + UI:
export default function createPostActionFactory() {
const createPost = createPostMutationFactory()
const flash = useFlash()
return async (data: CreatePostData) => {
const post = await createPost(data)
flash.success('Post created!')
return post
}
}
Repository

leeovery
Author
leeovery/claude-nuxt/skills/nuxt-features
1
Stars
0
Forks
Updated1d ago
Added1w ago