LLM Context
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Context curation your coding agent does for itself.** lc-init installs a skill that teaches the agent to work out which files a task actually needs, write that down as a composable rule, check the rule against the codebase, and pack the result — for its own context, for a chat you paste into, or for a sub-agent it dispatches.
Getting the right context into an LLM is friction-heavy: finding and copying files by hand wastes time, too much context hits token limits, too little misses what matters, and follow-up file requests mean more manual fetching. The usual answers are to send everything, or to have a person curate by hand. A rule describes the selection once, and it is a thing an agent can author, verify and reuse — the tooling handles packing, follow-up fetches, and change tracking.
Documentation lives in the skill
The full documentation is the **lc-curate-context skill**, installed into your project by lc-init. It is written to be read by an agent, and it is the only copy — this README is a landing page, not a manual.
| File | Contents |
| --- | --- |
| SKILL.md | Writing a rule; the workflow; packing for a sub-agent |
| COMMANDS.md | CLI and MCP reference, including output routing |
| SYNTAX.md | Rule file schema and every field |
| PATTERNS.md | Reusable rule shapes |
| EXAMPLES.md | Worked examples |
| TROUBLESHOOTING.md | Failure cases |
Find them at .claude/skills/lc-curate-context/ after lc-init. In Claude Code the skill loads automatically; elsewhere, read the files directly.
Installation
Upgrading: uv tool upgrade llm-context, then any lc-* command refreshes the skill, rules and templates in place.
Three ways to use it
**Your coding agent, curating for itself** — this is the primary path. After lc-init the agent has the lc-curate-context skill, so "get me focused context for the auth refactor" becomes a rule it writes and verifies without you naming files.
lc-preview reports the exact file lists, the size, and — via the code graph — files defining symbols the selection uses but does not include. That last section is how the agent catches the module it forgot, before spending a turn on a wrong answer.
**A sub-agent, via a pipe** — a dispatcher writes the prompt, llm-context supplies the files.
-r routes output to stdout; without it lc-context copies to the clipboard, so a pipe or redirect gets nothing but log lines. These commands take no bare positional rule name — always -r. -a renders the pack's fetch instructions as shell commands the child runs itself, so from the repo root it can call lc-missing against the pack's timestamp for anything left out. See SKILL.md "Packing for a Sub-Agent".
**A chat, via MCP or the clipboard** — for models that aren't driving a terminal.
With MCP the model pulls files it wasn't given and notices ones that changed underneath it, through lc_missing, lc_changed, lc_outlines and lc_preview. Without it, lc-select then lc-context puts the pack on your clipboard to paste anywhere.