Agent SkillsCanner/wren-engine › wren-onboarding

wren-onboarding

GitHub

引导用户完成Wren Engine端到端上线,包括环境检查、项目脚手架搭建、数据源连接配置及首次查询执行。

skills/wren-onboarding/SKILL.md Canner/wren-engine

Trigger Scenarios

/wren-onboarding install wren set up wren engine wren onboarding connect new database to wren

Install

npx skills add Canner/wren-engine --skill wren-onboarding -g -y
More Options

Use without installing

npx skills use Canner/wren-engine@wren-onboarding

指定 Agent (Claude Code)

npx skills add Canner/wren-engine --skill wren-onboarding -a claude-code -g -y

安装 repo 全部 skill

npx skills add Canner/wren-engine --all -g -y

预览 repo 内 skill

npx skills add Canner/wren-engine --list

SKILL.md

Frontmatter
{
    "name": "wren-onboarding",
    "license": "Apache-2.0",
    "metadata": {
        "author": "wren-engine",
        "version": "2.0"
    },
    "description": "Onboard a user to Wren Engine end-to-end. Walks through environment checks, project scaffolding, connection configuration via .env, and first query. Use when: user wants to install Wren Engine, set up a new data source connection, or bootstrap a new project from scratch. Triggers: '\/wren-onboarding', 'install wren', 'set up wren engine', 'wren onboarding', 'connect new database to wren'."
}

Wren Onboarding — Agent Workflow

This skill walks the agent through onboarding — environment checks, project scaffolding, profile creation, MDL generation, and first query. Procedural details, per-datasource setup notes, and the troubleshooting playbook live in the docs, not here. The skill's job is to enforce the agent-side rules (one step per turn, never ask for credentials in chat) and to dispatch the agent to the right doc / sibling skill at each step.

Reference docs (the skill points to these — never duplicate their content):

Version check

Silently fetch https://raw.githubusercontent.com/Canner/wren-engine/main/skills/versions.json. Compare the wren-onboarding key with this skill's version (from the frontmatter above). If the remote version is newer, notify the user:

A newer version of the wren-onboarding skill is available. Update with:

npx skills add Canner/wren-engine --skill wren-onboarding

Continue regardless of update status.

Mode of operation — READ THIS FIRST

One step per round-trip. Each numbered step below is its own turn: explain briefly, ask only what the step needs, run the command(s), confirm, move on.

  • Never collect information for future steps upfront. Do not ask for project name + database type + credentials in one message.
  • Never ask for credentials in chat — not host, port, user, password, tokens, anything. Credentials always go through .env. The user fills the file in their editor; the agent never sees the values.
  • Never query the database before MDL is built via the wren-generate-mdl skill.
  • Never invent connection field names. Always run wren docs connection-info <ds> to see the real fields — it's introspected from the live Pydantic schema, so it's always correct.
  • ✅ Wait for each command to finish, report its output in plain language, then move on.
  • ✅ For any error, consult connect.md#troubleshooting and surface the relevant section to the user — don't carry a copy of the playbook here.

Preflight (environment only — no user questions about the project)

Read-only checks. Report findings, do not ask about project / credentials / datasource yet.

  1. python3 --version — requires Python 3.11+. If older, ask the user to upgrade and stop.
  2. Check virtualenv: python3 -c "import sys; print(sys.prefix != sys.base_prefix)". If False, offer to create one (python3 -m venv .venv && source .venv/bin/activate). PEP 668 systems will need this.
  3. wren --version — if already installed, confirm before reinstalling.
  4. pwd — record it. Don't ask where the project should live yet.

Report findings as a 4-bullet list, then continue.

Early branch — demo or own database?

"Try the bundled jaffle_shop demo first (~30s, no DB needed), or connect your own database?"

  • demo → point at quickstart.md and stop this skill.
  • own DB → continue.

Step 1 — Collect project name + database type

These two are the only thing Step 2 needs; ask both together so the user has a clean handoff:

"Two things before I scaffold:

  1. Project name — I'll create ~/<name>/ and cd into it.
  2. Database type — run wren docs connection-info (no argument) to see the full list, or pick a common one: postgres, mysql, bigquery, snowflake, clickhouse, trino, duckdb, …"

Wait for both. Don't ask for credentials.

Step 2 — Project setup (batch)

Side effects: creates ~/<project>/, installs wren-engine[<ds>,main], scaffolds project files, writes an empty .env template.

