cli-skills
CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.
Designer subsystem patterns for LlamaFarm. Covers React 18, TanStack Query, TailwindCSS, and Radix UI.
Claude Code
$ npx -y skills add llama-farm/llamafarm --skill designer-skills --agent claude-code
Codex
$ npx skills add llama-farm/llamafarm --skill designer-skills -a codex -y
Cursor
$ npx skills add llama-farm/llamafarm --skill designer-skills -a cursor -y
Gemini CLI
$ npx skills add llama-farm/llamafarm --skill designer-skills -a gemini-cli -y
GitHub Copilot
$ npx skills add llama-farm/llamafarm --skill designer-skills -a github-copilot -y
OpenCode
$ npx skills add llama-farm/llamafarm --skill designer-skills -a opencode -y
Windsurf
$ npx skills add llama-farm/llamafarm --skill designer-skills -a windsurf -y
name: designer-skills description: Designer subsystem patterns for LlamaFarm. Covers React 18, TanStack Query, TailwindCSS, and Radix UI. allowed-tools: Read, Grep, Glob user-invocable: false
Framework-specific patterns and checklists for the Designer subsystem (React 18 + TanStack Query + TailwindCSS + Radix UI).
The Designer is a browser-based project workbench for building AI applications. It provides config editing, chat testing, dataset management, RAG configuration, and model selection.
| Technology | Version | Purpose | |------------|---------|---------| | React | 18.2 | UI framework with StrictMode | | TypeScript | 5.2+ | Type safety | | TanStack Query | v5 | Server state management | | TailwindCSS | 3.3 | Utility-first CSS | | Radix UI | 1.x | Accessible component primitives | | Vite | 6.x | Build tooling and dev server | | React Router | v7 | Client-side routing | | Vitest | 1.x | Testing framework | | axios | 1.x | HTTP client | | framer-motion | 12.x | Animations |
designer/src/
api/ # API service modules (axios-based)
assets/ # Static assets and icons
components/ # Feature-organized React components
ui/ # Radix-based primitive components
contexts/ # React Context providers
hooks/ # Custom hooks (TanStack Query wrappers)
lib/ # Utilities (cn, etc.)
types/ # TypeScript type definitions
utils/ # Helper functions
test/ # Test utilities, factories, mocksBefore applying Designer-specific patterns, ensure compliance with:
| Guide | Description | |-------|-------------| | [tanstack-query.md](./tanstack-query.md) | Query/Mutation patterns, caching, invalidation | | [tailwind.md](./tailwind.md) | TailwindCSS patterns, theming, responsive design | | [radix.md](./radix.md) | Radix UI component patterns, accessibility | | [performance.md](./performance.md) | Frontend optimizations, bundle size, lazy loading |
// Centralized client with interceptors
export const apiClient = axios.create({
baseURL: API_BASE_URL,
headers: { 'Content-Type': 'application/json' },
timeout: 60000,
})
// Error handling interceptor
apiClient.interceptors.response.use(
response => response,
(error: AxiosError) => {
if (error.response?.status === 422) {
throw new ValidationError('Validation error', error.response.data)
}
throw new NetworkError('Request failed', error)
}
)const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 60_000,
gcTime: 5 * 60_000,
retry: 2,
retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30_000),
refetchOnWindowFocus: false,
},
mutations: { retry: 1 },
},
})// lib/utils.ts - Always use cn() for Tailwind classes
import { clsx, type ClassValue } from 'clsx'
import { twMerge } from 'tailwind-merge'
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs))
}const ThemeContext = createContext<ThemeContextType | undefined>(undefined)
export function useTheme() {
const context = useContext(ThemeContext)
if (!context) throw new Error('useTheme must be used within ThemeProvider')
return context
}
// Apply via Tailwind dark mode class strategy
useEffect(() => {
document.documentElement.classList.toggle('dark', theme === 'dark')
}, [theme])// Use MSW for API mocking
import { server } from '@/test/mocks/server'
import { renderWithProviders } from '@/test/utils'
beforeAll(() => server.listen())
afterEach(() => server.resetHandlers())
afterAll(() => server.close())
test('renders with query data', async () => {
renderWithProviders(<MyComponent />)
await screen.findByText('Expected text')
})| Category | Critical | High | Medium | Low | |----------|----------|------|--------|-----| | TanStack Query | 3 | 4 | 3 | 2 | | TailwindCSS | 2 | 3 | 4 | 2 | | Radix UI | 3 | 3 | 2 | 1 | | Performance | 2 | 4 | 3 | 2 |
Enterprise AI capabilities on your own hardware. No cloud required. LlamaFarm is an open-source AI platform that runs entirely on your hardware.
CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.
Comprehensive code review for diffs. Analyzes changed code for security vulnerabilities, anti-patterns, and quality issues.…
Commit changes, push to GitHub, and open a PR. Includes quality checks (security, patterns, simplification). Use --quick to skip…
Best practices for the Common utilities package in LlamaFarm. Covers HuggingFace Hub integration, GGUF model management, and…
Configuration module patterns for LlamaFarm. Covers Pydantic v2 models, JSONSchema generation, YAML processing, and validation.
Electron patterns for LlamaFarm Desktop. Covers main/renderer processes, IPC, security, and packaging.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.