Skip to content
kumo-assistant logo

Kumo Development Assistant

kumo-assistant

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.

mattnigh/skills_collection0installs24stars

SKILL.md

Full skill instructions

Kumo Development Assistant

Expert assistant for developing Kumo - a comprehensive cross-platform MySQL/​MongoDB database management tool built with TypeScript, React, and Electron.

When to Use This Skill

Use this skill when:

  • Adding new features to Kumo
  • Understanding the feature-based architecture
  • Working with database connections (MySQL/​MongoDB)
  • Creating or modifying UI components
  • Writing API endpoints
  • Adding tests (Vitest unit tests or Playwright E2E tests)
  • Working with the Electron desktop app
  • Understanding project conventions and patterns

Quick Start Guide

Project Overview

Kumo is a cross-platform database management application similar to Navicat, featuring:

  • Database Support: MySQL and MongoDB with multi-connection management
  • Query Tools: Monaco editor with SQL syntax highlighting, visual query builder (React Flow)
  • Data Management: Advanced data viewer with inline editing, import/​export (CSV, JSON, SQL, Excel)
  • Development Tools: API tester, terminal, Playwright integration, Git browser
  • AI Features: Anthropic Claude integration for query assistance

Tech Stack:

  • Frontend: React 18, TypeScript, TanStack Query, Tailwind CSS, Monaco Editor
  • Backend: Node.js, Express, mysql2, mongodb driver, socket.io
  • Desktop: Electron with secure IPC
  • Testing: Vitest (unit), Playwright (E2E)
  • State: Zustand (client), TanStack Query (server)

Architecture Patterns

Three-Tier Architecture:

React Frontend → Node.js API Server → MySQL/​MongoDB Database

Key Principles:

  • Feature-based folder structure in src/​features/
  • Server-side connection pooling (never direct database access from browser)
  • RESTful API with WebSocket for streaming operations
  • Separation of server state (TanStack Query) and client state (Zustand)
  • TypeScript path aliases: @/​* for src/​*, @server/​* for server/​*

For detailed architecture information, see architecture.md.

Common Development Tasks

1. Adding a New Feature

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:

  1. Create feature folder in src/​features/
  2. Build React components using functional components + hooks
  3. Use Zustand for local feature state if needed
  4. Use TanStack Query for server data fetching
  5. Follow Tailwind CSS for styling
  6. Add tests in src/​test/ or tests/

See features.md for detailed feature development guide.

2. Creating API Endpoints

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);
3. Database Operations

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.

4. Adding Tests

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.

Project Structure

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

Code Conventions

TypeScript Style

  • 2-space indentation
  • Single quotes for strings
  • Trailing commas in multi-line objects/​arrays
  • PascalCase for components, camelCase for functions/​variables
  • kebab-case for file names

React Patterns

  • Functional components with hooks (no class components)
  • Props destructuring in component signatures
  • Custom hooks for reusable logic (prefix with use)
  • Memoization with useMemo/useCallback for expensive operations

State Management

  • Server State: Use TanStack Query (useQuery, useMutation)
  • Client State: Use Zustand stores for UI state
  • Form State: Use controlled components with local useState

API Patterns

  • RESTful endpoints with proper HTTP methods (GET, POST, PUT, DELETE)
  • Error handling with try-catch and appropriate status codes
  • Parameterized queries to prevent SQL injection
  • Connection pooling for database connections

Development Workflow

Running the Application

# 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

Building for Production

# 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

Code Quality

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

Key Features Overview

  1. Database Connections (src/​features/​connections/)

    • Multi-database connection management
    • Secure credential storage
    • SSH tunnel support
  2. Query Editor (src/​features/​query/)

    • Monaco editor with SQL syntax highlighting
    • Query execution and results display
    • Query history and saved queries
    • AI-powered query suggestions
  3. Visual Query Builder (src/​features/​queryBuilder/)

    • Drag-and-drop query construction
    • React Flow for visual representation
    • Smart join suggestions based on foreign keys
  4. Data Viewer (src/​features/​dataViewer/)

    • TanStack Table for virtualized data grid
    • Inline editing with validation
    • Pagination, filtering, sorting
  5. Schema Management (src/​features/​schema/)

    • Visual schema browser
    • Relationship diagrams
    • Index management
  6. API Tester (src/​features/​apiTester/)

    • REST API testing
    • cURL parsing and generation
    • Request/​response management
  7. Git Integration (src/​features/​git/)

    • Repository browser
    • Pull request viewer
    • Code diff viewer

Security Considerations

  • Never expose credentials: Store in OS keychain (desktop) or encrypted (web)
  • Parameterized queries: Always use placeholders for user input
  • Connection limits: Max 10 connections per database
  • Input validation: Validate all user input on both client and server
  • Secure IPC: Electron preload script for secure communication

