Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/getting_started_with_claude_code.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@ If you prefer to run each step yourself, follow these phases in order.
Create a directory on your host machine. This directory will be mounted into the Docker container so it can read and write MDL files.

```bash
mkdir -p /${PWD}/wren-workspace
mkdir -p ${PWD}/wren-workspace
```

The completed workspace will look like:

```
/${PWD}/wren-workspace/
${PWD}/wren-workspace/
Comment on lines +68 to +74
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Path fix is correct, but internal inconsistency remains.

The fix from /${PWD}/wren-workspace to ${PWD}/wren-workspace is correct — the leading slash would have created an invalid path.

However, there's an inconsistency within this file: Phase 1 (line 68) now uses ${PWD}/wren-workspace, but Phase 2's docker run command (line 139) still uses ~/wren-workspace:

-v ~/wren-workspace:/workspace \

Consider updating line 139 to match, or using a variable like $WORKSPACE_PATH that can be set to either location.

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 73-73: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/getting_started_with_claude_code.md` around lines 68 - 74, Update the
inconsistent workspace path usage: replace the hardcoded ~/wren-workspace in the
docker run -v option with the same ${PWD}/wren-workspace used earlier (or
introduce a single variable like $WORKSPACE_PATH and use it in both Phase 1 and
Phase 2). Locate the docker run command that contains "-v
~/wren-workspace:/workspace \\" and change the left-hand mount to reference
${PWD}/wren-workspace or $WORKSPACE_PATH so both phases use the identical
workspace path variable.

├── wren_project.yml
├── connection.yml
├── models/
Expand Down
4 changes: 2 additions & 2 deletions docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ When prompted for connection details, provide:
| Field | Value |
|-------|-------|
| Data source type | `duckdb` |
| Database file path | `/data/jaffle_shop.duckdb` |
| Database folder path | `/data` (the folder containing `jaffle_shop.duckdb`) |
| Workspace path | `~/wren-workspace` |
| jaffle_shop directory | your absolute path to `jaffle_shop_duckdb/` |

Expand Down Expand Up @@ -153,7 +153,7 @@ In Claude Code, run each skill in sequence:

When prompted, enter:
- Data source type: `duckdb`
- Database file path: `/data/jaffle_shop.duckdb`
- Database folder path: `/data` (the folder containing `jaffle_shop.duckdb`)

Then save the MDL as a versioned YAML project:

