docs: add AGENTS.md for project overview and guidelines

This commit is contained in:
Jim Myhrberg
2025-10-03 10:40:21 +01:00
parent 11fc71952b
commit 8a4cc26920
4 changed files with 77 additions and 119 deletions

71
AGENTS.md Normal file
View File

@@ -0,0 +1,71 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with
code in this repository.
## Project Overview
This is a personal VSCode configuration repository (vscode-siren) that provides
a unified configuration for VSCode-based editors including Cursor, VSCode,
VSCode Insiders, and Windsurf. It focuses on recreating an Emacs-like text
editor experience with custom keybindings, settings, and extensions.
## Key Commands
### Configuration Management
- `./siren <editor> config` - Create symlinks for editor config files
- `./siren <editor> extensions` - Install extensions from lock file
- `./siren <editor> extensions --latest` - Install latest versions of extensions
- `./siren <editor> dump-extensions` - Export installed extensions to lock file
### Makefile Shortcuts
- `make cursor-config` - Configure Cursor editor
- `make cursor-extensions` - Install Cursor extensions
- `make all-config` - Configure all editors
- `make all-extensions` - Install extensions for all editors
### Supported Editors
- `cursor` (c) - Cursor editor
- `vscode` (code, vsc, v) - Visual Studio Code
- `vscode-insiders` (vsci, i) - Visual Studio Code Insiders
- `windsurf` (surf, w) - Windsurf editor
## Architecture
### Core Components
- **siren script** - Main configuration management tool (bash script)
- **settings.json** - VSCode settings configuration
- **keybindings.json** - Custom keybindings (Emacs-inspired)
- **snippets/** - Code snippets for Go and Ruby
- **extensions.*.lock** - Extension lock files for each editor
### Configuration Structure
- Config files are symlinked to appropriate editor directories based on OS
- Extensions are managed via lock files with version pinning
- Extensions install directly by ID with fallback to .vsix when needed
- Static symlinks for additional files like cspell dictionary and MCP config
### Key Features
- Cross-platform support (macOS/Linux)
- Version-locked extensions with fallback to .vsix downloads
- Automatic backup of existing configurations
- Emacs-inspired keybindings and workflow
- Dark/light theme switching based on system preferences
## Development Guidelines
Based on cursor/user-rules.md:
- Keep line length to 80 characters when possible
- Check Makefile for common project tasks
- Be direct and terse in communication
- Provide code solutions rather than general advice
- Include robust error handling
- Consider cross-platform compatibility
- Respect existing code comments

View File

@@ -1,71 +0,0 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with
code in this repository.
## Project Overview
This is a personal VSCode configuration repository (vscode-siren) that provides
a unified configuration for VSCode-based editors including Cursor, VSCode,
VSCode Insiders, and Windsurf. It focuses on recreating an Emacs-like text
editor experience with custom keybindings, settings, and extensions.
## Key Commands
### Configuration Management
- `./siren <editor> config` - Create symlinks for editor config files
- `./siren <editor> extensions` - Install extensions from lock file
- `./siren <editor> extensions --latest` - Install latest versions of extensions
- `./siren <editor> dump-extensions` - Export installed extensions to lock file
### Makefile Shortcuts
- `make cursor-config` - Configure Cursor editor
- `make cursor-extensions` - Install Cursor extensions
- `make all-config` - Configure all editors
- `make all-extensions` - Install extensions for all editors
### Supported Editors
- `cursor` (c) - Cursor editor
- `vscode` (code, vsc, v) - Visual Studio Code
- `vscode-insiders` (vsci, i) - Visual Studio Code Insiders
- `windsurf` (surf, w) - Windsurf editor
## Architecture
### Core Components
- **siren script** - Main configuration management tool (bash script)
- **settings.json** - VSCode settings configuration
- **keybindings.json** - Custom keybindings (Emacs-inspired)
- **snippets/** - Code snippets for Go and Ruby
- **extensions.*.lock** - Extension lock files for each editor
### Configuration Structure
- Config files are symlinked to appropriate editor directories based on OS
- Extensions are managed via lock files with version pinning
- Extensions install directly by ID with fallback to .vsix when needed
- Static symlinks for additional files like cspell dictionary and MCP config
### Key Features
- Cross-platform support (macOS/Linux)
- Version-locked extensions with fallback to .vsix downloads
- Automatic backup of existing configurations
- Emacs-inspired keybindings and workflow
- Dark/light theme switching based on system preferences
## Development Guidelines
Based on cursor/user-rules.md:
- Keep line length to 80 characters when possible
- Check Makefile for common project tasks
- Be direct and terse in communication
- Provide code solutions rather than general advice
- Include robust error handling
- Consider cross-platform compatibility
- Respect existing code comments

1
CLAUDE.md Symbolic link
View File

@@ -0,0 +1 @@
AGENTS.md

View File

@@ -12,6 +12,10 @@ everything you do.
instead let the unit test be narrower in scope.
- Check Makefile and similar for common project tasks like lint, format, test,
etc.
- When told how to perform certain actions by executing a command, the user
means for the command to be run from the root of the project. DO NOT attempt
to run modify the command to an absolute path, instead just execute the
command as instructed.
- When I ask for a fix or explanation, please provide direct code solutions or
detailed technical explanations rather than general advice. I prefer
straightforward answers without introductory phrases like "Here's how you

View File

@@ -1,48 +0,0 @@
- If there is a `AGENTS.md` or `CLAUDE.md` file in the root of a project, please
read it for additional instructions.
- Try and keep line length to 80 characters or fewer when possible.
- Check and fix linting errors.
- Follow code style and conventions already present in the project when
reasonable, including choice of libraries, test frameworks, etc.
- Do break from project conventions when it fully makes sense to do, for
example, don't copy a pattern from integration-style tests into a unit test,
instead let the unit test be narrower in scope.
- Check Makefile and similar for common project tasks like lint, format, test,
etc.
- When told how to perform certain actions by executing a command, the user
means for the command to be run from the root of the project. DO NOT attempt
to run modify the command to an absolute path, instead just execute the
command as instructed.
- When I ask for a fix or explanation, please provide direct code solutions or
detailed technical explanations rather than general advice. I prefer
straightforward answers without introductory phrases like "Here's how you
can..."
- Include robust error handling in code examples and highlight potential edge
cases
- Flag security concerns and performance impacts in solutions
- Suggest appropriate naming conventions and code structure improvements
- Handle changes across multiple files with proper import/dependency management
- Consider version constraints and backward compatibility of
libraries/frameworks
- Generate or update docstrings/comments for new code
- Provide test examples for new functionality when relevant
- Consider build environment constraints and platform-specific issues
- If clarification is needed, make reasonable assumptions and note them
- Be casual unless otherwise specified.
- Be terse.
- Be accurate and thorough.
- Give the answer immediately. Provide detailed explanations afterward if
needed.
- Value good arguments over authorities, the source is irrelevant.
- If your content policy is an issue, provide the closest acceptable response
and explain the content policy issue afterward.
- Cite sources whenever possible at the end, not inline.
- No need to mention your knowledge cutoff.
- No need to disclose you're an AI.
- Respect my formatting preferences when you provide code.
- Respect all code comments, they're usually there for a reason. Remove them
ONLY if they're completely irrelevant after a code change. if unsure, do not
remove the comment.
- When adding new comments, they must be relevant and specific to the code in
question. They should NOT refer to any specific instructions like "use new X
function".

1
cursor/user-rules.md Symbolic link
View File

@@ -0,0 +1 @@
../claude/CLAUDE.md