Performance Guidelines

  • Large result sets: Warn at 10k rows, require confirmation for 100k+
  • Virtual scrolling: Use TanStack Virtual for large lists
  • Code splitting: Lazy load features with React.lazy()
  • Streaming: Use streaming for large file imports/​exports
  • Connection pooling: Reuse database connections efficiently

OpenSpec Integration

Kumo uses OpenSpec for spec-driven development. See openspec/​AGENTS.md for:

  • Creating change proposals
  • Writing spec deltas
  • Implementing changes
  • Archiving completed work

Getting Help

Documentation:

  • architecture.md - Detailed architecture patterns
  • features.md - Feature development guide
  • testing.md - Testing strategies and examples
  • openspec/​project.md - Project conventions
  • README.md - Setup and usage guide

Commands:

openspec list                  # View active changes
openspec list --specs          # View feature specifications
npm run test:report            # View test reports

Tips for AI Assistants

  1. Check existing features first: Similar functionality may already exist
  2. Follow feature structure: Keep features self-contained in src/​features/
  3. Use path aliases: Import with @/​* instead of relative paths
  4. Write tests: Add tests when creating new features
  5. Update specs: Use OpenSpec for significant changes
  6. Security first: Validate input, use parameterized queries
  7. Performance aware: Consider virtual scrolling for large data sets
  8. Type safety: Leverage TypeScript for better DX

Next Steps

  • Read architecture.md for in-depth technical patterns
  • Review features.md before adding new features
  • Check testing.md for testing best practices
  • Explore existing features in src/​features/ for examples
  • Review openspec/​project.md for project conventions

More skills from mattnigh

spring-framework-patterns logo
mattnigh/skills_collection

spring-framework-patterns

Comprehensive Spring Framework and Spring Boot best practices including dependency injection patterns, bean lifecycle and scopes, REST API development, Spring Data JPA, service layer design, Spring Security, testing strategies, caching, AOP, async processing, error handling, and common anti-patte...

24 0
View

TypeScript厳格モードによる型安全性設計を専門とするスキル。 📖 参照書籍: - 『Effective TypeScript』(Dan Vanderkam): 型設計 📚 リソース参照: - `resources/Level1_basics.md`: レベル1の基礎ガイド - `resources/Level2_intermediate.md`: レベル2の実務ガイド - `resources/Level3_advanced.md`: レベル3の応用ガイド - `resources/Level4_expert.md`: レベル4の専門ガイド - `resources/di...

24 0
View
deploying-cloud-k8s logo
mattnigh/skills_collection

deploying-cloud-k8s

Deploys applications to cloud Kubernetes (AKS/GKE/DOKS) with CI/CD pipelines. Use when deploying to production, setting up GitHub Actions, troubleshooting deployments. Covers build-time vs runtime vars, architecture matching, and battle-tested debugging.

24 0
View
moai-alfred-agent-guide logo
mattnigh/skills_collection

moai-alfred-agent-guide

19-agent team structure, decision trees for agent selection, Haiku vs Sonnet model selection, and agent collaboration principles. Use when deciding which sub-agent to invoke, understanding team responsibilities, or learning multi-agent orchestration.

24 0
View
mermaid-diagram-generator logo
mattnigh/skills_collection

mermaid-diagram-generator

Converts architecture descriptions, module specs, or workflow docs into Mermaid diagrams. Use when visualizing brick module relationships, workflows (DDD, investigation), or system architecture. Supports: flowcharts, sequence diagrams, class diagrams, state machines, entity relationship diagrams,...

24 0
View
pre-flight-check logo
mattnigh/skills_collection

pre-flight-check

INVOKE FIRST before any code work. Validates git workflow (branch, issue, worklog) and checks approach. Use at START of every task and END before completing. Prevents skipped steps.

24 0
View
browser-dev-tools logo
mattnigh/skills_collection

browser-dev-tools

This skill should be used when working with browser-rendered artifacts (i.e. Bun, React/React Native) to proactively validate that development work on localhost is being built appropriately and to support debugging browser-rendered content. Use this skill after making frontend changes to verify t...

24 0
View
lead-dev logo
mattnigh/skills_collection

lead-dev

Lead Développeur - Coordination technique opérationnelle, code review, mentoring et livraison. Pair de web-dev-process au niveau OPÉRATIONS.

24 0
View
worker-monitor logo
mattnigh/skills_collection

worker-monitor

Monitor Docker workers, RQ queue health, and auto-scale workers (max 4). Use when: checking job progress, monitoring queue depth, scaling workers up/down, diagnosing slow processing, or waiting for jobs to complete. Referenced by data-quality skill during reprocessing.

24 0
View
quality-advisor logo
mattnigh/skills_collection

quality-advisor

Proactive quality guidance system that monitors artifact creation and provides real-time feedback on documentation quality

24 0
View
bump-version logo
mattnigh/skills_collection

bump-version

This skill should be used when the user wants to bump the version number in the workspace. It updates versions across all pyproject.toml files (root, tde, and tda packages) and the CHANGELOG.md to keep them synchronized.

24 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View