plugins/rlm-factory/skills/rlm-distill-agent/SKILL.md
Distills uncached files into the Recursive Language Model(RLM) Summary cache Ledger. You (the agent) ARE the distillation engine. Read each file deeply, write a high-quality 1-sentence summary, inject it via inject_summary.py. The purpose is if you read the full file once and produce a great summary once it will avoid the need to read the file every time you need to know what the script does or what the details of the file are. most cases the RLM summary should be sufficient. Use when files are missing from the ledger and need to be summarized. <example> user: "Summarize these new plugin files into the RLM ledger" assistant: "I'll use rlm-distill-agent to read and summarize each file into the cache." </example> <example> user: "The RLM ledger is missing 40 files -- fill the gaps" assistant: "I'll use rlm-distill-agent to process the missing files." </example>
npx skillsauth add richfrem/agent-plugins-skills rlm-distill-agentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill requires Python 3.8+ and standard library only. No external packages needed.
To install this skill's dependencies:
pip-compile ./requirements.in
pip install -r ./requirements.txt
See ./requirements.txt for the dependency lockfile (currently empty — standard library only).
You ARE the distillation engine. Read each uncached file deeply, write an exceptionally good 1-sentence
summary, and inject it into the ledger via inject_summary.py.
inventory.py)First-time setup or missing profile? Run the rlm-init skill first:
# See: ../SKILL.md
# Creates rlm_profiles.json, manifest, and empty cache
python ./scripts/inventory.py --profile project
python ./scripts/inventory.py --profile tools
Read the entire file with view_file. Do not skim.
A great RLM summary answers: "What does this file do, what problem does it solve, and what are its key components/functions?" in one dense sentence.
python ./scripts/inject_summary.py \
--profile project \
--file ../SKILL.md \
--summary "Provides atomic file CRUD operations for markdown notes using POSIX rename and fcntl.flock."
The script handles atomic writes safely. Never write to the Markdown files manually.
Do not attempt manual distillation for large batches. Choose an engine based on the user's CLI context and cost profile, then delegate to the agent swarm:
CRITICAL: Determine User's CLI Context First!
Before blindly using --engine copilot, determine which agent CLI the user is running (Claude Code, GitHub Copilot CLI, or Google Gemini CLI). You can often tell from the terminal process or simply by asking the user which AI CLI they have access to.
| User's CLI Tool | Recommended Engine Flag | Cost Profile | Workers |
|:-------|:------|:-----|:--------|
| GitHub Copilot CLI | --engine copilot (gpt-5-mini nano tier) | $0 free | --workers 2 (rate-limit safe) |
| Google Gemini CLI | --engine gemini (gemini-3-flash-preview) | $0 free | --workers 5 (high throughput) |
| Claude Code | --engine claude (Haiku / Sonnet) | Low-Medium | --workers 3 |
Default Protocol: Ask the user: "I noticed we have over 50 files to distill. Do you have access to Copilot CLI or Gemini CLI for zero-cost batch processing, or should I use Claude Code?"
Then, run the swarm job based on their answer. For example, if they use Gemini:
python ./scripts/swarm_run.py --engine gemini --workers 5 --files-from rlm_distill_tasks_project.md
Provide a job file describing the summarization task and the gap file from inventory.py --missing.
See SKILL.md for full swarm configuration options.
| Good | Bad | |:-----|:----| | "Atomic file CRUD using POSIX rename + flock, preserving YAML frontmatter via ruamel.yaml." | "This file handles file operations." | | "3-phase search skill: RLM ledger -> ChromaDB -> grep, escalating from O(1) to exact match." | "Searches for things in the codebase." |
*_cache/*.md directory manualy -- always use inject_summary.py.testing
Skill for creating and managing isolated git worktrees (`.worktrees/issue-NNN`) for issue execution branches. USE ONLY when setting up or cleaning up isolated git worktrees for specific issue execution. DO NOT USE for managing local task files (use `task-agent`) or escalating tasks to issues (use `github-issue-backlog-agent`).
data-ai
Skill for orchestrating the end-to-end GitHub issue lifecycle flow: Issue -> Worktree -> Implementation -> PR Creation -> Resolution Closure. USE ONLY when running or dry-running full lifecycle orchestration for resolving an issue with a PR. DO NOT USE for isolated worktree management only (use `issue-worktree-agent`) or logging issues (use `github-issue-agent`).
tools
Automatically ranks GitHub issues (P0-P3) based on friction tier, frequency, and blockages, synchronizing priority labels and GitHub Projects v2 custom fields.
testing
Bridge skill for escalating ephemeral local task scratchpad items (`tasks/*.md`) into durable, taxonomy-validated, evidence-rich GitHub Issues. USE ONLY when promoting a single-session local task into durable repository backlog. DO NOT USE for managing local kanban boards (use `task-agent` instead) or directly querying/commenting on issues (use `github-issue-agent` instead).