Getting Started
Thank you for your interest in contributing to the rlm-rs Claude Code plugin.
Getting Started
Section titled “Getting Started”Prerequisites
Section titled “Prerequisites”- Claude Code with plugin support
- rlm-rs CLI installed:
Terminal window cargo install --git https://github.com/zircote/rlm rlm-rs - Familiarity with Claude Code plugin structure
Development Setup
Section titled “Development Setup”-
Clone the repository:
Terminal window git clone https://github.com/zircote/rlm-rs-plugin.gitcd rlm-rs-plugin -
Run Claude Code with the plugin directory:
Terminal window claude --plugin-dir . -
Verify loading by running
/help- you should seerlm-rs:rlm-initand other commands.
Project Structure
Section titled “Project Structure”rlm-rs-plugin/├── .claude-plugin/│ └── plugin.json # Plugin manifest├── agents/│ ├── rlm-subcall.md # Chunk analysis agent│ └── rlm-synthesizer.md # Result synthesis agent├── commands/│ ├── rlm-init.md # Initialize command│ ├── rlm-load.md # Load file command│ ├── rlm-status.md # Status command│ └── rlm-query.md # Query command├── skills/│ ├── rlm/│ │ ├── SKILL.md # Main orchestration skill│ │ └── references/│ │ └── cli-reference.md│ └── rlm-chunking/│ └── SKILL.md # Chunking strategy guide├── hooks/ # (future) Event hooks├── docs/│ ├── ARCHITECTURE.md # Architecture documentation│ └── TECHNICAL-OVERVIEW.md # Technical deep-dive├── README.md└── CONTRIBUTING.mdComponent Guidelines
Section titled “Component Guidelines”Skills
Section titled “Skills”Skills are proactive capabilities triggered by user intent.
File location: skills/<skill-name>/SKILL.md
Frontmatter format:
---name: skill-namedescription: Trigger phrases and when to use this skillversion: 0.1.0allowed-tools: - Read - Write - Bash - Task---Best practices:
- Include clear trigger phrases in description
- Document prerequisites and dependencies
- Provide step-by-step workflow instructions
- Include example commands and outputs
Commands
Section titled “Commands”Commands are explicit slash commands invoked by users.
File location: commands/<command-name>.md
Frontmatter format:
---name: command-namedescription: Brief descriptionargument-hint: arg1=<value> [arg2=<optional>]arguments: - name: arg1 description: What this argument does required: true - name: arg2 description: Optional argument required: false---Best practices:
- Keep commands focused on single actions
- Validate inputs in the bash script
- Provide helpful error messages
- Show status after completion
Agents
Section titled “Agents”Agents are subprocesses invoked via the Task tool.
File location: agents/<agent-name>.md
Frontmatter format:
---name: agent-namedescription: When this agent is invokedmodel: haiku|sonnet|opustools: - Read - Bashcolor: cyan|green|blue|etc---Best practices:
- Choose appropriate model for the task
- Define clear input/output contracts
- Keep agent scope narrow and focused
- Document constraints and limitations
Testing Changes
Section titled “Testing Changes”Manual Testing
Section titled “Manual Testing”- Make changes to plugin files
- Restart Claude Code or reload plugins
- Test the modified component:
# Test a command/rlm-init# Test a skill by describing intent"I need to process a large log file using RLM"# Test an agent via Task tool (pass chunk ID from search results)"Analyze chunk ID 42 from the loaded buffer"
Test Scenarios
Section titled “Test Scenarios”Basic workflow:
# 1. Create test fileecho "Test content for RLM processing" > test.txt
# 2. Initialize/rlm-init
# 3. Load/rlm-load file=test.txt
# 4. Check status/rlm-statusChunking strategies:
# Test semantic chunking with markdown/rlm-load file=README.md chunker=semantic
# Test fixed chunking with overlap/rlm-load file=test.log chunker=fixed chunk-size=1000 overlap=100Submitting Changes
Section titled “Submitting Changes”Pull Request Process
Section titled “Pull Request Process”- Fork the repository
- Create a feature branch:
Terminal window git checkout -b feature/my-improvement - Make your changes
- Test thoroughly
- Commit with descriptive message:
Terminal window git commit -m "Add parallel chunk processing to rlm skill" - Push and create PR:
Terminal window git push origin feature/my-improvement
PR Guidelines
Section titled “PR Guidelines”- Title: Clear, concise description of change
- Description: Include:
- What changed and why
- How to test the change
- Any breaking changes
- Size: Keep PRs focused; split large changes
Commit Messages
Section titled “Commit Messages”Follow conventional commits:
feat:New featurefix:Bug fixdocs:Documentation onlyrefactor:Code change that neither fixes nor addstest:Adding testschore:Maintenance tasks
Code Style
Section titled “Code Style”Markdown
Section titled “Markdown”- Use ATX-style headers (
#,##,###) - Include code fence language identifiers
- Keep lines under 100 characters where practical
- Use reference-style links for repeated URLs
YAML Frontmatter
Section titled “YAML Frontmatter”- Use lowercase property names
- Quote strings with special characters
- Keep descriptions concise but complete
Bash Scripts
Section titled “Bash Scripts”- Always check for prerequisites
- Provide clear error messages
- Use
set -efor strict error handling (when appropriate) - Quote variables:
"${variable}"
Getting Help
Section titled “Getting Help”- Issues: GitHub Issues
- Discussions: GitHub Discussions
License
Section titled “License”By contributing, you agree that your contributions will be licensed under the MIT License.