Skip to content

docs(core): restructure OSS docs around context-layer narrative#2285

Merged
PaulChen79 merged 6 commits into
mainfrom
refactor/document
May 15, 2026
Merged

docs(core): restructure OSS docs around context-layer narrative#2285
PaulChen79 merged 6 commits into
mainfrom
refactor/document

Conversation

@PaulChen79
Copy link
Copy Markdown
Contributor

@PaulChen79 PaulChen79 commented May 15, 2026

Summary

Major content + IA refactor for the Wren AI Core docs. Aligns the doc set with our positioning as an open context layer for AI agents (per the team vision review) and trims competitor / brand mentions per review feedback.

Structure changes

  • Split single `get_started/connect.md` into `guides/connect/.md` (12 per-DB pages + an overview). Each page covers extras, profile YAML, IAM / driver notes, and common errors for that connector only.
  • New Concepts pages: `skills`, `memory_system`. Merged `benefits_llm` into `what_is_context` and rewrote around the five-layers-of-context framing from the vision paper. Rewrote `architecture` around the correctness-as-a-system six pillars.
  • New Reference pages: `mdl_schema`, `profile_yaml`.
  • New `guides/use-with-agents/claude-code.md`.

Content changes

  • Drop `Wren AI Core` / `Wren Engine 1.x` references — the product name is Wren AI everywhere now.
  • Remove third-party brand names per team review (dbt / Cube / Lightdash / AtScale / Hex / Mode / Metabase / Superset / Notion). Keep neutral framings where the comparison made a point.
  • Remove MCP references from active OSS docs — the SDK / skills layer is the story we lead with now, not MCP.
  • Installation flow is now agent-driven by design: skill bundle first (`npx skills add Canner/WrenAI --skill '*'`), then ask the agent to run `wren-onboarding`. Dropped the manual install path.
  • Quickstart now opens with an inline "Terms used in this guide" mini-glossary so the jaffle_shop / MDL / Skills vocabulary isn't dropped on a new reader.
  • Memory page: clarify `memory` is now an opt-in extra (not bundled in `main`).
  • Grammar / flow polish: passive→active voice, weak-verb cleanup, parallel structure on H3 lists, acronym expansion on first occurrence (e.g. `RLAC / CLAC`), dead-link / outdated-path cleanup.

Test plan

  • Open each updated page and skim for content correctness
  • Verify the docs.getwren.ai sync workflow picks this up cleanly (no broken internal links)
  • Spot-check three connect pages (DuckDB, BigQuery, Snowflake) for accuracy of profile YAML fields
  • Confirm `onBrokenLinks: 'throw'` passes when these land on the docs site

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Reframed architecture as a “correctness system” with six correctness primitives and supporting table.
    • Removed prior “benefits for LLMs” document.
    • Added comprehensive per-database connector guides and a new Connect overview; removed the old Connect how-to.
    • Introduced opt-in memory-system docs, new Skills overview, and agent-first onboarding/quickstart.
    • Added MDL and profile YAML references and updated CLI/SDK terminology to “Wren AI”.

Review Change Stack

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 15, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 15, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

<review_stack_artifact_start>
<stack_title>Core docs rework: Wren AI framing, connectors, memory, skills</stack_title>
<stack_summary>Comprehensive documentation update renaming/reframing to “Wren AI”, adding correctness/context architecture, memory and skills docs, many connector guides, MDL/profile references, CLI/SDK wording updates, and sync config.</stack_summary>

Documentation edits across conceptual pages, onboarding/quickstart, connection guides for many datasources, memory, skills, MDL/profile references, CLI/SDK reference, and sync configuration. Rename to “Wren AI”; introduce correctness system and five-layer context model; update MDL framing and introduction pages. range_11c9567e48d0 range_5546dcbe9f19 range_3cc65e4d64c4 range_ff40bb4ca7d8 range_f2ef7cfbd218 range_679a93129565 range_3134b69e041a range_22ebf508ff34 range_1e782cba0251 range_d3645dbb7997 range_679b19be0f8b range_ff40bb4ca7d8 range_f252b9842fd6 range_83b6aaf2bad7 range_aeaed4e539f9 New memory-system concept doc and updates making memory opt-in; CLI memory command guidance and interactive requirement. range_0d5769a2027a range_e67249fcdc23 range_0d5769a2027a range_ffd50adc1e64 range_c0d0772daa14 range_6deb6c2e7eee Add MDL YAML schema reference and Profile YAML reference with examples for multiple datasources and credentials/security guidance. range_4f77a5936f60 range_9788462370d4 range_b9b3c8c0302d range_053dab684c99 range_2667db342936 range_630968aaf96a range_630968aaf96a range_630968aaf96a range_e68ef76e096c range_da0f9dece059 range_4be31e562039 range_4ae86d247a90 range_23d7d4cde828 range_6fc06bd15400 range_b2d16126098f range_2f1f9c4b57ec Unified Connect workflow, creating profiles, binding profile to project, verifying connections, and next steps. range_620fd2b3d4b0 range_c01e277d4160 range_d3de91534df2 range_03ed80ab0030 range_3b944bb06d58 range_0c15741a00c9 range_2cc6b54377a5 range_11a4b7c892ee Per-database guides for Postgres, MySQL, Oracle, SQL Server, and DuckDB with install, profile fields, examples, and common errors. range_cbf7d52acc16 range_cf9bd5aa4b74 range_43694860c688 range_0bcfb20a6713 range_2d295594d6e5 range_cf35eed755ba range_c14679ddb2f6 range_2c1627f24232 range_237c70693e3d range_9a1e8a97ea02 range_6828a6f14d8e range_4407402ec311 BigQuery guide (credentials encoding & IAM), Athena, Redshift, Snowflake, Databricks, and Trino connector docs with required fields and troubleshooting notes. range_65f8712bf072 range_efd01e583ce7 range_2b77551146b6 range_ced01b4c4e11 range_63bd111c3f85 range_aea74ce097b3 range_68d7346ed0ca range_3e352f83cb20 range_4407402ec311 range_2b77551146b6 range_63bd111c3f85 range_aea74ce097b3 Guides for Spark Connect setup, ClickHouse connection/config, Trino notes, and common error troubleshooting for these connectors. range_1fd2a328a32b range_0fed3f14287e range_8972245982fa range_68d7346ed0ca range_cf9bd5aa4b74 Condensed installation flow (skills-first), onboarding via wren-onboarding, quickstart changes (extras), and profiles guide updates about extras and UI/interactive/memory packaging. range_2a0ac560487a range_cb7d49766385 range_2a54600c4860 range_299d26e0059e range_ed1a40a6bfb3 range_8e0304f8bf79 range_bcb5788ed56d range_06c73ad89eaa range_a61ee0cf6424 range_9afafe14c6ae range_9afafe14c6ae range_3657e53d9a9c New skills concept page, skills reference updates, skill installation/selection flow, and Claude Code integration guide describing workflows and operational tips. range_358da0e1395e range_129afb43cf42 range_226bb2fe57df range_3657e53d9a9c range_1594fcd2c6d0 range_4548d2c16347 range_6c3bb7749aec range_8d145d43c6a0 range_c84d15ecadcf range_a26d07bb59b9 range_226bb2fe57df Terminology updates and clarifications for modeling guides, `wren_project.yml` catalog/schema as Wren AI namespace, dialect override wording, and column-level access control phrasing. range_cf9f903011c7 range_a689bf791fdc range_7560c426dddc range_be4203a283d4 range_e0f591be7c34 range_bdb586e789c2 range_ecaf3ffa730f range_115cf0890d1e range_9abc230576f9 CLI connection-info and memory extra install guidance, SDK docs rename to Wren AI, and add `sdk` to docs sync list. range_3cc65e4d64c4 range_3cc65e4d64c4 range_6deb6c2e7eee range_cd813a824098 range_30e010e1bb75 range_5ec0c384e9c1 range_cd343b01c797 range_64d1683aed66 range_73bcbff7f9cc range_3cc65e4d64c4 range_9e0561cb93fd range_83b6aaf2bad7 range_aeaed4e539f9 range_acd02b76fd6c range_f252b9842fd6 range_6deb6c2e7eee range_9e0561cb93fd
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change—a major documentation restructure and reframing around a context-layer narrative for Wren AI, which is clearly reflected in the extensive file changes and content updates across the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/document

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added the ci label May 15, 2026
@PaulChen79 PaulChen79 force-pushed the refactor/document branch from 1d18b07 to 490151d Compare May 15, 2026 04:45
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 15

