mcpField
V
vue3-naiveui-fsd

vue3-naiveui-fsd

github.com/shohzod-abdusamatov-7777777開発145 回インストール39 週間前に更新
リポジトリ

vue3-naiveui-fsd について

Naive UI、Feature-Sliced Design、TypeScript を用いた Vue 3 アプリ開発向けのスキルです。アーキテクチャ、API サービス、状態管理、フォーム、ルーティング、共有 UI の規約と実装パターンを示します。

主な機能

  1. 01Feature-Sliced Design のレイヤー規則
  2. 02TypeScript strict モードの規約
  3. 03Pinia のストアパターン
  4. 04API とコンポーザブルの指針
  5. 05フォーム、ページ、共有 UI のパターン
  6. 06ルーティングと国際化の指針

活用シーン

  1. 01FSD による Vue 3 アプリの構成
  2. 02型付き API サービスとストアの定義
  3. 03フォームとページネーション画面の作成
  4. 04共有 UI とルーティング規約の適用

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/vue3-naiveui-fsdを入力して読み込まれたか確認します。

同梱ファイル

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

詳細

Vue 3 + Naive UI + FSD シニア開発スキル

Naive UI、Feature-Sliced Design アーキテクチャ、TypeScript、業界のベストプラクティスを活用して、本番環境対応の Vue 3 アプリケーションを構築するためのエキスパートレベルのスキルです。

技術スタック

  • Vue 3 と Composition API(<script setup>)
  • Naive UI v2.43+ コンポーネントライブラリ
  • Feature-Sliced Design(FSD) アーキテクチャ
  • 厳格モードの TypeScript
  • 状態管理用の Pinia
  • ルーティング用の Vue Router 4
  • ユーティリティスタイル用の Tailwind CSS v4
  • HTTP リクエスト用の Axios
  • 日付処理用の Day.js
  • アイコン用の Lucide Vue Next
  • 国際化用の Vue I18n

リファレンス

詳細なドキュメントは references/ フォルダーに整理されています。

ファイル説明
fsd-architecture.mdFSD のディレクトリ構造とレイヤーのルール
api-layer.mdAxios の設定、インターセプター、サービスパターン
types.mdTypeScript のパターン、I プレフィックス規則
stores.mdPinia のグローバルストア(auth、operation)
composables.mdusePagination、useValidationRules、useTheme
forms.mdフォームのコンポーザブルパターン(useXxxForm)
pages.mdテーブルと CRUD を備えたページコンポーネント
shared-ui.mdBaseTable、BaseModal、ボタン
utilities.mdフォーマッター、ヘルパー
router.mdルーター設定、ガード、ローディングバー

クイックスタートのパターン

コンポーネントの構造
<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>
    
  </NCard>
</template>
FSD レイヤーのインポートルール
app     → pages, features, entities, shared
pages   → features, entities, shared
features → entities, shared
entities → shared only
shared  → nothing (self-contained)
型の命名規則
IUser         // Base entity
IUserList     // List item (simplified)
IUserDetail   // Full detail
IUserForm     // Form data
IUserListParams // Query params

コード品質チェックリスト

  • TypeScript の厳格モードに合格する
  • 型に I プレフィックス規則を使用する
  • FSD レイヤーの境界を遵守する
  • API サービスを shared/api/ に配置する
  • フォームのロジックをコンポーザブル(useXxxForm)に配置する
  • ページネーションに usePagination を使用する
  • バリデーションに useValidationRules を使用する
  • ユーザーに表示するすべてのテキストに i18n を使用する
  • ローディング状態とエラー状態を処理する

コメント