Kumo development assistant for MySQL database management tool. Use when working on Kumo features, understanding architecture, writing tests, or navigating the codebase. Helps with React components, API endpoints, database features, and Electron app development.
Expert assistant for developing Kumo - a comprehensive cross-platform MySQL/MongoDB database management tool built with TypeScript, React, and Electron.
Use this skill when:
Kumo is a cross-platform database management application similar to Navicat, featuring:
Tech Stack:
Three-Tier Architecture:
React Frontend → Node.js API Server → MySQL/MongoDB Database
Key Principles:
src/features/@/* for src/*, @server/* for server/*For detailed architecture information, see architecture.md.
Location: src/features/<feature-name>/
Pattern: Each feature is self-contained with:
src/features/myFeature/
├── MyFeatureComponent.tsx # Main component
├── components/ # Sub-components
│ ├── SubComponent1.tsx
│ └── SubComponent2.tsx
└── utils/ # Feature-specific utilities
└── helpers.ts
Steps:
src/features/src/test/ or tests/See features.md for detailed feature development guide.
Location: server/routes/
Pattern:
// server/routes/myRoute.ts
import { Router } from 'express';
const router = Router();
router.get('/api/my-endpoint', async (req, res) => {
try {
// Business logic here
res.json({ success: true, data: result });
} catch (error) {
res.status(500).json({ error: error.message });
}
});
export default router;
Register in server/index.ts:
import myRoute from './routes/myRoute';
app.use(myRoute);
MySQL Example:
import { query } from '@server/utils/database';
const results = await query(connectionId, 'SELECT * FROM users WHERE id = ?', [userId]);
MongoDB Example:
import { getMongoClient } from '@server/services/mongodb';
const client = await getMongoClient(connectionId);
const db = client.db(databaseName);
const collection = db.collection(collectionName);
const docs = await collection.find({ status: 'active' }).toArray();
Important: Always use parameterized queries to prevent SQL injection.
Unit Tests (Vitest):
npm run test:unit # Run all unit tests
npm run test:unit:ui # Run with UI
Location: src/test/components/
E2E Tests (Playwright):
npm run test # Run all E2E tests
npm run test:ui # Run with Playwright UI
npm run test:headed # Run in headed mode
Location: tests/
See testing.md for comprehensive testing guide.
Kumo/
├── src/ # Frontend React application
│ ├── features/ # Feature modules (20+ features)
│ │ ├── apiTester/ # REST API testing
│ │ ├── connections/ # Database connection management
│ │ ├── dataViewer/ # Data grid with inline editing
│ │ ├── mongodb/ # MongoDB features
│ │ ├── query/ # SQL editor and execution
│ │ ├── queryBuilder/ # Visual query builder
│ │ ├── schema/ # Schema exploration
│ │ └── ... # 13+ more features
│ ├── components/ # Shared UI components
│ ├── hooks/ # Custom React hooks
│ ├── services/ # Frontend API clients
│ ├── store/ # Zustand state management
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Utility functions
├── server/ # Node.js Express API
│ ├── routes/ # API route handlers
│ ├── services/ # Business logic
│ ├── types/ # Server types
│ └── utils/ # Server utilities
├── electron/ # Electron main process
│ ├── main.cjs # Entry point
│ └── preload.js # Preload script
├── tests/ # E2E tests (Playwright)
├── openspec/ # Spec-driven development
│ ├── project.md # Project conventions
│ ├── specs/ # Feature specifications
│ └── changes/ # Change proposals
└── .claude/ # Claude Code configuration
├── commands/ # Slash commands
└── skills/ # Agent skills
use)useMemo/useCallback for expensive operationsuseQuery, useMutation)useState# Terminal 1: Frontend (Vite dev server)
npm run dev # http://localhost:5174
# Terminal 2: Backend API
npm run dev:server # http://localhost:3001
# Terminal 3 (optional): Electron app
npm run dev:electron
# Build frontend and server
npm run build
# Build Electron app for specific platform
npm run build:electron:win # Windows
npm run build:electron:mac # macOS
npm run build:electron:linux # Linux
npm run format # Format code with Prettier
npm run type-check # TypeScript type checking
npm run lint # ESLint code linting
npm run clean # Clean build artifacts
Database Connections (src/features/connections/)
Query Editor (src/features/query/)
Visual Query Builder (src/features/queryBuilder/)
Data Viewer (src/features/dataViewer/)
Schema Management (src/features/schema/)
API Tester (src/features/apiTester/)
Git Integration (src/features/git/)
Kumo uses OpenSpec for spec-driven development. See openspec/AGENTS.md for:
Documentation:
openspec/project.md - Project conventionsREADME.md - Setup and usage guideCommands:
openspec list # View active changes
openspec list --specs # View feature specifications
npm run test:report # View test reports
src/features/@/* instead of relative pathssrc/features/ for examplesopenspec/project.md for project conventions