🧹 Nitpick comments (7)
docs/core/guides/connect/mysql.md (2)

40-40: ⚡ Quick win

Clarify "default" vs. "required" for the port field.

Line 40 states "Default 3306" in the description, but the "Required" column marks the field as "yes". If the port is truly required in the YAML, consider rephrasing to "Port number (default: 3306)" to indicate users must specify it even though 3306 is the standard.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/guides/connect/mysql.md` at line 40, Update the documentation row
for the `port` field in the MySQL connection table to clarify default vs
required: change the description text from "Default `3306`" to a phrase like
"Port number (default: `3306`)" so readers understand they must specify the port
in the YAML even though 3306 is the usual default; ensure this edit targets the
`port` table entry in the connect/mysql.md table and do not change the
"Required" column unless the implementation actually makes the port optional.

44-44: ⚡ Quick win

Improve clarity of SSL field description.

The description "true for SSL, omit for plaintext" could be clearer. Consider: "true to enable SSL/TLS encryption; omit or set false for plaintext connections."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/guides/connect/mysql.md` at line 44, Update the `ssl` field
description in the MySQL connection docs to a clearer phrase: replace "`true`
for SSL, omit for plaintext`" with "`true` to enable SSL/TLS encryption; omit or
set `false` for plaintext connections`" so readers understand how to enable or
disable encrypted connections for the `ssl` option.
docs/core/guides/connect/sqlserver.md (1)

27-27: ⚡ Quick win

Clarify driver field default behavior.

Line 27 shows driver: "ODBC Driver 18 for SQL Server" in the example YAML, and line 39 states it "defaults to 18". If the driver truly defaults, consider either:

  1. Omitting it from the example YAML (to show minimal required config), or
  2. Adding a comment in the YAML like # optional, defaults to "ODBC Driver 18 for SQL Server"

This would help users understand they don't need to specify it unless using a different driver version.

Also applies to: 39-39

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/guides/connect/sqlserver.md` at line 27, The example YAML currently
sets the driver field to "ODBC Driver 18 for SQL Server" which may imply it's
required; update the snippet to clarify default behavior by either removing the
driver line from the example YAML to show the minimal required config, or keep
the driver line but add an inline comment like `# optional, defaults to "ODBC
Driver 18 for SQL Server"` so readers understand the `driver` field is optional
unless they need a different version.
docs/core/guides/connect/oracle.md (2)

20-20: ⚡ Quick win

Inconsistent inline comment style.

Line 20 uses an inline comment # 1521 to show the default port, while other files in this cohort use the Description column for defaults. For consistency, consider moving "Default 1521" to the table's Description column (like line 29 in mysql.md).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/guides/connect/oracle.md` at line 20, The inline comment showing
the default port next to the "port: ${ORACLE_PORT} # 1521" entry is inconsistent
with the project's style; remove the trailing inline comment and instead add
"Default `1521`" into the table's Description cell for the "port" /
"ORACLE_PORT" row (follow the pattern used in the mysql.md Description column
example) so the default is documented in the Description column rather than as
an inline comment.

31-32: 💤 Low value

Add descriptions for user and password fields.

Lines 31-32 have empty descriptions. While self-explanatory, brief descriptions like "Oracle username" and "Oracle password" would maintain consistency with other connector guides.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/guides/connect/oracle.md` around lines 31 - 32, Update the empty
table descriptions for the `user` and `password` fields by replacing the blank
cells with brief descriptions (e.g., "Oracle username" for `user` and "Oracle
password" for `password`) so the connector guide matches other connector docs;
edit the table rows containing `user` and `password` to include these short
descriptions.
docs/core/guides/connect/clickhouse.md (1)

28-28: ⚡ Quick win

Consider clarifying port default behavior.

Line 28 states "Default 9000 for native, 8443 for HTTPS", but the Required column marks port as "yes". This creates ambiguity:

  • If secure: true, should users specify 8443?
  • If secure: false, should users specify 9000?

Consider rephrasing to: "Port number (9000 for native protocol, 8443 for HTTPS; must match your ClickHouse server configuration)".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/guides/connect/clickhouse.md` at line 28, Update the table entry
for the "port" field to remove ambiguity: change the Required column to reflect
that a port must be provided or clarify that it defaults based on protocol, and
rephrase the Description from "`Default 9000 for native, 8443 for HTTPS`" to
something like "Port number (9000 for native protocol, 8443 for HTTPS; must
match your ClickHouse server configuration and the `secure` setting)". Ensure
the new text references the `port` field and the `secure` flag so readers know
the value must correspond to their ClickHouse server and protocol.
docs/core/guides/connect/trino.md (1)

