docs: add CLAUDE.md for AI assistant guidance#28
docs: add CLAUDE.md for AI assistant guidance#28VictorQueiroz wants to merge 1 commit intomasterfrom
Conversation
Comprehensive documentation for AI assistants including: - Project architecture overview (C++ native bindings + TypeScript wrapper) - Codebase structure and file organization - Build commands and development workflow - Testing setup with AVA framework - Code style conventions for C++ and TypeScript - Key types and common usage patterns https://claude.ai/code/session_01Kyf3yi9trukuTDfGjgYTP1
There was a problem hiding this comment.
Pull request overview
This PR adds comprehensive AI assistant guidance documentation (CLAUDE.md) to help AI assistants understand and work with the xdotool codebase. The document covers project architecture, build setup, code structure, development workflows, and usage patterns.
Changes:
- Added CLAUDE.md with detailed documentation covering the C++ native module architecture, TypeScript wrapper layer, async task system, build configuration, testing setup, and common usage patterns
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| │ └── tasks/ # Individual async task implementations | ||
| │ ├── ActivateWindow.cpp/h | ||
| │ ├── EnterText.cpp/h | ||
| │ ├── GetFocusedWindow.cpp/h | ||
| │ ├── GetImage.cpp/h | ||
| │ ├── GetMouseLocation.cpp/h | ||
| │ ├── GetViewportDimensions.cpp/h | ||
| │ ├── GetWindowPID.cpp/h | ||
| │ ├── GetWindowProperty.cpp/h | ||
| │ ├── GetWindowSize.cpp/h | ||
| │ ├── MoveMouse.cpp/h | ||
| │ ├── QueryKeymap.cpp/h | ||
| │ ├── SearchWindows.cpp/h | ||
| │ ├── SendKeysequence.cpp/h | ||
| │ ├── Sync.cpp/h | ||
| │ └── WindowHasProperty.cpp/h |
There was a problem hiding this comment.
The task file list is missing GetActiveKeysToKeycodeList.cpp/h which exists in src/tasks/ but is commented out in CMakeLists.txt. Additionally, GetWindowProperty.cpp/h is listed but is not actually exposed as a method in XdoTool (though the task file exists and is compiled).
For completeness, consider either:
- Adding
GetActiveKeysToKeycodeList.cpp/hto the list with a note that it's currently commented out in the build - Removing or noting that
GetWindowProperty.cpp/his not exposed in the public API - Only listing tasks that are actively used and exposed in the API
| - Linux with X11 (Xorg) | ||
| - libxdo (xdotool library) | ||
| - libx11 | ||
| - Boost |
There was a problem hiding this comment.
Boost is listed as a system requirement but is not actually used in the codebase. There are no Boost includes in the source files and no Boost dependencies in CMakeLists.txt. This requirement should be removed unless there's a specific reason it's needed.
| - Boost |
Comprehensive documentation for AI assistants including:
https://claude.ai/code/session_01Kyf3yi9trukuTDfGjgYTP1