Skip to content

docs: add CLAUDE.md and settings.json for AI agent context#1440

Merged
goldmedal merged 1 commit intomainfrom
claude/setup-claude-agents-Z62CK
Mar 10, 2026
Merged

docs: add CLAUDE.md and settings.json for AI agent context#1440
goldmedal merged 1 commit intomainfrom
claude/setup-claude-agents-Z62CK

Conversation

@wwwy3y3
Copy link
Copy Markdown
Member

@wwwy3y3 wwwy3y3 commented Mar 10, 2026

Summary

Add documentation and configuration files to provide Claude (and other AI agents) with comprehensive context about the Wren Engine repository structure, build processes, and development conventions.

Key Changes

  • CLAUDE.md: Comprehensive guide covering:

    • Project overview (Wren Engine as an open-source semantic SQL engine)
    • Repository structure with descriptions of each major module (wren-core, wren-core-py, ibis-server, mcp-server, skills)
    • Build quick reference table with install, test, and formatting commands for each module
    • Architecture diagram showing the query flow from SQL input through MDL processing to native execution
    • Development conventions for commits, releases, code formatting, and testing practices
  • settings.json: Claude-specific configuration defining:

    • Allowed bash commands for development tasks (cargo, just, poetry, taplo, git, gh)
    • Permissions scoped to relevant directories and command patterns
    • Enables safe automation of formatting, testing, and git operations

Purpose

These files serve as AI agent context files, enabling Claude to:

  • Understand the project architecture and module responsibilities
  • Execute appropriate build and test commands with proper permissions
  • Follow project conventions for commits and code quality
  • Provide better-informed assistance on development tasks

https://claude.ai/code/session_01SoRRwAWPEuZayG8iETLb4V

Summary by CodeRabbit

  • Documentation

    • Added comprehensive documentation covering repository structure, build and test conventions, architecture for query flow from SQL to native execution with fallback support, and CI/release practices.
  • Chores

    • Added configuration settings to define allowed development utilities and commands, segmented by project contexts and tooling needs.

Add Claude Code project context file mirroring the wren-engine-saas gold
standard, scoped to the OSS repo. Includes build quick reference, architecture
diagram, and permission allowlist for common dev commands.

https://claude.ai/code/session_01SoRRwAWPEuZayG8iETLb4V
@github-actions github-actions bot added the documentation Improvements or additions to documentation label Mar 10, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 10, 2026

📝 Walkthrough

Walkthrough

Two new files are added to the .claude/ directory: a comprehensive documentation file introducing the Wren Engine project's overview, repository structure, build/test conventions, and architecture, and a JSON configuration file specifying allowed Bash commands and their scopes for different project contexts.

Changes

Cohort / File(s) Summary
Documentation
.claude/CLAUDE.md
New documentation file covering Wren Engine OSS overview, repository structure, build/test conventions, architecture data flow (SQL to native execution with v2 fallback), and CI/release practices.
Configuration
.claude/settings.json
New configuration file defining permissions for allowed Bash commands across different project contexts (wren-core, wren-core-py, ibis-server) and tooling (cargo, just, poetry).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Suggested labels

documentation

Suggested reviewers

  • douenergy
  • goldmedal

Poem

🐰 New docs hop into the warren bright,
Architecture flows from dawn to night,
Commands aligned in config's grace,
Conventions guide this coding space,
Wren Engine soars with clarity's light! 🌟

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding two configuration files (CLAUDE.md and settings.json) for AI agent context. It accurately reflects the primary objective of the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch claude/setup-claude-agents-Z62CK

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.

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: 1

🧹 Nitpick comments (2)
.claude/settings.json (2)

9-10: Redundant permission on line 10.

Line 10 allows poetry run ruff:* for ibis-server, but line 9 already permits cd ibis-server && just:*, which includes the format and lint recipes that wrap ruff commands (see ibis-server/justfile:112-123). The explicit ruff permission is redundant.

🧹 Proposed fix to remove redundant permission
       "Bash(cd wren-core-py && just:*)",
       "Bash(cd ibis-server && just:*)",
-      "Bash(cd ibis-server && poetry run ruff:*)",
       "Bash(taplo fmt:*)",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/settings.json around lines 9 - 10, Remove the redundant permission
entry "Bash(cd ibis-server && poetry run ruff:*)" because "Bash(cd ibis-server
&& just:*)" already grants the just recipes that invoke ruff (see justfile
recipes around format/lint). Edit the permissions array to delete the explicit
poetry-run-ruff string, leaving the just:* entry ("Bash(cd ibis-server &&
just:*)") as the single permission for ibis-server lint/format tasks.