33-33: ⚡ Quick win

Clarify password requirement phrasing.

Line 33 states password is required "depending on auth", which is accurate but could be clearer. Consider: "Required if cluster uses password authentication; otherwise can be omitted."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/guides/connect/trino.md` at line 33, Update the table row
describing `password` in the Trino connection guide so the requirement is
explicit: replace "depending on auth" with "Required if cluster uses password
authentication; otherwise can be omitted" (locate the table cell containing
`password` in the Trino connection options and update its description
accordingly).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/core/concepts/memory_system.md`:
- Line 3: The phrase "natural-language to SQL pairs" in the sentence starting
"Wren AI's memory layer is the second of five layers of context — the place
where successful natural-language to SQL pairs, prior interactions, and user
feedback accumulate..." should be hyphenated as "natural-language-to-SQL pairs"
to improve clarity; update that exact phrase in the
docs/core/concepts/memory_system.md content so the sentence reads with the
hyphenated compound.

In `@docs/core/concepts/skills.md`:
- Line 5: Update the install command string "npx skills add Canner/WrenAI" so it
includes the missing --skill '*' flag to match the bundle-first onboarding flow;
find the sentence containing "npx skills add Canner/WrenAI" and change it to use
the full command including the --skill '*' option so the docs reflect the
correct installation path and ensure complete skill setup.

In `@docs/core/get_started/installation.md`:
- Around line 45-51: The two fenced code blocks containing the questions "How
many customers placed more than one order this month?" and "What are the top 5
products by total revenue?" are missing language identifiers and trigger
markdownlint MD040; update each fence to include a language (e.g., change ``` to
```text) so both blocks read ```text ... ``` to satisfy the linter while leaving
the content unchanged.

In `@docs/core/get_started/quickstart.md`:
- Around line 70-82: Quick summary: the memory guide omits that the "main" extra
already bundles "interactive", which can mislead users. Update the memory.md
text around the pip example that currently shows wren-engine[memory,interactive]
to instead clarify that wren-engine[memory,main] (which includes both
interactive and ui) is the recommended quickstart, and keep the
wren-engine[memory,interactive] example only as the minimal alternative;
explicitly state that "main" includes "interactive" (per pyproject extras) so
readers know they don't need to add both.

In `@docs/core/guides/connect/athena.md`:
- Around line 50-52: Add the missing IAM permissions to the Athena/Glue
permissions list by including athena:GetTableMetadata to enable Athena table
metadata retrieval and, if your workloads use partitioned tables, add
glue:GetPartitions to support partition operations; update the permission list
entries near the existing `athena:StartQueryExecution`,
`athena:GetQueryExecution`, `athena:GetQueryResults`, `glue:GetDatabase`,
`glue:GetTable`, `glue:GetTables`, and S3 permissions so the policy explicitly
contains `athena:GetTableMetadata` and optionally `glue:GetPartitions`.

In `@docs/core/guides/connect/duckdb.md`:
- Line 26: The docs incorrectly show the hidden "format" profile field as a
user-configurable required field; update the DuckDB guide to either remove the
`format: duckdb` line from the YAML example and the profile fields list or add a
short note that the `format` field is auto-injected and defaults to "duckdb" (do
not instruct users to set it). Reference the hidden field in field_registry.py
and the DuckDB connector when making the change so the doc matches the
implementation.

