-
Notifications
You must be signed in to change notification settings - Fork 17
chore: add CLAUDE.md #3066
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: add CLAUDE.md #3066
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds a CLAUDE.md file to provide guidance for Claude Code (claude.ai/code) when working with this repository. The file serves as a comprehensive reference document outlining the project's architecture, development workflows, testing strategies, and coding standards for AI-assisted development.
Key changes:
- New documentation file establishing development guidelines and architectural patterns for AI tooling
- Comprehensive coverage of build commands, testing strategies, and critical coding requirements
- Reference material for connection types, webview architecture, and sidecar patterns
|
|
||
| - Node.js 22.17.0 or later | ||
| - Visual Studio Code 1.96.2 or later | ||
| - Git 2.40.0 or later |
Copilot
AI
Jan 6, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Git 2.40.0 was released in March 2023. Consider updating this to a more recent minimum version requirement (e.g., 2.43.0 or later from 2024) to ensure users benefit from recent security updates and features, or clarify why this specific older version is the minimum requirement.
| - Git 2.40.0 or later | |
| - Git 2.43.0 or later |
CLAUDE.md
Outdated
| ### Webview Architecture | ||
|
|
||
| See | ||
| [Visual iteration workflow](https://www.anthropic.com/engineering/claude-code-best-practices#write-code-screenshot-result-iterate). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've had this problem multiple time with the Anthropic best practices doc, but it doesn't seem you can link to the headers in it
noeldevelops
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 💥
My comments are minor things we can discuss and iterate on
CLAUDE.md
Outdated
|
|
||
| - Never modify `src/clients/` directly - update OpenAPI specs and run `npx gulp apigen` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most of this section is repeated above, remove for token savings. It might also be in contributing guidelines - should we reference that or instruct Claude to look there instead of some of this doc?
|
|
||
| When working with Claude Code during development: | ||
|
|
||
| ### Code Generation Requests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these about what the dev should request from Claude or add in their prompt? Do they belong?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed
shouples
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly good from my perspective, with a few sections I think we could remove to save context. I've also pushed some changes to #3066 since our other (Copilot) instructions needed similar adjustments.
CLAUDE.md
Outdated
| Tree views extend `BaseViewProvider` or `ParentedBaseViewProvider` (which also extend | ||
| `RefreshableTreeViewProvider`): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor: Not necessary to include RefreshableTreeViewProvider since it's an interface implemented by BaseViewProvider
| Tree views extend `BaseViewProvider` or `ParentedBaseViewProvider` (which also extend | |
| `RefreshableTreeViewProvider`): | |
| Tree views extend `BaseViewProvider` or `ParentedBaseViewProvider`: |
CLAUDE.md
Outdated
| ### Chat Participant (Copilot Integration) | ||
|
|
||
| - Tools in `src/chat/tools/` extend `BaseLanguageModelTool<T>` | ||
| - Handler in `src/chat/participant.ts` processes requests and streams responses | ||
| - Auto-registered via `registerChatTools()` with tool chaining support |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd remove this section entirely until we get some dev cycles to revisit
CLAUDE.md
Outdated
| ### Testing Against Local Sidecar | ||
|
|
||
| 1. Clone [`ide-sidecar`](https://github.com/confluentinc/ide-sidecar) and build the native | ||
| executable: | ||
|
|
||
| ```bash | ||
| make clean mvn-package-native-no-tests | ||
| ``` | ||
|
|
||
| 2. Copy the executable to this repository's `bin/` directory: | ||
|
|
||
| ```bash | ||
| cp ./target/ide-sidecar-0.*.0-runner /path/to/vscode/bin | ||
| ``` | ||
|
|
||
| 3. Update `.versions/ide-sidecar.txt` to match the executable version | ||
|
|
||
| 4. If OpenAPI or GraphQL schemas changed, copy them and run `npx gulp apigen` | ||
|
|
||
| 5. Run `npx gulp ci` to verify everything builds correctly |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we expect Claude Code to do this? I'm thinking we can probably leave this section out
CLAUDE.md
Outdated
| ## PR Review Focus Areas | ||
|
|
||
| - **Disposable Management**: Verify all event listeners are properly disposed via | ||
| `DisposableCollection` | ||
| - **Type Safety**: Ensure no `any` types and all interfaces are properly typed | ||
| - **Single Responsibility**: Check classes/functions maintain focused purposes | ||
| - **Sidecar Pattern**: Confirm proper use of short-lived `SidecarHandle` instances | ||
| - **Testing Coverage**: Validate new functionality includes appropriate unit/E2E tests | ||
| - **Error Handling**: Ensure consistent use of `logError()` and `showErrorNotificationWithButtons()` | ||
| - **Comment Preservation**: Never delete existing comments unless they contain errors - enhance | ||
| rather than remove | ||
| - **OpenAPI Changes**: Check that spec changes include corresponding patches in | ||
| `src/clients/sidecar-openapi-specs/patches/` | ||
| - **Extension Settings**: Verify settings follow the `ExtensionSetting<T>` pattern | ||
| - **Webview Patterns**: Validate webview implementations use established template binding patterns |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's remove this as well since we don't have @claude set up, but could take this same kind of information and put it in a custom slash command, skill, or otherwise
Summary of Changes
Let's iterate! 🎆
reference: Boris does it
doc reference: Claude Code Best Practices
Pull request checklist
Please check if your PR fulfills the following (if applicable):
Tests
Release notes