# using-interns Runtime policy for the local `interns` MCP server. Delegates predictable bulk I/O and summarization tasks to cheap intern LLMs (DeepSeek / Kimi / Ollama-hosted) so Claude saves Anthropic quota. `using-interns` governs *usage* of an installed server. Initial setup (`pip install`, `.env` write, MCP registration) is owned by [`setup-interns`](../setup-interns/). Full design: `.wiki/concepts/interns-design.md` (in this repo) — Layer 1 / 2 / 3 architecture, MVP catalog, always-ask paths, routing hints. ## When it triggers - CLAUDE.md contains `delegate to interns when allowed` (added by `project-bootstrap` 1.6.0+). - User says: "use interns", "delegate to an intern", "разреши интернов", "allow interns", "go ahead with interns". - Claude is about to read 3+ files, or one file > 400 lines, just to build context. - Claude is about to update `.wiki/log.md` or write a session summary from a long transcript. - If `mcp__interns__*` tools are missing, this skill delegates to [`setup-interns`](../setup-interns/) before doing anything else. ## What it does - **Picks the right intern** for the task from a routing table (`bulk_text_read` for reads, `transcript_distill` for summaries; future interns added in `.common/config/interns/config.yaml`). - **Guards every call** with a per-session permission grant that mirrors `project-discipline` Rule 4 — ask-mode default, conversational grant / revoke, session-end reset. - **Enforces always-ask paths** — `.env`, `**/secrets/**`, `**/*.key`, `**/*.pem`, `**/.ssh/**`, `**/.aws/credentials`, `**/.netrc` etc. — even when delegation is granted. Server-side enforcement plus a transitive rule: Claude can't bypass by reading the file with the local `Read` tool and forwarding the content. - **Caps cost** — calls with estimated cost > $0.10 always go to ask-mode regardless of grant. - **Tells Claude what NOT to delegate** — architecture, debugging, auth / payments, final commit messages, final user-facing answers. ## Permission grant cheat-sheet | Phrase | Effect | |---|---| | (default) | Ask before every `mcp__interns__*` call. | | "разреши интернов" / "allow interns" | Free delegation until session end (subject to always-ask paths + cost cap). | | "отзови интернов" / "revoke interns" | Back to ask-mode. | | (session ends) | Reset to ask-mode. The next session asks again. | ## Tool quick reference | Tool | Required args | Optional | Purpose | |---|---|---|---| | `mcp__interns__bulk_text_read` | `paths: list[str]`, `question: str` | `max_tokens: int` | Read N files, answer with file:line citations. | | `mcp__interns__transcript_distill` | `paths: list[str]`, `question: str` | `max_tokens: int` | Distill transcript / log into structured action list. | Pass **paths**, not file contents. The MCP server reads and applies the always-ask matcher server-side; forwarding content as a string arg bypasses the gate. ## When NOT to use - Architecture / design decisions — Claude's job. - Debugging — cheap models miss subtle bugs. - Auth / payments / PII / production data — recommendation, not enforced, but obvious. - Final commit messages, PR descriptions, user-facing answers — don't sub-delegate the deliverable. - A single 50-line file you can read yourself for free. Full policy and examples in [`SKILL.md`](SKILL.md). ## Install From the repo root: ```bash bash scripts/install.sh using-interns ``` Works on Windows under git-bash, Linux, macOS. ## See also - [`setup-interns`](../setup-interns/) — companion, owns the server install + `mcpServers.interns` registration. - [`project-discipline`](../project-discipline/) — Rule 4 (per-session push grant) is the prior art for the grant mechanism here. - [`using-projects-meta`](../using-projects-meta/), [`using-context7`](../using-context7/) — sister `using-X` skills for other MCP servers (same shape). - `.wiki/concepts/interns-design.md` — full architecture spec.