In `@docs/core/guides/connect/overview.md`:
- Line 7: The overview sentence claiming a profile is “a single YAML file”
conflicts with the Profiles guide which describes a profiles.yml file vs a
profiles directory; pick one canonical storage model (single YAML vs directory
of profiles), decide the exact filename/structure, then update the overview.md
sentence ("Wren AI talks to your database through a profile — a single YAML
file...") and all other docs (Profiles guide and any examples) to use that
canonical wording and path consistently; ensure CLI/SDK examples, sample config
snippets, and references use the same filename/format and the term "profile"
consistently across docs.
- Around line 21-34: The supported-source table in
docs/core/guides/connect/overview.md is inconsistent with the profile reference
that lists "spark"; either add a Spark row to that table (e.g., add a line with
Data source "Spark", appropriate Connector extra value `spark` and a link to a
new or existing Spark doc page) or remove "spark" from the profile reference
(docs/core/reference/profile_yaml.md) so both places match; update whichever
file you change so the supported sources are consistent and include the same
connector identifier "spark".

In `@docs/core/guides/use-with-agents/claude-code.md`:
- Around line 42-44: The fenced code block containing the line "How many
customers placed more than one order this month?" is missing a language hint;
update the opening fence from ``` to ```text so the block becomes a ```text
fenced code block (this satisfies markdownlint MD040) and leave the block
content unchanged.
- Around line 19-20: Replace the unsafe "curl | bash" pattern for the remote
installer URL
(https://raw.githubusercontent.com/Canner/WrenAI/main/skills/install.sh) with a
safe three-step flow: download the script to a local file (e.g.,
install-wren-skills.sh), inspect it (e.g., open with less or your pager/editor)
to verify contents, then execute it explicitly with bash; update the docs in
docs/core/guides/use-with-agents/claude-code.md to show these three steps and
reference the remote filename install.sh/install-wren-skills.sh so users can
audit before running.

In `@docs/core/introduction.mdx`:
- Line 84: Replace the incorrect product name "WrenAI GenBI" with the correct
spaced form "Wren AI GenBI" throughout the document; search for the literal
string "WrenAI GenBI" in introduction.mdx (and any occurrences of "Wren AI
GenBI") and update them so the product name is consistently "Wren AI GenBI" in
all places (e.g., the occurrences currently mismatched on lines that reference
the product).

In `@docs/core/reference/mdl_schema.md`:
- Around line 87-93: The snippet defines a relationship using a top-level "type"
field (e.g., the "orders_to_customers" item) which conflicts with the rest of
the docs that use a "relationships: [...]" array with "join_type"; update the
example to match the canonical YAML shape used in the modeling guide by
replacing the top-level "type" pattern with the "relationships" array and
"join_type" keys (or, if both formats are intentionally supported, add an
explicit versioned note calling out both shapes and when to use each), ensuring
the example uses "orders_to_customers", the models list, and the equivalent join
expression under "join_type" to match the guide.
- Around line 37-40: The docs use conflicting fields for table_reference
(table_reference.database vs table_reference.catalog); pick the canonical shape
used by the project (e.g., if `catalog` is canonical) and update all occurrences
in this document so examples, descriptions, and the schema snippet consistently
use `table_reference.catalog` (or alternatively add a short section explaining
both variants and when to use `database` vs `catalog`), and ensure the same
change is applied to the other duplicated example referenced by the review (the
second table_reference example).

In `@docs/core/reference/profile_yaml.md`:
- Around line 93-94: The example in profile_yaml.md shows the Snowflake profile
field "account" as a full hostname; update the example to use the account
locator format (consistent with docs/core/guides/connect/snowflake.md) so the
"account" value is the locator only (e.g., "my-account" or the correct account
locator string) rather than "my-account.snowflakecomputing.com" to unify formats
across docs.
- Around line 73-77: The BigQuery credential field is inconsistent: this doc
uses credentials_path while the BigQuery connector guide documents credentials
(base64 JSON); pick one canonical field and update both docs to match. Replace
the credentials_path example in this profile YAML with the chosen canonical
field (either credentials containing base64 JSON or credentials_path pointing to
a file) and adjust the example value to the correct format, and then update the
BigQuery connector guide to use the same field name and format so both
references (credentials_path vs credentials) are identical across docs.

---

Nitpick comments:
In `@docs/core/guides/connect/clickhouse.md`:
- Line 28: Update the table entry for the "port" field to remove ambiguity:
change the Required column to reflect that a port must be provided or clarify
that it defaults based on protocol, and rephrase the Description from "`Default
9000 for native, 8443 for HTTPS`" to something like "Port number (9000 for
native protocol, 8443 for HTTPS; must match your ClickHouse server configuration
and the `secure` setting)". Ensure the new text references the `port` field and
the `secure` flag so readers know the value must correspond to their ClickHouse
server and protocol.

In `@docs/core/guides/connect/mysql.md`:
- Line 40: Update the documentation row for the `port` field in the MySQL
connection table to clarify default vs required: change the description text
from "Default `3306`" to a phrase like "Port number (default: `3306`)" so
readers understand they must specify the port in the YAML even though 3306 is
the usual default; ensure this edit targets the `port` table entry in the
connect/mysql.md table and do not change the "Required" column unless the
implementation actually makes the port optional.
- Line 44: Update the `ssl` field description in the MySQL connection docs to a
clearer phrase: replace "`true` for SSL, omit for plaintext`" with "`true` to
enable SSL/TLS encryption; omit or set `false` for plaintext connections`" so
readers understand how to enable or disable encrypted connections for the `ssl`
option.

In `@docs/core/guides/connect/oracle.md`:
- Line 20: The inline comment showing the default port next to the "port:
${ORACLE_PORT} # 1521" entry is inconsistent with the project's style; remove
the trailing inline comment and instead add "Default `1521`" into the table's
Description cell for the "port" / "ORACLE_PORT" row (follow the pattern used in
the mysql.md Description column example) so the default is documented in the
Description column rather than as an inline comment.
- Around line 31-32: Update the empty table descriptions for the `user` and
`password` fields by replacing the blank cells with brief descriptions (e.g.,
"Oracle username" for `user` and "Oracle password" for `password`) so the
connector guide matches other connector docs; edit the table rows containing
`user` and `password` to include these short descriptions.

In `@docs/core/guides/connect/sqlserver.md`:
- Line 27: The example YAML currently sets the driver field to "ODBC Driver 18
for SQL Server" which may imply it's required; update the snippet to clarify
default behavior by either removing the driver line from the example YAML to
show the minimal required config, or keep the driver line but add an inline
comment like `# optional, defaults to "ODBC Driver 18 for SQL Server"` so
readers understand the `driver` field is optional unless they need a different
version.

In `@docs/core/guides/connect/trino.md`:
- Line 33: Update the table row describing `password` in the Trino connection
guide so the requirement is explicit: replace "depending on auth" with "Required
if cluster uses password authentication; otherwise can be omitted" (locate the
table cell containing `password` in the Trino connection options and update its
description accordingly).
🪄 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: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 353dee69-4056-44a1-8f26-484cc011712b

📥 Commits

Reviewing files that changed from the base of the PR and between 6732d97 and 490151d.

📒 Files selected for processing (36)
  • docs/core/concepts/architecture.md
  • docs/core/concepts/benefits_llm.md
  • docs/core/concepts/memory_system.md
  • docs/core/concepts/skills.md
  • docs/core/concepts/what_is_context.md
  • docs/core/concepts/what_is_mdl.md
  • docs/core/get_started/connect.md
  • docs/core/get_started/installation.md
  • docs/core/get_started/quickstart.md
  • docs/core/guides/connect/athena.md
  • docs/core/guides/connect/bigquery.md
  • docs/core/guides/connect/clickhouse.md
  • docs/core/guides/connect/databricks.md
  • docs/core/guides/connect/duckdb.md
  • docs/core/guides/connect/mysql.md
  • docs/core/guides/connect/oracle.md
  • docs/core/guides/connect/overview.md
  • docs/core/guides/connect/postgresql.md
  • docs/core/guides/connect/redshift.md
  • docs/core/guides/connect/snowflake.md
  • docs/core/guides/connect/sqlserver.md
  • docs/core/guides/connect/trino.md
  • docs/core/guides/memory.md
  • docs/core/guides/modeling/model.md
  • docs/core/guides/modeling/overview.md
  • docs/core/guides/modeling/wren_project.md
  • docs/core/guides/profiles.md
  • docs/core/guides/use-with-agents/claude-code.md
  • docs/core/introduction.mdx
  • docs/core/reference/cli.md
  • docs/core/reference/mdl_schema.md
  • docs/core/reference/profile_yaml.md
  • docs/core/reference/skills.md
  • docs/core/sdk/langchain.md
  • docs/core/sdk/overview.md
  • docs/core/sdk/pydantic.md
💤 Files with no reviewable changes (2)
  • docs/core/get_started/connect.md
  • docs/core/concepts/benefits_llm.md

Comment thread docs/core/concepts/memory_system.md Outdated
Comment thread docs/core/concepts/skills.md Outdated
Comment thread docs/core/get_started/installation.md Outdated
Comment thread docs/core/get_started/quickstart.md
Comment thread docs/core/guides/connect/athena.md Outdated
Comment thread docs/core/introduction.mdx
Comment thread docs/core/reference/mdl_schema.md Outdated
Comment thread docs/core/reference/mdl_schema.md Outdated
Comment thread docs/core/reference/profile_yaml.md Outdated
Comment thread docs/core/reference/profile_yaml.md Outdated
@PaulChen79 PaulChen79 self-assigned this May 15, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (1)
docs/core/introduction.mdx (1)

