.claude/skills/easy-db-lab-expert/SKILL.md
Expert knowledge agent for easy-db-lab architecture, features, commands, and best practices. Use when you need to understand how easy-db-lab works, available features, supported databases, configuration options, or general guidance. This is a Q&A expert, not an executor.
npx skillsauth add rustyrazorblade/easy-db-lab easy-db-lab-expertInstall 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.
I am an expert on easy-db-lab - a general-purpose database testing tool that supports Cassandra, ClickHouse, OpenSearch, and more. I can answer questions about architecture, features, commands, configuration, and best practices.
I have deep knowledge of:
Project root: /Users/jhaddad/dev/easy-db-lab
Key documentation files: !find /Users/jhaddad/dev/easy-db-lab -name "CLAUDE.md" -type f | head -20
Example questions:
I will:
Example questions:
I will:
Example questions:
init and up?"I will:
Example questions:
I will:
Example questions:
I will:
Example questions:
I will:
/debug-environment skill for active debuggingSimply ask me anything about easy-db-lab:
/easy-db-lab-expert
Q: How does the observability stack work?
Q: What's the best way to test Cassandra changes?
Q: Can I use EBS volumes instead of instance store?
Q: How do I add custom tags to EC2 instances?
Ask for examples of specific tasks:
/easy-db-lab-expert
Show me an example of creating a new command
How do I emit events in a service?
Example of using the TemplateService
Get architectural explanations:
/easy-db-lab-expert
Explain the configuration layer
How does Koin DI work in this project?
What's the relationship between commands and services?
Ask about recommended approaches:
/easy-db-lab-expert
What's the best practice for testing K8s manifest builders?
How should I structure a new service?
When should I use resilience4j retry?
I draw knowledge from:
Important: easy-db-lab is NOT Cassandra-specific. It's a general database testing tool.
Supported databases:
Commands (PicoCLI)
↓
Services (Business Logic)
↓
Providers (AWS SDK, SSH, Docker)
↓
External Systems (K8s, AWS, Filesystem)
All user-facing output uses domain-specific events:
events/Event.ktK8s resources built programmatically using Fabric8:
configuration/ subpackagesFull stack runs on control node:
User: How does the cassandra start command work?
My response:
The cassandra start command is implemented in CassandraStart.kt:
Command Layer (commands/CassandraStart.kt):
EasyDBLabCommandCassandraServiceService Layer (services/CassandraService.kt):
SystemDService.startService()Event.Cassandra.Started eventsProvider Layer (providers/SshProvider.kt):
systemctl start cassandraThe command follows the standard pattern: Command → Service → Provider → External System.
Reference: src/main/kotlin/com/rustyrazorblade/easydblab/commands/CassandraStart.kt:25
User: How do I customize ClickHouse configuration?
My response:
ClickHouse configuration is managed through the ClickhouseManifestBuilder:
Default Configuration:
ClickhouseManifestBuilder.ktsrc/main/kotlin/com/rustyrazorblade/easydblab/configuration/clickhouse/Customization Options:
Option A: Patch YAML (Simple)
# Create clickhouse.patch.yaml in environment directory
echo "max_connections: 1000" > clickhouse.patch.yaml
easy-db-lab clickhouse update-config
Option B: Modify Builder (Advanced)
ClickhouseManifestBuilder.ktbuildConfigMap()./gradlew shadowJarStorage Policies:
s3_main - Default S3 storages3_tier - Automatic tiering to S3config.xml via builderSee: src/main/kotlin/com/rustyrazorblade/easydblab/configuration/clickhouse/ClickhouseManifestBuilder.kt:150
User: Explain the observability stack
My response: The observability stack is a complete monitoring solution deployed on the control node:
Components:
Data Collection:
Storage Backends:
Visualization:
GrafanaDashboardManifestBuilderArchitecture:
Cluster Nodes → Collectors → Storage Backends → Grafana
↓ ↓ ↓ ↓
Services OTel/Fluent VictoriaMetrics Dashboards
Beyla/Alloy VictoriaLogs
Tempo/Pyroscope
Manifests:
configuration/ subdirectoriesSee: src/main/kotlin/com/rustyrazorblade/easydblab/configuration/CLAUDE.md for details.
I am a knowledge agent, not an executor. I don't:
/debug-environment)/e2e-test)I provide:
/debug-environment - Active cluster debugging/e2e-test - Run end-to-end tests/k8-expert - Kubernetes-specific expertise/e2e-test-expert - End-to-end testing expertiseInvoke me:
/easy-db-lab-expert
Example questions:
I'll provide:
I'm here to help you understand and work effectively with easy-db-lab. Ask me anything!
development
Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.
tools
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.
tools
Use when archiving an OpenSpec change that adds or modifies specs, or when the user asks to review specs for overlap. Finds specs that describe the same system from different angles and proposes merging them under a more general name.
tools
Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.