docs: add CLAUDE.md and settings.json for AI agent context#1440
docs: add CLAUDE.md and settings.json for AI agent context#1440
Conversation
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
📝 WalkthroughWalkthroughTwo new files are added to the Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~15 minutes Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 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: 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 permitscd ibis-server && just:*, which includes theformatandlintrecipes 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 syncas 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
📒 Files selected for processing (2)
.claude/CLAUDE.md.claude/settings.json
| ``` | ||
| 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.) | ||
| ``` |
There was a problem hiding this comment.
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.
| ``` | |
| 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.
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:
settings.json: Claude-specific configuration defining:
Purpose
These files serve as AI agent context files, enabling Claude to:
https://claude.ai/code/session_01SoRRwAWPEuZayG8iETLb4V
Summary by CodeRabbit
Documentation
Chores