83-84: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix product name spacing inconsistency.

Line 84 uses "WrenAI GenBI" (no space), but Line 143 uses "Wren AI GenBI" (with space). Consistent spacing should be maintained throughout.

✏️ Proposed fix
-Wren AI powers many agent-facing workflows. The flagship reference application is **WrenAI GenBI**, a chat-first BI app, but Wren AI is also used to wire governed warehouse access into chat bots, AI coding agent workflows, internal copilots, customer-facing analytics agents, and downstream BI surfaces that can talk to a SQL endpoint.
+Wren AI powers many agent-facing workflows. The flagship reference application is **Wren AI GenBI**, a chat-first BI app, but Wren AI is also used to wire governed warehouse access into chat bots, AI coding agent workflows, internal copilots, customer-facing analytics agents, and downstream BI surfaces that can talk to a SQL endpoint.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/introduction.mdx` around lines 83 - 84, The product name spacing is
inconsistent: replace the incorrect "WrenAI GenBI" occurrence with the
standardized "Wren AI GenBI" so all mentions match; search for the string
"WrenAI GenBI" in docs/core/introduction.mdx and update it to "Wren AI GenBI" to
match other occurrences such as "Wren AI GenBI" used elsewhere in the file.
🧹 Nitpick comments (1)
docs/core/introduction.mdx (1)

11-11: 💤 Low value

Consider varying sentence structure for improved flow.

Three successive sentences begin with "It", which can feel repetitive. While the parallel structure may be intentional for emphasis, varying the opening could improve readability.

♻️ Alternative phrasing
-Your AI agent does not know what your data means. It reads schemas. It catches column names. It even reads your semantic-layer YAML. But it misses the things that actually decide whether an answer is right — that `status = 4` means refunded, that `loyalty_v3` is the table your team actually uses, that "monthly active users" excludes service accounts, that "Project Lighthouse" was renamed to `campaign_id = 4172` six months ago in a doc nobody linked to the warehouse.
+Your AI agent does not know what your data means. It reads schemas, catches column names, and even parses your semantic-layer YAML. But it misses the things that actually decide whether an answer is right — that `status = 4` means refunded, that `loyalty_v3` is the table your team actually uses, that "monthly active users" excludes service accounts, that "Project Lighthouse" was renamed to `campaign_id = 4172` six months ago in a doc nobody linked to the warehouse.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/introduction.mdx` at line 11, The three consecutive sentences in
the paragraph all start with "It", creating repetitive rhythm; edit the sentence
openings to vary structure while preserving meaning — e.g., start one sentence
with "Your AI agent reads schemas and catches column names," another with
"However, it can miss domain-specific rules such as `status = 4` meaning
refunded," and a third with "For example, your team may use `loyalty_v3`, treat
'monthly active users' as excluding service accounts, or have renamed 'Project
Lighthouse' to `campaign_id = 4172`." Use the unique tokens `status = 4`,
`loyalty_v3`, "monthly active users", "Project Lighthouse", and `campaign_id =
4172` to ensure examples remain intact.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/core/guides/connect/bigquery.md`:
- Line 54: Update the error guidance text that currently reads "404 Not found:
Dataset — `dataset` is wrong" to consistently use the documented profile key
`dataset_id` so it reads something like "404 Not found: Dataset — `dataset_id`
is wrong or the SA doesn't have access to that dataset"; change the mention of
`dataset` to `dataset_id` wherever that specific error example "404 Not found:
Dataset" appears to avoid config-key confusion.
- Around line 9-11: Replace the direct pip install instruction (the line
containing pip install "wren-engine[bigquery,main]") with the new
skill-bundle-first onboarding flow: instruct users to run npx skills add
<bigquery-skill-bundle> (or the documented bundle name) followed by the
wren-onboarding command to complete setup; update any surrounding text to remove
manual install steps and instead reference the npx skills add and
wren-onboarding commands as the canonical OSS onboarding path.
- Around line 33-40: Update the Linux example so the base64 output is
single-line before pasting into BIGQUERY_CREDENTIALS in the .env: change the
Linux command to one that disables line wrapping (e.g., use base64 -w0 or pipe
through tr -d '\n') and mention that macOS already emits a single line; update
the docs/core/guides/connect/bigquery.md Linux block and the surrounding text so
readers know to produce a single-line base64 string safe for .env parsers and to
paste it into BIGQUERY_CREDENTIALS.

---

Duplicate comments:
In `@docs/core/introduction.mdx`:
- Around line 83-84: The product name spacing is inconsistent: replace the
incorrect "WrenAI GenBI" occurrence with the standardized "Wren AI GenBI" so all
mentions match; search for the string "WrenAI GenBI" in
docs/core/introduction.mdx and update it to "Wren AI GenBI" to match other
occurrences such as "Wren AI GenBI" used elsewhere in the file.

---

Nitpick comments:
In `@docs/core/introduction.mdx`:
- Line 11: The three consecutive sentences in the paragraph all start with "It",
creating repetitive rhythm; edit the sentence openings to vary structure while
preserving meaning — e.g., start one sentence with "Your AI agent reads schemas
and catches column names," another with "However, it can miss domain-specific
rules such as `status = 4` meaning refunded," and a third with "For example,
your team may use `loyalty_v3`, treat 'monthly active users' as excluding
service accounts, or have renamed 'Project Lighthouse' to `campaign_id = 4172`."
Use the unique tokens `status = 4`, `loyalty_v3`, "monthly active users",
"Project Lighthouse", and `campaign_id = 4172` to ensure examples remain intact.
🪄 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: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 99d04b52-ae9c-4b08-92b7-a8c25ca8056e

📥 Commits

Reviewing files that changed from the base of the PR and between b5d24db and 6c5467f.

📒 Files selected for processing (10)
  • docs/core/concepts/memory_system.md
  • docs/core/concepts/skills.md
  • docs/core/get_started/installation.md
  • docs/core/guides/connect/bigquery.md
  • docs/core/guides/connect/overview.md
  • docs/core/guides/connect/spark.md
  • docs/core/guides/use-with-agents/claude-code.md
  • docs/core/introduction.mdx
  • docs/core/reference/mdl_schema.md
  • docs/core/reference/profile_yaml.md
✅ Files skipped from review due to trivial changes (5)
  • docs/core/guides/connect/spark.md
  • docs/core/concepts/skills.md
  • docs/core/reference/profile_yaml.md
  • docs/core/reference/mdl_schema.md
  • docs/core/guides/connect/overview.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • docs/core/concepts/memory_system.md
  • docs/core/guides/use-with-agents/claude-code.md
  • docs/core/get_started/installation.md

Comment thread docs/core/guides/connect/bigquery.md Outdated
Comment thread docs/core/guides/connect/bigquery.md Outdated
Comment thread docs/core/guides/connect/bigquery.md Outdated
@PaulChen79 PaulChen79 force-pushed the refactor/document branch 2 times, most recently from f08c679 to 2cb982d Compare May 15, 2026 06:31
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (2)
docs/core/guides/connect/mysql.md (1)

5-5: ⚡ Quick win

Add preposition for grammatical correctness.

The title "Connect MySQL" is missing the preposition "to". It should read "Connect to MySQL" for proper English grammar and consistency with standard technical documentation style.

✏️ Proposed fix
-# Connect MySQL
+# Connect to MySQL
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/guides/connect/mysql.md` at line 5, Update the document title
string "Connect MySQL" to include the missing preposition so it reads "Connect
to MySQL"; locate the heading text (currently "Connect MySQL") in the
docs/core/guides/connect/mysql.md content and replace it with "Connect to MySQL"
to correct grammar and match documentation style.
docs/core/introduction.mdx (1)

11-11: 💤 Low value

Consider reducing content duplication across documentation files.

The opening paragraph at line 11 ("Your AI agent does not know what your data means...") is duplicated verbatim in docs/core/concepts/what_is_context.md at line 3. While the repetition serves both documents well, duplicated content can create maintenance overhead if the messaging needs to evolve.

Consider either:

  1. Keeping the duplication but documenting it as intentional shared messaging
  2. Slightly varying the framing in each context to reduce exact duplication
  3. Cross-referencing rather than duplicating (though this may hurt readability)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/core/introduction.mdx` at line 11, The opening paragraph text "Your AI
agent does not know what your data means. It reads schemas. It catches column
names..." is duplicated verbatim in another doc; decide whether to (A) mark the
duplication as intentional shared messaging, (B) alter the framing in one of the
occurrences to avoid exact duplication, or (C) replace one occurrence with a
cross-reference to the other; then update the two documents to implement the
chosen approach (edit the duplicated sentence, add a short note stating it's
shared messaging, or insert a cross-reference link), and run a quick search for
the exact paragraph to ensure no other identical copies remain.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/core/guides/connect/mysql.md`:
- Around line 37-44: The docs table is inconsistent for the `port` field: either
mark `port` as optional and keep "Default `3306`" in the description, or keep
`port` as required and remove the default text; update the row for `port` in the
table (the line containing `| `port` | yes | Default `3306` |`) to reflect the
correct behavior (e.g., change `yes` to `no` if it truly defaults to 3306, or
remove "Default `3306`" if the caller must supply it) and ensure the
accompanying description clearly states the default behavior when optional.

In `@docs/core/introduction.mdx`:
- Line 13: The documentation references four missing image assets in
docs/core/introduction.mdx; add the PNG files with the exact filenames used in
the markdown (/img/oss/vision/vision-paper-02-agent-lacks-business-meaning.png,
/img/oss/vision/vision-paper-03-five-layers-of-context.png,
/img/oss/vision/vision-paper-04-correctness-system.png,
/img/oss/vision/vision-paper-05-scaffold-fast-enrich-deep.png) into the
repository under the img/oss/vision directory so the markdown image links in
introduction.mdx resolve and render correctly.
- Line 25: Update the two broken documentation links referenced as
'/oss/overview/introduction' (in the GenBI sunset notice) and
'/oss/genbi/upgrade-to-commercial' (in the upgrade information) so they point to
valid pages or create the missing pages; locate the occurrences of these exact
link strings in the introduction content and either replace them with the
correct existing paths or add the new docs at those routes, then verify
navigation works for both the GenBI sunset notice and the upgrade-to-commercial
link.

---

Nitpick comments:
In `@docs/core/guides/connect/mysql.md`:
- Line 5: Update the document title string "Connect MySQL" to include the
missing preposition so it reads "Connect to MySQL"; locate the heading text
(currently "Connect MySQL") in the docs/core/guides/connect/mysql.md content and
replace it with "Connect to MySQL" to correct grammar and match documentation
style.

In `@docs/core/introduction.mdx`:
- Line 11: The opening paragraph text "Your AI agent does not know what your
data means. It reads schemas. It catches column names..." is duplicated verbatim
in another doc; decide whether to (A) mark the duplication as intentional shared
messaging, (B) alter the framing in one of the occurrences to avoid exact
duplication, or (C) replace one occurrence with a cross-reference to the other;
then update the two documents to implement the chosen approach (edit the
duplicated sentence, add a short note stating it's shared messaging, or insert a
cross-reference link), and run a quick search for the exact paragraph to ensure
no other identical copies remain.
🪄 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: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: d7420892-cc87-45c7-89ee-9362dc4efe43

📥 Commits

Reviewing files that changed from the base of the PR and between 6c5467f and 2cb982d.

📒 Files selected for processing (38)
  • docs/core/.sync.yml
  • docs/core/concepts/architecture.md
  • docs/core/concepts/benefits_llm.md
  • docs/core/concepts/memory_system.md
  • docs/core/concepts/skills.md
  • docs/core/concepts/what_is_context.md
  • docs/core/concepts/what_is_mdl.md
  • docs/core/get_started/connect.md
  • docs/core/get_started/installation.md
  • docs/core/get_started/quickstart.md
  • docs/core/guides/connect/athena.md
  • docs/core/guides/connect/bigquery.md
  • docs/core/guides/connect/clickhouse.md
  • docs/core/guides/connect/databricks.md
  • docs/core/guides/connect/duckdb.md
  • docs/core/guides/connect/mysql.md
  • docs/core/guides/connect/oracle.md
  • docs/core/guides/connect/overview.md
  • docs/core/guides/connect/postgresql.md
  • docs/core/guides/connect/redshift.md
  • docs/core/guides/connect/snowflake.md
  • docs/core/guides/connect/spark.md
  • docs/core/guides/connect/sqlserver.md
  • docs/core/guides/connect/trino.md
  • docs/core/guides/memory.md
  • docs/core/guides/modeling/model.md
  • docs/core/guides/modeling/overview.md
  • docs/core/guides/modeling/wren_project.md
  • docs/core/guides/profiles.md
  • docs/core/guides/use-with-agents/claude-code.md
  • docs/core/introduction.mdx
  • docs/core/reference/cli.md
  • docs/core/reference/mdl_schema.md
  • docs/core/reference/profile_yaml.md
  • docs/core/reference/skills.md
  • docs/core/sdk/langchain.md
  • docs/core/sdk/overview.md
  • docs/core/sdk/pydantic.md