1-24: Consider adding mcp-server permissions.

CLAUDE.md line 23 documents uv sync as the install command for mcp-server, but no permissions are defined for that module. If Claude Code needs to install or work with mcp-server dependencies, consider adding appropriate permissions.

➕ Optional addition for mcp-server support
       "Bash(cd ibis-server && just:*)",
       "Bash(cd ibis-server && poetry run ruff:*)",
+      "Bash(cd mcp-server && uv sync:*)",
       "Bash(taplo fmt:*)",

Note: Only add this if Claude Code needs to manage mcp-server dependencies. If mcp-server is excluded from typical development workflows, this can be safely omitted.

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

In @.claude/settings.json around lines 1 - 24, The settings.json permissions
omit mcp-server commands referenced in CLAUDE.md; add permission entries for the
mcp-server workflow (e.g., allow running uv sync from within the mcp-server
directory) by adding a Bash permission such as "Bash(cd mcp-server && uv
sync:*)" into the "allow" array alongside other module commands so Claude Code
can install/manage mcp-server dependencies when needed.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/CLAUDE.md:
- Around line 29-37: The fenced code block containing the architecture diagram
in the .claude/CLAUDE.md file lacks a language identifier; update the opening
fence from ``` to include a language (for example ```text or ```mermaid) so
markdownlint and renderers apply proper syntax highlighting — locate the
architecture diagram block (the lines starting with "SQL Query →
ibis-server...") and change the fence accordingly.

---

Nitpick comments:
In @.claude/settings.json:
- Around line 9-10: Remove the redundant permission entry "Bash(cd ibis-server
&& poetry run ruff:*)" because "Bash(cd ibis-server && just:*)" already grants
the just recipes that invoke ruff (see justfile recipes around format/lint).
Edit the permissions array to delete the explicit poetry-run-ruff string,
leaving the just:* entry ("Bash(cd ibis-server && just:*)") as the single
permission for ibis-server lint/format tasks.
- Around line 1-24: The settings.json permissions omit mcp-server commands
referenced in CLAUDE.md; add permission entries for the mcp-server workflow
(e.g., allow running uv sync from within the mcp-server directory) by adding a
Bash permission such as "Bash(cd mcp-server && uv sync:*)" into the "allow"
array alongside other module commands so Claude Code can install/manage
mcp-server dependencies when needed.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0240c12a-35c6-411b-b2c2-eb574ff5ce5e

📥 Commits

Reviewing files that changed from the base of the PR and between 2c4fa44 and e919ed8.

📒 Files selected for processing (2)
  • .claude/CLAUDE.md
  • .claude/settings.json

Comment on lines +29 to +37
```
SQL Query → ibis-server (FastAPI v3 router)
→ MDL Processing (manifest cache, validation)
→ wren-core-py (PyO3 FFI)
→ wren-core (Rust: MDL analysis → logical plan → optimization)
→ DataFusion (query planning)
→ Connector (Ibis/sqlglot → dialect SQL)
→ Native execution (Postgres, BigQuery, etc.)
```
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

Specify language for the fenced code block.

The architecture diagram code block should specify a language identifier for proper rendering and syntax highlighting. Consider using text or mermaid depending on the intended format.

📝 Proposed fix to add language specification
-```
+```text
 SQL Query → ibis-server (FastAPI v3 router)
   → MDL Processing (manifest cache, validation)
   → wren-core-py (PyO3 FFI)

Based on learnings: As per coding guidelines, markdownlint requires fenced code blocks to have a language specified.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
SQL Query → ibis-server (FastAPI v3 router)
→ MDL Processing (manifest cache, validation)
→ wren-core-py (PyO3 FFI)
→ wren-core (Rust: MDL analysis → logical plan → optimization)
→ DataFusion (query planning)
→ Connector (Ibis/sqlglot → dialect SQL)
→ Native execution (Postgres, BigQuery, etc.)
```
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 29-29: 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 @.claude/CLAUDE.md around lines 29 - 37, The fenced code block containing the
architecture diagram in the .claude/CLAUDE.md file lacks a language identifier;
update the opening fence from ``` to include a language (for example ```text or
```mermaid) so markdownlint and renderers apply proper syntax highlighting —
locate the architecture diagram block (the lines starting with "SQL Query →
ibis-server...") and change the fence accordingly.

@goldmedal goldmedal merged commit 1e92894 into main Mar 10, 2026
11 checks passed
nhaluc1005 pushed a commit to nhaluc1005/text2sql-practice that referenced this pull request Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants