CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ingesting-into-data-lake

Import data into the AWS data lake from S3 files, local uploads, JDBC databases (Oracle, SQL Server, PostgreSQL, MySQL, RDS, Aurora), Amazon Redshift, Snowflake, BigQuery, DynamoDB, or existing Glue catalog tables (migration). Default target is S3 Tables; standard Iceberg on a general purpose bucket is supported where S3 Tables is not adopted. Handles one-time loads, recurring pipelines, migrations. Triggers on: import data, load data, ingest, sync database, migrate table, move data to AWS, set up pipeline, ETL, pull from Snowflake, query BigQuery into S3, export DynamoDB, CTAS, convert to Iceberg. Do NOT use for setting up or troubleshooting Glue connections (use connecting-to-data-source), creating empty tables (use creating-data-lake-table), running queries (use querying-data-lake), finding tables by fuzzy name (use finding-data-lake-assets), catalog audit (use exploring-data-catalog), or SaaS platforms like Salesforce, ServiceNow, SAP, MongoDB, Kafka.

Quality

93%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

The canonical home for this skill is ingesting-into-data-lake in aws/agent-toolkit-for-aws

SKILL.md
Quality
Evals
Security

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong orchestration-layer SKILL.md: lean, decision-dense content with a clear 7-step workflow, mandatory validation, concrete commands and quoted error signatures, and a well-categorized 25-file reference bundle at one level of depth. The only flaws are minor: some duplicated bullets/reference listings and one broken cross-link inside a bundle file.

Suggestions

Remove the duplicated 'DynamoDB does not need a Glue connection' bullet (keep it in either Step 3 or Gotchas, not both) and drop the repeated per-source reference listings in the References section since the Step 2 routing table already links all seven source references.

Fix or remove the broken iam-role-management.md links in references/error-handling.md (lines 94 and 109) -- the file does not exist in the bundle.

Consider folding the Troubleshooting table's IAM rows into error-handling.md and keeping only a pointer, since two of five rows duplicate permission guidance that the reference file covers in more depth.

DimensionReasoningScore

Conciseness

The body is dense and operational -- routing tables, gotchas with quoted error strings ('Cannot derive default warehouse location'), and an error/cause/action table with essentially no concept explanation Claude already knows. However, there is minor duplication: the DynamoDB-no-connection note appears in both Step 3 ('Local files, S3 files, DynamoDB, and catalog migration do not need a Glue connection') and Gotchas ('DynamoDB does not need a Glue connection'), and the seven source references are listed twice (in the Step 2 routing table and again in References). It is not a 3 because none of this is padding or over-explanation -- it is tight, decision-relevant content; it is not a 5 because the duplicated bullets and repeated reference listings could be trimmed.

4 / 5

Actionability

Concrete executable commands are given inline ('aws sts get-caller-identity', 'aws glue get-connection --name <CONNECTION_NAME> --region <REGION>'), exact job arguments and flags are specified ('--datalake-formats iceberg', 'spark.sql.catalog.* config MUST go in --conf job arguments'), and the troubleshooting table names specific IAM permissions (s3:GetObject, s3:PutObject, s3tables:*) and concrete remedies (e.g., 'Lower read.percent or use native export'). Validation checks are specific ('spot-check 3-5 sample rows'). It is not a 4 because there are no gaps: for its role as the routing/orchestration layer, every instruction is directly executable, with job templates correctly deferred to the self-contained references.

5 / 5

Workflow Clarity

A clearly sequenced 7-step workflow (verify dependencies -> classify source -> confirm connection -> clarify target -> execute -> validate -> schedule) with an explicit mandatory validation step ('Run all three, do not skip': row count, null check, spot-check) and feedback loops for error recovery (troubleshooting table, 'If the connection does not exist, stop and delegate to connecting-to-data-source'). The batch-ingest context makes validation essential, and it is present and enforced. It is not a 4 because validation checkpoints, delegation rules, and argument routing are all explicit rather than implicit.

5 / 5

Progressive Disclosure

The body is a well-organized overview routing to 25 real reference files (all verified present), grouped into clearly labeled categories (source-specific, cross-cutting, migration-specific, JDBC-specific) with one-line descriptions, and references are one level deep with sibling cross-links rather than deferral chains. It is not a 5 because of a minor organization gap: error-handling.md contains broken links to a nonexistent iam-role-management.md, and the source-reference listing is duplicated between the Step 2 routing table and the References section.

4 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: comprehensive concrete capability statement, an explicit natural-language trigger list with good synonym coverage, and an explicit anti-trigger section that delegates overlapping work to named sibling skills. Third-person voice is used throughout, with no vague or padded language.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete actions and capabilities: 'Import data into the AWS data lake from S3 files, local uploads, JDBC databases (Oracle, SQL Server, PostgreSQL, MySQL, RDS, Aurora), Amazon Redshift, Snowflake, BigQuery, DynamoDB, or existing Glue catalog tables (migration)' plus target selection ('Default target is S3 Tables; standard Iceberg... is supported') and load patterns ('one-time loads, recurring pipelines, migrations'). Source and target coverage is comprehensive with no vague filler. It is not a 4 because there is no noticeable gap in coverage of the skill's capability space.

5 / 5

Completeness

It explicitly answers 'what' (import into the AWS data lake from a named source matrix, with target formats and load types) and 'when' via the explicit 'Triggers on:' clause with concrete trigger phrases, going beyond the anchor-5 example by also adding a 'Do NOT use for...' anti-trigger clause. Both halves are concrete, not implied.

5 / 5

Trigger Term Quality

The explicit trigger list covers natural user phrasing and synonyms comprehensively: 'import data, load data, ingest, sync database, migrate table, move data to AWS, set up pipeline, ETL, pull from Snowflake, query BigQuery into S3, export DynamoDB, CTAS, convert to Iceberg'. These are exactly the phrases a user would say when needing this skill. It is not a 4 because both generic verbs and source-specific phrases are covered with no common variation missing.

5 / 5

Distinctiveness Conflict Risk

The 'Do NOT use for' section explicitly disambiguates five sibling skills by name (connecting-to-data-source, creating-data-lake-table, querying-data-lake, finding-data-lake-assets, exploring-data-catalog) and excludes SaaS platforms. This is a clear ingest-into-data-lake niche with minimal conflict risk. It is not a 4 because the boundaries are not just present but named with their owning skills.

5 / 5

Total

20

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

Repository

mreferre/aws-agent-toolkit-skills

Path

.kiro/skills/ingesting-into-data-lake/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.