💤 Files with no reviewable changes (2)
  • docs/core/concepts/benefits_llm.md
  • docs/core/get_started/connect.md
✅ Files skipped from review due to trivial changes (30)
  • docs/core/guides/connect/clickhouse.md
  • docs/core/guides/connect/trino.md
  • docs/core/guides/connect/snowflake.md
  • docs/core/guides/connect/redshift.md
  • docs/core/guides/modeling/overview.md
  • docs/core/guides/connect/databricks.md
  • docs/core/guides/modeling/model.md
  • docs/core/concepts/memory_system.md
  • docs/core/guides/connect/athena.md
  • docs/core/guides/profiles.md
  • docs/core/reference/cli.md
  • docs/core/guides/connect/postgresql.md
  • docs/core/guides/connect/sqlserver.md
  • docs/core/guides/connect/oracle.md
  • docs/core/.sync.yml
  • docs/core/concepts/skills.md
  • docs/core/reference/profile_yaml.md
  • docs/core/guides/memory.md
  • docs/core/reference/mdl_schema.md
  • docs/core/guides/connect/bigquery.md
  • docs/core/guides/modeling/wren_project.md
  • docs/core/get_started/quickstart.md
  • docs/core/guides/use-with-agents/claude-code.md
  • docs/core/concepts/what_is_mdl.md
  • docs/core/get_started/installation.md
  • docs/core/sdk/overview.md
  • docs/core/sdk/pydantic.md
  • docs/core/guides/connect/overview.md
  • docs/core/guides/connect/spark.md
  • docs/core/reference/skills.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • docs/core/sdk/langchain.md
  • docs/core/concepts/architecture.md
  • docs/core/guides/connect/duckdb.md

Comment thread docs/core/guides/connect/mysql.md Outdated
Comment thread docs/core/introduction.mdx
Comment thread docs/core/introduction.mdx
PaulChen79 and others added 3 commits May 15, 2026 15:51
Major content + IA refactor for the Wren AI Core docs. Aligns the doc
set with our positioning as an open context layer for AI agents (per
the team vision review) and trims competitor names per review feedback.

Structure
- Move connect.md from get_started/ to guides/connect/ and split into
  one page per data source (DuckDB, Postgres, MySQL, BigQuery,
  Snowflake, ClickHouse, Trino, SQL Server, Databricks, Redshift,
  Oracle, Athena) + overview page.
- Add Concepts pages: skills, memory_system. Merge benefits_llm into
  what_is_context with the five-layers-of-context framing from the
  vision paper. Rewrite architecture around the "correctness as a
  system" six pillars.
- Add Reference pages: mdl_schema, profile_yaml.
- Add guides/use-with-agents/claude-code.md.

Content
- Rebrand: drop "Wren AI Core" / "Wren Engine 1.x" references —
  product name is just "Wren AI" everywhere.
- Remove third-party brand names per team review (dbt / Cube /
  Lightdash / AtScale / Hex / Mode / Metabase / Superset / Notion).
  Keep neutral framings where the comparison was making a point.
- Remove MCP references from active OSS docs (MCP is no longer the
  story we lead with; the SDK / skills layer is).
- Update Installation flow to be agent-driven by design: skill bundle
  first (`npx skills add Canner/WrenAI --skill '*'`), then ask the
  agent to run wren-onboarding. Drop the manual install path.
- Update Quickstart with an inline "Terms used" mini-glossary so the
  jaffle_shop / MDL / Skills jargon isn't dropped on a new reader.
- Memory page: clarify the `memory` extra is now opt-in (not bundled
  in `main`).
- Pass through grammar / flow polish:
  passive→active voice, weak verbs, parallel structure on H3 lists,
  acronym expansion on first occurrence, dead-link / outdated-path
  cleanup.
- Group A copy fixes: install command flag, brand consistency, hyphenation, code block lang tags
- MDL table_reference: rename database → catalog, mark catalog/schema optional
- Relationships: wrap in relationships: key, rename type → join_type, uppercase enums
- BigQuery profile: credentials (base64) instead of credentials_path, dataset_id, drop nonexistent location
- Snowflake account: clarify locator format, not full hostname
- Profile storage: single ~/.wren/profiles.yml, not per-profile directory
- Add Spark connector page; surface in overview supported list

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@PaulChen79 PaulChen79 force-pushed the refactor/document branch from 2cb982d to ca70dd7 Compare May 15, 2026 07:51
Comment thread docs/core/get_started/connect.md Outdated
Comment thread docs/core/reference/mdl_schema.md Outdated
@goldmedal
Copy link
Copy Markdown
Collaborator

Review notes

Read through carefully and verified claims against the codebase (ConnectionInfo Pydantic models in core/wren/src/wren/model/__init__.py, Typer commands in core/wren/src/wren/cli.py and memory/cli.py). Narrative work is good; the issue is most per-connector profile pages claim fields that don't exist. Users will copy these YAMLs and get validation errors.

High — incorrect connector / profile fields

wren docs connection-info <ds> is the canonical schema for each connector. The doc pages should match its output but currently diverge:

Page Claimed Actual
guides/connect/postgresql.md, reference/profile_yaml.md sslmode top-level Not a field on PostgresConnectionInfo. Pass via kwargs:.
reference/profile_yaml.md (Postgres / MySQL) url: postgres://… URL-form field is connection_url / connectionUrl, not url. See data_source.py:_build_connection_info.
guides/connect/mysql.md ssl: true Field is ssl_mode (alias sslMode).
guides/connect/snowflake.md, profile_yaml.md role, authenticator top-level Neither exists on SnowflakeConnectionInfo. The "Common errors → use externalbrowser" tip is therefore broken.
guides/connect/redshift.md sslmode Not a field. Also page misses the RedshiftIAMConnectionInfo variant (cluster_identifier, region, access_key_id, access_key_secret).
guides/connect/athena.md work_group Not a field. Actual fields: s3_staging_dir, aws_access_key_id, aws_secret_access_key, aws_session_token, web_identity_token, role_arn, role_session_name, region_name, schema_name.
guides/connect/oracle.md service_name, mode Actual fields: host, port, database, user, password, dsn.
guides/connect/sqlserver.md encrypt, trust_server_certificate Actual: host, port, database, user, password, driver, tds_version, kwargs.
guides/connect/trino.md http_scheme Not a field. Actual: host, port, catalog, schema, user, password, kwargs.
guides/connect/databricks.md catalog, schema Two real variants discriminated by databricks_type: token (server_hostname, http_path, access_token) and service_principal (server_hostname, http_path, client_id, client_secret, azure_tenant_id). Page should split.
guides/connect/bigquery.md Dataset variant only BigQueryProjectConnectionInfo (region, billing_project_id, credentials) is also valid — fine for the happy path, but the reference should mention both.

