Production-grade database design skill for SQL/NoSQL selection, schema design, indexing, and query optimization
View on GitHubpluginagentmarketplace/custom-plugin-system-design
custom-plugin-system-design
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/pluginagentmarketplace/custom-plugin-system-design/blob/main/skills/database-design/SKILL.md -a claude-code --skill database-designInstallation paths:
.claude/skills/database-design/# Database Design Skill
> **Purpose**: Atomic skill for database architecture with comprehensive parameter validation and optimization patterns.
## Skill Identity
| Attribute | Value |
|-----------|-------|
| **Scope** | Schema Design, Indexing, Query Optimization |
| **Responsibility** | Single: Data modeling and storage patterns |
| **Invocation** | `Skill("database-design")` |
## Parameter Schema
### Input Validation
```yaml
parameters:
database_context:
type: object
required: true
properties:
use_case:
type: string
enum: [oltp, olap, htap, time_series, document, graph]
required: true
data_characteristics:
type: object
required: true
properties:
volume:
type: string
pattern: "^\\d+[KMGTP]B$"
velocity:
type: string
pattern: "^\\d+[KM]?\\s*(reads?|writes?)/s$"
variety:
type: string
enum: [structured, semi_structured, unstructured]
access_patterns:
type: array
items:
type: object
properties:
query_type: { type: string }
frequency: { type: string, enum: [high, medium, low] }
latency_sla: { type: string, pattern: "^\\d+ms$" }
consistency:
type: string
enum: [strong, eventual, read_your_writes]
default: strong
validation_rules:
- name: "oltp_latency"
rule: "use_case == 'oltp' implies latency_sla <= '100ms'"
error: "OLTP workloads typically require <100ms latency"
- name: "volume_velocity_match"
rule: "high_volume implies adequate_velocity"
error: "Volume and velocity constraints may be incompatible"
```
### Output Schema
```yaml
output:
type: object
properties:
database_recommendation:
type: object
properties:
primary: { type: string }
secondary: { type: string }
rationale: { type: string }
schema:
type: object