Source profileQuality 92/100Review permissions

vasilyu1983/AI-Agents-public/frameworks/shared-skills/skills/data-lake-platform/SKILL.md

data-lake-platform

Designs lakehouse platforms across Iceberg, Delta, Hudi, and Paimon. Use when choosing catalogs, CDC paths, query engines, governance, or cost controls.

Source repository stars
82
Declared platforms
2
Static risk flags
1
Last source update
2026-08-21
Source checked
2026-08-28

Decision brief

What it does: where it fits

Build and operate production data lakes and lakehouses: ingest, transform, store in open formats, and serve analytics reliably.

Best for

  • Use when choosing catalogs, CDC paths, query engines, governance, or cost controls.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexDeclaredSource recordInstall path and trigger
Claude CodeDeclaredSource recordInstall path and trigger
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/vasilyu1983/AI-Agents-public --skill "frameworks/shared-skills/skills/data-lake-platform"
Safe inspection promptEditorial

Inspect the Agent Skill "data-lake-platform" from https://github.com/vasilyu1983/AI-Agents-public/blob/53f6cb73ea53a2646e3e7d4665062ad66f3683ac/frameworks/shared-skills/skills/data-lake-platform/SKILL.md at commit 53f6cb73ea53a2646e3e7d4665062ad66f3683ac. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow Checklist

    [ ] Choose architecture pattern: references/architecture-patterns.md — medallion, mesh, lambda, kappa, lakehouse

    [ ] Choose architecture pattern: references/architecture-patterns.md — medallion, mesh, lambda, kappa, lakehouse[ ] Define CDC or batch ingestion path: references/ingestion-patterns.md — dlt, Airbyte, Debezium, Flink CDC[ ] Configure streaming semantics if needed: references/streaming-patterns.md — Kafka, Flink, Spark Structured Streaming
  2. 02

    Quick Reference

    Review the “Quick Reference” section in the pinned source before continuing.

    Review and apply the “Quick Reference” source section.
  3. 03

    Quick-Start Decision Table

    Review the “Quick-Start Decision Table” section in the pinned source before continuing.

    Review and apply the “Quick-Start Decision Table” source section.
  4. 04

    Format State as of July 2026

    Key July 2026 facts (verify before quoting further out): - Iceberg v3 is GA on Snowflake (May 7 2026) and AWS (S3 Tables, Glue, EMR — Nov 2025). On Databricks it is Public Preview (announced Apr 9 2026, Databricks Runtime 18.0+ with Unity Catalog), not GA — do not tell a Databri…

    Iceberg v3 is GA on Snowflake (May 7 2026) and AWS (S3 Tables, Glue, EMR — Nov 2025). On Databricks it is Public Preview (announced Apr 9 2026, Databricks Runtime 18.0+ with Unity Catalog), not GA — do not tell a Databr…Trino's Iceberg connector treats format-version-3 support as experimental in its own docs: base read/write works, but row-level updates, deletes, and OPTIMIZE on v3 tables are unsupported. Starburst's Trino-based produc…Delta Lake shipped 4.1 (Mar 2026, catalog-managed tables GA), 4.2 (Apr 2026, native Flink connector, geospatial + Variant GA in Kernel), and 4.3 (Jun 2026, Unity Catalog Delta APIs route every table operation, streaming…
  5. 05

    Decision Tree

    Review the “Decision Tree” section in the pinned source before continuing.

    Review and apply the “Decision Tree” source section.

Permission review

Static risk signals and limitations

Runs scripts

medium · line 135

The documentation asks the agent to run terminal commands or scripts.

python scripts/scaffold_iceberg_table.py \

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score92/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars82SourceRepository attention, not individual Skill quality
Compatibility2 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
vasilyu1983/AI-Agents-public
Skill path
frameworks/shared-skills/skills/data-lake-platform/SKILL.md
Commit
53f6cb73ea53a2646e3e7d4665062ad66f3683ac
License
MIT
Collected
2026-08-28
Default branch
main
View the original SKILL.md

Data Lake Platform

Build and operate production data lakes and lakehouses: ingest, transform, store in open formats, and serve analytics reliably.

Quick Reference

TaskResourceWhen to Use
Pick a table format and spec versionreferences/storage-formats.mdChoosing Iceberg v2/v3, Delta 4.x, Hudi, Paimon, or DuckLake
Pick a catalog / control planereferences/governance-catalog.mdChoosing Polaris, Glue, Nessie, Unity, Gravitino, or Open Catalog
Design ingestion or CDC pathreferences/ingestion-patterns.mddlt, Airbyte, Debezium, Flink CDC
Scaffold or inspect an Iceberg tablescripts/scaffold_iceberg_table.py, scripts/inspect_iceberg_metadata.shNew table DDL or auditing an existing table's file/metadata layout
Sanity-check an interoperability or version claimdata/sources.json + Fact-Checking belowAny claim about spec-version GA status, engine support, or vendor feature

Quick-Start Decision Table

SituationDefault choice
Open multi-engine analyticsIceberg + REST catalog (Polaris/Glue/Nessie) + Trino
Databricks primary computeDelta 4.x + Unity Catalog; add UniForm only if external readers exist
CDC-heavy mutable, Spark-centeredHudi (CoW or MoR) + Kafka/Debezium
Streaming-first mutable, Flink-centeredPaimon + Flink CDC
Single-engine embedded / analyst workstationDuckLake (v1.0 GA Apr 2026) or DuckDB + Parquet/Iceberg
Low-latency BI, high concurrency dashboardsClickHouse or StarRocks serving layer
Local/CI prototyping with open-table portabilityDuckDB + Iceberg extension

Format State as of July 2026

FeatureApache Iceberg (1.11.x)Delta Lake 4.3Apache Hudi (1.0 stable / 1.1 dev)Apache Paimon (1.3.x)
Spec versionv3 GA on managed platforms; Trino writes still experimentalProtocol v3; Liquid Clustering GA1.x table version1.x
Deletion vectorsGA (v3 spec; bitmap on Puffin)GAN/A (MoR log)N/A (MoR log)
Catalog postureREST-first; Polaris TLP Feb 2026Catalog-managed tables mature (4.1-4.3); Unity Catalog Delta APIs route all opsMixedFlink-first, expanding
Coordinated commitsVia catalog (Polaris/Glue/Nessie)GA since 4.1; streaming + CDC on catalog-managed tables since 4.3N/AN/A
Branches and tagsFirst-classLimitedWorkflow-specificWorkflow-specific
Multi-engine readsStrong (Trino, Spark, DuckDB, Flink)Improving via UniForm + native Flink connector (4.2+); Trino v3 writes still experimentalImprovingGrowing; validate
Trino v3 supportExperimental: read/write of base data works; row-level updates, deletes, and OPTIMIZE on v3 tables are not supportedReaders via UniFormN/AN/A

Key July 2026 facts (verify before quoting further out):

  • Iceberg v3 is GA on Snowflake (May 7 2026) and AWS (S3 Tables, Glue, EMR — Nov 2025). On Databricks it is Public Preview (announced Apr 9 2026, Databricks Runtime 18.0+ with Unity Catalog), not GA — do not tell a Databricks-only user v3 is production-ready there without checking current Databricks release notes.
  • Trino's Iceberg connector treats format-version-3 support as experimental in its own docs: base read/write works, but row-level updates, deletes, and OPTIMIZE on v3 tables are unsupported. Starburst's Trino-based product has broader v3 support (deletion vectors, variant type) than open-source Trino — don't conflate the two when a client asks about "Trino."
  • Delta Lake shipped 4.1 (Mar 2026, catalog-managed tables GA), 4.2 (Apr 2026, native Flink connector, geospatial + Variant GA in Kernel), and 4.3 (Jun 2026, Unity Catalog Delta APIs route every table operation, streaming/CDF on catalog-managed tables). Treat "4.1" as a floor, not the current version.
  • Apache Polaris graduated to Apache Top-Level Project on Feb 19 2026 (~100 contributors, 6 releases, 2800+ PRs at graduation) and is now on a monthly release train with federation and credential vending in production.
  • DuckLake v1.0 GA Apr 13 2026: SQL-based catalog (SQLite/PostgreSQL/DuckDB), Iceberg-compatible deletion vectors, clients for Spark/Trino/DataFusion/Pandas. DuckLake 1.1 is expected ~Sept 2026 — re-check compatibility notes before committing to a long-lived DuckLake deployment.
  • Amazon S3 Tables: Iceberg v3 deletion vectors and row lineage supported (GA, rolled out from Nov 2025); simplified IAM permissions (Mar 2026); GovCloud GA (Feb 2026); two new regions (May 2026).
  • Apache Gravitino: TLP graduated Jun 2025; 1.2.0 (Mar 13 2026) added Table Maintenance Service, ClickHouse catalog, end-to-end UDF management; 1.2.1 (May 11 2026) is a stability/correctness patch — prefer it over 1.2.0 for new deployments.
  • Apache Hudi 1.1 is an active development branch (pluggable table-format framework, indexing rework) — not recommended for production as of July 2026; production Hudi deployments should stay on the 1.0.x line.

Any number here (release dates, contributor counts, benchmark percentages) can drift within weeks in this space — re-verify against the primary source in data/sources.json before repeating it in a client-facing recommendation, especially GA-vs-preview status, which vendors routinely blur in marketing copy.

Decision Tree

Choosing a lakehouse path:
    ├─ Databricks is the primary platform?
    │   └─ Delta 4.x + Unity Catalog; add UniForm only if external readers matter
    │
    ├─ Need open multi-engine access across Trino/Spark/DuckDB?
    │   └─ Iceberg v2/v3 + Polaris / Glue REST / Nessie / Open Catalog
    │       Note: default to v2 if Trino must write; v2 avoids row-update/delete/OPTIMIZE
    │       gaps that v3 still has on open-source Trino as of July 2026
    │
    ├─ Need heavy CDC, mutable tables, or streaming-first semantics?
    │   ├─ Flink-native stack -> Paimon first, compare with Hudi
    │   └─ Spark-heavy stack -> Hudi first (CoW for read-heavy, MoR for write-heavy)
    │
    ├─ Single-engine embedded or analyst workstation?
    │   └─ DuckLake v1.0 (PostgreSQL catalog for multi-instance) or DuckDB + Parquet
    │
    ├─ Need low-latency dashboards or embedded analytics?
    │   ├─ High concurrency BI -> Add ClickHouse / StarRocks / Doris
    │   └─ Local, notebook, CI -> DuckDB + Parquet/Iceberg
    │
    └─ Heterogeneous multi-format estate (Hive + Kafka + RDBMS)?
        └─ Apache Gravitino as federated "catalog of catalogs"

Catalog Landscape (July 2026)

CatalogStatusBest forWatch-outs
Apache PolarisTLP since Feb 2026; monthly release train; production-readyOpen self-hosted Iceberg control planeYou still need separate metadata/lineage
Glue Iceberg REST + S3 TablesGA; v3 deletion vectors/row lineage; simplified IAM Mar 2026AWS-native managed IcebergAWS-centric; S3 Tables auto-compaction
Snowflake Open CatalogGA; v3 GA May 7 2026Snowflake-adjacent open Iceberg interopValidate write paths and service principals
Project NessieStableBranch/tag promotion, isolated backfillsNarrower governance scope
Unity CatalogGA; Delta Lake 4.3 routes all catalog-managed ops through itDatabricks-centered governance + computeCross-engine behavior must be verified
Apache GravitinoTLP Jun 2025; 1.2.1 (May 2026) is current stableFederated multi-format metadata unificationNewer; validate production readiness per deployment
DuckLakev1.0 GA Apr 2026; 1.1 expected ~Sept 2026Single-engine or small-team SQL-native lakehouseNot designed for Spark/Flink concurrent writes

Workflow Checklist

1. Architecture and Ingestion

2. Storage and Catalog

  • Select table format and version: references/storage-formats.md
    • Iceberg: confirm v2 or v3 — check all engine support before enabling v3
    • Delta: use 4.x catalog-managed tables for new workloads
    • Hudi/Paimon: validate engine stack before committing
  • Select catalog: references/governance-catalog.md
    • Polaris for open Iceberg; Glue REST for AWS; Nessie for branching; Unity for Databricks
    • Consider Gravitino for heterogeneous multi-catalog federation
  • Set compaction, snapshot retention, and orphan-file cleanup schedule
  • Test interoperability with all intended engines before declaring multi-engine support

3. Transformation

4. Query and Serving

5. Quality, Security, and Ops

Quick Commands

# Generate DDL for partitioned Iceberg table (REST catalog, format v2):
python scripts/scaffold_iceberg_table.py \
  --catalog rest \
  --name analytics.events \
  --columns "event_id BIGINT, user_id BIGINT, event_type STRING, ts TIMESTAMP" \
  --partition ts_month,event_type \
  --format-version 2 \
  --target-file-size-mb 256

# Inspect S3-backed Iceberg table layout:
./scripts/inspect_iceberg_metadata.sh \
  --location s3://my-bucket/warehouse/analytics/events \
  --backend s3

# Iceberg maintenance (run in Spark or Trino):
CALL catalog.system.expire_snapshots('db.events', TIMESTAMP '2026-01-01');
CALL catalog.system.remove_orphan_files('db.events');
CALL catalog.system.rewrite_data_files('db.events');
CALL catalog.system.rewrite_manifests('db.events');

# DuckLake: create catalog and attach (DuckDB v1.5.2+):
INSTALL ducklake; LOAD ducklake;
ATTACH 'ducklake:postgres:dbname=catalog host=localhost' AS lake;

# Delta: check table version and history:
DESCRIBE HISTORY delta.`s3://bucket/path/to/table`

Reference Architectures

  • Open multi-engine: object storage + Iceberg v2/v3 + Polaris or Glue REST + Trino/Spark + DataHub/OpenMetadata + OpenLineage
  • Databricks-centered: Delta 4.x + Unity Catalog; add external interoperability only where there is a real consumer requirement
  • Streaming-first mutable: Kafka/Flink CDC + Hudi or Paimon + Trino/Spark readers + strict replay and retention rules
  • Serving-heavy analytics: Iceberg/Hudi/Delta upstream + ClickHouse/StarRocks/Doris downstream for fast dashboards
  • Small-team embedded: DuckLake v1.0 + PostgreSQL catalog + DuckDB compute; upgrade path to Iceberg when multi-engine needed

Do / Avoid

Do

  • Define data contracts, owners, and retention rules before first write.
  • Make every pipeline idempotent, replayable, and safe to backfill.
  • Keep catalog, lineage, and access-control choices explicit.
  • Test interoperability on real engines before committing to multi-engine promises.
  • Confirm the exact Iceberg v3 feature and engine support matrix (GA vs preview vs experimental — they are not the same) before enabling v3 in production, and re-check it close to launch since GA dates and preview scopes move monthly.
  • Use a serving layer only when workloads prove the need.
  • Distinguish "the spec supports X" from "our vendor's build of the engine supports X" — Trino open source and Starburst's Trino-based product diverge on Iceberg v3 coverage, and Databricks' own docs may say "Public Preview" even when a partner blog calls it "available."

Avoid

  • Treating Delta, Iceberg, Hudi, and Paimon as interchangeable.
  • Enabling Iceberg v3 writes on Trino in production — as of July 2026 Trino's own docs mark v3 as experimental with row-level updates, deletes, and OPTIMIZE unsupported on v3 tables.
  • Repeating a vendor's "v3 support" headline without checking whether it means GA, public preview, or read-only — Databricks Iceberg v3 is Public Preview, not GA, even though it is easy to find blog copy that reads as if it shipped.
  • Hiding governance inside a single vendor-specific default.
  • Shipping CDC without delete handling, retention policy, and replay drills.
  • Recommending managed services or format/spec-version claims without current-source verification — this space re-ships GA announcements monthly, and a fact that was accurate in the last training pass is a coin flip a month later.

Known Traps

  • Choosing a table format for vendor fit before validating engine support, catalog behavior, delete semantics, and maintenance tooling across the actual estate.
  • Treating object storage plus an open table format as a complete platform while leaving compaction, snapshot retention, metadata cleanup, and orphan-file controls unmanaged.
  • Mixing CDC upserts, streaming ingestion, and batch rewrites into the same tables without explicit idempotency, late-arrival, and rollback rules.
  • Assuming all engines interpret schema evolution, partition pruning, delete files, and time travel consistently across formats.
  • Copying warehouse-style small-table habits into the lake and creating severe small-file, manifest, and metadata amplification at scale.
  • Assuming DuckLake is interchangeable with Iceberg REST for multi-engine workloads — DuckLake is SQL-catalog-native and not designed for concurrent Spark/Flink write access.
  • Recommending a coordinated-commits or catalog-managed-tables migration (Delta 4.x, Iceberg REST) as a drop-in change. It changes who owns the commit path and can require a client/connector version bump across every reader and writer — sequence it as a migration with a rollback plan, not a config flag.
  • Picking the format with the best headline feature (row lineage, deletion vectors, Variant type) without asking whether the catalog and compute stack the client already has can actually exercise that feature today. A GA spec feature is not GA for that client until their engine, catalog, and client library all agree on it.
  • Treating "Apache project" or "Top-Level Project" status as a maturity signal by itself. TLP graduation (Polaris, Gravitino) is a governance and community milestone, not a production-readiness certification — check adoption, release cadence, and operator experience separately.
  • Letting a proof-of-concept's convenient single-engine choice (e.g., DuckLake, embedded DuckDB) silently become the production architecture once a second team needs concurrent writes or a different query engine. Name the upgrade trigger and the target format up front.

Navigation

References (load on demand)

FileLoad when
references/architecture-patterns.mdChoosing medallion, mesh, lambda, kappa, or lakehouse pattern
references/data-mesh-patterns.mdDesigning domain ownership, data products, or federated governance
references/ingestion-patterns.mdDesigning batch or CDC ingest paths (dlt, Airbyte, Debezium)
references/streaming-patterns.mdDesigning Kafka, Flink, or Spark Structured Streaming pipelines
references/orchestration-patterns.mdChoosing or configuring an orchestrator (Airflow, Prefect, etc.)
references/storage-formats.mdChoosing Iceberg v2/v3, Delta 4.x, Hudi, Paimon, or DuckLake
references/governance-catalog.mdChoosing Polaris, Glue, Nessie, Unity, Gravitino, or Open Catalog
references/transformation-patterns.mdDesigning dbt or SQLMesh transformation layer
references/query-engine-patterns.mdChoosing Trino, Spark, DuckDB, ClickHouse, or StarRocks
references/bi-visualization-patterns.mdDesigning BI layer (Metabase, Superset, Looker, etc.)
references/data-quality-patterns.mdAdding GX, Soda, or custom quality contracts
references/security-access-patterns.mdConfiguring table/row/column policies and engine-level ACLs
references/operational-playbook.mdBuilding runbooks for compaction, recovery, and oncall
references/cost-optimization.mdEnforcing file-size targets, retention windows, and cost guardrails

Templates

Related Skills

Tool/Platform Recommendation Protocol

  1. Read data/sources.json and start from primary docs.
  2. Verify current platform behavior for catalogs, connectors, security, and interoperability.
  3. Distinguish open-standard behavior from vendor-specific behavior.
  4. Report defaults, tradeoffs, and what is still vendor-bound.
  5. If browsing is unavailable, state the limitation and mark recommendations as unverified.

Fact-Checking

  • This skill's dated facts (spec-version GA status, release numbers, contributor/PR counts, benchmark percentages) reflect a snapshot and go stale within weeks — the lakehouse catalog and format space ships GA and preview announcements monthly.
  • Before repeating a GA/preview/experimental status claim, verify it against a trust_tier: primary source in data/sources.json (project release notes, vendor release notes) rather than a blog or aggregator, which often blur preview and GA language.
  • Explicitly separate "the format spec supports X" from "this specific engine/vendor build supports X" — these routinely diverge (see Trino vs. Starburst on Iceberg v3; Databricks Public Preview vs. Snowflake/AWS GA on Iceberg v3).
  • If web access is unavailable, say so explicitly and mark version- or GA-status-dependent recommendations as unverified rather than presenting a frozen snapshot as current.

Learnings Loop

Before applying this skill on a non-trivial task, read learnings.consolidated.md in this directory (and learnings.md if present).

After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.

Frequently asked questions

What to verify before installation and use

What does the data-lake-platform source document cover?

Build and operate production data lakes and lakehouses: ingest, transform, store in open formats, and serve analytics reliably.

How do I install data-lake-platform?

The source record exposes this install command: npx skills add https://github.com/vasilyu1983/AI-Agents-public --skill "frameworks/shared-skills/skills/data-lake-platform". Inspect the command and pinned source before running it.

Which Agent platforms does the source record declare?

The pinned source record declares support for: codex, claude code.

Which permission-related actions were detected?

Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing