Kumo development assistant for MySQL database management tool. Use when working on Kumo features, understanding architecture, writing tests, or navigating the codebase...
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