adv-review
Adversarial multi-model code review with cross-examination. Orchestrates 5 specialized reviewers across Claude, Codex CLI, and Gemini CLI, then runs…
Vue 3 expert specializing in Composition API, script setup syntax, TypeScript integration, and modern Vue ecosystem including Pinia, Vite, and Nuxt 3.
> /plugin marketplace add andisab/swe-marketplaceHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Vue 3 expert specializing in Composition API, script setup syntax, TypeScript integration, and modern Vue ecosystem including Pinia, Vite, and Nuxt 3.
name: vue-expert description: Vue 3 expert specializing in Composition API, script setup syntax, TypeScript integration, and modern Vue ecosystem including Pinia, Vite, and Nuxt 3. tools: Read, Write, MultiEdit, Bash, Grep, Glob, Context7 model: sonnet color: "#42b883" tags: - vue - vue3 - frontend - javascript - typescript - composition-api - script-setup - reactive - single-file-components - pinia - vite - nuxt3
<script setup lang="ts">
import { ref, computed, watch, onMounted } from 'vue'
import type { User } from '@/types'
// Props with TypeScript
interface Props {
userId: string
initialCount?: number
}
const props = withDefaults(defineProps<Props>(), {
initialCount: 0
})
// Emits with TypeScript
const emit = defineEmits<{
'update:count': [value: number]
'user-loaded': [user: User]
}>()
// Reactive state
const count = ref(props.initialCount)
const user = ref<User | null>(null)
// Computed properties
const doubleCount = computed(() => count.value * 2)
const userName = computed(() => user.value?.name ?? 'Guest')
// Watchers
watch(count, (newVal, oldVal) => {
emit('update:count', newVal)
})
// Lifecycle
onMounted(async () => {
user.value = await fetchUser(props.userId)
emit('user-loaded', user.value)
})
// Methods
const increment = () => {
count.value++
}
</script>
<template>
<div>
<h1>Hello, {{ userName }}!</h1>
<button @click="increment">
Count: {{ count }} (Double: {{ doubleCount }})
</button>
</div>
</template>// composables/useCounter.ts
import { ref, computed } from 'vue'
export function useCounter(initial = 0) {
const count = ref(initial)
const doubled = computed(() => count.value * 2)
function increment() {
count.value++
}
function decrement() {
count.value--
}
return {
count: readonly(count),
doubled,
increment,
decrement
}
}
// Usage in component
<script setup>
import { useCounter } from '@/composables/useCounter'
const { count, doubled, increment } = useCounter(10)
</script>// stores/user.ts
import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
import type { User } from '@/types'
export const useUserStore = defineStore('user', () => {
// State
const users = ref<User[]>([])
const currentUser = ref<User | null>(null)
const loading = ref(false)
// Getters
const userCount = computed(() => users.value.length)
const isLoggedIn = computed(() => !!currentUser.value)
const sortedUsers = computed(() =>
[...users.value].sort((a, b) => a.name.localeCompare(b.name))
)
// Actions
async function fetchUsers() {
loading.value = true
try {
const response = await api.getUsers()
users.value = response.data
} finally {
loading.value = false
}
}
async function login(credentials: LoginCredentials) {
const user = await api.login(credentials)
currentUser.value = user
return user
}
function logout() {
currentUser.value = null
users.value = []
}
return {
// State
users: readonly(users),
currentUser: readonly(currentUser),
loading: readonly(loading),
// Getters
userCount,
isLoggedIn,
sortedUsers,
// Actions
fetchUsers,
login,
logout
}
})// router/index.ts
import { createRouter, createWebHistory } from 'vue-router'
import type { RouteRecordRaw } from 'vue-router'
// Type-safe route names
export const RouteNames = {
HOME: 'home',
USER_PROFILE: 'user-profile',
SETTINGS: 'settings'
} as const
const routes: RouteRecordRaw[] = [
{
path: '/',
name: RouteNames.HOME,
component: () => import('@/views/HomeView.vue')
},
{
path: '/user/:id',
name: RouteNames.USER_PROFILE,
component: () => import('@/views/UserProfile.vue'),
props: true
}
]
// Usage with type safety
<script setup>
import { useRouter } from 'vue-router'
import { RouteNames } from '@/router'
const router = useRouter()
const navigateToProfile = (userId: string) => {
router.push({
name: RouteNames.USER_PROFILE,
params: { id: userId }
})
}
</script>// Advanced reactivity with toRefs, toRef, and shallowRef
<script setup lang="ts">
import { reactive, toRefs, toRef, shallowRef, triggerRef } from 'vue'
// Converting reactive to refs
const state = reactive({
count: 0,
user: { name: 'John', age: 30 }
})
const { count, user } = toRefs(state)
const userName = toRef(state.user, 'name')
// Shallow reactivity for performance
const largeData = shallowRef(fetchLargeDataset())
const updateLargeData = () => {
largeData.value = processData(largeData.value)
triggerRef(largeData) // Manually trigger update
}
</script><!-- CustomInput.vue -->
<script setup lang="ts">
interface Props {
modelValue: string
modelModifiers?: { trim?: boolean; lazy?: boolean }
}
const props = defineProps<Props>()
const emit = defineEmits<{
'update:modelValue': [value: string]
}>()
const handleInput = (e: Event) => {
let value = (e.target as HA curated Claude Code plugin marketplace for practical, everyday usage in software engineering — 13 plugins, 53 specialist agents, 14 skills, 3 commands. A few opinionated choices that set it apart from larger awesome-style lists: Curated, not exhaustive.
Repo: andisab/swe-marketplace
Adversarial multi-model code review with cross-examination. Orchestrates 5 specialized reviewers across Claude, Codex CLI, and Gemini CLI, then runs…
Use this agent to analyze, maintain, and update CLAUDE.md files that provide essential context and guidance for Claude Code when working with a repository.…
Use this agent when you need assistance with Docker and Make command management during development. This includes analyzing Dockerfiles for optimization…
Expert in creating and refining all types of Claude Code resources: sub-agents, skills, plugins, slash commands, hooks, specs, workflows, templates, and…
Expert in D3.js for creating custom, interactive data visualizations with SVG, Canvas, and HTML. Specializes in D3 v7+ with ES modules, selections, data…
Expert in Google Colab for cloud-based ML/DL development with free GPU/TPU access. Specializes in Colab 2025 features (Gemini AI integration, google.colab.ai…