chore(skills): add wren-dlt-connector skill v1.0#1535
Conversation
Add version/license/metadata to SKILL.md frontmatter and register the new skill in versions.json, index.json, SKILLS.md, README.md, and install.sh. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughA new skill Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant dlt as dlt Pipeline
participant DuckDB
participant Introspector as introspect_dlt.py
participant Wren as Wren CLI
User->>dlt: configure & run pipeline
dlt->>DuckDB: write tables (.duckdb)
User->>Introspector: run introspect_dlt.py --duckdb-path
Introspector->>DuckDB: read information_schema
Introspector->>Introspector: normalize types & detect relationships
Introspector->>Wren: write wren_project.yml + models + relationships
User->>Wren: wren context build && run validation queries
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@skills/install.sh`:
- Line 16: The installer skips dependency expansion in remote mode because
index.json is only read from the local filesystem; update the remote install
path so that before resolving dependencies (the logic that reads ALL_SKILLS and
expands required skills) the script fetches and loads index.json into the same
variable/data structure used for local installs (i.e., ensure index.json is
downloaded and parsed when running remote installs so dependency expansion for
skills like wren-dlt-connector correctly pulls wren-generate-mdl). Make this
change in the install flow that handles remote execution so both local and
remote use the same index.json data for dependency resolution.
In `@skills/wren-dlt-connector/references/dlt_sources.md`:
- Around line 87-103: The Slack usage example calls datetime(2024, 1, 1) but
does not import datetime, causing a NameError; add the missing import from
datetime at the top of the example so the call in the slack_source(...)
start_date argument works (update the example header alongside the existing
imports for dlt and slack_source).
In `@skills/wren-dlt-connector/scripts/introspect_dlt.py`:
- Around line 193-210: The code builds model identity and detects parent/child
relationships using only t.name and writes files using t.name, which causes
cross-schema collisions and unsafe file paths; change all uses of plain t.name
(including table_names set, the parent-detection loop around parts, Relationship
entries, and output path construction) to use a schema-qualified identifier
(e.g., combine t.schema or t.schema_name with t.name) for uniqueness, and
sanitize any filesystem segment derived from identifiers before creating
directories/files (use a slugify/safe-name routine or pathlib-safe escaping) so
lookup and path writing use the same schema-qualified, sanitized token.
In `@skills/wren-dlt-connector/SKILL.md`:
- Around line 107-110: Update the validation text so it accurately describes the
sample output: replace the line "Print how many rows were loaded" (and the
corresponding similar lines at 115-125) with wording that reflects what the SQL
actually prints, e.g., "Print the number of columns per table" or "Print column
counts per table"; ensure the bullet under "After the run, confirm:" and any
repeated phrasing refer to column counts rather than rows to match the sample
SQL output.
- Around line 223-231: The join example in SKILL.md uses hidden internal columns
`_dlt_parent_id` and `_dlt_id` which conflicts with the rule that `_dlt_*`
columns are not exposed in Wren models; update the example queries to use
visible model columns (e.g., explicit foreign key columns or publicly exposed id
fields) or add a note showing how to reference relationships via available
fields instead of `_dlt_parent_id`/`_dlt_id` (replace the JOIN example that
references `_dlt_*` with one that joins on public columns such as `parent_id`,
`id`, or documented relationship fields).
- Around line 180-182: When loading profiles, guard against yaml.safe_load
returning None by ensuring the loaded value falls back to an empty dict; update
the expression around yaml.safe_load(profiles_file.read_text()) (used with
profiles_file.exists()) so that the variable existing becomes a dict even when
the YAML is empty (e.g., treat the result as yaml.safe_load(...) or {}), then
proceed to call existing.setdefault("profiles", {}) as before.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 6ca96bbd-731b-4a03-92a2-c47274536d11
📒 Files selected for processing (9)
skills/README.mdskills/SKILLS.mdskills/index.jsonskills/install.shskills/versions.jsonskills/wren-dlt-connector/SKILL.mdskills/wren-dlt-connector/evals/evals.jsonskills/wren-dlt-connector/references/dlt_sources.mdskills/wren-dlt-connector/scripts/introspect_dlt.py
- Fetch index.json in remote install mode for dependency resolution - Add missing datetime import in Slack dlt_sources example - Schema-scope relationship detection to prevent cross-schema collisions - Sanitize filesystem paths and qualify model names on collision - Fix "rows loaded" text to match actual column-count output - Guard yaml.safe_load against empty profiles.yml - Replace _dlt_* column join example with queryable model examples Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@skills/wren-dlt-connector/SKILL.md`:
- Around line 35-37: The SQL code fence containing the ATTACH DATABASE
'stripe_data.duckdb' AS "stripe_data" (READ_ONLY) statement should include a
language identifier; update the fenced block to start with ```sql instead of ```
so the snippet is marked as SQL for linting and readability in SKILL.md.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 671f8422-fd69-4132-8c74-c4db6d9ce212
📒 Files selected for processing (4)
skills/install.shskills/wren-dlt-connector/SKILL.mdskills/wren-dlt-connector/references/dlt_sources.mdskills/wren-dlt-connector/scripts/introspect_dlt.py
🚧 Files skipped from review as they are similar to previous changes (2)
- skills/install.sh
- skills/wren-dlt-connector/scripts/introspect_dlt.py
| ``` | ||
| ATTACH DATABASE 'stripe_data.duckdb' AS "stripe_data" (READ_ONLY) | ||
| ``` |
There was a problem hiding this comment.
Add a language identifier to the SQL code fence.
This fence is a regular snippet (not a blockquote notification fence), so adding sql improves lint compliance and readability.
Proposed fix
-```
+```sql
ATTACH DATABASE 'stripe_data.duckdb' AS "stripe_data" (READ_ONLY)</details>
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.0)</summary>
[warning] 35-35: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against the current code and only fix it if needed.
In @skills/wren-dlt-connector/SKILL.md around lines 35 - 37, The SQL code fence
containing the ATTACH DATABASE 'stripe_data.duckdb' AS "stripe_data" (READ_ONLY)
statement should include a language identifier; update the fenced block to start
with sql instead of so the snippet is marked as SQL for linting and
readability in SKILL.md.
</details>
<!-- fingerprinting:phantom:triton:hawk:ae29aa70-e75f-47d5-b6c7-3bef260b3a7e -->
<!-- This is an auto-generated comment by CodeRabbit -->
Summary
wren-dlt-connectorskill (v1.0) with version/license/metadata in SKILL.md frontmatterversions.json,index.json,SKILLS.md,README.md, andinstall.shcheck-versions.shvalidationTest plan
bash skills/check-versions.sh— all versions matchbash skills/install.sh wren-dlt-connector— installs correctly with dependency🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation