mcpField
V
vue3-naiveui-fsd

vue3-naiveui-fsd

github.com/shohzod-abdusamatov-7777777Development145 installsUpdated 39w ago
Repository

About vue3-naiveui-fsd

A development skill for building Vue 3 applications with Naive UI, Feature-Sliced Design, and TypeScript. It provides conventions and reference patterns for architecture, API services, state, forms, routing, and shared UI.

Key features

  1. 01Feature-Sliced Design layer rules
  2. 02TypeScript strict-mode conventions
  3. 03Pinia store patterns
  4. 04API and composable guidance
  5. 05Form, page, and shared UI patterns
  6. 06Router and internationalization guidance

Use cases

  1. 01Structuring a Vue 3 app with FSD
  2. 02Defining typed API services and stores
  3. 03Building forms and paginated pages
  4. 04Applying shared UI and routing conventions

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/shohzod-abdusamatov-7777777/agent-skills --skill vue3-naiveui-fsd

After installing, type/vue3-naiveui-fsdin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
api-layer.md
composables.md
forms.md
fsd-architecture.md
pages.md
router.md
shared-ui.md
stores.md
types.md
utilities.md

Details

From the project README

Vue 3 + Naive UI + FSD Senior Development Skill

Expert-level skill for building production-ready Vue 3 applications with Naive UI, Feature-Sliced Design architecture, TypeScript, and industry best practices.

Tech Stack

  • Vue 3 with Composition API (<script setup>)
  • Naive UI v2.43+ component library
  • Feature-Sliced Design (FSD) architecture
  • TypeScript with strict mode
  • Pinia for state management
  • Vue Router 4 for routing
  • Tailwind CSS v4 for utility styles
  • Axios for HTTP requests
  • Day.js for date handling
  • Lucide Vue Next for icons
  • Vue I18n for internationalization

References

Detailed documentation is organized in the references/ folder:

FileDescription
fsd-architecture.mdFSD directory structure and layer rules
api-layer.mdAxios setup, interceptors, service pattern
types.mdTypeScript patterns, I-prefix convention
stores.mdPinia global stores (auth, operation)
composables.mdusePagination, useValidationRules, useTheme
forms.mdForm composable pattern (useXxxForm)
pages.mdPage component with table, CRUD
shared-ui.mdBaseTable, BaseModal, buttons
utilities.mdFormatters, helpers
router.mdRouter config, guards, loading bar

Quick Start Patterns

Component Structure
<script setup lang="ts">
import { ref, computed, onMounted } from 'vue'
import { NCard, NButton } from 'naive-ui'
import type { IUser } from '@/entities/user'

const props = defineProps<{ userId: number }>()
const emit = defineEmits<{ success: [] }>()

const loading = ref(false)
// ... logic
</script>

<template>
  <NCard>
    <!-- content -->
  </NCard>
</template>
FSD Layer Import Rules
app     → pages, features, entities, shared
pages   → features, entities, shared
features → entities, shared
entities → shared only
shared  → nothing (self-contained)
Type Naming Convention
IUser         // Base entity
IUserList     // List item (simplified)
IUserDetail   // Full detail
IUserForm     // Form data
IUserListParams // Query params

Code Quality Checklist

  • TypeScript strict mode passes
  • Types use I prefix convention
  • FSD layer boundaries respected
  • API services in shared/api/
  • Form logic in composables (useXxxForm)
  • Pagination uses usePagination
  • Validation uses useValidationRules
  • i18n for all user-facing text
  • Loading/error states handled

Comments

Markdown supported