Expand Down
4 changes: 2 additions & 2 deletions skills/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"skills": [
{
"name": "wren-connection-info",
"version": "1.1",
"version": "1.2",
"description": "Set up data source type and connection credentials for Wren Engine.",
"tags": [
"wren",
Expand Down Expand Up @@ -88,7 +88,7 @@
},
{
"name": "wren-quickstart",
"version": "1.0",
"version": "1.1",
"description": "End-to-end quickstart for Wren Engine — from zero to querying.",
"tags": [
"wren",
Expand Down
4 changes: 2 additions & 2 deletions skills/versions.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"generate-mdl": "1.2",
"wren-connection-info": "1.1",
"wren-connection-info": "1.2",
"wren-project": "1.4",
"wren-sql": "1.0",
"wren-mcp-setup": "1.2",
"wren-quickstart": "1.0",
"wren-quickstart": "1.1",
"wren-usage": "1.0"
}
20 changes: 17 additions & 3 deletions skills/wren-connection-info/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ description: Set up data source type and connection credentials for Wren Engine.
license: Apache-2.0
metadata:
author: wren-engine
version: "1.1"
version: "1.2"
---

# Wren Connection Info

Sets up the data source type and credentials before any workflow that queries a database.
Find the specification of the connection info format in the `model` section of [API reference](https://docs.getwren.ai/oss/wren_engine_api).

---

Expand Down Expand Up @@ -116,10 +117,23 @@ database: <database name>
sf_schema: <schema name>
```

### DuckDB
### File based (S3, Minio, GCS, local file)
For the object storage connectors (S3, Minio, GCS) and local file sources, use this format:
```
format: <FILE_FORMAT> # e.g. "csv", "parquet"
url: <file path or bucket URL>
```
If credentials are needed (e.g. S3 access key and secret), include these fields as well:
```
access_key: <SECRET>
secret_key: <SECRET>
```

### DuckDB
It leverages the same connection info format as file-based sources, but with `format: duckdb` to indicate that it's a DuckDB data source rather than a generic file source.
```
url: <path to .duckdb file>
format: duckdb
url: <path to folder containing .duckdb file>
```

### Athena
Expand Down
23 changes: 19 additions & 4 deletions skills/wren-quickstart/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ compatibility: Requires Docker Desktop (or Docker Engine). No local database dri
license: Apache-2.0
metadata:
author: wren-engine
version: "1.0"
version: "1.1"
---

# Wren Quickstart

## Version check

Silently fetch `https://raw.githubusercontent.com/Canner/wren-engine/main/skills/versions.json`.
Compare the `wren-quickstart` key with this skill's version (`1.0`).
Compare the `wren-quickstart` key with this skill's version (`1.1`).
If the remote version is newer, notify the user before proceeding:

> A newer version of the **wren-quickstart** skill is available (remote: X.Y, installed: 1.0).
> A newer version of the **wren-quickstart** skill is available (remote: X.Y, installed: 1.1).
> Update with:
> ```bash
> curl -fsSL https://raw.githubusercontent.com/Canner/wren-engine/main/skills/install.sh | bash -s -- --force wren-quickstart
Expand All @@ -34,12 +34,27 @@ This skill walks a user through setting up Wren Engine end-to-end — from creat

## Phase 1 — Create a workspace

### 1a — Set up Python virtual environment

Before creating the workspace, ensure a Python virtual environment is available. This is required if the user will run **ibis-server locally** (instead of relying solely on Docker). Skip this step if the user will use only the Dockerized ibis-server.

```bash
python3 -m venv .venv
source .venv/bin/activate # macOS / Linux
# .venv\Scripts\activate # Windows
pip install --upgrade pip
```

> **Tip:** Place the venv inside or adjacent to the workspace directory so it is easy to find. Avoid committing it to version control — add `.venv/` to `.gitignore`.

### 1b — Create a workspace directory

Create a dedicated workspace directory on the host machine. This directory will be mounted into the Docker container, so the container can read and write MDL files.

Ask the user where they want the workspace, or suggest a default:

```bash
mkdir -p ~/wren-workspace
mkdir -p ${PWD}/wren-workspace
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for workspace path references across skill files
echo "=== Checking workspace path patterns in skills ==="
rg -n "wren-workspace" --type md skills/

Repository: Canner/wren-engine

Length of output: 762


🏁 Script executed:

# Check Phase 3 in wren-quickstart and the getting_started docs reference
cat skills/wren-quickstart/SKILL.md | head -80

Repository: Canner/wren-engine

Length of output: 3232


🏁 Script executed:

# Check the getting_started docs for path references
rg -n "wren-workspace" --type md docs/

Repository: Canner/wren-engine

Length of output: 760


🏁 Script executed:

# Search for Phase 3 and `@wren-mcp-setup` in wren-quickstart
rg -n "Phase 3|@wren-mcp-setup" skills/wren-quickstart/SKILL.md

Repository: Canner/wren-engine

Length of output: 611


🏁 Script executed:

# Get full wren-quickstart file to verify Phase 3
wc -l skills/wren-quickstart/SKILL.md

Repository: Canner/wren-engine

Length of output: 97


Cross-skill path inconsistency requires follow-up fix.

wren-quickstart/SKILL.md uses ${PWD}/wren-workspace (line 57), but wren-mcp-setup/SKILL.md uses ~/wren-workspace (line 44). Since Phase 3 invokes @wren-mcp-setup, users may encounter conflicting default paths. Update wren-mcp-setup/SKILL.md to use ${PWD}/wren-workspace for consistency.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/wren-quickstart/SKILL.md` at line 57, Update the SKILL.md in the
wren-mcp-setup skill to use the same workspace path as wren-quickstart: replace
the literal "~/wren-workspace" occurrence with "${PWD}/wren-workspace" so Phase
3 (`@wren-mcp-setup`) does not conflict with wren-quickstart; search for the exact
token "~/wren-workspace" in that SKILL.md and change it to
"${PWD}/wren-workspace", preserving surrounding commands (e.g., mkdir -p) and
any examples.

```

Save the chosen path as `<WORKSPACE_PATH>` (absolute path, e.g. `/Users/me/wren-workspace`). All subsequent steps reference this path.
Expand Down