Run as a batch — report each command briefly, then end with one "please fill .env" ask:

  1. mkdir -p ~/<project> && cd ~/<project>. Refuse to overwrite an existing wren_project.yml.

  2. pip install "wren-engine[<ds>,main]". For datasource-specific install gotchas (macOS mysql, etc.), see connect.md#per-datasource-setup-notes.

  3. wren context init --empty to scaffold without placeholder examples. Edit wren_project.yml to set data_source: <ds>.

  4. Generate the .env template by introspecting the connector:

    wren docs connection-info <ds> --format md
    

    Use the field list to write .env with <DS>_<FIELD>= keys (UPPER_SNAKE), values empty. Example for postgres:

    POSTGRES_HOST=
    POSTGRES_PORT=5432
    POSTGRES_DATABASE=
    POSTGRES_USER=
    POSTGRES_PASSWORD=
    

    Special encodings (BigQuery base64, Snowflake account format, Athena AWS creds, etc.) are documented in connect.md#per-datasource-setup-notes. Surface the relevant section to the user verbatim — don't paraphrase.

  5. Add .env to .gitignore if the project is a git repo. Suggest chmod 600 .env.

  6. Tell the user: project is ready, .env is at <path>, please fill every value and reply "done".

Step 3 — Create the connection profile

Only after the user replies "done".

Write /tmp/conn.yml with every field as a ${VAR} placeholder matching the .env keys you generated in Step 2:

datasource: <ds>
host: ${<DS>_HOST}
port: ${<DS>_PORT}
# … one line per field from `wren docs connection-info <ds>`

Then:

wren profile add <project> --from-file /tmp/conn.yml

Validation runs automatically. The CLI overwrites profiles silently — there is no --force flag.

  • Success → continue to Step 4.
  • Any warning → consult connect.md#troubleshooting for the exact symptom (missing secret, driver auth failure, ValidationError, unreachable host, …) and tell the user what to fix.

Step 4 — Generate MDL (hand off)

⚠️ The agent must build MDL before any data query. Queries against tables not in MDL will fail.

Invoke the wren-generate-mdl skill. It walks the agent through table introspection, type normalization, and YAML generation. When it finishes, return here and run:

wren context validate
wren context build

Report the model count and any validate warnings.

Memory recommendation: count models with wren context show | grep -c '^model:'. If >= 200, suggest pip install "wren-engine[memory]" + wren memory index (~800 MB). If < 200, skip.

Step 5 — Ready to explore (hand off)

Suggest 2–3 NL questions based on the discovered tables (e.g. for an orders schema: "How many orders last month?", "Top 5 customers by total"). Then end this skill: for day-to-day querying the agent should switch to the wren-usage skill.

Cross-skill routing

Trigger Skill
User mentions a SaaS source (HubSpot, Stripe, Salesforce, GitHub, Slack, …) wren-dlt-connector
User has a connected DB but no MDL yet wren-generate-mdl
User has MDL ready, wants to query wren-usage
Anything else from-scratch wren-onboarding (this skill)

On error

Don't carry an error playbook here — surface connect.md#troubleshooting sections to the user. The doc covers:

  • wren: command not found
  • pip install … externally-managed-environment
  • Missing secret (MissingSecretError)
  • Driver authentication failures
  • Pydantic ValidationError / unknown datasource
  • Connection refused / firewall / cloud DB IP allow-list
  • wren context validate warning categories

If you hit something not in the playbook, tell the user:

"I hit an error I don't know how to fix: <error>. See https://docs.getwren.ai/oss/engine or open an issue at https://github.com/Canner/wren-engine/issues."

Version History

  • bc2b06a Current 2026-08-20 15:50

Dependencies

  • suggested Canner/wren-engine

Same Skill Collection

skills-archive/wren-connection-info/SKILL.md
skills-archive/wren-generate-mdl/SKILL.md
skills-archive/wren-http-api/SKILL.md
skills-archive/wren-project/SKILL.md
skills-archive/wren-quickstart/SKILL.md
skills-archive/wren-sql/SKILL.md
skills/wren-dlt-connector/SKILL.md
skills/wren-generate-mdl/SKILL.md
skills-archive/wren-mcp-setup/SKILL.md
skills-archive/wren-usage/SKILL.md
skills/wren-usage/SKILL.md

Metadata

Files
0
Version
bc2b06a
Hash
e1290309
Indexed
2026-08-20 15:50

trang chủ - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-02 18:23
浙ICP备14020137号-1 $bản đồ khách truy cập$