Thank you for your interest in contributing to the rlm-rs Claude Code plugin.
- Claude Code with plugin support
- rlm-rs CLI installed:
cargo install --git https://github.com/zircote/rlm rlm-rs
- Familiarity with Claude Code plugin structure
-
Clone the repository:
git clone https://github.com/zircote/rlm-rs-plugin.git cd rlm-rs-plugin -
Run Claude Code with the plugin directory:
claude --plugin-dir . -
Verify loading by running
/help- you should seerlm-rs:rlm-initand other commands.
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.md
Skills are proactive capabilities triggered by user intent.
File location: skills/<skill-name>/SKILL.md
Frontmatter format:
---
name: skill-name
description: Trigger phrases and when to use this skill
version: 0.1.0
allowed-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 are explicit slash commands invoked by users.
File location: commands/<command-name>.md
Frontmatter format:
---
name: command-name
description: Brief description
argument-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 are subprocesses invoked via the Task tool.
File location: agents/<agent-name>.md
Frontmatter format:
---
name: agent-name
description: When this agent is invoked
model: haiku|sonnet|opus
tools:
- Read
- Bash
color: 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
- 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"
Basic workflow:
# 1. Create test file
echo "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=100- Fork the repository
- Create a feature branch:
git checkout -b feature/my-improvement
- Make your changes
- Test thoroughly
- Commit with descriptive message:
git commit -m "Add parallel chunk processing to rlm skill" - Push and create PR:
git push origin feature/my-improvement
- 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
Follow conventional commits:
feat:New featurefix:Bug fixdocs:Documentation onlyrefactor:Code change that neither fixes nor addstest:Adding testschore:Maintenance tasks
- Use ATX-style headers (
#,##,###) - Include code fence language identifiers
- Keep lines under 100 characters where practical
- Use reference-style links for repeated URLs
- Use lowercase property names
- Quote strings with special characters
- Keep descriptions concise but complete
- Always check for prerequisites
- Provide clear error messages
- Use
set -efor strict error handling (when appropriate) - Quote variables:
"${variable}"
- Issues: GitHub Issues
- Discussions: GitHub Discussions
By contributing, you agree that your contributions will be licensed under the MIT License.