frontend/scaffolding-frontend/SKILL.md
Initialize a Vite + React + TypeScript project with standardized directory structure, tooling, and configuration.
npx skillsauth add 7a336e6e/skills scaffolding-frontendInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Set up a new frontend project using Vite, React, and TypeScript with a production-ready directory structure, path aliases, linting, formatting, and essential dependencies pre-configured.
npm create vite@latest -- --template react-ts
cd <project-name>
npm install
npm install react-router-dom zustand @tanstack/react-query
npm install -D @tanstack/eslint-plugin-query prettier eslint-config-prettier
mkdir -p src/{components/ui,components/features,pages,hooks,services,stores,types,utils,styles}
Update tsconfig.json to add path aliases:
{
"compilerOptions": {
"strict": true,
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
}
}
Update vite.config.ts with aliases and a dev proxy:
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import path from "path";
export default defineConfig({
plugins: [react()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
server: {
port: 3000,
proxy: {
"/api": {
target: "http://localhost:8080",
changeOrigin: true,
},
},
},
});
Create .prettierrc:
{
"semi": true,
"singleQuote": false,
"trailingComma": "all",
"printWidth": 100,
"tabWidth": 2
}
Extend ESLint config to include Prettier and TanStack Query rules:
// eslint.config.js
import js from "@eslint/js";
import tseslint from "typescript-eslint";
import reactHooks from "eslint-plugin-react-hooks";
import prettier from "eslint-config-prettier";
export default tseslint.config(
js.configs.recommended,
...tseslint.configs.strict,
prettier,
{
plugins: { "react-hooks": reactHooks },
rules: {
...reactHooks.configs.recommended.rules,
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
},
},
);
// src/App.tsx
import { BrowserRouter } from "react-router-dom";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
const queryClient = new QueryClient({
defaultOptions: {
queries: { staleTime: 5 * 60 * 1000, retry: 1 },
},
});
export default function App() {
return (
<QueryClientProvider client={queryClient}>
<BrowserRouter>
{/* Route definitions go here */}
</BrowserRouter>
</QueryClientProvider>
);
}
"strict": true in tsconfig)@/ maps to src/)vite.config.ts for API callssrc/package.json.env files containing secretsA fully initialized project directory with:
npm run dev / npm run build commandssrc/ created and empty (with .gitkeep if needed)development
Implement features using the Red-Green-Refactor cycle to ensure testability and correctness from the start.
data-ai
Manage the `tasks.md` ledger with strict locking and collision avoidance protocols to allow multiple agents to work in parallel safely.
development
The git-workflow skill defines branching conventions, commit message formats, and pull request standards that all agents must follow for consistent version control.
development
The environment-config skill standardizes how agents manage environment variables, secrets, and application configuration across local development and deployed environments.