Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
terrylica avatar

Schema E2e Validation

  • 115 installs
  • 62 repo stars
  • Updated August 3, 2026
  • terrylica/cc-skills

Use schema-e2e-validation for development tasks

About

schema-e2e-validation: A skill for development. This provides functionality for development workflows.

  • schema-e2e-validation

Schema E2e Validation by the numbers

  • 115 all-time installs (skills.sh)
  • Ranked #2,898 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/terrylica/cc-skills --skill schema-e2e-validation

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs115
repo stars62
Last updatedAugust 3, 2026
Repositoryterrylica/cc-skills

What it does

Use schema-e2e-validation for development tasks

Files

SKILL.mdMarkdownGitHub ↗

Schema E2E Validation

Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

When to Use This Skill

Use this skill when:

  • Validating schema changes before commit
  • Verifying YAML schema matches live ClickHouse Cloud
  • Regenerating Python types, DDL, or docs
  • Running full schema workflow validation

Prerequisites

Docker Runtime (Required)

Earthly requires Docker. Start Colima before running:

colima start

Check if running:

docker ps  # Should not error

Doppler Access (For validation targets)

Required for +test-schema-validate and +test-schema-e2e:

doppler configure set token <token_from_1password>
doppler setup --project gapless-network-data --config prd

Earthly Installation

brew install earthly

---

Quick Commands

Generation only (no secrets)

cd ~/eon/gapless-network-data
colima start  # If not already running
earthly +test-schema-generate

Full E2E with validation (requires Doppler)

cd ~/eon/gapless-network-data
colima start  # If not already running
./scripts/earthly-with-doppler.sh +test-schema-e2e

All non-secret targets

cd ~/eon/gapless-network-data
earthly +all

---

Artifacts

After running +test-schema-generate or +test-schema-e2e, check ./earthly-artifacts/:

PathContents
types/blocks.pyPydantic + TypedDict models
types/__init__.pyPackage init
ddl/ethereum_mainnet.sqlClickHouse DDL
docs/ethereum_mainnet.mdMarkdown documentation

For E2E, artifacts are under e2e/types/, e2e/ddl/, e2e/docs/.

---

Earthfile Targets Reference

TargetSecretsPurpose
+depsNoInstall uv + dependencies
+buildNoCopy source files
+test-unitNoRun pytest
+test-schema-generateNoGenerate types/DDL/docs
+test-schema-validateYesValidate vs ClickHouse
+test-schema-e2eYesFull workflow + artifacts
+allNoRun all non-secret targets

---

Troubleshooting

"could not determine buildkit address - is Docker or Podman running?"

Cause: Docker/Colima not running

Fix:

colima start
# Wait for "done" message, then retry
earthly +test-schema-generate

"unable to parse --secret-file argument"

Cause: Wrong flag name or malformed secrets file

Fix: The correct flag is --secret-file-path (NOT --secret-file). The wrapper script handles this, but if running manually:

# WRONG
earthly --secret-file=/path/to/secrets +target

# CORRECT
earthly --secret-file-path=/path/to/secrets +target

Also ensure secrets file has no quotes around values:

# WRONG format
CLICKHOUSE_HOST="host.cloud"

# CORRECT format
CLICKHOUSE_HOST=host.cloud

"OSError: Readme file does not exist: README.md"

Cause: hatchling build backend requires README.md in container

Fix: Ensure Earthfile copies README.md in deps target:

deps:
    COPY pyproject.toml uv.lock README.md ./  # README.md required!

"missing secret" during validation

Cause: Doppler not configured or secrets not passed

Fix:

# Verify Doppler has the secrets
doppler secrets --project gapless-network-data --config prd | grep CLICKHOUSE

# Use the wrapper script (handles secret injection)
./scripts/earthly-with-doppler.sh +test-schema-validate

Cache Issues

Force rebuild without cache:

earthly --no-cache +test-schema-e2e

---

Implementation Details

Doppler Secret Injection

The wrapper script scripts/earthly-with-doppler.sh:

1. Downloads secrets from Doppler 2. Filters for CLICKHOUSE_* variables 3. Strips quotes (Doppler outputs KEY="value", Earthly needs KEY=value) 4. Passes via --secret-file-path flag 5. Cleans up temp file on exit

Secrets Required

SecretPurpose
CLICKHOUSE_HOST_READONLYClickHouse Cloud host
CLICKHOUSE_USER_READONLYRead-only user
CLICKHOUSE_PASSWORD_READONLYRead-only password

---

Related Files

FilePurpose
~/eon/gapless-network-data/EarthfileMain build file
~/eon/gapless-network-data/scripts/earthly-with-doppler.shSecret injection wrapper
~/eon/gapless-network-data/schema/clickhouse/ethereum_mainnet.yamlSSoT schema
~/eon/gapless-network-data/docs/adr/2025-12-03-earthly-schema-e2e.mdADR

---

Validation History

  • 2025-12-03: Created and validated with full E2E run against ClickHouse Cloud
  • Lessons Learned:
  • --secret-file-path not --secret-file (Earthly v0.8.16)
  • Doppler --format env outputs quotes, must strip with sed 's/"//g'
  • README.md must be copied for hatchling build backend
  • Colima must be started before Earthly runs

---

Design Authority

<!-- ADR: 2025-12-10-clickhouse-skill-delegation -->

This skill validates schemas but does not design them. For schema design guidance (ORDER BY, compression, partitioning), invoke `quality-tools:clickhouse-architect` first.

Related Skills

SkillPurpose
quality-tools:clickhouse-architectSchema design before validation
devops-tools:clickhouse-cloud-managementCloud credentials for E2E tests
devops-tools:clickhouse-pydantic-configClient configuration

Post-Execution Reflection

After this skill completes, check before closing:

1. Did the command succeed? — If not, fix the instruction or error table that caused the failure. 2. Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match. 3. Was a workaround needed? — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.

Only update if the issue is real and reproducible — not speculative.

Related skills

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.