DuckDB, ClickHouse, and Spark look correct.

Suggested fix: regenerate the "Profile fields" block on each guides/connect/<ds>.md from wren docs connection-info <ds> --format md so the docs track the schema mechanically.

High — incorrect CLI flags

  1. wren docs connection-info --datasource postgres in reference/cli.md:80-82datasource is a positional argument, not --datasource. (overview.md:66 got it right.)
  2. wren memory store --pinned in guides/use-with-agents/claude-code.md:50-51 doesn't exist. store() accepts only --nl, --sql, --datasource/-d, --tags, --path/-p. Either drop the tip or check whether the pin-weighting feature exists at all before claiming it.

Medium — skills install identifier mismatch

Docs use Canner/WrenAI throughout. But skills/install.sh line 14 hardcodes REPO=\"Canner/wren-engine\", and skills/README.md likewise. So curl … WrenAI/main/skills/install.sh | bash fetches a script that then re-pulls each skill from wren-engine. If those repos ever drift, docs will install stale skills. Either flip install.sh and skills/README.md to Canner/WrenAI, or revert the docs to Canner/wren-engine. Don't ship asymmetric.

Low

  • quickstart.md:206-208 tells users to rm -rf models/example_model views/example_view after wren context init. Verify those exact directory names are still produced by the scaffolder.
  • .sync.yml is sync_mode: additive — the old connect.md and benefits_llm.md need to be manually deleted on the docs site after this lands. Worth calling out in the PR description.
  • All three commits follow conventional format ✓.

CI

Docs-only — none of the engine-side gates run. Just the docs-site sync workflow. With onBrokenLinks: 'throw', double-check the /oss/... cross-links resolve once the connector pages are corrected.

PaulChen79 and others added 2 commits May 15, 2026 16:21
The reference page duplicated guides/modeling/wren_project.md and had
gone stale (missing schema_version, ref_sql, dialect, column flags,
field mapping). Consolidating onto the project guide as the single
source of truth for MDL schema details.

Repoint the inbound link from get_started/quickstart.md to the guide.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…tifier

Address goldmedal review on #2285:

* Replace 14 per-connector pages and overview with a single
  docs/core/guides/connect.md that points users to `wren docs
  connection-info <ds>` for field details. The CLI command is
  always in sync with the engine's Pydantic schema, removing the
  drift risk that flagged most of the review.
* reference/cli.md: `wren docs connection-info <ds>` is positional,
  not --datasource.
* guides/use-with-agents/claude-code.md: drop the
  `wren memory store --pinned` tip — the flag does not exist on
  the CLI.
* skills/install.sh + skills/README.md: flip the repo identifier
  from Canner/wren-engine to Canner/WrenAI to match the docs and
  the post-merge repo layout.
* Repoint all inbound /oss/guides/connect/overview links to
  /oss/guides/connect.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@goldmedal
Copy link
Copy Markdown
Collaborator

Round 2 review

Solid response. Key fixes verified:

  • cli.md: wren docs connection-info <ds> is now positional.
  • claude-code.md: --pinned tip dropped.
  • skills/install.sh + skills/README.md: REPO, the tarball extract path (WrenAI-${BRANCH}/...), and the curl URL are all flipped to Canner/WrenAI. Thorough.
  • ✅ Per-connector pages replaced with a single guides/connect.md that defers field details to wren docs connection-info <ds>. Smart — the CLI output is clean, schema-faithful markdown, so the doc stops being a drift hazard. Sanity-checked locally for postgres and it's accurate.
  • ✅ Inbound /oss/guides/connect/overview and /oss/reference/mdl_schema links all repointed (installation.md, quickstart.md, introduction.mdx, profile_yaml.md). Grepped — no dangling references.
  • mdl_schema.md removal justified per commit message; the project guide is now single source of truth for MDL field details.

One miss

reference/profile_yaml.md still contains the inaccurate field claims from round 1. The connector pages got the new "defer to CLI" treatment, but this page kept its old hand-rolled YAML examples:

  • L43: url: postgres://USER:PASSWORD@… — field is connection_url / connectionUrl, not url
  • L55: sslmode: prefer — not a top-level PostgresConnectionInfo field; would go in kwargs:
  • L65: ssl: true — actual field is ssl_mode (alias sslMode)
  • L97: role: WREN_ROLE (Snowflake) — not on SnowflakeConnectionInfo; goes in kwargs:

Since per-DB pages are gone, profile_yaml.md is now the only doc with concrete YAML examples — so the inaccuracies actually became more user-facing, not less.

Two ways to close this:

  • Consistent with the new philosophy: delete profile_yaml.md too and let connect.md + wren docs connection-info <ds> be the only references.
  • Or: fix the four lines (Postgres connection_url, drop sslmode/role from top-level, MySQL ssl_mode).

I'd lean toward delete — half a reference page contradicting the CLI is worse than no reference page.

Nothing else blocking from my side.

goldmedal round-2 review: with per-connector pages now deferring to
`wren docs connection-info <ds>`, profile_yaml.md was the only doc
still hand-rolling YAML examples — and it kept several inaccurate
fields (Postgres `url`/`sslmode`, MySQL `ssl`, Snowflake `role`).
Half a reference contradicting the CLI is worse than no reference.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@goldmedal
Copy link
Copy Markdown
Collaborator

Round 3 — LGTM

profile_yaml.md deleted, no dangling inbound links (grepped clean). The doc set now consistently defers per-DB field details to wren docs connection-info <ds>, which is schema-faithful and won't drift.

PR scope is now +454 / −813 across 26 files — net reduction, mostly narrative work and structure. No remaining blockers from my side.

@PaulChen79 PaulChen79 merged commit e0977fb into main May 15, 2026
4 checks passed
@goldmedal goldmedal deleted the refactor/document branch May 15, 2026 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci documentation Improvements or additions to documentation skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants